Imported Upstream version 5.21.10 23/136023/1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Wed, 28 Jun 2017 01:40:06 +0000 (10:40 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Wed, 28 Jun 2017 01:40:11 +0000 (10:40 +0900)
Change-Id: I744f9112f5d93ae53c571b67bc1eedef65606ab2
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
748 files changed:
AUTHORS
Configure
Cross/Makefile-cross-SH
Cross/config.sh-arm-linux
Cross/config.sh-arm-linux-n770
INSTALL
MANIFEST
META.json
META.yml
Makefile.SH
Makefile.micro
NetWare/Makefile
NetWare/config_H.wc
Porting/Glossary
Porting/Maintainers.pl
Porting/bump-perl-version
Porting/checkAUTHORS.pl
Porting/config.sh
Porting/config_H
Porting/core-cpan-diff
Porting/corelist.pl
Porting/epigraphs.pod
Porting/perl5220delta.pod
Porting/perldelta_template.pod
Porting/pod_rules.pl
Porting/release_schedule.pod
Porting/todo.pod
README.haiku
README.macosx
README.os2
README.synology
README.vms
charclass_invlists.h
config_h.SH
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/History/Meta_1_0.pod
cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_1.pod
cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_2.pod
cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_3.pod
cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_4.pod
cpan/CPAN-Meta/lib/CPAN/Meta/Merge.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/lib/App/Cpan.pm
cpan/CPAN/lib/CPAN.pm
cpan/CPAN/lib/CPAN/Distribution.pm
cpan/CPAN/lib/CPAN/FirstTime.pm
cpan/CPAN/lib/CPAN/HTTP/Credentials.pm
cpan/CPAN/lib/CPAN/HandleConfig.pm
cpan/CPAN/lib/CPAN/Module.pm
cpan/CPAN/lib/CPAN/Plugin.pm [new file with mode: 0644]
cpan/CPAN/lib/CPAN/Plugin/Specfile.pm [new file with mode: 0644]
cpan/CPAN/lib/CPAN/Shell.pm
cpan/CPAN/scripts/cpan
cpan/CPAN/t/03pkgs.t
cpan/Devel-PPPort/PPPort_pm.PL
cpan/Devel-PPPort/parts/base/5011000
cpan/Devel-PPPort/parts/base/5021004
cpan/Devel-PPPort/parts/embed.fnc
cpan/Devel-PPPort/parts/inc/SvPV
cpan/Devel-PPPort/parts/todo/5011000
cpan/Devel-PPPort/parts/todo/5021004
cpan/Devel-PPPort/soak
cpan/Devel-PPPort/typemap
cpan/Encode/Encode.pm
cpan/Encode/Makefile.PL
cpan/Encode/encoding.pm
cpan/Encode/lib/Encode/Alias.pm
cpan/Encode/t/Aliases.t
cpan/Getopt-Long/lib/Getopt/Long.pm
cpan/Getopt-Long/t/gol-linkage.t
cpan/Locale-Codes/lib/Locale/Codes.pm
cpan/Locale-Codes/lib/Locale/Codes.pod
cpan/Locale-Codes/lib/Locale/Codes/API.pod
cpan/Locale-Codes/lib/Locale/Codes/Changes.pod
cpan/Locale-Codes/lib/Locale/Codes/Constants.pm
cpan/Locale-Codes/lib/Locale/Codes/Constants.pod
cpan/Locale-Codes/lib/Locale/Codes/Country.pm
cpan/Locale-Codes/lib/Locale/Codes/Country.pod
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.pod
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.pod
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.pod
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.pod
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.pod
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.pod
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/Country.pod
cpan/Locale-Codes/lib/Locale/Currency.pm
cpan/Locale-Codes/lib/Locale/Currency.pod
cpan/Locale-Codes/lib/Locale/Language.pm
cpan/Locale-Codes/lib/Locale/Language.pod
cpan/Locale-Codes/lib/Locale/Script.pm
cpan/Locale-Codes/lib/Locale/Script.pod
cpan/Locale-Codes/t/alias_code.t
cpan/Locale-Codes/t/alias_code_old.t
cpan/Locale-Codes/t/code2country.t
cpan/Locale-Codes/t/code2country_old.t
cpan/Locale-Codes/t/country.t
cpan/Locale-Codes/t/country_old.t
cpan/Locale-Codes/t/testfunc.pl
cpan/NEXT/t/actual.t
cpan/Test-Simple/lib/Test/Builder.pm
cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm [new file with mode: 0644]
cpan/Test-Simple/lib/Test/Builder/Module.pm
cpan/Test-Simple/lib/Test/Builder/Tester.pm
cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
cpan/Test-Simple/lib/Test/CanFork.pm [deleted file]
cpan/Test-Simple/lib/Test/CanThread.pm [deleted file]
cpan/Test-Simple/lib/Test/FAQ.pod [deleted file]
cpan/Test-Simple/lib/Test/More.pm
cpan/Test-Simple/lib/Test/More/DeepCheck.pm [deleted file]
cpan/Test-Simple/lib/Test/More/DeepCheck/Strict.pm [deleted file]
cpan/Test-Simple/lib/Test/More/DeepCheck/Tolerant.pm [deleted file]
cpan/Test-Simple/lib/Test/More/Tools.pm [deleted file]
cpan/Test-Simple/lib/Test/MostlyLike.pm [deleted file]
cpan/Test-Simple/lib/Test/Simple.pm
cpan/Test-Simple/lib/Test/Stream.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/API.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Architecture.pod [deleted file]
cpan/Test-Simple/lib/Test/Stream/ArrayBase.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/ArrayBase/Meta.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Block.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Carp.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Context.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Event.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Event/Bail.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Event/Child.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Event/Diag.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Event/Finish.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Event/Note.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Event/Ok.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Event/Plan.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Event/Subtest.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/ExitMagic.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/ExitMagic/Context.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Explanation.pod [deleted file]
cpan/Test-Simple/lib/Test/Stream/Exporter.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Exporter/Meta.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/ForceExit.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/IOSets.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Meta.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/PackageUtil.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Subtest.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Tester.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Threads.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Toolset.pm [deleted file]
cpan/Test-Simple/lib/Test/Stream/Util.pm [deleted file]
cpan/Test-Simple/lib/Test/Tester.pm
cpan/Test-Simple/lib/Test/Tester/Capture.pm
cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
cpan/Test-Simple/lib/Test/Tester/Delegate.pm
cpan/Test-Simple/lib/Test/Tutorial/WritingTests.pod [deleted file]
cpan/Test-Simple/lib/Test/Tutorial/WritingTools.pod [deleted file]
cpan/Test-Simple/lib/Test/use/ok.pm
cpan/Test-Simple/lib/ok.pm
cpan/Test-Simple/t/00test_harness_check.t [new file with mode: 0644]
cpan/Test-Simple/t/01-basic.t [new file with mode: 0644]
cpan/Test-Simple/t/478-cmp_ok_hash.t [new file with mode: 0644]
cpan/Test-Simple/t/BEGIN_require_ok.t [moved from cpan/Test-Simple/t/Legacy/BEGIN_require_ok.t with 100% similarity]
cpan/Test-Simple/t/BEGIN_use_ok.t [moved from cpan/Test-Simple/t/Legacy/BEGIN_use_ok.t with 100% similarity]
cpan/Test-Simple/t/Behavior/388-threadedsubtest.load [deleted file]
cpan/Test-Simple/t/Behavior/388-threadedsubtest.t [deleted file]
cpan/Test-Simple/t/Behavior/478-cmp_ok_hash.t [deleted file]
cpan/Test-Simple/t/Behavior/490-inherit_exporter.t [deleted file]
cpan/Test-Simple/t/Behavior/CustomOutput.t [deleted file]
cpan/Test-Simple/t/Behavior/MonkeyPatching_diag.t [deleted file]
cpan/Test-Simple/t/Behavior/MonkeyPatching_done_testing.t [deleted file]
cpan/Test-Simple/t/Behavior/MonkeyPatching_note.t [deleted file]
cpan/Test-Simple/t/Behavior/MonkeyPatching_ok.t [deleted file]
cpan/Test-Simple/t/Behavior/MonkeyPatching_plan.t [deleted file]
cpan/Test-Simple/t/Behavior/Munge.t [deleted file]
cpan/Test-Simple/t/Behavior/NotTB15.t [deleted file]
cpan/Test-Simple/t/Behavior/Tester2_subtest.t [deleted file]
cpan/Test-Simple/t/Behavior/cmp_ok_undef.t [deleted file]
cpan/Test-Simple/t/Behavior/cmp_ok_xor.t [deleted file]
cpan/Test-Simple/t/Behavior/encoding_test.t [deleted file]
cpan/Test-Simple/t/Behavior/event_clone_args.t [deleted file]
cpan/Test-Simple/t/Behavior/fork_new_end.t [deleted file]
cpan/Test-Simple/t/Behavior/skip_all_in_subtest.t [deleted file]
cpan/Test-Simple/t/Behavior/skip_all_in_subtest1.load [deleted file]
cpan/Test-Simple/t/Behavior/skip_all_in_subtest2.load [deleted file]
cpan/Test-Simple/t/Behavior/subtest_die.t [deleted file]
cpan/Test-Simple/t/Behavior/threads_with_taint_mode.t [deleted file]
cpan/Test-Simple/t/Behavior/todo.t [deleted file]
cpan/Test-Simple/t/Builder/Builder.t [moved from cpan/Test-Simple/t/Legacy/Builder/Builder.t with 100% similarity]
cpan/Test-Simple/t/Builder/carp.t [moved from cpan/Test-Simple/t/Legacy/Builder/carp.t with 65% similarity]
cpan/Test-Simple/t/Builder/create.t [moved from cpan/Test-Simple/t/Legacy/Builder/create.t with 100% similarity]
cpan/Test-Simple/t/Builder/current_test.t [moved from cpan/Test-Simple/t/Legacy/Builder/current_test.t with 100% similarity]
cpan/Test-Simple/t/Builder/current_test_without_plan.t [moved from cpan/Test-Simple/t/Legacy/Builder/current_test_without_plan.t with 100% similarity]
cpan/Test-Simple/t/Builder/details.t [moved from cpan/Test-Simple/t/Legacy/Builder/details.t with 100% similarity]
cpan/Test-Simple/t/Builder/done_testing.t [moved from cpan/Test-Simple/t/Legacy/Builder/done_testing.t with 100% similarity]
cpan/Test-Simple/t/Builder/done_testing_double.t [moved from cpan/Test-Simple/t/Legacy/Builder/done_testing_double.t with 100% similarity]
cpan/Test-Simple/t/Builder/done_testing_plan_mismatch.t [moved from cpan/Test-Simple/t/Legacy/Builder/done_testing_plan_mismatch.t with 100% similarity]
cpan/Test-Simple/t/Builder/done_testing_with_no_plan.t [moved from cpan/Test-Simple/t/Legacy/Builder/done_testing_with_no_plan.t with 100% similarity]
cpan/Test-Simple/t/Builder/done_testing_with_number.t [moved from cpan/Test-Simple/t/Legacy/Builder/done_testing_with_number.t with 100% similarity]
cpan/Test-Simple/t/Builder/done_testing_with_plan.t [moved from cpan/Test-Simple/t/Legacy/Builder/done_testing_with_plan.t with 83% similarity]
cpan/Test-Simple/t/Builder/fork_with_new_stdout.t [new file with mode: 0644]
cpan/Test-Simple/t/Builder/has_plan.t [moved from cpan/Test-Simple/t/Legacy/Builder/has_plan.t with 100% similarity]
cpan/Test-Simple/t/Builder/has_plan2.t [moved from cpan/Test-Simple/t/Legacy/Builder/has_plan2.t with 100% similarity]
cpan/Test-Simple/t/Builder/is_fh.t [moved from cpan/Test-Simple/t/Legacy/Builder/is_fh.t with 99% similarity]
cpan/Test-Simple/t/Builder/is_passing.t [moved from cpan/Test-Simple/t/Legacy/Builder/is_passing.t with 100% similarity]
cpan/Test-Simple/t/Builder/maybe_regex.t [moved from cpan/Test-Simple/t/Legacy/Builder/maybe_regex.t with 99% similarity]
cpan/Test-Simple/t/Builder/no_diag.t [moved from cpan/Test-Simple/t/Legacy/Builder/no_diag.t with 100% similarity]
cpan/Test-Simple/t/Builder/no_ending.t [moved from cpan/Test-Simple/t/Legacy/Builder/no_ending.t with 100% similarity]
cpan/Test-Simple/t/Builder/no_header.t [moved from cpan/Test-Simple/t/Legacy/Builder/no_header.t with 100% similarity]
cpan/Test-Simple/t/Builder/no_plan_at_all.t [moved from cpan/Test-Simple/t/Legacy/Builder/no_plan_at_all.t with 100% similarity]
cpan/Test-Simple/t/Builder/ok_obj.t [moved from cpan/Test-Simple/t/Legacy/Builder/ok_obj.t with 100% similarity]
cpan/Test-Simple/t/Builder/output.t [moved from cpan/Test-Simple/t/Legacy/Builder/output.t with 100% similarity]
cpan/Test-Simple/t/Builder/reset.t [moved from cpan/Test-Simple/t/Legacy/Builder/reset.t with 97% similarity]
cpan/Test-Simple/t/Builder/reset_outputs.t [moved from cpan/Test-Simple/t/Legacy/Builder/reset_outputs.t with 100% similarity]
cpan/Test-Simple/t/Builder/try.t [new file with mode: 0644]
cpan/Test-Simple/t/Legacy/Builder/fork_with_new_stdout.t [deleted file]
cpan/Test-Simple/t/Legacy/PerlIO.t [deleted file]
cpan/Test-Simple/t/Legacy/TestTester/auto.t [deleted file]
cpan/Test-Simple/t/Legacy/TestTester/check_tests.t [deleted file]
cpan/Test-Simple/t/Legacy/TestTester/is_bug.t [deleted file]
cpan/Test-Simple/t/Legacy/fork.t [deleted file]
cpan/Test-Simple/t/Legacy/fork_die.t [deleted file]
cpan/Test-Simple/t/Legacy/fork_in_subtest.t [deleted file]
cpan/Test-Simple/t/Legacy/pod.t [deleted file]
cpan/Test-Simple/t/Legacy/ribasushi_threads.t [deleted file]
cpan/Test-Simple/t/Legacy/ribasushi_threads2.t [deleted file]
cpan/Test-Simple/t/Legacy/strays.t [deleted file]
cpan/Test-Simple/t/Legacy/subtest/fork.t [deleted file]
cpan/Test-Simple/t/Legacy/test_use_ok.t [deleted file]
cpan/Test-Simple/t/Legacy/versions.t [deleted file]
cpan/Test-Simple/t/More.t [moved from cpan/Test-Simple/t/Legacy/More.t with 98% similarity]
cpan/Test-Simple/t/MyTest.pm [moved from cpan/Test-Simple/t/lib/MyTest.pm with 100% similarity]
cpan/Test-Simple/t/Simple/load.t [moved from cpan/Test-Simple/t/Legacy/Simple/load.t with 100% similarity]
cpan/Test-Simple/t/SmallTest.pm [moved from cpan/Test-Simple/t/lib/SmallTest.pm with 100% similarity]
cpan/Test-Simple/t/Test-Builder.t [deleted file]
cpan/Test-Simple/t/Test-More-DeepCheck.t [deleted file]
cpan/Test-Simple/t/Test-More.t [deleted file]
cpan/Test-Simple/t/Test-MostlyLike.t [deleted file]
cpan/Test-Simple/t/Test-Simple.t [deleted file]
cpan/Test-Simple/t/Test-Stream-API.t [deleted file]
cpan/Test-Simple/t/Test-Stream-ArrayBase-Meta.t [deleted file]
cpan/Test-Simple/t/Test-Stream-ArrayBase.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Block.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Carp.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Event-Diag.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Event-Finish.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Event-Note.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Event.t [deleted file]
cpan/Test-Simple/t/Test-Stream-ExitMagic-Context.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Exporter-Meta.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Exporter.t [deleted file]
cpan/Test-Simple/t/Test-Stream-ForceExit.t [deleted file]
cpan/Test-Simple/t/Test-Stream-IOSets.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Meta.t [deleted file]
cpan/Test-Simple/t/Test-Stream-PackageUtil.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Tester-Grab.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Tester.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Toolset.t [deleted file]
cpan/Test-Simple/t/Test-Stream-Util.t [deleted file]
cpan/Test-Simple/t/Test-Tester-Capture.t [deleted file]
cpan/Test-Simple/t/Test-Tester.t [deleted file]
cpan/Test-Simple/t/Test-use-ok.t [deleted file]
cpan/Test-Simple/t/Tester/tbt_01basic.t [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_01basic.t with 99% similarity]
cpan/Test-Simple/t/Tester/tbt_02fhrestore.t [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_02fhrestore.t with 96% similarity]
cpan/Test-Simple/t/Tester/tbt_03die.t [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_03die.t with 100% similarity]
cpan/Test-Simple/t/Tester/tbt_04line_num.t [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_04line_num.t with 100% similarity]
cpan/Test-Simple/t/Tester/tbt_05faildiag.t [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_05faildiag.t with 100% similarity]
cpan/Test-Simple/t/Tester/tbt_06errormess.t [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_06errormess.t with 99% similarity]
cpan/Test-Simple/t/Tester/tbt_07args.t [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_07args.t with 99% similarity]
cpan/Test-Simple/t/Tester/tbt_08subtest.t [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_08subtest.t with 100% similarity]
cpan/Test-Simple/t/Tester/tbt_09do.t [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_09do.t with 100% similarity]
cpan/Test-Simple/t/Tester/tbt_09do_script.pl [moved from cpan/Test-Simple/t/Legacy/Tester/tbt_09do_script.pl with 100% similarity]
cpan/Test-Simple/t/auto.t [new file with mode: 0644]
cpan/Test-Simple/t/bad_plan.t [moved from cpan/Test-Simple/t/Legacy/bad_plan.t with 100% similarity]
cpan/Test-Simple/t/bail_out.t [moved from cpan/Test-Simple/t/Legacy/bail_out.t with 100% similarity]
cpan/Test-Simple/t/buffer.t [moved from cpan/Test-Simple/t/Legacy/buffer.t with 100% similarity]
cpan/Test-Simple/t/c_flag.t [moved from cpan/Test-Simple/t/Legacy/c_flag.t with 100% similarity]
cpan/Test-Simple/t/capture.t [new file with mode: 0644]
cpan/Test-Simple/t/check_tests.t [new file with mode: 0644]
cpan/Test-Simple/t/circular_data.t [moved from cpan/Test-Simple/t/Legacy/circular_data.t with 99% similarity]
cpan/Test-Simple/t/cmp_ok.t [moved from cpan/Test-Simple/t/Legacy/cmp_ok.t with 99% similarity]
cpan/Test-Simple/t/dependents.t [moved from cpan/Test-Simple/t/Legacy/dependents.t with 100% similarity]
cpan/Test-Simple/t/depth.t [moved from cpan/Test-Simple/t/Legacy/TestTester/depth.t with 71% similarity]
cpan/Test-Simple/t/diag.t [moved from cpan/Test-Simple/t/Legacy/diag.t with 100% similarity]
cpan/Test-Simple/t/died.t [moved from cpan/Test-Simple/t/Legacy/died.t with 100% similarity]
cpan/Test-Simple/t/dont_overwrite_die_handler.t [moved from cpan/Test-Simple/t/Legacy/dont_overwrite_die_handler.t with 95% similarity]
cpan/Test-Simple/t/eq_set.t [moved from cpan/Test-Simple/t/Legacy/eq_set.t with 92% similarity]
cpan/Test-Simple/t/exit.t [moved from cpan/Test-Simple/t/Legacy/exit.t with 84% similarity]
cpan/Test-Simple/t/explain.t [moved from cpan/Test-Simple/t/Legacy/explain.t with 100% similarity]
cpan/Test-Simple/t/extra.t [moved from cpan/Test-Simple/t/Legacy/extra.t with 86% similarity]
cpan/Test-Simple/t/extra_one.t [moved from cpan/Test-Simple/t/Legacy/extra_one.t with 100% similarity]
cpan/Test-Simple/t/fail-like.t [moved from cpan/Test-Simple/t/Legacy/fail-like.t with 91% similarity]
cpan/Test-Simple/t/fail-more.t [moved from cpan/Test-Simple/t/Legacy/fail-more.t with 95% similarity]
cpan/Test-Simple/t/fail.t [moved from cpan/Test-Simple/t/Legacy/fail.t with 100% similarity]
cpan/Test-Simple/t/fail_one.t [moved from cpan/Test-Simple/t/Legacy/fail_one.t with 100% similarity]
cpan/Test-Simple/t/filehandles.t [moved from cpan/Test-Simple/t/Legacy/filehandles.t with 100% similarity]
cpan/Test-Simple/t/fork.t [new file with mode: 0644]
cpan/Test-Simple/t/harness_active.t [moved from cpan/Test-Simple/t/Legacy/harness_active.t with 98% similarity]
cpan/Test-Simple/t/import.t [moved from cpan/Test-Simple/t/Legacy/import.t with 100% similarity]
cpan/Test-Simple/t/is_deeply_dne_bug.t [moved from cpan/Test-Simple/t/Legacy/is_deeply_dne_bug.t with 100% similarity]
cpan/Test-Simple/t/is_deeply_fail.t [moved from cpan/Test-Simple/t/Legacy/is_deeply_fail.t with 99% similarity]
cpan/Test-Simple/t/is_deeply_with_threads.t [moved from cpan/Test-Simple/t/Legacy/is_deeply_with_threads.t with 73% similarity]
cpan/Test-Simple/t/lib/Test/Builder/NoOutput.pm
cpan/Test-Simple/t/missing.t [moved from cpan/Test-Simple/t/Legacy/missing.t with 100% similarity]
cpan/Test-Simple/t/new_ok.t [moved from cpan/Test-Simple/t/Legacy/new_ok.t with 81% similarity]
cpan/Test-Simple/t/no_plan.t [moved from cpan/Test-Simple/t/Legacy/no_plan.t with 100% similarity]
cpan/Test-Simple/t/no_tests.t [moved from cpan/Test-Simple/t/Legacy/no_tests.t with 100% similarity]
cpan/Test-Simple/t/note.t [moved from cpan/Test-Simple/t/Legacy/note.t with 100% similarity]
cpan/Test-Simple/t/overload.t [moved from cpan/Test-Simple/t/Legacy/overload.t with 97% similarity]
cpan/Test-Simple/t/overload_threads.t [moved from cpan/Test-Simple/t/Legacy/overload_threads.t with 100% similarity]
cpan/Test-Simple/t/plan.t [moved from cpan/Test-Simple/t/Legacy/plan.t with 58% similarity]
cpan/Test-Simple/t/plan_bad.t [moved from cpan/Test-Simple/t/Legacy/plan_bad.t with 100% similarity]
cpan/Test-Simple/t/plan_is_noplan.t [moved from cpan/Test-Simple/t/Legacy/plan_is_noplan.t with 100% similarity]
cpan/Test-Simple/t/plan_no_plan.t [moved from cpan/Test-Simple/t/Legacy/plan_no_plan.t with 84% similarity]
cpan/Test-Simple/t/plan_shouldnt_import.t [moved from cpan/Test-Simple/t/Legacy/plan_shouldnt_import.t with 100% similarity]
cpan/Test-Simple/t/plan_skip_all.t [moved from cpan/Test-Simple/t/Legacy/plan_skip_all.t with 100% similarity]
cpan/Test-Simple/t/require_ok.t [moved from cpan/Test-Simple/t/Legacy/require_ok.t with 56% similarity]
cpan/Test-Simple/t/run_test.t [moved from cpan/Test-Simple/t/Legacy/TestTester/run_test.t with 99% similarity]
cpan/Test-Simple/t/simple.t [moved from cpan/Test-Simple/t/Legacy/simple.t with 100% similarity]
cpan/Test-Simple/t/skip.t [moved from cpan/Test-Simple/t/Legacy/skip.t with 86% similarity]
cpan/Test-Simple/t/skipall.t [moved from cpan/Test-Simple/t/Legacy/skipall.t with 98% similarity]
cpan/Test-Simple/t/subtest/args.t [moved from cpan/Test-Simple/t/Legacy/subtest/args.t with 96% similarity]
cpan/Test-Simple/t/subtest/bail_out.t [moved from cpan/Test-Simple/t/Legacy/subtest/bail_out.t with 55% similarity]
cpan/Test-Simple/t/subtest/basic.t [moved from cpan/Test-Simple/t/Legacy/subtest/basic.t with 90% similarity]
cpan/Test-Simple/t/subtest/die.t [moved from cpan/Test-Simple/t/Legacy/subtest/die.t with 100% similarity]
cpan/Test-Simple/t/subtest/do.t [moved from cpan/Test-Simple/t/Legacy/subtest/do.t with 83% similarity]
cpan/Test-Simple/t/subtest/exceptions.t [moved from cpan/Test-Simple/t/Legacy/subtest/exceptions.t with 88% similarity]
cpan/Test-Simple/t/subtest/for_do_t.test [moved from cpan/Test-Simple/t/Legacy/subtest/for_do_t.test with 100% similarity]
cpan/Test-Simple/t/subtest/fork.t [new file with mode: 0644]
cpan/Test-Simple/t/subtest/implicit_done.t [moved from cpan/Test-Simple/t/Legacy/subtest/implicit_done.t with 100% similarity]
cpan/Test-Simple/t/subtest/line_numbers.t [moved from cpan/Test-Simple/t/Legacy/subtest/line_numbers.t with 90% similarity]
cpan/Test-Simple/t/subtest/plan.t [moved from cpan/Test-Simple/t/Legacy/subtest/plan.t with 100% similarity]
cpan/Test-Simple/t/subtest/predicate.t [moved from cpan/Test-Simple/t/Legacy/subtest/predicate.t with 95% similarity]
cpan/Test-Simple/t/subtest/singleton.t [moved from cpan/Test-Simple/t/Legacy/subtest/singleton.t with 100% similarity]
cpan/Test-Simple/t/subtest/threads.t [moved from cpan/Test-Simple/t/Legacy/subtest/threads.t with 52% similarity]
cpan/Test-Simple/t/subtest/todo.t [moved from cpan/Test-Simple/t/Legacy/subtest/todo.t with 87% similarity]
cpan/Test-Simple/t/subtest/wstat.t [moved from cpan/Test-Simple/t/Legacy/subtest/wstat.t with 100% similarity]
cpan/Test-Simple/t/tbm_doesnt_set_exported_to.t [moved from cpan/Test-Simple/t/Legacy/tbm_doesnt_set_exported_to.t with 88% similarity]
cpan/Test-Simple/t/thread_taint.t [moved from cpan/Test-Simple/t/Legacy/thread_taint.t with 100% similarity]
cpan/Test-Simple/t/threads.t [moved from cpan/Test-Simple/t/Legacy/threads.t with 60% similarity]
cpan/Test-Simple/t/todo.t [moved from cpan/Test-Simple/t/Legacy/todo.t with 93% similarity]
cpan/Test-Simple/t/undef.t [moved from cpan/Test-Simple/t/Legacy/undef.t with 90% similarity]
cpan/Test-Simple/t/use_ok.t [moved from cpan/Test-Simple/t/Legacy/use_ok.t with 100% similarity]
cpan/Test-Simple/t/useing.t [moved from cpan/Test-Simple/t/Legacy/useing.t with 100% similarity]
cpan/Test-Simple/t/utf8.t [moved from cpan/Test-Simple/t/Legacy/utf8.t with 98% similarity]
cpan/Test-Simple/t/versions.t [new file with mode: 0644]
cpan/Test-Simple/t/xt/dependents.t [deleted file]
cpan/Text-Balanced/lib/Text/Balanced.pm
cpan/Text-ParseWords/lib/Text/ParseWords.pm
cpan/Unicode-Collate/Collate.pm
cpan/Unicode-Collate/Collate.xs
cpan/Unicode-Collate/Collate/CJK/Big5.pm
cpan/Unicode-Collate/Collate/CJK/GB2312.pm
cpan/Unicode-Collate/Collate/CJK/JISX0208.pm
cpan/Unicode-Collate/Collate/CJK/Korean.pm
cpan/Unicode-Collate/Collate/CJK/Pinyin.pm
cpan/Unicode-Collate/Collate/CJK/Stroke.pm
cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm
cpan/Unicode-Collate/Collate/Locale.pm
cpan/Unicode-Collate/Collate/Locale/af.pl
cpan/Unicode-Collate/Collate/Locale/ar.pl
cpan/Unicode-Collate/Collate/Locale/as.pl
cpan/Unicode-Collate/Collate/Locale/az.pl
cpan/Unicode-Collate/Collate/Locale/be.pl
cpan/Unicode-Collate/Collate/Locale/bg.pl
cpan/Unicode-Collate/Collate/Locale/bn.pl
cpan/Unicode-Collate/Collate/Locale/ca.pl
cpan/Unicode-Collate/Collate/Locale/cs.pl
cpan/Unicode-Collate/Collate/Locale/cy.pl
cpan/Unicode-Collate/Collate/Locale/da.pl
cpan/Unicode-Collate/Collate/Locale/de_phone.pl
cpan/Unicode-Collate/Collate/Locale/ee.pl
cpan/Unicode-Collate/Collate/Locale/eo.pl
cpan/Unicode-Collate/Collate/Locale/es.pl
cpan/Unicode-Collate/Collate/Locale/es_trad.pl
cpan/Unicode-Collate/Collate/Locale/et.pl
cpan/Unicode-Collate/Collate/Locale/fa.pl
cpan/Unicode-Collate/Collate/Locale/fi.pl
cpan/Unicode-Collate/Collate/Locale/fi_phone.pl
cpan/Unicode-Collate/Collate/Locale/fil.pl
cpan/Unicode-Collate/Collate/Locale/fo.pl
cpan/Unicode-Collate/Collate/Locale/fr.pl
cpan/Unicode-Collate/Collate/Locale/gu.pl
cpan/Unicode-Collate/Collate/Locale/ha.pl
cpan/Unicode-Collate/Collate/Locale/haw.pl
cpan/Unicode-Collate/Collate/Locale/hi.pl
cpan/Unicode-Collate/Collate/Locale/hr.pl
cpan/Unicode-Collate/Collate/Locale/hu.pl
cpan/Unicode-Collate/Collate/Locale/hy.pl
cpan/Unicode-Collate/Collate/Locale/ig.pl
cpan/Unicode-Collate/Collate/Locale/is.pl
cpan/Unicode-Collate/Collate/Locale/ja.pl
cpan/Unicode-Collate/Collate/Locale/kk.pl
cpan/Unicode-Collate/Collate/Locale/kl.pl
cpan/Unicode-Collate/Collate/Locale/kn.pl
cpan/Unicode-Collate/Collate/Locale/ko.pl
cpan/Unicode-Collate/Collate/Locale/kok.pl
cpan/Unicode-Collate/Collate/Locale/ln.pl
cpan/Unicode-Collate/Collate/Locale/lt.pl
cpan/Unicode-Collate/Collate/Locale/lv.pl
cpan/Unicode-Collate/Collate/Locale/mk.pl
cpan/Unicode-Collate/Collate/Locale/ml.pl
cpan/Unicode-Collate/Collate/Locale/mr.pl
cpan/Unicode-Collate/Collate/Locale/mt.pl
cpan/Unicode-Collate/Collate/Locale/nb.pl
cpan/Unicode-Collate/Collate/Locale/nn.pl
cpan/Unicode-Collate/Collate/Locale/nso.pl
cpan/Unicode-Collate/Collate/Locale/om.pl
cpan/Unicode-Collate/Collate/Locale/or.pl
cpan/Unicode-Collate/Collate/Locale/pa.pl
cpan/Unicode-Collate/Collate/Locale/pl.pl
cpan/Unicode-Collate/Collate/Locale/ro.pl
cpan/Unicode-Collate/Collate/Locale/ru.pl
cpan/Unicode-Collate/Collate/Locale/sa.pl
cpan/Unicode-Collate/Collate/Locale/se.pl
cpan/Unicode-Collate/Collate/Locale/si.pl
cpan/Unicode-Collate/Collate/Locale/si_dict.pl
cpan/Unicode-Collate/Collate/Locale/sk.pl
cpan/Unicode-Collate/Collate/Locale/sl.pl
cpan/Unicode-Collate/Collate/Locale/sq.pl
cpan/Unicode-Collate/Collate/Locale/sr.pl
cpan/Unicode-Collate/Collate/Locale/sv.pl
cpan/Unicode-Collate/Collate/Locale/sv_refo.pl
cpan/Unicode-Collate/Collate/Locale/ta.pl
cpan/Unicode-Collate/Collate/Locale/te.pl
cpan/Unicode-Collate/Collate/Locale/th.pl
cpan/Unicode-Collate/Collate/Locale/tn.pl
cpan/Unicode-Collate/Collate/Locale/to.pl
cpan/Unicode-Collate/Collate/Locale/tr.pl
cpan/Unicode-Collate/Collate/Locale/uk.pl
cpan/Unicode-Collate/Collate/Locale/ur.pl
cpan/Unicode-Collate/Collate/Locale/vi.pl
cpan/Unicode-Collate/Collate/Locale/wae.pl
cpan/Unicode-Collate/Collate/Locale/wo.pl
cpan/Unicode-Collate/Collate/Locale/yo.pl
cpan/Unicode-Collate/Collate/Locale/zh.pl
cpan/Unicode-Collate/Collate/Locale/zh_big5.pl
cpan/Unicode-Collate/Collate/Locale/zh_gb.pl
cpan/Unicode-Collate/Collate/Locale/zh_pin.pl
cpan/Unicode-Collate/Collate/Locale/zh_strk.pl
cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl
cpan/Unicode-Collate/t/ident.t
cpan/Unicode-Collate/t/loc_es.t
cpan/Unicode-Collate/t/loc_estr.t
cpan/Unicode-Collate/t/loc_fr.t
cpan/Unicode-Collate/t/view.t
cpan/parent/lib/parent.pm
cpan/parent/t/parent-pmc.t
dist/Carp/lib/Carp.pm
dist/Carp/lib/Carp/Heavy.pm
dist/Carp/t/Carp.t
dist/Carp/t/arg_regexp.t
dist/Carp/t/arg_string.t
dist/Data-Dumper/Dumper.pm
dist/Data-Dumper/Dumper.xs
dist/Data-Dumper/t/dumper.t
dist/Data-Dumper/t/quotekeys.t
dist/ExtUtils-CBuilder/t/04-base.t
dist/ExtUtils-ParseXS/lib/perlxs.pod
dist/IO/t/io_utf8argv.t
dist/Module-CoreList/Changes
dist/Module-CoreList/lib/Module/CoreList.pm
dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
dist/Module-CoreList/lib/Module/CoreList/Utils.pm
dist/Module-CoreList/t/utils.t
dist/Net-Ping/t/450_service.t
dist/PathTools/Cwd.pm
dist/PathTools/Cwd.xs
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/Safe/t/safeutf8.t
dist/Storable/t/code.t
dist/Storable/t/utf8.t
dist/Term-Complete/lib/Term/Complete.pm
dist/threads/lib/threads.pm
dist/threads/t/exit.t
dist/threads/t/thread.t
dist/threads/threads.xs
doio.c
dquote_static.c
dump.c
embed.fnc
embed.h
ext/B/B.pm
ext/B/B.xs
ext/B/hints/darwin.pl
ext/B/hints/openbsd.pl
ext/B/t/b.t
ext/B/t/f_map.t
ext/B/t/optree_samples.t
ext/Devel-Peek/t/Peek.t
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_none.xs
ext/DynaLoader/dl_symbian.xs
ext/DynaLoader/dl_vms.xs
ext/DynaLoader/dl_win32.xs
ext/DynaLoader/dlutils.c
ext/Hash-Util-FieldHash/t/05_perlhook.t
ext/Hash-Util/t/Util.t
ext/POSIX/POSIX.xs
ext/POSIX/lib/POSIX.pm
ext/POSIX/t/export.t
ext/POSIX/t/posix.t
ext/POSIX/t/sigaction.t
ext/PerlIO-encoding/t/encoding.t
ext/PerlIO-encoding/t/nolooping.t
ext/PerlIO-via/hints/aix.pl
ext/Pod-Functions/Functions_pm.PL
ext/SDBM_File/dbu.c
ext/XS-APItest/APItest.pm
ext/XS-APItest/APItest.xs
ext/XS-APItest/numeric.xs
ext/XS-APItest/t/fetch_pad_names.t
ext/XS-APItest/t/grok.t
ext/XS-APItest/t/handy.t
ext/XS-APItest/t/hash.t
ext/XS-APItest/t/svpeek.t
ext/XS-APItest/t/svpv_magic.t
ext/XS-APItest/t/utf8.t
ext/re/re.pm
ext/re/t/re_funcs_u.t
ext/re/t/reflags.t
ext/re/t/regop.t
gv.c
handy.h
hints/catamount.sh
hints/dec_osf.sh
hints/hpux.sh
hints/os390.sh
hv.c
hv.h
inline.h
intrpvar.h
l1_char_class_tab.h
lib/B/Deparse.pm
lib/B/Deparse.t
lib/B/Op_private.pm
lib/Config.t
lib/DB.pm
lib/DBM_Filter/t/encode.t
lib/DBM_Filter/t/utf8.t
lib/Unicode/UCD.t
lib/dumpvar.pl
lib/feature/unicode_strings.t
lib/h2ph.t
lib/locale.pm
lib/locale.t
lib/meta_notation.pm [new file with mode: 0644]
lib/meta_notation.t [new file with mode: 0644]
lib/open.t
lib/overload.t
lib/perl5db.pl
lib/sigtrap.pm
lib/unicore/README.perl
lib/unicore/mktables
lib/utf8.pm
lib/utf8.t
locale.c
malloc.c
mg.c
mg.h
mro_core.c [moved from mro.c with 98% similarity]
numeric.c
op.c
op_reg_common.h
opcode.h
pad.c
parser.h
patchlevel.h
perl.c
perl.h
plan9/config.plan9
plan9/config_sh.sample
pod/.gitignore
pod/perl.pod
pod/perl5219delta.pod [new file with mode: 0644]
pod/perlclib.pod
pod/perldata.pod
pod/perldebguts.pod
pod/perldelta.pod
pod/perldiag.pod
pod/perlexperiment.pod
pod/perlfunc.pod
pod/perlguts.pod
pod/perlhacktips.pod
pod/perlhist.pod
pod/perllocale.pod
pod/perlpod.pod
pod/perlpodspec.pod
pod/perlpolicy.pod
pod/perlre.pod
pod/perlrebackslash.pod
pod/perlrecharclass.pod
pod/perlreref.pod
pod/perlunicode.pod
pod/perlunifaq.pod
pod/perluniintro.pod
pod/perlunitut.pod
pp.c
pp_ctl.c
pp_hot.c
pp_sys.c
proto.h
regcharclass.h
regcomp.c
regcomp.h
regcomp.sym
regen/mk_PL_charclass.pl
regen/mk_invlists.pl
regen/op_private
regen/regcharclass.pl
regen/regen_lib.pl
regexec.c
regnodes.h
sv.c
t/TEST
t/base/lex.t
t/comp/parser.t
t/comp/require.t
t/io/argv.t
t/io/crlf.t
t/io/through.t
t/io/utf8.t
t/lib/croak/op
t/lib/feature/bundle
t/lib/feature/implicit
t/lib/warnings/op
t/lib/warnings/regcomp
t/lib/warnings/regexec
t/lib/warnings/toke
t/lib/warnings/utf8
t/loc_tools.pl
t/op/attrs.t
t/op/bop.t
t/op/chars.t
t/op/chop.t
t/op/concat2.t
t/op/coreamp.t
t/op/dbm.t
t/op/dump.t
t/op/evalbytes.t
t/op/for.t
t/op/goto.t
t/op/inc.t
t/op/lc.t
t/op/lex.t
t/op/loopctl.t
t/op/lvref.t
t/op/magic.t
t/op/override.t
t/op/pack.t
t/op/print.t
t/op/quotemeta.t
t/op/smartmatch.t
t/op/split.t
t/op/sprintf.t
t/op/stash.t
t/op/taint.t
t/op/tie.t
t/op/utf8cache.t
t/op/utf8magic.t
t/op/utfhash.t
t/op/ver.t
t/op/warn.t
t/opbasic/arith.t
t/perf/taint.t [new file with mode: 0644]
t/porting/bincompat.t
t/porting/checkcfgvar.t
t/porting/customized.dat
t/porting/customized.t
t/porting/known_pod_issues.dat
t/porting/libperl.t
t/porting/manifest.t
t/porting/perlfunc.t
t/porting/readme.t
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_email.t
t/re/regex_sets.t
t/re/regexp_unicode_prop.t
t/run/switchd.t
t/test.pl
t/uni/case.pl
t/uni/chomp.t
t/uni/class.t
t/uni/fold.t
t/uni/lower.t
t/uni/method.t
t/uni/overload.t
t/uni/parser.t
t/uni/title.t
t/uni/upper.t
t/uni/write.t
toke.c
uconfig.h
universal.c
utf8.c
utfebcdic.h
util.c
utils/enc2xs.PL
vms/descrip_mms.template
win32/Makefile
win32/Makefile.ce
win32/makefile.mk
win32/pod.mak

diff --git a/AUTHORS b/AUTHORS
index 97b8558..9326d21 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -11,6 +11,9 @@
 # is strictly forbidden.  (Passive distribution with the Perl source
 # code kit is, of course, allowed.)
 #
+# This should contain the preferred addresses.  Alternate addresses are in
+# Porting/checkAUTHORS.pl.
+#
 # After editing, please run: make test_porting
 -- 
 A. C. Yardley                  <yardley@tanet.net>
@@ -330,7 +333,7 @@ David Starks-Browning               <dstarks@rc.tudelft.nl>
 David Steinbrunner             <dsteinbrunner@pobox.com>
 David Sundstrom                        <sunds@asictest.sc.ti.com>
 David M. Syzdek                        <david@syzdek.net>
-David Wheeler                  <david@wheeler.net>
+David Wheeler                  <david@justatheory.com>
 Davin Milun                    <milun@cs.Buffalo.EDU>
 Dean Roehrich                  <roehrich@cray.com>
 Dee Newcum                     <perl.org@paperlined.org>
@@ -534,6 +537,7 @@ Jared Rhine                 <jared@organic.com>
 Jari Aalto                     <jari.aalto@poboxes.com>
 Jarkko Hietaniemi              <jhi@iki.fi>
 Jasmine Ahuja                  <jasmine.ahuja11@gmail.com>
+Jasmine Ngan                   <jasmine.ngan@outlook.com>
 Jason A. Smith                 <smithj4@rpi.edu>
 Jason E. Stewart               <jason@openinformatics.com>
 Jason Hord                     <pravus@cpan.org>
index 034104f..0a405d3 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -10108,6 +10108,8 @@ case "$doublekind" in
 4) echo "You have IEEE 754 64-bit big endian doubles." >&4 ;;
 5) echo "You have IEEE 754 128-bit little endian doubles." >&4 ;;
 6) echo "You have IEEE 754 128-bit big endian doubles." >&4 ;;
+7) echo "You have IEEE 754 64-bit mixed endian doubles (32-bit LEs in BE)." >&4 ;;
+8) echo "You have IEEE 754 64-bit mixed endian doubles (32-bit BEs in LE)." >&4 ;;
 *) echo "Cannot figure out your double.  You VAX, or something?" >&4 ;;
 esac
 $rm_try
index 3260be4..01cde92 100644 (file)
@@ -345,7 +345,7 @@ h4 = regexp.h scope.h sv.h unixish.h util.h iperlsys.h thread.h
 h5 = utf8.h warnings.h
 h = $(h1) $(h2) $(h3) $(h4) $(h5)
 
-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
+c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.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
@@ -353,7 +353,7 @@ c5 = $(mallocsrc)
 
 c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c perlmain.c opmini.c
 
-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)
+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_core$(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 3f39d10..71a1638 100644 (file)
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='9'
+api_subversion='10'
 api_version='21'
-api_versionstring='5.21.9'
+api_versionstring='5.21.10'
 ar='ar'
-archlib='/usr/lib/perl5/5.21.9/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.21.9/armv4l-linux'
+archlib='/usr/lib/perl5/5.21.10/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.21.10/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.9/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.10/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'
@@ -793,7 +793,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.21.9/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.21.10/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -801,13 +801,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.9'
+installprivlib='./install_me_here/usr/lib/perl5/5.21.10'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.10/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.9'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.10'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -937,8 +937,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.21.9'
-privlibexp='/usr/lib/perl5/5.21.9'
+privlib='/usr/lib/perl5/5.21.10'
+privlibexp='/usr/lib/perl5/5.21.10'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -1003,17 +1003,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.9/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.21.10/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.21.10/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.21.9'
+sitelib='/usr/lib/perl5/site_perl/5.21.10'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.21.9'
+sitelibexp='/usr/lib/perl5/site_perl/5.21.10'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -1052,7 +1052,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='9'
+subversion='10'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1144,8 +1144,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.21.9'
-version_patchlevel_string='version 21 subversion 9'
+version='5.21.10'
+version_patchlevel_string='version 21 subversion 10'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1159,9 +1159,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=9
+PERL_SUBVERSION=10
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=9
+PERL_API_SUBVERSION=10
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
index fbcb8e0..627a326 100644 (file)
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='9'
+api_subversion='10'
 api_version='21'
-api_versionstring='5.21.9'
+api_versionstring='5.21.10'
 ar='ar'
-archlib='/usr/lib/perl5/5.21.9/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.21.9/armv4l-linux'
+archlib='/usr/lib/perl5/5.21.10/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.21.10/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.9/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.10/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.9/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.21.10/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.9'
+installprivlib='./install_me_here/usr/lib/perl5/5.21.10'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.10/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.9'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.10'
 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.9'
-privlibexp='/usr/lib/perl5/5.21.9'
+privlib='/usr/lib/perl5/5.21.10'
+privlibexp='/usr/lib/perl5/5.21.10'
 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.9/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.21.10/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.21.10/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.21.9'
+sitelib='/usr/lib/perl5/site_perl/5.21.10'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.21.9'
+sitelibexp='/usr/lib/perl5/site_perl/5.21.10'
 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='9'
+subversion='10'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1035,8 +1035,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.21.9'
-version_patchlevel_string='version 21 subversion 9'
+version='5.21.10'
+version_patchlevel_string='version 21 subversion 10'
 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=9
+PERL_SUBVERSION=10
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=9
+PERL_API_SUBVERSION=10
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/INSTALL b/INSTALL
index 09546c9..78441d8 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -89,8 +89,8 @@ potential incompatibilities introduced with this release.  A few of
 the most important issues are listed below, but you should refer
 to pod/perldelta.pod for more detailed information.
 
-B<WARNING:> This version is not binary compatible with earlier versions of Perl.
-If you have built extensions (i.e. modules that include C code)
+B<WARNING:> This version is not binary compatible with earlier versions
+of Perl.  If you have built extensions (i.e. modules that include C code)
 using an earlier version of Perl, you will need to rebuild and reinstall
 those extensions.
 
@@ -250,15 +250,15 @@ enable this, run
 
 The default is to compile without thread support.
 
-Perl used to have two different internal threads implementations.  The current
-model (available internally since 5.6, and as a user-level module since 5.8) is
-called interpreter-based implementation (ithreads), with one interpreter per
-thread, and explicit sharing of data.  The (deprecated) 5.005 version
-(5005threads) was removed for release 5.10.
+Perl used to have two different internal threads implementations.  The
+current model (available internally since 5.6, and as a user-level module
+since 5.8) is called interpreter-based implementation (ithreads), with
+one interpreter per thread, and explicit sharing of data. The (deprecated)
+5.005 version (5005threads) was removed for release 5.10.
 
 The 'threads' module is for use with the ithreads implementation.  The
-'Thread' module emulates the old 5005threads interface on top of the current
-ithreads model.
+'Thread' module emulates the old 5005threads interface on top of the
+current ithreads model.
 
 When using threads, perl uses a dynamically-sized buffer for some of
 the thread-safe library calls, such as those in the getpw*() family.
@@ -275,8 +275,8 @@ Since Perl 5.6.0, Perl has supported large files (files larger than
 support is on by default.
 
 This is both good and bad. It is good in that you can use large files,
-seek(), stat(), and -s them.  It is bad in that if you are interfacing Perl
-using some extension, the components you are connecting to must also
+seek(), stat(), and -s them.  It is bad in that if you are interfacing
+Perl using some extension, the components you are connecting to must also
 be large file aware: if Perl thinks files can be large but the other
 parts of the software puzzle do not understand the concept, bad things
 will happen.
@@ -422,9 +422,9 @@ between different runs of Perl, since Data::Dumper by default dumps
 hashes "unordered".  The use of the Data::Dumper C<Sortkeys> option is
 recommended.
 
-See L<perlrun/PERL_HASH_SEED> and L<perlrun/PERL_PERTURB_KEYS> for details on
-the environment variables, and L<perlsec/Algorithmic Complexity Attacks> for
-further security details.
+See L<perlrun/PERL_HASH_SEED> and L<perlrun/PERL_PERTURB_KEYS> for
+details on the environment variables, and L<perlsec/Algorithmic
+Complexity Attacks> for further security details.
 
 =head3 SOCKS
 
@@ -546,17 +546,18 @@ point to your new architecture-dependent library.
 
 =head3 Environment access
 
-Perl often needs to write to the program's environment, such as when C<%ENV>
-is assigned to. Many implementations of the C library function C<putenv()>
-leak memory, so where possible perl will manipulate the environment directly
-to avoid these leaks. The default is now to perform direct manipulation
-whenever perl is running as a stand alone interpreter, and to call the safe
-but potentially leaky C<putenv()> function when the perl interpreter is
-embedded in another application. You can force perl to always use C<putenv()>
-by compiling with C<-Accflags="-DPERL_USE_SAFE_PUTENV">, see section
-L</"Altering Configure variables for C compiler switches etc.">.
-You can force an embedded perl to use direct manipulation by setting
-C<PL_use_safe_putenv = 0;> after the C<perl_construct()> call.
+Perl often needs to write to the program's environment, such as when
+C<%ENV> is assigned to. Many implementations of the C library function
+C<putenv()> leak memory, so where possible perl will manipulate the
+environment directly to avoid these leaks. The default is now to perform
+direct manipulation whenever perl is running as a stand alone interpreter,
+and to call the safe but potentially leaky C<putenv()> function when the
+perl interpreter is embedded in another application. You can force perl
+to always use C<putenv()> by compiling with
+C<-Accflags="-DPERL_USE_SAFE_PUTENV">, see section L</"Altering Configure
+variables for C compiler switches etc.">.  You can force an embedded perl
+to use direct manipulation by setting C<PL_use_safe_putenv = 0;> after
+the C<perl_construct()> call.
 
 =head2 Installation Directories
 
@@ -583,7 +584,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.9.
+By default, Configure will use the following directories for 5.21.10.
 $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
@@ -600,10 +601,11 @@ variables are in the file Porting/Glossary.
     $html1direxp       (none)
     $html3direxp       (none)
 
-$prefixexp is generated from $prefix, with ~ expansion done to convert home
-directories into absolute paths. Similarly for the other variables listed. As
-file system calls do not do this, you should always reference the ...exp
-variables, to support users who build perl in their home directory.
+$prefixexp is generated from $prefix, with ~ expansion done to convert
+home directories into absolute paths. Similarly for the other variables
+listed. As file system calls do not do this, you should always reference
+the ...exp variables, to support users who build perl in their home
+directory.
 
 Actually, Configure recognizes the SVR3-style
 /usr/local/man/l_man/man1 directories, if present, and uses those
@@ -691,10 +693,10 @@ the /usr/local hierarchy.
 
 The entire installed library hierarchy is installed in locations with
 version numbers, keeping the installations of different versions distinct.
-However, later installations of Perl can still be configured to search the
-installed libraries corresponding to compatible earlier versions.
-See L<"Coexistence with earlier versions of perl 5"> below for more details
-on how Perl can be made to search older version directories.
+However, later installations of Perl can still be configured to search
+the installed libraries corresponding to compatible earlier versions.
+See L<"Coexistence with earlier versions of perl 5"> below for more
+details on how Perl can be made to search older version directories.
 
 Of course you may use these directories however you see fit.  For
 example, you may wish to use $siteprefix for site-specific files that
@@ -888,15 +890,15 @@ and these will be used as locations to search for modules by the perl
 being built. The list of perl versions found will be put in the Configure
 variable inc_version_list.
 
-To disable this use of older perl modules, even completely valid pure perl
-modules, you can specify to not include the paths found:
+To disable this use of older perl modules, even completely valid pure
+perl modules, you can specify to not include the paths found:
 
        sh Configure -Dinc_version_list=none ...
 
-If you do want to use modules from some previous perl versions, the variable
-must contain a space separated list of directories under the site_perl
-directory, and has to include architecture-dependent directories separately,
-eg.
+If you do want to use modules from some previous perl versions, the
+variable must contain a space separated list of directories under the
+site_perl directory, and has to include architecture-dependent
+directories separately, eg.
 
        sh Configure -Dinc_version_list="5.16.0/x86_64-linux 5.16.0" ...
 
@@ -985,8 +987,8 @@ much, much more slowly than a standard perl.
 =head2 DTrace support
 
 On platforms where DTrace is available, it may be enabled by
-using the -Dusedtrace option to Configure. DTrace probes are available for
-subroutine entry (sub-entry) and subroutine exit (sub-exit). Here's a
+using the -Dusedtrace option to Configure. DTrace probes are available
+for subroutine entry (sub-entry) and subroutine exit (sub-exit). Here's a
 simple D script that uses them:
 
   perl$target:::sub-entry, perl$target:::sub-return {
@@ -1081,12 +1083,12 @@ you have gdbm installed in any of (/usr/local, /opt/local, /usr/gnu,
 The version of BerkeleyDB distributed by Oracle installs in a
 version-specific directory by default, typically something like
 /usr/local/BerkeleyDB.4.7.  To have Configure find that, you need to add
--I/usr/local/BerkeleyDB.4.7/include to cc flags, as in the previous example,
-and you will also have to take extra steps to help Configure find -ldb.
-Specifically, when Configure prompts you for library directories,
-add /usr/local/BerkeleyDB.4.7/lib to the list.  Also, you will need to
-add appropriate linker flags to tell the runtime linker where to find the
-BerkeleyDB shared libraries.
+-I/usr/local/BerkeleyDB.4.7/include to cc flags, as in the previous
+example, and you will also have to take extra steps to help Configure
+find -ldb.  Specifically, when Configure prompts you for library
+directories, add /usr/local/BerkeleyDB.4.7/lib to the list.  Also, you
+will need to add appropriate linker flags to tell the runtime linker
+where to find the BerkeleyDB shared libraries.
 
 It is possible to specify this from the command line (all on one
 line):
@@ -1114,10 +1116,11 @@ system.
 
 If you are cross-compiling, or are using a compiler which has it's own
 headers and libraries in a nonstandard location, and your compiler
-understands the C<--sysroot> option, you can use the C<-Dsysroot> option to
-specify the logical root directory under which all libraries and headers
-are searched for. This patch adjusts Configure to search under $sysroot, instead of /.
-    
+understands the C<--sysroot> option, you can use the C<-Dsysroot> option
+to specify the logical root directory under which all libraries and
+headers are searched for. This patch adjusts Configure to search under
+$sysroot, instead of /.
+
 --sysroot is added to ccflags and friends so that make in
 ExtUtils::MakeMaker, and other extensions, will use it.
 
@@ -1247,10 +1250,10 @@ resources that are generously available on most platforms.
 
 =item o
 
-How best to optimize for the platform, both in terms of binary size and/or
-speed, and for Perl feature support. Because of wide variations in the
-implementation of shared libraries and of threading, for example, Configure
-often needs hints in order to be able to use these features.
+How best to optimize for the platform, both in terms of binary size
+and/or speed, and for Perl feature support. Because of wide variations in
+the implementation of shared libraries and of threading, for example,
+Configure often needs hints in order to be able to use these features.
 
 =back
 
@@ -1260,20 +1263,21 @@ will offer to use that hint file. Unless you have a very good reason
 not to, you should accept its offer.
 
 Several of the hint files contain additional important information.
-If you have any problems, it is a good idea to read the relevant hint file
-for further information.  See hints/solaris_2.sh for an extensive example.
-More information about writing good hints is in the hints/README.hints
-file, which also explains hint files known as callback-units.
+If you have any problems, it is a good idea to read the relevant hint
+file for further information.  See hints/solaris_2.sh for an extensive
+example.  More information about writing good hints is in the
+hints/README.hints file, which also explains hint files known as
+callback-units.
 
 Note that any hint file is read before any Policy file, meaning that
 Policy overrides hints -- see L</Site-wide Policy settings>.
 
 =item WHOA THERE!!!
 
-If you are re-using an old config.sh, it's possible that Configure detects
-different values from the ones specified in this file.  You will almost
-always want to keep the previous value, unless you have changed something
-on your system.
+If you are re-using an old config.sh, it's possible that Configure
+detects different values from the ones specified in this file.  You will
+almost always want to keep the previous value, unless you have changed
+something on your system.
 
 For example, suppose you have added libgdbm.a to your system
 and you decide to reconfigure perl to use GDBM_File.  When you run
@@ -1343,8 +1347,8 @@ and add a line for toke.c ahead of the catch-all *) so that it now reads:
     toke) optimize='-g' ;;
     *) ;;
 
-You should not edit the generated file cflags directly, as your changes will
-be lost the next time you run Configure, or if you edit config.sh.
+You should not edit the generated file cflags directly, as your changes
+will be lost the next time you run Configure, or if you edit config.sh.
 
 To explore various ways of changing ccflags from within a hint file,
 see the file hints/README.hints.
@@ -1391,8 +1395,8 @@ command line parameter to Configure, for example like this:
 
 or answer first 'y' to the question 'Install any extra modules?' and
 then answer "Bundle::LWP DBI" to the 'Extras?' question.
-The module or the bundle names are as for the CPAN module 'install' command.
-This will only work if those modules are to be built as dynamic
+The module or the bundle names are as for the CPAN module 'install'
+command.  This will only work if those modules are to be built as dynamic
 extensions.  If you wish to include those extra modules as static
 extensions, see L<"Extensions"> above.
 
@@ -1402,8 +1406,8 @@ or via a local copy such as a CD-ROM or a local CPAN mirror.  If you
 do not, using the extra modules option will die horribly.
 
 Also notice that you yourself are responsible for satisfying any extra
-dependencies such as external headers or libraries BEFORE trying the build.
-For example: you will need to have the Foo database specific
+dependencies such as external headers or libraries BEFORE trying the
+build.  For example: you will need to have the Foo database specific
 headers and libraries installed for the DBD::Foo module.  The Configure
 process or the Perl build process will not help you with these.
 
@@ -1467,8 +1471,9 @@ If you have any locale-related environment variables set, try unsetting
 them.  I have some reports that some versions of IRIX hang while
 running B<./miniperl configpm> with locales other than the C locale.
 See the discussion under L<"make test"> below about locales and the
-whole L<perllocale/"LOCALE PROBLEMS"> section in the file pod/perllocale.pod.
-The latter is especially useful if you see something like this
+whole L<perllocale/"LOCALE PROBLEMS"> section in the file
+pod/perllocale.pod.  The latter is especially useful if you see something
+like this
 
        perl: warning: Setting locale failed.
        perl: warning: Please check that your locale settings:
@@ -1570,21 +1575,21 @@ installed.  It installs a /usr/local/include/arpa/inet.h that refers to
 these symbols.  Versions of BIND later than 8.1 do not install inet.h
 in that location and avoid the errors.  You should probably update to a
 newer version of BIND (and remove the files the old one left behind).
-If you can't, you can either link with the updated resolver library provided
-with BIND 8.1 or rename /usr/local/bin/arpa/inet.h during the Perl build and
-test process to avoid the problem.
+If you can't, you can either link with the updated resolver library
+provided with BIND 8.1 or rename /usr/local/bin/arpa/inet.h during the
+Perl build and test process to avoid the problem.
 
 =item .*_r() prototype NOT found
 
 On a related note, if you see a bunch of complaints like the above about
-reentrant functions -- specifically networking-related ones -- being present
-but without prototypes available, check to see if BIND 8.1 (or possibly
-other BIND 8 versions) is (or has been) installed. They install
-header files such as netdb.h into places such as /usr/local/include (or into
-another directory as specified at build/install time), at least optionally.
-Remove them or put them in someplace that isn't in the C preprocessor's
-header file include search path (determined by -I options plus defaults,
-normally /usr/include).
+reentrant functions -- specifically networking-related ones -- being
+present but without prototypes available, check to see if BIND 8.1 (or
+possibly other BIND 8 versions) is (or has been) installed. They install
+header files such as netdb.h into places such as /usr/local/include (or
+into another directory as specified at build/install time), at least
+optionally.  Remove them or put them in someplace that isn't in the C
+preprocessor's header file include search path (determined by -I options
+plus defaults, normally /usr/include).
 
 =item #error "No DATAMODEL_NATIVE specified"
 
@@ -1658,8 +1663,8 @@ for likely suspects.
 Some compilers will not compile or optimize the larger files (such as
 toke.c) without some extra switches to use larger jump offsets or
 allocate larger internal tables.  You can customize the switches for
-each file in cflags.SH.  It's okay to insert rules for specific files into
-makefile since a default rule only takes effect in the absence of a
+each file in cflags.SH.  It's okay to insert rules for specific files
+into makefile since a default rule only takes effect in the absence of a
 specific rule.
 
 =item Missing dbmclose
@@ -1727,8 +1732,8 @@ bval settings.  Upgrade your DB library or OS.
 
 =item Bad arg length for semctl, is XX, should be ZZZ
 
-If you get this error message from the ext/IPC/SysV/t/sem test, your System
-V IPC may be broken.  The XX typically is 20, and that is what ZZZ
+If you get this error message from the ext/IPC/SysV/t/sem test, your
+System V IPC may be broken.  The XX typically is 20, and that is what ZZZ
 also should be.  Consider upgrading your OS, or reconfiguring your OS
 to include the System V semaphores.
 
@@ -1801,7 +1806,8 @@ January 2014, these include Android, Blackberry 10, PocketPC aka
 WinCE, ARM Linux, and Solaris.  Previous versions of
 Perl also provided support for Open Zaurus, Symbian, and
 the IBM OS/400, but it's unknown if those ports are still functional.
-These platforms are known as the B<target> platforms, while the systems where the compilation takes place are the B<host> platforms.
+These platforms are known as the B<target> platforms, while the systems
+where the compilation takes place are the B<host> platforms.
 
 What makes the situation difficult is that first of all,
 cross-compilation environments vary significantly in how they are set
@@ -1822,7 +1828,8 @@ L<README.ce or perlce|perlce>
 
 =item Android
 
-L<"Cross-compilation" in README.android or perlandroid|perlandroid/Cross-compilation>
+L<"Cross-compilation" in README.android or
+perlandroid|perlandroid/Cross-compilation>
 
 =item Blackberry
 
@@ -1830,7 +1837,8 @@ L<"Cross-compilation" in README.qnx or perlqnx|perlqnx/Cross-compilation>
 
 =item Solaris
 
-L<"CROSS-COMPILATION" in README.solaris or perlsolaris|perlsolaris/CROSS-COMPILATION>
+L<"CROSS-COMPILATION" in README.solaris or
+perlsolaris|perlsolaris/CROSS-COMPILATION>
 
 =item Linux
 
@@ -1850,16 +1858,16 @@ C<-Dinstallprefix=...> might be handy, see L<Changing the installation
 directory>.
 
 About the cross-compilation support of Configure: There's two forms.
-The more common one requires some way of transferring and running executables
-in the target system, such as an ssh connection; this is the
-C<./Configure -Dusecrosscompile -Dtargethost=...> route.  The second method
-doesn't need access to the target system, but requires you to provide 
-a config.sh, and and a canned Makefile; the rest of this section describes
-the former.
+The more common one requires some way of transferring and running
+executables in the target system, such as an ssh connection; this is the
+C<./Configure -Dusecrosscompile -Dtargethost=...> route.  The second
+method doesn't need access to the target system, but requires you to
+provide a config.sh, and and a canned Makefile; the rest of this section
+describes the former.
 
 This cross-compilation setup of Configure has successfully been used in
-a wide variety of setups, such as a 64-bit OS X host for an Android ARM target, or
-an amd64 Linux host targeting x86 Solaris, or even Windows.
+a wide variety of setups, such as a 64-bit OS X host for an Android ARM
+target, or an amd64 Linux host targeting x86 Solaris, or even Windows.
 
 To run Configure in cross-compilation mode the basic switch that
 has to be used is C<-Dusecrosscompile>:
@@ -1891,7 +1899,8 @@ You can also specify a username to use for ssh/rsh logins
     -Dtargetuser=luser
 
 but in case you don't, "root" will be used.  Similarly, you can specify
-a non-standard (i.e. not 22) port for the connection, if applicable, through
+a non-standard (i.e. not 22) port for the connection, if applicable,
+through
 
     -Dtargetport=2222
 
@@ -1902,9 +1911,10 @@ chosen to be CPU-OS-ar and so on.
 (The C<ld> requires more thought and will be chosen later by Configure
 as appropriate).  This will also aid in guessing the proper
 operating system name for the target, which has other repercussions, like
-better defaults and possibly critical fixes for the platform.  If Configure
-isn't guessing the OS name properly, you may need to either add a hint file
-redirecting Configure's guess, or modify Configure to make the correct choice.
+better defaults and possibly critical fixes for the platform.  If
+Configure isn't guessing the OS name properly, you may need to either add
+a hint file redirecting Configure's guess, or modify Configure to make
+the correct choice.
 
 If your compiler doesn't follow that convention, you will also need to
 specify which target environment to use, as well as C<ar> and friends:
@@ -1914,11 +1924,11 @@ specify which target environment to use, as well as C<ar> and friends:
     -Dar=...
 
 Additionally, a cross-compilation toolchain will usually install it's own
-logical system root somewhere -- that is, it'll create a directory somewhere
-which includes subdirectories like 'include' or 'lib'.  For example, you
-may end up with C</skiff/local/arm-linux>, where 
+logical system root somewhere -- that is, it'll create a directory
+somewhere which includes subdirectories like 'include' or 'lib'.  For
+example, you may end up with C</skiff/local/arm-linux>, where
 C</skiff/local/arm-linux/bin> holds the binaries for cross-compilation,
-C</skiff/local/arm-linux/include> has the headers, and 
+C</skiff/local/arm-linux/include> has the headers, and
 C</skiff/local/arm-linux/lib> has the library files.
 If this is the case, and you are using a compiler that understands
 C<--sysroot>, like gcc or clang, you'll want to specify the
@@ -1972,16 +1982,16 @@ during 'make test'.  For example, if the target system has a nonstandard
 
     -Dtargetenv="export TMPDIR=/other/tmp;"
 
-If you are planning on cross-compiling to several platforms, or some other
-thing that would involve running Configure several times, there are two
-options that can be used to speed things up considerably.
+If you are planning on cross-compiling to several platforms, or some
+other thing that would involve running Configure several times, there are
+two options that can be used to speed things up considerably.
 As a bit of background, when you
 call Configure with C<-Dusecrosscompile>, it begins by actually partially
 building a miniperl on the host machine, as well as the generate_uudmap
 binary, and we end up using that during the build.
-So instead of building that new perl every single time, you can build it just
-once in a separate directory, and then pass the resulting binaries to
-Configure like this:
+So instead of building that new perl every single time, you can build it
+just once in a separate directory, and then pass the resulting binaries
+to Configure like this:
 
     -Dhostperl=/path/to/second/build/dir/miniperl
     -Dhostgenerate=/path/to/second/build/dir/generate_uudmap
@@ -2150,24 +2160,24 @@ about the various security aspects of temporary files.
 =back
 
 The core distribution can now run its regression tests in parallel on
-Unix-like platforms. Instead of running C<make test>, set C<TEST_JOBS> in
-your environment to the number of tests to run in parallel, and run
+Unix-like platforms. Instead of running C<make test>, set C<TEST_JOBS>
+in your environment to the number of tests to run in parallel, and run
 C<make test_harness>. On a Bourne-like shell, this can be done as
 
     TEST_JOBS=3 make test_harness  # Run 3 tests in parallel
 
-An environment variable is used, rather than parallel make itself, because
-L<TAP::Harness> needs to be able to schedule individual non-conflicting test
-scripts itself, and there is no standard interface to C<make> utilities to
-interact with their job schedulers.
+An environment variable is used, rather than parallel make itself,
+because L<TAP::Harness> needs to be able to schedule individual
+non-conflicting test scripts itself, and there is no standard interface
+to C<make> utilities to interact with their job schedulers.
 
 =head1 make install
 
 This will put perl into the public directory you specified to
-Configure; by default this is /usr/local/bin.  It will also try
-to put the man pages in a reasonable place.  It will not nroff the man
-pages, however.  You may need to be root to run B<make install>.  If you
-are not root, you must still have permission to install into the directories
+Configure; by default this is /usr/local/bin.  It will also try to put
+the man pages in a reasonable place.  It will not nroff the man pages,
+however.  You may need to be root to run B<make install>.  If you are not
+root, you must still have permission to install into the directories
 in question and you should ignore any messages about chown not working.
 
 If "make install" just says "'install' is up to date" or something
@@ -2188,8 +2198,8 @@ You can separately change the base used for versioned names (like
 
     make install PERLNAME=perl5 PERLNAME_VERBASE=perl
 
-This can be useful if you have to install perl as "perl5" (e.g. to
-avoid conflicts with an ancient version in /usr/bin supplied by your vendor).
+This can be useful if you have to install perl as "perl5" (e.g. to avoid
+conflicts with an ancient version in /usr/bin supplied by your vendor).
 Without this the versioned binary would be called "perl55.8.8".
 
 =head2 Installing perl under a different directory
@@ -2418,13 +2428,14 @@ read your message.  Your message will get relayed to over 400
 subscribers around the world so please try to keep it brief but clear.
 
 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 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.
+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 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.
 
 If you are unsure what makes a good bug report please read "How to
 report Bugs Effectively" by Simon Tatham:
@@ -2432,13 +2443,14 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
 
 =head1 Coexistence with earlier versions of perl 5
 
-Perl 5.21.9 is not binary compatible with earlier versions of Perl.
+Perl 5.21.10 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.
-5.X.Y) to another similar minor version (e.g. 5.X.(Y+1))) without
+In general, you can usually safely upgrade from one version of Perl
+(e.g.  5.X.Y) to another similar minor version (e.g. 5.X.(Y+1))) without
 re-compiling all of your extensions.  You can also safely leave the old
-version around in case the new version causes you problems for some reason.
+version around in case the new version causes you problems for some
+reason.
 
 Usually, most extensions will probably not need to be recompiled to be
 used with a newer version of Perl.  Here is how it is supposed to work.
@@ -2506,9 +2518,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.9
+       sh Configure -Dprefix=/opt/perl5.21.10
 
-and adding /opt/perl5.21.9/bin to the shell PATH variable.  Such users
+and adding /opt/perl5.21.10/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.
 
@@ -2523,11 +2535,11 @@ yet.
 
 =head2 Upgrading from 5.21.8 or earlier
 
-B<Perl 5.21.9 may not be binary compatible with Perl 5.21.8 or
+B<Perl 5.21.10 may not be binary compatible with Perl 5.21.9 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.9.  If you find you do need to rebuild an extension with
-5.21.9, you may safely do so without disturbing the older
+used with 5.21.10.  If you find you do need to rebuild an extension with
+5.21.10, you may safely do so without disturbing the older
 installations.  (See L<"Coexistence with earlier versions of perl 5">
 above.)
 
@@ -2560,19 +2572,20 @@ Firstly, the bare minimum to run this script
      print("$f\n");
   }
 
-in Linux with perl-5.21.9 is as follows (under $Config{prefix}):
+in Linux with perl-5.21.10 is as follows (under $Config{prefix}):
 
   ./bin/perl
-  ./lib/perl5/5.21.9/strict.pm
-  ./lib/perl5/5.21.9/warnings.pm
-  ./lib/perl5/5.21.9/i686-linux/File/Glob.pm
-  ./lib/perl5/5.21.9/feature.pm
-  ./lib/perl5/5.21.9/XSLoader.pm
-  ./lib/perl5/5.21.9/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.
-Omitting the lib/unicore/* files for brevity, the remaining files are:
+  ./lib/perl5/5.21.10/strict.pm
+  ./lib/perl5/5.21.10/warnings.pm
+  ./lib/perl5/5.21.10/i686-linux/File/Glob.pm
+  ./lib/perl5/5.21.10/feature.pm
+  ./lib/perl5/5.21.10/XSLoader.pm
+  ./lib/perl5/5.21.10/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.  Omitting the lib/unicore/* files for brevity, the
+remaining files are:
 
   /usr/bin/perl
   /usr/bin/perl5.10.1
index 4295f27..9fb277b 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -232,6 +232,8 @@ cpan/CPAN/lib/CPAN/LWP/UserAgent.pm helper package for CPAN.pm
 cpan/CPAN/lib/CPAN/Mirrors.pm          helper package for CPAN.pm
 cpan/CPAN/lib/CPAN/Module.pm           helper package for CPAN.pm
 cpan/CPAN/lib/CPAN/Nox.pm                      Runs CPAN while avoiding compiled extensions
+cpan/CPAN/lib/CPAN/Plugin.pm
+cpan/CPAN/lib/CPAN/Plugin/Specfile.pm
 cpan/CPAN/lib/CPAN.pm                  Interface to Comprehensive Perl Archive Network
 cpan/CPAN/lib/CPAN/Prompt.pm
 cpan/CPAN/lib/CPAN/Queue.pm            queueing system for CPAN.pm
@@ -2311,265 +2313,163 @@ cpan/Test-Harness/t/yamlish-output.t                  Test::Harness test
 cpan/Test-Harness/t/yamlish.t                          Test::Harness test
 cpan/Test-Harness/t/yamlish-writer.t                   Test::Harness test
 cpan/Test/lib/Test.pm          A simple framework for writing test scripts
-cpan/Test-Simple/lib/ok.pm                     Test::Simple library
-cpan/Test-Simple/lib/Test/Builder/Module.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/Builder.pm                   Test::Simple module
-cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm                      Test::Simple module
-cpan/Test-Simple/lib/Test/Builder/Tester.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/CanFork.pm                   Test::Simple module
-cpan/Test-Simple/lib/Test/CanThread.pm                 Test::Simple module
-cpan/Test-Simple/lib/Test/FAQ.pod                      Test::Simple module
-cpan/Test-Simple/lib/Test/More/DeepCheck.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/More/DeepCheck/Strict.pm                     Test::Simple module
-cpan/Test-Simple/lib/Test/More/DeepCheck/Tolerant.pm                   Test::Simple module
-cpan/Test-Simple/lib/Test/More.pm                      Test::Simple module
-cpan/Test-Simple/lib/Test/More/Tools.pm                        Test::Simple module
-cpan/Test-Simple/lib/Test/MostlyLike.pm                        Test::Simple module
-cpan/Test-Simple/lib/Test/Simple.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/API.pm                        Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Architecture.pod                      Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/ArrayBase/Meta.pm                     Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/ArrayBase.pm                  Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Block.pm                      Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Carp.pm                       Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Context.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Event/Bail.pm                 Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Event/Child.pm                        Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Event/Diag.pm                 Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Event/Finish.pm                       Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Event/Note.pm                 Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Event/Ok.pm                   Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Event/Plan.pm                 Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Event.pm                      Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Event/Subtest.pm                      Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/ExitMagic/Context.pm                  Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/ExitMagic.pm                  Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Explanation.pod                       Test::Simple POD
-cpan/Test-Simple/lib/Test/Stream/Exporter/Meta.pm                      Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Exporter.pm                   Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/ForceExit.pm                  Test-Simple module
-cpan/Test-Simple/lib/Test/Stream/IOSets.pm                     Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Meta.pm                       Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/PackageUtil.pm                        Test::Simple module
-cpan/Test-Simple/lib/Test/Stream.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Subtest.pm                    Test::Simple modules
-cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm                        Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm                      Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm                        Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm                      Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm                        Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Tester.pm                     Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Threads.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Toolset.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/Stream/Util.pm                       Test::Simple module
-cpan/Test-Simple/lib/Test/Tester/Capture.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm                      Test::Simple module
-cpan/Test-Simple/lib/Test/Tester/Delegate.pm                   Test::Simple module
-cpan/Test-Simple/lib/Test/Tester.pm                    Test::Simple module
-cpan/Test-Simple/lib/Test/Tutorial.pod                 Test::Simple documentation
-cpan/Test-Simple/lib/Test/Tutorial/WritingTests.pod                    Test::Simple documentation
-cpan/Test-Simple/lib/Test/Tutorial/WritingTools.pod                    Test::Simple documentation
-cpan/Test-Simple/lib/Test/use/ok.pm                    Test::Simple library
-cpan/Test-Simple/t/Behavior/388-threadedsubtest.load                   Test::Simple Test
-cpan/Test-Simple/t/Behavior/388-threadedsubtest.t                      Test::Simple test
-cpan/Test-Simple/t/Behavior/478-cmp_ok_hash.t                  Test::Simple test
-cpan/Test-Simple/t/Behavior/490-inherit_exporter.t                     Test::Simple test
-cpan/Test-Simple/t/Behavior/cmp_ok_undef.t                     Test::Simple Test
-cpan/Test-Simple/t/Behavior/cmp_ok_xor.t                       Test::Simple Test
-cpan/Test-Simple/t/Behavior/CustomOutput.t                     Test::Simple Test
-cpan/Test-Simple/t/Behavior/encoding_test.t                    Test::Simple Test
-cpan/Test-Simple/t/Behavior/event_clone_args.t                 Test::Simple Test
-cpan/Test-Simple/t/Behavior/fork_new_end.t                     Test::Simple Test
-cpan/Test-Simple/t/Behavior/MonkeyPatching_diag.t                      Test::Simple Test
-cpan/Test-Simple/t/Behavior/MonkeyPatching_done_testing.t                      Test::Simple Test
-cpan/Test-Simple/t/Behavior/MonkeyPatching_note.t                      Test::Simple Test
-cpan/Test-Simple/t/Behavior/MonkeyPatching_ok.t                        Test::Simple Test
-cpan/Test-Simple/t/Behavior/MonkeyPatching_plan.t                      Test::Simple Test
-cpan/Test-Simple/t/Behavior/Munge.t                    Test::Simple Test
-cpan/Test-Simple/t/Behavior/NotTB15.t                  Test::Simple Test
-cpan/Test-Simple/t/Behavior/skip_all_in_subtest1.load                  Test::Simple::Test
-cpan/Test-Simple/t/Behavior/skip_all_in_subtest2.load                  Test::Simple::Test
-cpan/Test-Simple/t/Behavior/skip_all_in_subtest.t                      Test::Simple Test
-cpan/Test-Simple/t/Behavior/subtest_die.t      Test::Simple test
-cpan/Test-Simple/t/Behavior/Tester2_subtest.t                  Test::Simple Test
-cpan/Test-Simple/t/Behavior/threads_with_taint_mode.t                  Test::Simple Test
-cpan/Test-Simple/t/Behavior/todo.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/bad_plan.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/bail_out.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/BEGIN_require_ok.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/BEGIN_use_ok.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/buffer.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/Builder.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/carp.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/create.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/current_test.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/current_test_without_plan.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/details.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/done_testing_double.t                        Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/done_testing_plan_mismatch.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/done_testing.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/done_testing_with_no_plan.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/done_testing_with_number.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/done_testing_with_plan.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/fork_with_new_stdout.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/has_plan2.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/has_plan.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/is_fh.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/is_passing.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/maybe_regex.t                        Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/no_diag.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/no_ending.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/no_header.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/no_plan_at_all.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/ok_obj.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/output.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/reset_outputs.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/Builder/reset.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/c_flag.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/circular_data.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/cmp_ok.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/dependents.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/diag.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/died.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/dont_overwrite_die_handler.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/eq_set.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/exit.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/explain.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/extra_one.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/extra.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/fail-like.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/fail-more.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/fail_one.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/fail.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/filehandles.t                        Test::Simple Test
-cpan/Test-Simple/t/Legacy/fork_die.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/fork_in_subtest.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/fork.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/harness_active.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/import.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/is_deeply_dne_bug.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/is_deeply_fail.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/is_deeply_with_threads.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/missing.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/More.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/new_ok.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/no_plan.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/no_tests.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/note.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/overload.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/overload_threads.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/PerlIO.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/plan_bad.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/plan_is_noplan.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/plan_no_plan.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/plan_shouldnt_import.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/plan_skip_all.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/plan.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/pod.t                        Test::Simple Test
-cpan/Test-Simple/t/Legacy/require_ok.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/ribasushi_threads2.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/ribasushi_threads.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/Simple/load.t                        Test::Simple Test
-cpan/Test-Simple/t/Legacy/simple.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/skipall.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/skip.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/strays.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/args.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/bail_out.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/basic.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/die.t                        Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/do.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/exceptions.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/for_do_t.test                        Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/fork.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/implicit_done.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/line_numbers.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/plan.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/predicate.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/singleton.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/threads.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/todo.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/subtest/wstat.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/tbm_doesnt_set_exported_to.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_01basic.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_02fhrestore.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_03die.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_04line_num.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_05faildiag.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_06errormess.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_07args.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_08subtest.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_09do_script.pl                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/Tester/tbt_09do.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/TestTester/auto.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/TestTester/check_tests.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/TestTester/depth.t                   Test::Simple Test
-cpan/Test-Simple/t/Legacy/TestTester/is_bug.t                  Test::Simple Test
-cpan/Test-Simple/t/Legacy/TestTester/run_test.t                        Test::Simple Test
-cpan/Test-Simple/t/Legacy/test_use_ok.t                        Test::Simple Test
-cpan/Test-Simple/t/Legacy/threads.t                    Test::Simple Test
-cpan/Test-Simple/t/Legacy/thread_taint.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/todo.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/undef.t                      Test::Simple Test
-cpan/Test-Simple/t/Legacy/useing.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/use_ok.t                     Test::Simple Test
-cpan/Test-Simple/t/Legacy/utf8.t                       Test::Simple Test
-cpan/Test-Simple/t/Legacy/versions.t                   Test::Simple Test
-cpan/Test-Simple/t/lib/Dev/Null.pm                     Test::Simple Test
-cpan/Test-Simple/t/lib/Dummy.pm                        Test::Simple Test
-cpan/Test-Simple/t/lib/MyOverload.pm                   Test::Simple Test
-cpan/Test-Simple/t/lib/MyTest.pm                       Test::Simple Test
-cpan/Test-Simple/t/lib/NoExporter.pm                   Test::Simple Test
-cpan/Test-Simple/t/lib/SigDie.pm                       Test::Simple Test
-cpan/Test-Simple/t/lib/SmallTest.pm                    Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Builder/NoOutput.pm                        Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/Catch.pm                    Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death_in_eval.plx                      Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death.plx                      Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death_with_handler.plx                 Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/exit.plx                       Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/extras.plx                     Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/five_fail.plx                  Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/last_minute_death.plx                  Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/missing_done_testing.plx                       Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/one_fail.plx                   Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/one_fail_without_plan.plx                      Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/pre_plan_death.plx                     Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/require.plx                    Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/success.plx                    Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/too_few_fail.plx                       Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/too_few.plx                    Test::Simple Test
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/two_fail.plx                   Test::Simple Test
-cpan/Test-Simple/t/lib/TieOut.pm                       Test::Simple Test
-cpan/Test-Simple/t/Test-Builder.t                      Test::Simple Test
-cpan/Test-Simple/t/Test-More-DeepCheck.t                       Test::Simple Test
-cpan/Test-Simple/t/Test-More.t                 Test::Simple Test
-cpan/Test-Simple/t/Test-MostlyLike.t                   Test::Simple Test
-cpan/Test-Simple/t/Test-Simple.t                       Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-API.t                   Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-ArrayBase-Meta.t                        Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-ArrayBase.t                     Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Block.t                 Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Carp.t                  Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Event-Diag.t                    Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Event-Finish.t                  Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Event-Note.t                    Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Event.t                 Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-ExitMagic-Context.t                     Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Exporter-Meta.t                 Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Exporter.t                      Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-ForceExit.t                     Test-Simple test
-cpan/Test-Simple/t/Test-Stream-IOSets.t                        Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Meta.t                  Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-PackageUtil.t                   Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Tester-Grab.t                   Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Tester.t                        Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Toolset.t                       Test::Simple Test
-cpan/Test-Simple/t/Test-Stream-Util.t                  Test::Simple Test
-cpan/Test-Simple/t/Test-Tester-Capture.t                       Test::Simple Test
-cpan/Test-Simple/t/Test-Tester.t                       Test::Simple Test
-cpan/Test-Simple/t/Test-use-ok.t                       Test::Simple Test
-cpan/Test-Simple/t/xt/dependents.t                     Test::Simple Test
+cpan/Test-Simple/lib/ok.pm
+cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm
+cpan/Test-Simple/lib/Test/Builder/Module.pm
+cpan/Test-Simple/lib/Test/Builder.pm
+cpan/Test-Simple/lib/Test/Builder/Tester/Color.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/Tester/Capture.pm
+cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
+cpan/Test-Simple/lib/Test/Tester/Delegate.pm
+cpan/Test-Simple/lib/Test/Tester.pm
+cpan/Test-Simple/lib/Test/Tutorial.pod
+cpan/Test-Simple/lib/Test/use/ok.pm
+cpan/Test-Simple/t/00test_harness_check.t
+cpan/Test-Simple/t/01-basic.t
+cpan/Test-Simple/t/478-cmp_ok_hash.t
+cpan/Test-Simple/t/auto.t
+cpan/Test-Simple/t/bad_plan.t
+cpan/Test-Simple/t/bail_out.t
+cpan/Test-Simple/t/BEGIN_require_ok.t
+cpan/Test-Simple/t/BEGIN_use_ok.t
+cpan/Test-Simple/t/buffer.t
+cpan/Test-Simple/t/Builder/Builder.t
+cpan/Test-Simple/t/Builder/carp.t
+cpan/Test-Simple/t/Builder/create.t
+cpan/Test-Simple/t/Builder/current_test.t
+cpan/Test-Simple/t/Builder/current_test_without_plan.t
+cpan/Test-Simple/t/Builder/details.t
+cpan/Test-Simple/t/Builder/done_testing_double.t
+cpan/Test-Simple/t/Builder/done_testing_plan_mismatch.t
+cpan/Test-Simple/t/Builder/done_testing.t
+cpan/Test-Simple/t/Builder/done_testing_with_no_plan.t
+cpan/Test-Simple/t/Builder/done_testing_with_number.t
+cpan/Test-Simple/t/Builder/done_testing_with_plan.t
+cpan/Test-Simple/t/Builder/fork_with_new_stdout.t
+cpan/Test-Simple/t/Builder/has_plan2.t
+cpan/Test-Simple/t/Builder/has_plan.t
+cpan/Test-Simple/t/Builder/is_fh.t
+cpan/Test-Simple/t/Builder/is_passing.t
+cpan/Test-Simple/t/Builder/maybe_regex.t
+cpan/Test-Simple/t/Builder/no_diag.t
+cpan/Test-Simple/t/Builder/no_ending.t
+cpan/Test-Simple/t/Builder/no_header.t
+cpan/Test-Simple/t/Builder/no_plan_at_all.t
+cpan/Test-Simple/t/Builder/ok_obj.t
+cpan/Test-Simple/t/Builder/output.t
+cpan/Test-Simple/t/Builder/reset_outputs.t
+cpan/Test-Simple/t/Builder/reset.t
+cpan/Test-Simple/t/Builder/try.t
+cpan/Test-Simple/t/capture.t
+cpan/Test-Simple/t/c_flag.t
+cpan/Test-Simple/t/check_tests.t
+cpan/Test-Simple/t/circular_data.t
+cpan/Test-Simple/t/cmp_ok.t
+cpan/Test-Simple/t/dependents.t
+cpan/Test-Simple/t/depth.t
+cpan/Test-Simple/t/diag.t
+cpan/Test-Simple/t/died.t
+cpan/Test-Simple/t/dont_overwrite_die_handler.t
+cpan/Test-Simple/t/eq_set.t
+cpan/Test-Simple/t/exit.t
+cpan/Test-Simple/t/explain.t
+cpan/Test-Simple/t/extra_one.t
+cpan/Test-Simple/t/extra.t
+cpan/Test-Simple/t/fail-like.t
+cpan/Test-Simple/t/fail-more.t
+cpan/Test-Simple/t/fail_one.t
+cpan/Test-Simple/t/fail.t
+cpan/Test-Simple/t/filehandles.t
+cpan/Test-Simple/t/fork.t
+cpan/Test-Simple/t/harness_active.t
+cpan/Test-Simple/t/import.t
+cpan/Test-Simple/t/is_deeply_dne_bug.t
+cpan/Test-Simple/t/is_deeply_fail.t
+cpan/Test-Simple/t/is_deeply_with_threads.t
+cpan/Test-Simple/t/lib/Dev/Null.pm
+cpan/Test-Simple/t/lib/Dummy.pm
+cpan/Test-Simple/t/lib/MyOverload.pm
+cpan/Test-Simple/t/lib/NoExporter.pm
+cpan/Test-Simple/t/lib/SigDie.pm
+cpan/Test-Simple/t/lib/Test/Builder/NoOutput.pm
+cpan/Test-Simple/t/lib/Test/Simple/Catch.pm
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death_in_eval.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death_with_handler.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/exit.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/extras.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/five_fail.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/last_minute_death.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/missing_done_testing.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/one_fail.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/one_fail_without_plan.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/pre_plan_death.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/require.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/success.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/too_few_fail.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/too_few.plx
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/two_fail.plx
+cpan/Test-Simple/t/lib/TieOut.pm
+cpan/Test-Simple/t/missing.t
+cpan/Test-Simple/t/More.t
+cpan/Test-Simple/t/MyTest.pm
+cpan/Test-Simple/t/new_ok.t
+cpan/Test-Simple/t/no_plan.t
+cpan/Test-Simple/t/no_tests.t
+cpan/Test-Simple/t/note.t
+cpan/Test-Simple/t/overload.t
+cpan/Test-Simple/t/overload_threads.t
+cpan/Test-Simple/t/plan_bad.t
+cpan/Test-Simple/t/plan_is_noplan.t
+cpan/Test-Simple/t/plan_no_plan.t
+cpan/Test-Simple/t/plan_shouldnt_import.t
+cpan/Test-Simple/t/plan_skip_all.t
+cpan/Test-Simple/t/plan.t
+cpan/Test-Simple/t/require_ok.t
+cpan/Test-Simple/t/run_test.t
+cpan/Test-Simple/t/Simple/load.t
+cpan/Test-Simple/t/simple.t
+cpan/Test-Simple/t/skipall.t
+cpan/Test-Simple/t/skip.t
+cpan/Test-Simple/t/SmallTest.pm
+cpan/Test-Simple/t/subtest/args.t
+cpan/Test-Simple/t/subtest/bail_out.t
+cpan/Test-Simple/t/subtest/basic.t
+cpan/Test-Simple/t/subtest/die.t
+cpan/Test-Simple/t/subtest/do.t
+cpan/Test-Simple/t/subtest/exceptions.t
+cpan/Test-Simple/t/subtest/for_do_t.test
+cpan/Test-Simple/t/subtest/fork.t
+cpan/Test-Simple/t/subtest/implicit_done.t
+cpan/Test-Simple/t/subtest/line_numbers.t
+cpan/Test-Simple/t/subtest/plan.t
+cpan/Test-Simple/t/subtest/predicate.t
+cpan/Test-Simple/t/subtest/singleton.t
+cpan/Test-Simple/t/subtest/threads.t
+cpan/Test-Simple/t/subtest/todo.t
+cpan/Test-Simple/t/subtest/wstat.t
+cpan/Test-Simple/t/tbm_doesnt_set_exported_to.t
+cpan/Test-Simple/t/Tester/tbt_01basic.t
+cpan/Test-Simple/t/Tester/tbt_02fhrestore.t
+cpan/Test-Simple/t/Tester/tbt_03die.t
+cpan/Test-Simple/t/Tester/tbt_04line_num.t
+cpan/Test-Simple/t/Tester/tbt_05faildiag.t
+cpan/Test-Simple/t/Tester/tbt_06errormess.t
+cpan/Test-Simple/t/Tester/tbt_07args.t
+cpan/Test-Simple/t/Tester/tbt_08subtest.t
+cpan/Test-Simple/t/Tester/tbt_09do_script.pl
+cpan/Test-Simple/t/Tester/tbt_09do.t
+cpan/Test-Simple/t/threads.t
+cpan/Test-Simple/t/thread_taint.t
+cpan/Test-Simple/t/todo.t
+cpan/Test-Simple/t/undef.t
+cpan/Test-Simple/t/useing.t
+cpan/Test-Simple/t/use_ok.t
+cpan/Test-Simple/t/utf8.t
+cpan/Test-Simple/t/versions.t
 cpan/Test/t/05_about_verbose.t See if Test works
 cpan/Test/t/fail.t             See if Test works
 cpan/Test/t/mix.t              See if Test works
@@ -4282,6 +4182,8 @@ lib/less.pm                       For "use less"
 lib/less.t                     See if less support works
 lib/locale.pm                  For "use locale"
 lib/locale.t                   See if locale support works
+lib/meta_notation.pm           Helper for certain /lib .pm's
+lib/meta_notation.t            See if meta_notation.t works
 lib/Net/hostent.pm             By-name interface to Perl's builtin gethost*
 lib/Net/hostent.t              See if Net::hostent works
 lib/Net/netent.pm              By-name interface to Perl's builtin getnet*
@@ -4470,7 +4372,7 @@ mg_vtable.h                       Generated magic vtable data
 miniperlmain.c                 Basic perl w/o dynamic loading or extensions
 mkppport                       A script that distributes ppport.h
 mkppport.lst                   List of extensions that need a ppport.h
-mro.c                          Method Resolution Order code
+mro_core.c                             Method Resolution Order code
 myconfig.SH                    Prints summary of the current configuration
 mydtrace.h                     Support for optional DTrace probes
 NetWare/bat/Buildtype.bat      NetWare port
@@ -4669,6 +4571,7 @@ pod/perl5215delta.pod             Perl changes in version 5.21.5
 pod/perl5216delta.pod          Perl changes in version 5.21.6
 pod/perl5217delta.pod          Perl changes in version 5.21.7
 pod/perl5218delta.pod          Perl changes in version 5.21.8
+pod/perl5219delta.pod          Perl changes in version 5.21.9
 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
@@ -5448,6 +5351,7 @@ t/perf/benchmarks.t               test t/perf/benchmarks syntax
 t/perf/opcount.t               See if optimised subs have the right op counts
 t/perf/optree.t                        Test presence of some op optimisations
 t/perf/speed.t                 See if optimisations are keeping things fast
+t/perf/taint.t                 See if optimisations are keeping things fast (taint issues)
 t/perl.supp                    Perl valgrind suppressions
 t/porting/args_assert.t                Check that all PERL_ARGS_ASSERT* macros are used
 t/porting/authors.t            Check that all authors have been acknowledged
index a225afc..910d0c2 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.143240",
+   "generated_by" : "CPAN::Meta version 2.150001",
    "license" : [
       "perl_5"
    ],
          "url" : "http://perl5.git.perl.org/"
       }
    },
-   "version" : "5.021009"
+   "version" : "5.021010"
 }
index deec239..b0fa05d 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.143240, CPAN::Meta::Converter version 2.143240'
+generated_by: 'CPAN::Meta version 2.150001, CPAN::Meta::Converter version 2.150001'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -111,4 +111,4 @@ resources:
   homepage: http://www.perl.org/
   license: http://dev.perl.org/licenses/
   repository: http://perl5.git.perl.org/
-version: '5.021009'
+version: '5.021010'
index e179ddd..2889b27 100755 (executable)
@@ -473,7 +473,7 @@ h5 = utf8.h warnings.h mydtrace.h op_reg_common.h l1_char_class_tab.h
 h6 = charclass_invlists.h
 h = $(h1) $(h2) $(h3) $(h4) $(h5) $(h6)
 
-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
+c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.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
@@ -483,7 +483,7 @@ 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 = $(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_core$(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)
 
@@ -492,7 +492,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/perl5219delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl52110delta.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
 
@@ -1020,9 +1020,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/perl5219delta.pod: pod/perldelta.pod
-       $(RMS) pod/perl5219delta.pod
-       $(LNS) perldelta.pod pod/perl5219delta.pod
+pod/perl52110delta.pod: pod/perldelta.pod
+       $(RMS) pod/perl52110delta.pod
+       $(LNS) perldelta.pod pod/perl52110delta.pod
 
 extra.pods: $(MINIPERL_EXE)
        -@test ! -f extra.pods || rm -f `cat extra.pods`
@@ -1310,26 +1310,22 @@ _cleaner2:
        -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/use lib/Test/Tutorial lib/Test/Tester
-       -rmdir lib/Test/Stream/Tester/Events lib/Test/Stream/Tester/Checks
-       -rmdir lib/Test/Stream/Tester lib/Test/Stream/Exporter
-       -rmdir lib/Test/Stream/ExitMagic lib/Test/Stream/Event
-       -rmdir lib/Test/Stream/ArrayBase lib/Test/Stream
-       -rmdir lib/Test/More/DeepCheck lib/Test/More lib/Test/Builder/Tester
-       -rmdir lib/Test/Builder lib/Test lib/Term lib/TAP/Parser/YAMLish
-       -rmdir lib/TAP/Parser/SourceHandler lib/TAP/Parser/Scheduler
-       -rmdir lib/TAP/Parser/Result lib/TAP/Parser/Iterator lib/TAP/Parser
-       -rmdir lib/TAP/Harness lib/TAP/Formatter/File
-       -rmdir lib/TAP/Formatter/Console lib/TAP/Formatter lib/TAP
-       -rmdir lib/Sys/Syslog lib/Sys lib/Sub lib/Search lib/Scalar
-       -rmdir lib/Pod/Text lib/Pod/Simple lib/Pod/Perldoc lib/PerlIO/via
-       -rmdir lib/PerlIO lib/Perl lib/Parse/CPAN lib/Parse lib/Params
-       -rmdir lib/Net/FTP lib/Module/Load lib/Module/CoreList lib/Module
-       -rmdir lib/Memoize lib/Math/BigInt lib/Math/BigFloat lib/Math lib/MIME
-       -rmdir lib/Locale/Maketext lib/Locale/Codes lib/Locale lib/List/Util
-       -rmdir lib/List lib/JSON/PP lib/JSON lib/IPC lib/IO/Uncompress/Adapter
-       -rmdir lib/IO/Uncompress lib/IO/Socket lib/IO/Compress/Zlib
-       -rmdir lib/IO/Compress/Zip lib/IO/Compress/Gzip lib/IO/Compress/Base
+       -rmdir lib/Test/use lib/Test/Tester lib/Test/Builder/Tester
+       -rmdir lib/Test/Builder/IO lib/Test/Builder lib/Test lib/Term
+       -rmdir lib/TAP/Parser/YAMLish lib/TAP/Parser/SourceHandler
+       -rmdir lib/TAP/Parser/Scheduler lib/TAP/Parser/Result
+       -rmdir lib/TAP/Parser/Iterator lib/TAP/Parser lib/TAP/Harness
+       -rmdir lib/TAP/Formatter/File lib/TAP/Formatter/Console
+       -rmdir lib/TAP/Formatter lib/TAP lib/Sys/Syslog lib/Sys lib/Sub
+       -rmdir lib/Search lib/Scalar lib/Pod/Text lib/Pod/Simple
+       -rmdir lib/Pod/Perldoc lib/PerlIO/via lib/PerlIO lib/Perl
+       -rmdir lib/Parse/CPAN lib/Parse lib/Params lib/Net/FTP lib/Module/Load
+       -rmdir lib/Module/CoreList lib/Module lib/Memoize lib/Math/BigInt
+       -rmdir lib/Math/BigFloat lib/Math lib/MIME lib/Locale/Maketext
+       -rmdir lib/Locale/Codes lib/Locale lib/List/Util lib/List lib/JSON/PP
+       -rmdir lib/JSON lib/IPC lib/IO/Uncompress/Adapter lib/IO/Uncompress
+       -rmdir lib/IO/Socket lib/IO/Compress/Zlib lib/IO/Compress/Zip
+       -rmdir lib/IO/Compress/Gzip lib/IO/Compress/Base
        -rmdir lib/IO/Compress/Adapter lib/IO/Compress lib/IO
        -rmdir lib/I18N/LangTags lib/I18N lib/Hash/Util lib/Hash lib/HTTP
        -rmdir lib/Filter/Util lib/Filter lib/File/Spec lib/ExtUtils/Typemaps
@@ -1341,10 +1337,10 @@ _cleaner2:
        -rmdir lib/Exporter lib/Encode/Unicode lib/Encode/MIME/Header
        -rmdir lib/Encode/MIME lib/Encode/KR lib/Encode/JP lib/Encode/CN
        -rmdir lib/Encode lib/Digest lib/Devel lib/Data lib/Config/Perl
-       -rmdir lib/Compress/Raw lib/Compress lib/Carp lib/CPAN/Meta/History
-       -rmdir lib/CPAN/Meta lib/CPAN/LWP lib/CPAN/Kwalify lib/CPAN/HTTP
-       -rmdir lib/CPAN/FTP lib/CPAN/Exception lib/CPAN/API lib/CPAN
-       -rmdir lib/Attribute lib/Archive/Tar lib/Archive
+       -rmdir lib/Compress/Raw lib/Compress lib/Carp lib/CPAN/Plugin
+       -rmdir lib/CPAN/Meta/History lib/CPAN/Meta lib/CPAN/LWP
+       -rmdir lib/CPAN/Kwalify lib/CPAN/HTTP lib/CPAN/FTP lib/CPAN/Exception
+       -rmdir lib/CPAN/API lib/CPAN lib/Attribute lib/Archive/Tar lib/Archive
        -rmdir lib/App/Prove/State/Result lib/App/Prove/State lib/App/Prove
        -rmdir lib/App
 
index cd9a9c5..dedf183 100644 (file)
@@ -85,8 +85,8 @@ uglobals$(_O):        $(H) globals.c INTERN.h perlapi.h $(generated_headers)
 ugv$(_O):      $(HE) gv.c
        $(CC) $(CCFLAGS) -o $@ $(CFLAGS) gv.c
 
-umro$(_O):     $(HE) mro.c
-       $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mro.c
+umro$(_O):     $(HE) mro_core.c
+       $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mro_core.c
 
 uhv$(_O):      $(HE) hv.c
        $(CC) $(CCFLAGS) -o $@ $(CFLAGS) hv.c
index 04ad692..de3fb9e 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.9 for NetWare"
+MODULE_DESC     = "Perl 5.21.10 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.9
+INST_VER       = \5.21.10
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -692,7 +692,7 @@ MICROCORE_SRC       =               \
                ..\dump.c       \
                ..\globals.c    \
                ..\gv.c         \
-               ..\mro.c        \
+               ..\mro_core.c   \
                ..\hv.c         \
                ..\keywords.c   \
                ..\locale.c     \
index 5fe0168..9f6885d 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.9\\lib\\NetWare-x86-multi-thread"              /**/
+#define ARCHLIB "c:\\perl\\5.21.10\\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.9\\bin\\NetWare-x86-multi-thread"  /**/
-#define BIN_EXP "c:\\perl\\5.21.9\\bin\\NetWare-x86-multi-thread"      /**/
+#define BIN "c:\\perl\\5.21.10\\bin\\NetWare-x86-multi-thread" /**/
+#define BIN_EXP "c:\\perl\\5.21.10\\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.9\\lib\\NetWare-x86-multi-thread"               /**/
+#define SITEARCH "c:\\perl\\site\\5.21.10\\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.9\\lib"          /**/
+#define SITELIB "c:\\perl\\site\\5.21.10\\lib"         /**/
 /*#define SITELIB_EXP ""       /**/
 #define SITELIB_STEM ""                /**/
 
index 75f67e3..3f9057e 100644 (file)
@@ -4086,7 +4086,8 @@ longdblkind (d_longdbl.U):
 longdblsize (d_longdbl.U):
        This variable contains the value of the LONG_DOUBLESIZE symbol, which
        indicates to the C program how many bytes there are in a long double,
-       if this system supports long doubles.
+       if this system supports long doubles.  Note that this is
+       sizeof(long double), which may include unused bytes.
 
 longlongsize (d_longlong.U):
        This variable contains the value of the LONGLONGSIZE symbol, which
@@ -4351,7 +4352,8 @@ nvGUformat (perlxvf.U):
        a Perl NV using %G-ish floating point format.
 
 nvsize (perlxv.U):
-       This variable is the size of an NV in bytes.
+       This variable is the size of a Perl NV in bytes.
+       Note that some floating point formats have unused bytes.
 
 nvtype (perlxv.U):
        This variable contains the C type used for Perl's NV.
index 078a4d3..eb4757e 100755 (executable)
@@ -193,7 +193,7 @@ use File::Glob qw(:case);
     },
 
     'Carp' => {
-        'DISTRIBUTION' => 'ZEFRAM/Carp-1.3301.tar.gz',
+        'DISTRIBUTION' => 'RJBS/Carp-1.36.tar.gz',
         'FILES'        => q[dist/Carp],
     },
 
@@ -243,13 +243,14 @@ use File::Glob qw(:case);
     },
 
     'CPAN' => {
-        'DISTRIBUTION' => 'ANDK/CPAN-2.05.tar.gz',
+        'DISTRIBUTION' => 'ANDK/CPAN-2.10.tar.gz',
         'FILES'        => q[cpan/CPAN],
         'EXCLUDED'     => [
             qr{^distroprefs/},
             qr{^inc/Test/},
             qr{^t/CPAN/},
             qr{^t/data/},
+            qr{^t/97-},
             qw( lib/CPAN/Admin.pm
                 scripts/cpan-mirrors
                 PAUSE2015.pub
@@ -277,24 +278,12 @@ use File::Glob qw(:case);
                 t/yaml_code.yml
                 ),
         ],
-        # Waiting to be merged upstream: see pull request #83
-        'CUSTOMIZED'   => [
-            qw( lib/CPAN/Author.pm
-                lib/CPAN/CacheMgr.pm
-                lib/CPAN/FTP.pm
-                lib/CPAN/HTTP/Client.pm
-                lib/CPAN/HandleConfig.pm
-                lib/CPAN/Index.pm
-                lib/CPAN/LWP/UserAgent.pm
-                lib/CPAN/Mirrors.pm
-                ),
-        ],
     },
 
     # 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.143240.tar.gz',
+        'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150001.tar.gz',
         'FILES'        => q[cpan/CPAN-Meta],
         'EXCLUDED'     => [
             qw[t/00-report-prereqs.t],
@@ -346,7 +335,7 @@ use File::Glob qw(:case);
     },
 
     'Devel::PPPort' => {
-        'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.28.tar.gz',
+        'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.31.tar.gz',
         # RJBS has asked MHX to have UPSTREAM be 'blead'
         # (i.e. move this from cpan/ to dist/)
         'FILES'        => q[cpan/Devel-PPPort],
@@ -392,13 +381,8 @@ use File::Glob qw(:case);
     },
 
     'Encode' => {
-        'DISTRIBUTION' => 'DANKOGAI/Encode-2.70.tar.gz',
+        'DISTRIBUTION' => 'DANKOGAI/Encode-2.72.tar.gz',
         'FILES'        => q[cpan/Encode],
-        'CUSTOMIZED'   => [
-            # Waiting to be merged upstream if it smokes ok: see CPAN RT#100347,
-            # in particular see khw's comments on that ticket on 21 Nov 2014.
-            qw( encoding.pm ),
-        ],
     },
 
     'encoding::warnings' => {
@@ -585,7 +569,7 @@ use File::Glob qw(:case);
     },
 
     'Getopt::Long' => {
-        'DISTRIBUTION' => 'JV/Getopt-Long-2.43.tar.gz',
+        'DISTRIBUTION' => 'JV/Getopt-Long-2.45.tar.gz',
         'FILES'        => q[cpan/Getopt-Long],
         'EXCLUDED'     => [
             qr{^examples/},
@@ -702,7 +686,7 @@ use File::Glob qw(:case);
     },
 
     'Locale-Codes' => {
-        'DISTRIBUTION' => 'SBECK/Locale-Codes-3.33.tar.gz',
+        'DISTRIBUTION' => 'SBECK/Locale-Codes-3.34.tar.gz',
         'FILES'        => q[cpan/Locale-Codes],
         'EXCLUDED'     => [
             qw( README.first
@@ -806,7 +790,7 @@ use File::Glob qw(:case);
     },
 
     'Module::CoreList' => {
-        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20150214.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20150220.tar.gz',
         'FILES'        => q[dist/Module-CoreList],
     },
 
@@ -856,7 +840,7 @@ use File::Glob qw(:case);
     },
 
     'parent' => {
-        'DISTRIBUTION' => 'CORION/parent-0.228.tar.gz',
+        'DISTRIBUTION' => 'CORION/parent-0.232.tar.gz',
         'FILES'        => q[cpan/parent],
     },
 
@@ -886,6 +870,7 @@ use File::Glob qw(:case);
         'FILES'        => q[cpan/perlfaq],
         'EXCLUDED'     => [
             qw( inc/CreateQuestionList.pm
+                inc/perlfaq.tt
                 t/00-compile.t),
             qr{^xt/},
         ],
@@ -1067,27 +1052,20 @@ use File::Glob qw(:case);
     },
 
     'Test::Simple' => {
-        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.301001_098.tar.gz',
+        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.001014.tar.gz',
         'FILES'        => q[cpan/Test-Simple],
         'EXCLUDED'     => [
             qr{^t/xt},
             qr{^xt},
-            qr{^profiling},
             qw( .perlcriticrc
                 .perltidyrc
                 examples/indent.pl
                 examples/subtest.t
-                t/Legacy/00compile.t
-                t/Legacy/pod.t
+                t/00compile.t
                 t/xxx-changes_updated.t
-                t/zzz-check-breaks.t
-                t/Legacy/ribasushi_diag.t
                 ),
         ],
-       'CUSTOMIZED'   => [
-            # Waiting to be merged upstream: see pull request #494
-            qw( t/Legacy/exit.t ),
-        ],    },
+    },
 
     'Text::Abbrev' => {
         'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz',
@@ -1096,7 +1074,7 @@ use File::Glob qw(:case);
     },
 
     'Text::Balanced' => {
-        'DISTRIBUTION' => 'ADAMK/Text-Balanced-2.02.tar.gz',
+        'DISTRIBUTION' => 'SHAY/Text-Balanced-2.03.tar.gz',
         'FILES'        => q[cpan/Text-Balanced],
         'EXCLUDED'     => [
             qw( t/97_meta.t
@@ -1104,39 +1082,18 @@ use File::Glob qw(:case);
                 t/99_pmv.t
                 ),
         ],
-
-        # Waiting to be merged upstream: see CPAN RT#87788
-        'CUSTOMIZED'   => [
-            qw( t/01_compile.t
-                t/02_extbrk.t
-                t/03_extcbk.t
-                t/04_extdel.t
-                t/05_extmul.t
-                t/06_extqlk.t
-                t/07_exttag.t
-                t/08_extvar.t
-                t/09_gentag.t
-                ),
-        ],
-
     },
 
     'Text::ParseWords' => {
-        'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.29.tar.gz',
+        'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.30.tar.gz',
         'FILES'        => q[cpan/Text-ParseWords],
 
-        # Waiting to be merged upstream: see CPAN RT#50929
+        # Waiting to be merged upstream:
+        # see https://github.com/chorny/Text-ParseWords/pull/6
         'CUSTOMIZED'   => [
             qw( t/ParseWords.t
-                t/taint.t
                 ),
         ],
-
-        # For the benefit of make_ext.pl, we have to have this accessible:
-        'MAP' => {
-            'ParseWords.pm' => 'cpan/Text-ParseWords/lib/Text/ParseWords.pm',
-            ''              => 'cpan/Text-ParseWords/',
-        },
     },
 
     'Text-Tabs+Wrap' => {
@@ -1182,13 +1139,8 @@ use File::Glob qw(:case);
     },
 
     'threads' => {
-        'DISTRIBUTION' => 'JDHEDDEN/threads-1.96.tar.gz',
+        'DISTRIBUTION' => 'JDHEDDEN/threads-2.01.tar.gz',
         'FILES'        => q[dist/threads],
-        'CUSTOMIZED'   => [
-            # Waiting to be merged upstream: see CPAN RT#100755
-            qw( threads.xs
-                lib/threads.pm),
-        ],
         'EXCLUDED'     => [
             qr{^examples/},
             qw( t/pod.t
@@ -1239,7 +1191,7 @@ use File::Glob qw(:case);
     },
 
     'Unicode::Collate' => {
-        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.11.tar.gz',
+        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.12.tar.gz',
         'FILES'        => q[cpan/Unicode-Collate],
         'EXCLUDED'     => [
             qr{N$},
@@ -1307,6 +1259,21 @@ use File::Glob qw(:case);
         'EXCLUDED'     => [
             qr{^ex/},
         ],
+
+        # Currently all EOL differences. Waiting for a new upstream release:
+        # All the files in the GitHub repo have UNIX EOLs already.
+        'CUSTOMIZED'   => [
+            qw( ExtUtils/Myconst2perl.pm
+                Makefile.PL
+                buffers.h
+                cFile.h
+                cFile.pc
+                const2perl.h
+                t/file.t
+                t/tie.t
+                typemap
+                ),
+        ],
     },
 
     'XSLoader' => {
@@ -1399,6 +1366,7 @@ use File::Glob qw(:case);
                 lib/FindBin.{pm,t}
                 lib/Getopt/Std.{pm,t}
                 lib/Internals.t
+                lib/meta_notation.{pm,t}
                 lib/Net/hostent.{pm,t}
                 lib/Net/netent.{pm,t}
                 lib/Net/protoent.{pm,t}
index 5654a57..b60e8e3 100644 (file)
@@ -265,6 +265,7 @@ sub do_scan {
 
        while (my $line = <$fh>) {
            my $oldline = $line;
+           my $line_changed = 0;
            for my $map (@maps) {
                my ($pat, $sub, $expected, $file_pat) = @$map;
 
@@ -278,9 +279,13 @@ sub do_scan {
                }
                $line =~ s/$pat/$replacement/
                    or die "Internal error: substitution failed: [$pat]\n";
+               if ($line ne $oldline) {
+                   $line_changed = 1;
+                   last;
+               }
            }
            $new_contents .= $line if $opts{i};
-           if ($line ne $oldline) {
+           if ($line_changed) {
                $file_changed = 1;
                if ($opts{s}) {
                    print "\n$file\n" unless $header;
index 8e6a726..fc76d97 100755 (executable)
@@ -591,7 +591,9 @@ dan\100sidhe.org                        sugalsd\100lbcc.cc.or.us
 +                                       sugalskd\100osshe.edu
 daniel\100bitpusher.com                 daniel\100biz.bitpusher.com
 david.dyck\100fluke.com                 dcd\100tc.fluke.com
-david\100kineticode.com                 david\100wheeler.com
+david\100justatheory.com                david\100wheeler.net
++                                       david\100kineticode.com
++                                       david\100wheeler.com
 +                                       david\100wheeler.net
 dennis\100booking.com                   dennis\100camel.ams6.corp.booking.com
 +                                      dennis.kaarsemaker\100booking.com
index 3b8b2b2..33e05ca 100644 (file)
@@ -39,12 +39,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='9'
+api_subversion='10'
 api_version='21'
-api_versionstring='5.21.9'
+api_versionstring='5.21.10'
 ar='ar'
-archlib='/pro/lib/perl5/5.21.9/i686-linux-64int'
-archlibexp='/pro/lib/perl5/5.21.9/i686-linux-64int'
+archlib='/pro/lib/perl5/5.21.10/i686-linux-64int'
+archlibexp='/pro/lib/perl5/5.21.10/i686-linux-64int'
 archname64='64int'
 archname='i686-linux-64int'
 archobjs=''
@@ -810,7 +810,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.9/i686-linux-64int'
+installarchlib='/pro/lib/perl5/5.21.10/i686-linux-64int'
 installbin='/pro/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -818,13 +818,13 @@ installman1dir='/pro/local/man/man1'
 installman3dir='/pro/local/man/man3'
 installprefix='/pro'
 installprefixexp='/pro'
-installprivlib='/pro/lib/perl5/5.21.9'
+installprivlib='/pro/lib/perl5/5.21.10'
 installscript='/pro/bin'
-installsitearch='/pro/lib/perl5/site_perl/5.21.9/i686-linux-64int'
+installsitearch='/pro/lib/perl5/site_perl/5.21.10/i686-linux-64int'
 installsitebin='/pro/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='/pro/lib/perl5/site_perl/5.21.9'
+installsitelib='/pro/lib/perl5/site_perl/5.21.10'
 installsiteman1dir='/pro/local/man/man1'
 installsiteman3dir='/pro/local/man/man3'
 installsitescript='/pro/bin'
@@ -946,7 +946,7 @@ perl_patchlevel=''
 perl_static_inline='static __inline__'
 perladmin='hmbrand@cpan.org'
 perllibs='-lnsl -ldl -lm -lcrypt -lutil -lc'
-perlpath='/pro/bin/perl5.21.9'
+perlpath='/pro/bin/perl5.21.10'
 pg='pg'
 phostname='hostname'
 pidtype='pid_t'
@@ -955,8 +955,8 @@ pmake=''
 pr=''
 prefix='/pro'
 prefixexp='/pro'
-privlib='/pro/lib/perl5/5.21.9'
-privlibexp='/pro/lib/perl5/5.21.9'
+privlib='/pro/lib/perl5/5.21.10'
+privlibexp='/pro/lib/perl5/5.21.10'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -1022,17 +1022,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.9/i686-linux-64int'
-sitearchexp='/pro/lib/perl5/site_perl/5.21.9/i686-linux-64int'
+sitearch='/pro/lib/perl5/site_perl/5.21.10/i686-linux-64int'
+sitearchexp='/pro/lib/perl5/site_perl/5.21.10/i686-linux-64int'
 sitebin='/pro/bin'
 sitebinexp='/pro/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/pro/lib/perl5/site_perl/5.21.9'
+sitelib='/pro/lib/perl5/site_perl/5.21.10'
 sitelib_stem='/pro/lib/perl5/site_perl'
-sitelibexp='/pro/lib/perl5/site_perl/5.21.9'
+sitelibexp='/pro/lib/perl5/site_perl/5.21.10'
 siteman1dir='/pro/local/man/man1'
 siteman1direxp='/pro/local/man/man1'
 siteman3dir='/pro/local/man/man3'
@@ -1058,7 +1058,7 @@ src='.'
 ssizetype='ssize_t'
 st_ino_sign='1'
 st_ino_size='8'
-startperl='#!/pro/bin/perl5.21.9'
+startperl='#!/pro/bin/perl5.21.10'
 startsh='#!/bin/sh'
 static_ext=' '
 stdchar='char'
@@ -1071,7 +1071,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='9'
+subversion='10'
 sysman='/usr/share/man/man1'
 sysroot=''
 tail=''
@@ -1170,8 +1170,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.21.9'
-version_patchlevel_string='version 21 subversion 9'
+version='5.21.10'
+version_patchlevel_string='version 21 subversion 10'
 versiononly='define'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1181,10 +1181,10 @@ zcat=''
 zip='zip'
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=9
+PERL_SUBVERSION=10
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=9
+PERL_API_SUBVERSION=10
 PERL_PATCHLEVEL=''
 PERL_CONFIG_SH=true
 : Variables propagated from previous config.sh file.
index 1fc8f49..fe86ffd 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.9/i686-linux-64int-ld"            /**/
-#define ARCHLIB_EXP "/pro/lib/perl5/5.21.9/i686-linux-64int-ld"                /**/
+#define ARCHLIB "/pro/lib/perl5/5.21.10/i686-linux-64int-ld"           /**/
+#define ARCHLIB_EXP "/pro/lib/perl5/5.21.10/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.9"                /**/
-#define PRIVLIB_EXP "/pro/lib/perl5/5.21.9"            /**/
+#define PRIVLIB "/pro/lib/perl5/5.21.10"               /**/
+#define PRIVLIB_EXP "/pro/lib/perl5/5.21.10"           /**/
 
 /* 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.9/i686-linux-64int-ld"         /**/
-#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.21.9/i686-linux-64int-ld"             /**/
+#define SITEARCH "/pro/lib/perl5/site_perl/5.21.10/i686-linux-64int-ld"                /**/
+#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.21.10/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.9"              /**/
-#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.21.9"          /**/
+#define SITELIB "/pro/lib/perl5/site_perl/5.21.10"             /**/
+#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.21.10"         /**/
 #define SITELIB_STEM "/pro/lib/perl5/site_perl"                /**/
 
 /* SSize_t:
  *     script to make sure (one hopes) that it runs with perl and not
  *     some shell.
  */
-#define STARTPERL "#!/pro/bin/perl5.21.9"              /**/
+#define STARTPERL "#!/pro/bin/perl5.21.10"             /**/
 
 /* HAS_STDIO_STREAM_ARRAY:
  *     This symbol, if defined, tells that there is an array
index d538c7e..23ae99f 100644 (file)
@@ -53,7 +53,7 @@ Usage: $0 [opts] [ -d | -v | -x ] [ -a | module ... ]
 -d/--diff     Display file differences using diff(1), rather than just
               listing which files have changed.
 
---diffopts    Options to pass to the diff command. Defaults to '-u'.
+--diffopts    Options to pass to the diff command. Defaults to '-u --binary'.
 
 -f|force      Force download from CPAN of new 02packages.details.txt file
               (with --crosscheck only).
@@ -125,7 +125,7 @@ sub run {
           if ( $reverse || $use_diff || $diff_opts );
     }
     else {
-        $diff_opts = '-u -b' unless defined $diff_opts;
+        $diff_opts = '-u --binary' unless defined $diff_opts;
         usage("can't use -f without --crosscheck") if $force;
     }
 
index fcca6d4..ce4ff2b 100755 (executable)
@@ -366,10 +366,9 @@ sub make_corelist_delta {
   my %deltas;
   # Search for the release with the least amount of changes (this avoids having
   # to ask for where this perl was branched from).
-  for my $previous (reverse sort keys %$existing) {
+  for my $previous (reverse sort { $a <=> $b } keys %$existing) {
     # Shouldn't happen, but ensure we don't load weird data...
-    next if $previous > $version || $previous == $version && $previous eq $version;
-
+    next if $previous > $version || $previous == $version;
     my $delta = $deltas{$previous} = {};
     ($delta->{changed}, $delta->{removed}) = calculate_delta(
       $existing->{$previous}, \%versions);
@@ -400,9 +399,9 @@ sub make_coreutils_delta {
   my %deltas;
   # Search for the release with the least amount of changes (this avoids having
   # to ask for where this perl was branched from).
-  for my $previous (reverse sort keys %Module::CoreList::Utils::utilities) {
+  for my $previous (reverse sort { $a <=> $b } keys %Module::CoreList::Utils::utilities) {
     # Shouldn't happen, but ensure we don't load weird data...
-    next if $previous > $version || $previous == $version && $previous eq $version;
+    next if $previous > $version || $previous == $version;
 
     my $delta = $deltas{$previous} = {};
     ($delta->{changed}, $delta->{removed}) = calculate_delta(
index 270b594..a897947 100644 (file)
@@ -17,6 +17,25 @@ Consult your favorite dictionary for details.
 
 =head1 EPIGRAPHS
 
+=head2 v5.21.9 - Emily Dickinson, "There is Another Sky"
+
+L<Announced on 2015-02-20 by Sawyer X|http://nntp.perl.org/group/perl.perl5.porters/226002>
+
+There is another sky,
+Ever serene and fair,
+And there is another sunshine,
+Though it be darkness there;
+Never mind faded forests, Austin,
+Never mind silent fields -
+Here is a little forest,
+Whose leaf is ever green;
+Here is a brighter garden,
+Where not a frost has been;
+In its unfading flowers
+I hear the bright bee hum:
+Prithee, my brother,
+Into my garden come!
+
 =head2 v5.21.8 - Bill Watterson, "Scientific Progress Goes 'Boink': A Calvin and Hobbes Collection"
 
 L<Announced on 2015-01-20 by Matthew Horsfall|http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg224869.html>
index e5ceff5..b21c30c 100644 (file)
@@ -419,7 +419,7 @@ here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.21.9..HEAD
+  perl Porting/acknowledgements.pl v5.21.10..HEAD
 
 =head1 Reporting Bugs
 
index 75b53f3..3cd6110 100644 (file)
@@ -378,7 +378,7 @@ here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.21.9..HEAD
+  perl Porting/acknowledgements.pl v5.21.10..HEAD
 
 =head1 Reporting Bugs
 
index 18abe87..1de43a9 100644 (file)
@@ -6,6 +6,11 @@ use Text::Tabs;
 use Text::Wrap;
 use Getopt::Long;
 
+if (ord("A") == 193) {
+    print "1..0 # EBCDIC sort order is different\n";
+    exit;
+}
+
 # Generate the sections of files listed in %Targets from pod/perl.pod
 # Mostly these are rules in Makefiles
 #
index 2ee3a77..ded7288 100644 (file)
@@ -61,7 +61,7 @@ you should reset the version numbers to the next blead series.
   2014-11-20  5.21.6 ✓        Chris "BinGOs" Williams
   2014-12-20  5.21.7 ✓        Max Maischein
   2015-01-20  5.21.8 ✓        Matthew Horsfall
-  2015-02-20  5.21.9          Sawyer X
+  2015-02-20  5.21.9         Sawyer X
   2015-03-20  5.21.10         Steve Hay
   2015-04-20  5.21.11         ?
 
index 2090433..b52836b 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.9.
+options would be nice for perl 5.21.10.
 
 =head2 Profile Perl - am I hot or not?
 
@@ -1169,7 +1169,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.9"
+of 5.21.10"
 
 =head2 make ithreads more robust
 
index af12ec5..3dbdb93 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.9/BePC-haiku/CORE/libperl.so .
+  cd /boot/common/lib; ln -s perl5/5.21.10/BePC-haiku/CORE/libperl.so .
 
-Replace C<5.21.9> with your respective version of Perl.
+Replace C<5.21.10> with your respective version of Perl.
 
 =head1 KNOWN PROBLEMS
 
index b923a13..6c21066 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.9.tar.gz
-  tar -xzf perl-5.21.9.tar.gz
-  cd perl-5.21.9
+  curl -O http://www.cpan.org/src/perl-5.21.10.tar.gz
+  tar -xzf perl-5.21.10.tar.gz
+  cd perl-5.21.10
   ./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.9 as of this writing) builds without changes
+The latest Perl release (5.21.10 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 4642383..359e192 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.9/
+  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.21.10/
 
 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 652f0f9..c02a544 100644 (file)
@@ -16,24 +16,24 @@ businesses and homes.
 The NAS systems are equipped with Synology Disk Storage Manager (DSM),
 which is a trimmed-down Linux system enhanced with several tools for
 managing the NAS. There are several flavours of hardware: Marvell
-Armada (ARMv5te, ARMv7l), Intel Atom (i686, x86_64), Freescale QorIQ
+Armada (ARMv5tel, ARMv7l), Intel Atom (i686, x86_64), Freescale QorIQ
 (PPC), and more. For a full list see the
 L<Synology FAQ|http://forum.synology.com/wiki/index.php/What_kind_of_CPU_does_my_NAS_have>.
 
 Since it is based on Linux, the NAS can run many popular Linux
 software packages, including Perl. In fact, Synology provides a
-ready-to-install package for Perl, albeit version 5.8.6 which should
-be considered very old.
+ready-to-install package for Perl, depending on the version of DSM
+the installed perl ranges from 5.8.6 on DSM-4.3 to 5.18.4 on DSM-5.1.
 
 There is an active user community that provides many software packages
 for the Synology DSM systems; at the time of writing this document
-they provide Perl version 5.8.8.
+they provide Perl version 5.18.4.
 
 This document describes various features of Synology DSM operating
 system that will affect how Perl 5 (hereafter just Perl) is
 configured, compiled and/or runs. It has been compiled and verified by
 Johan Vromans for the Synology DS413 (QorIQ), with feedback from
-H.Merijn Brand (DS213, ARMv5te).
+H.Merijn Brand (DS213, ARMv5tel).
 
 =head2 Setting up the build environment
 
@@ -120,7 +120,8 @@ Execute the following commands:
   ln -s libm.so.6 libm.so
   ln -s libcrypt.so.1 libcrypt.so
   ln -s libdl.so.2 libdl.so
-  cd /opt/powerpc-linux-gnuspe/lib
+  cd /opt/powerpc-linux-gnuspe/lib  (or
+                                    /opt/arm-none-linux-gnueabi/lib)
   ln -s /lib/libdl.so.2 libdl.so
 
 =back
@@ -249,14 +250,11 @@ the programs are run.
 
 =head1 REVISION
 
-November 2013, for Synology DSM 4.3.3810.
+March 2015, for Synology DSM 5.1.5022.
 
 =head1 AUTHOR
 
 Johan Vromans <jvromans@squirrel.nl>
-
-=head1 THANKS
-
 H. Merijn Brand <h.m.brand@xs4all.nl>
 
 =cut
index 4842b8b..75b4172 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^.9.tar
+    vmstar -xvf perl-5^.21^.10.tar
 
 Then set default to the top-level source directory like so:
 
-    set default [.perl-5^.21^.9]
+    set default [.perl-5^.21^.10]
 
 and proceed with configuration as described in the next section.
 
index 08a3149..9051766 100644 (file)
@@ -1799,1510 +1799,1510 @@ static const UV Grapheme_Cluster_Break_invlist[] = { /* for ASCII/Latin1 */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_GCB_ENUM_COUNT 14
+#define GCB_ENUM_COUNT 14
 
 typedef enum {
-       PL_GCB_Other = 0,
-       PL_GCB_CR = 1,
-       PL_GCB_Control = 2,
-       PL_GCB_EDGE = 3,
-       PL_GCB_Extend = 4,
-       PL_GCB_L = 5,
-       PL_GCB_LF = 6,
-       PL_GCB_LV = 7,
-       PL_GCB_LVT = 8,
-       PL_GCB_Prepend = 9,
-       PL_GCB_Regional_Indicator = 10,
-       PL_GCB_SpacingMark = 11,
-       PL_GCB_T = 12,
-       PL_GCB_V = 13
-} PL_GCB_enum;
+       GCB_Other = 0,
+       GCB_CR = 1,
+       GCB_Control = 2,
+       GCB_EDGE = 3,
+       GCB_Extend = 4,
+       GCB_L = 5,
+       GCB_LF = 6,
+       GCB_LV = 7,
+       GCB_LVT = 8,
+       GCB_Prepend = 9,
+       GCB_Regional_Indicator = 10,
+       GCB_SpacingMark = 11,
+       GCB_T = 12,
+       GCB_V = 13
+} GCB_enum;
 
-static const PL_GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for ASCII/Latin1 */
-       PL_GCB_Control,
-       PL_GCB_LF,
-       PL_GCB_Control,
-       PL_GCB_CR,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_L,
-       PL_GCB_V,
-       PL_GCB_T,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_L,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_Other,
-       PL_GCB_V,
-       PL_GCB_Other,
-       PL_GCB_T,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Regional_Indicator,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other
+static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for ASCII/Latin1 */
+       GCB_Control,
+       GCB_LF,
+       GCB_Control,
+       GCB_CR,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_L,
+       GCB_V,
+       GCB_T,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_L,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_Other,
+       GCB_V,
+       GCB_Other,
+       GCB_T,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Regional_Indicator,
+       GCB_Other,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -8899,2863 +8899,2863 @@ static const UV Sentence_Break_invlist[] = { /* for ASCII/Latin1 */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_SB_ENUM_COUNT 16
+#define SB_ENUM_COUNT 16
 
 typedef enum {
-       PL_SB_Other = 0,
-       PL_SB_ATerm = 1,
-       PL_SB_CR = 2,
-       PL_SB_Close = 3,
-       PL_SB_EDGE = 4,
-       PL_SB_Extend = 5,
-       PL_SB_Format = 6,
-       PL_SB_LF = 7,
-       PL_SB_Lower = 8,
-       PL_SB_Numeric = 9,
-       PL_SB_OLetter = 10,
-       PL_SB_SContinue = 11,
-       PL_SB_STerm = 12,
-       PL_SB_Sep = 13,
-       PL_SB_Sp = 14,
-       PL_SB_Upper = 15
-} PL_SB_enum;
+       SB_Other = 0,
+       SB_ATerm = 1,
+       SB_CR = 2,
+       SB_Close = 3,
+       SB_EDGE = 4,
+       SB_Extend = 5,
+       SB_Format = 6,
+       SB_LF = 7,
+       SB_Lower = 8,
+       SB_Numeric = 9,
+       SB_OLetter = 10,
+       SB_SContinue = 11,
+       SB_STerm = 12,
+       SB_Sep = 13,
+       SB_Sp = 14,
+       SB_Upper = 15
+} SB_enum;
 
-static const PL_SB_enum Sentence_Break_invmap[] = { /* for ASCII/Latin1 */
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_LF,
-       PL_SB_Sp,
-       PL_SB_CR,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_STerm,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Sep,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Close,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Sp,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Format,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_Sep,
-       PL_SB_Format,
-       PL_SB_Sp,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_SContinue,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_STerm,
-       PL_SB_Close,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other
+static const SB_enum Sentence_Break_invmap[] = { /* for ASCII/Latin1 */
+       SB_Other,
+       SB_Sp,
+       SB_LF,
+       SB_Sp,
+       SB_CR,
+       SB_Other,
+       SB_Sp,
+       SB_STerm,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_ATerm,
+       SB_Other,
+       SB_Numeric,
+       SB_SContinue,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Upper,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Sep,
+       SB_Other,
+       SB_Sp,
+       SB_Other,
+       SB_Lower,
+       SB_Close,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Close,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Numeric,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Format,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Close,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Numeric,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Sp,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Numeric,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Lower,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Sp,
+       SB_Format,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_ATerm,
+       SB_Other,
+       SB_Sep,
+       SB_Format,
+       SB_Sp,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_STerm,
+       SB_Other,
+       SB_Sp,
+       SB_Format,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Sp,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Lower,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_SContinue,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_ATerm,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_SContinue,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_ATerm,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Upper,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_STerm,
+       SB_Close,
+       SB_SContinue,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Format,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_STerm,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Format,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -13281,1511 +13281,1511 @@ static const UV Word_Break_invlist[] = { /* for ASCII/Latin1 */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_WB_ENUM_COUNT 19
+#define WB_ENUM_COUNT 19
 
 typedef enum {
-       PL_WB_Other = 0,
-       PL_WB_ALetter = 1,
-       PL_WB_CR = 2,
-       PL_WB_Double_Quote = 3,
-       PL_WB_EDGE = 4,
-       PL_WB_Extend = 5,
-       PL_WB_ExtendNumLet = 6,
-       PL_WB_Format = 7,
-       PL_WB_Hebrew_Letter = 8,
-       PL_WB_Katakana = 9,
-       PL_WB_LF = 10,
-       PL_WB_MidLetter = 11,
-       PL_WB_MidNum = 12,
-       PL_WB_MidNumLet = 13,
-       PL_WB_Newline = 14,
-       PL_WB_Numeric = 15,
-       PL_WB_Regional_Indicator = 16,
-       PL_WB_Single_Quote = 17,
-       PL_WB_UNKNOWN = 18
-} PL_WB_enum;
+       WB_Other = 0,
+       WB_ALetter = 1,
+       WB_CR = 2,
+       WB_Double_Quote = 3,
+       WB_EDGE = 4,
+       WB_Extend = 5,
+       WB_ExtendNumLet = 6,
+       WB_Format = 7,
+       WB_Hebrew_Letter = 8,
+       WB_Katakana = 9,
+       WB_LF = 10,
+       WB_MidLetter = 11,
+       WB_MidNum = 12,
+       WB_MidNumLet = 13,
+       WB_Newline = 14,
+       WB_Numeric = 15,
+       WB_Regional_Indicator = 16,
+       WB_Single_Quote = 17,
+       WB_UNKNOWN = 18
+} WB_enum;
 
-static const PL_WB_enum Word_Break_invmap[] = { /* for ASCII/Latin1 */
-       PL_WB_Other,
-       PL_WB_LF,
-       PL_WB_Newline,
-       PL_WB_CR,
-       PL_WB_Other,
-       PL_WB_Double_Quote,
-       PL_WB_Other,
-       PL_WB_Single_Quote,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_MidLetter,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Newline,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_MidNum,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_MidLetter,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_ALetter,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Newline,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Extend,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Regional_Indicator,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other
+static const WB_enum Word_Break_invmap[] = { /* for ASCII/Latin1 */
+       WB_Other,
+       WB_LF,
+       WB_Newline,
+       WB_CR,
+       WB_Other,
+       WB_Double_Quote,
+       WB_Other,
+       WB_Single_Quote,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_Numeric,
+       WB_MidLetter,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Newline,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_MidNum,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_MidLetter,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_ALetter,
+       WB_MidLetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Numeric,
+       WB_Other,
+       WB_Numeric,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Numeric,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Numeric,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidLetter,
+       WB_Newline,
+       WB_Format,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Extend,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_MidNum,
+       WB_Other,
+       WB_MidLetter,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_MidNum,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidLetter,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Regional_Indicator,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -25884,1510 +25884,1510 @@ static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC 1047 */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_GCB_ENUM_COUNT 14
+#define GCB_ENUM_COUNT 14
 
 typedef enum {
-       PL_GCB_Other = 0,
-       PL_GCB_CR = 1,
-       PL_GCB_Control = 2,
-       PL_GCB_EDGE = 3,
-       PL_GCB_Extend = 4,
-       PL_GCB_L = 5,
-       PL_GCB_LF = 6,
-       PL_GCB_LV = 7,
-       PL_GCB_LVT = 8,
-       PL_GCB_Prepend = 9,
-       PL_GCB_Regional_Indicator = 10,
-       PL_GCB_SpacingMark = 11,
-       PL_GCB_T = 12,
-       PL_GCB_V = 13
-} PL_GCB_enum;
+       GCB_Other = 0,
+       GCB_CR = 1,
+       GCB_Control = 2,
+       GCB_EDGE = 3,
+       GCB_Extend = 4,
+       GCB_L = 5,
+       GCB_LF = 6,
+       GCB_LV = 7,
+       GCB_LVT = 8,
+       GCB_Prepend = 9,
+       GCB_Regional_Indicator = 10,
+       GCB_SpacingMark = 11,
+       GCB_T = 12,
+       GCB_V = 13
+} GCB_enum;
 
-static const PL_GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 1047 */
-       PL_GCB_Control,
-       PL_GCB_CR,
-       PL_GCB_Control,
-       PL_GCB_LF,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_L,
-       PL_GCB_V,
-       PL_GCB_T,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_L,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_Other,
-       PL_GCB_V,
-       PL_GCB_Other,
-       PL_GCB_T,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Regional_Indicator,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other
+static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 1047 */
+       GCB_Control,
+       GCB_CR,
+       GCB_Control,
+       GCB_LF,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_L,
+       GCB_V,
+       GCB_T,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_L,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_Other,
+       GCB_V,
+       GCB_Other,
+       GCB_T,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Regional_Indicator,
+       GCB_Other,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -33090,2887 +33090,2887 @@ static const UV Sentence_Break_invlist[] = { /* for EBCDIC 1047 */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_SB_ENUM_COUNT 16
+#define SB_ENUM_COUNT 16
 
 typedef enum {
-       PL_SB_Other = 0,
-       PL_SB_ATerm = 1,
-       PL_SB_CR = 2,
-       PL_SB_Close = 3,
-       PL_SB_EDGE = 4,
-       PL_SB_Extend = 5,
-       PL_SB_Format = 6,
-       PL_SB_LF = 7,
-       PL_SB_Lower = 8,
-       PL_SB_Numeric = 9,
-       PL_SB_OLetter = 10,
-       PL_SB_SContinue = 11,
-       PL_SB_STerm = 12,
-       PL_SB_Sep = 13,
-       PL_SB_Sp = 14,
-       PL_SB_Upper = 15
-} PL_SB_enum;
+       SB_Other = 0,
+       SB_ATerm = 1,
+       SB_CR = 2,
+       SB_Close = 3,
+       SB_EDGE = 4,
+       SB_Extend = 5,
+       SB_Format = 6,
+       SB_LF = 7,
+       SB_Lower = 8,
+       SB_Numeric = 9,
+       SB_OLetter = 10,
+       SB_SContinue = 11,
+       SB_STerm = 12,
+       SB_Sep = 13,
+       SB_Sp = 14,
+       SB_Upper = 15
+} SB_enum;
 
-static const PL_SB_enum Sentence_Break_invmap[] = { /* for EBCDIC 1047 */
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_CR,
-       PL_SB_Other,
-       PL_SB_LF,
-       PL_SB_Other,
-       PL_SB_Sep,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Format,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Close,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Sp,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Format,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_Sep,
-       PL_SB_Format,
-       PL_SB_Sp,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_SContinue,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_STerm,
-       PL_SB_Close,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other
+static const SB_enum Sentence_Break_invmap[] = { /* for EBCDIC 1047 */
+       SB_Other,
+       SB_Sp,
+       SB_Other,
+       SB_Sp,
+       SB_CR,
+       SB_Other,
+       SB_LF,
+       SB_Other,
+       SB_Sep,
+       SB_Other,
+       SB_Sp,
+       SB_Lower,
+       SB_Other,
+       SB_ATerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_STerm,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Upper,
+       SB_Lower,
+       SB_Close,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Close,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Upper,
+       SB_Format,
+       SB_Lower,
+       SB_Close,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Numeric,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Numeric,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Format,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Close,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Numeric,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Sp,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Numeric,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Lower,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Sp,
+       SB_Format,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_ATerm,
+       SB_Other,
+       SB_Sep,
+       SB_Format,
+       SB_Sp,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_STerm,
+       SB_Other,
+       SB_Sp,
+       SB_Format,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Sp,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Lower,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_SContinue,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_ATerm,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_SContinue,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_ATerm,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Upper,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_STerm,
+       SB_Close,
+       SB_SContinue,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Format,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_STerm,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Format,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -37575,1536 +37575,1536 @@ static const UV Word_Break_invlist[] = { /* for EBCDIC 1047 */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_WB_ENUM_COUNT 19
+#define WB_ENUM_COUNT 19
 
 typedef enum {
-       PL_WB_Other = 0,
-       PL_WB_ALetter = 1,
-       PL_WB_CR = 2,
-       PL_WB_Double_Quote = 3,
-       PL_WB_EDGE = 4,
-       PL_WB_Extend = 5,
-       PL_WB_ExtendNumLet = 6,
-       PL_WB_Format = 7,
-       PL_WB_Hebrew_Letter = 8,
-       PL_WB_Katakana = 9,
-       PL_WB_LF = 10,
-       PL_WB_MidLetter = 11,
-       PL_WB_MidNum = 12,
-       PL_WB_MidNumLet = 13,
-       PL_WB_Newline = 14,
-       PL_WB_Numeric = 15,
-       PL_WB_Regional_Indicator = 16,
-       PL_WB_Single_Quote = 17,
-       PL_WB_UNKNOWN = 18
-} PL_WB_enum;
+       WB_Other = 0,
+       WB_ALetter = 1,
+       WB_CR = 2,
+       WB_Double_Quote = 3,
+       WB_EDGE = 4,
+       WB_Extend = 5,
+       WB_ExtendNumLet = 6,
+       WB_Format = 7,
+       WB_Hebrew_Letter = 8,
+       WB_Katakana = 9,
+       WB_LF = 10,
+       WB_MidLetter = 11,
+       WB_MidNum = 12,
+       WB_MidNumLet = 13,
+       WB_Newline = 14,
+       WB_Numeric = 15,
+       WB_Regional_Indicator = 16,
+       WB_Single_Quote = 17,
+       WB_UNKNOWN = 18
+} WB_enum;
 
-static const PL_WB_enum Word_Break_invmap[] = { /* for EBCDIC 1047 */
-       PL_WB_Other,
-       PL_WB_Newline,
-       PL_WB_CR,
-       PL_WB_Other,
-       PL_WB_LF,
-       PL_WB_Other,
-       PL_WB_Newline,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_Single_Quote,
-       PL_WB_Other,
-       PL_WB_Double_Quote,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Format,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_MidNum,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_MidLetter,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_ALetter,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Newline,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Extend,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Regional_Indicator,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other
+static const WB_enum Word_Break_invmap[] = { /* for EBCDIC 1047 */
+       WB_Other,
+       WB_Newline,
+       WB_CR,
+       WB_Other,
+       WB_LF,
+       WB_Other,
+       WB_Newline,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_Single_Quote,
+       WB_Other,
+       WB_Double_Quote,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Format,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_MidNum,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_MidLetter,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_ALetter,
+       WB_MidLetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Numeric,
+       WB_Other,
+       WB_Numeric,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Numeric,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Numeric,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidLetter,
+       WB_Newline,
+       WB_Format,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Extend,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_MidNum,
+       WB_Other,
+       WB_MidLetter,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_MidNum,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidLetter,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Regional_Indicator,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -50311,1510 +50311,1510 @@ static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC 037 */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_GCB_ENUM_COUNT 14
+#define GCB_ENUM_COUNT 14
 
 typedef enum {
-       PL_GCB_Other = 0,
-       PL_GCB_CR = 1,
-       PL_GCB_Control = 2,
-       PL_GCB_EDGE = 3,
-       PL_GCB_Extend = 4,
-       PL_GCB_L = 5,
-       PL_GCB_LF = 6,
-       PL_GCB_LV = 7,
-       PL_GCB_LVT = 8,
-       PL_GCB_Prepend = 9,
-       PL_GCB_Regional_Indicator = 10,
-       PL_GCB_SpacingMark = 11,
-       PL_GCB_T = 12,
-       PL_GCB_V = 13
-} PL_GCB_enum;
+       GCB_Other = 0,
+       GCB_CR = 1,
+       GCB_Control = 2,
+       GCB_EDGE = 3,
+       GCB_Extend = 4,
+       GCB_L = 5,
+       GCB_LF = 6,
+       GCB_LV = 7,
+       GCB_LVT = 8,
+       GCB_Prepend = 9,
+       GCB_Regional_Indicator = 10,
+       GCB_SpacingMark = 11,
+       GCB_T = 12,
+       GCB_V = 13
+} GCB_enum;
 
-static const PL_GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 037 */
-       PL_GCB_Control,
-       PL_GCB_CR,
-       PL_GCB_Control,
-       PL_GCB_LF,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_L,
-       PL_GCB_V,
-       PL_GCB_T,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_L,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_Other,
-       PL_GCB_V,
-       PL_GCB_Other,
-       PL_GCB_T,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Regional_Indicator,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other
+static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 037 */
+       GCB_Control,
+       GCB_CR,
+       GCB_Control,
+       GCB_LF,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_L,
+       GCB_V,
+       GCB_T,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_L,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_Other,
+       GCB_V,
+       GCB_Other,
+       GCB_T,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Regional_Indicator,
+       GCB_Other,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -57501,2883 +57501,2883 @@ static const UV Sentence_Break_invlist[] = { /* for EBCDIC 037 */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_SB_ENUM_COUNT 16
+#define SB_ENUM_COUNT 16
 
 typedef enum {
-       PL_SB_Other = 0,
-       PL_SB_ATerm = 1,
-       PL_SB_CR = 2,
-       PL_SB_Close = 3,
-       PL_SB_EDGE = 4,
-       PL_SB_Extend = 5,
-       PL_SB_Format = 6,
-       PL_SB_LF = 7,
-       PL_SB_Lower = 8,
-       PL_SB_Numeric = 9,
-       PL_SB_OLetter = 10,
-       PL_SB_SContinue = 11,
-       PL_SB_STerm = 12,
-       PL_SB_Sep = 13,
-       PL_SB_Sp = 14,
-       PL_SB_Upper = 15
-} PL_SB_enum;
+       SB_Other = 0,
+       SB_ATerm = 1,
+       SB_CR = 2,
+       SB_Close = 3,
+       SB_EDGE = 4,
+       SB_Extend = 5,
+       SB_Format = 6,
+       SB_LF = 7,
+       SB_Lower = 8,
+       SB_Numeric = 9,
+       SB_OLetter = 10,
+       SB_SContinue = 11,
+       SB_STerm = 12,
+       SB_Sep = 13,
+       SB_Sp = 14,
+       SB_Upper = 15
+} SB_enum;
 
-static const PL_SB_enum Sentence_Break_invmap[] = { /* for EBCDIC 037 */
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_CR,
-       PL_SB_Other,
-       PL_SB_Sep,
-       PL_SB_Other,
-       PL_SB_LF,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Format,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Close,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Sp,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Format,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_Sep,
-       PL_SB_Format,
-       PL_SB_Sp,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_SContinue,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_STerm,
-       PL_SB_Close,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other
+static const SB_enum Sentence_Break_invmap[] = { /* for EBCDIC 037 */
+       SB_Other,
+       SB_Sp,
+       SB_Other,
+       SB_Sp,
+       SB_CR,
+       SB_Other,
+       SB_Sep,
+       SB_Other,
+       SB_LF,
+       SB_Other,
+       SB_Sp,
+       SB_Lower,
+       SB_Other,
+       SB_ATerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_STerm,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Upper,
+       SB_Lower,
+       SB_Close,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Upper,
+       SB_Format,
+       SB_Lower,
+       SB_Close,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Numeric,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Numeric,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Format,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Close,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Numeric,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Sp,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Numeric,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Lower,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Sp,
+       SB_Format,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_ATerm,
+       SB_Other,
+       SB_Sep,
+       SB_Format,
+       SB_Sp,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_STerm,
+       SB_Other,
+       SB_Sp,
+       SB_Format,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Sp,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Lower,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_SContinue,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_ATerm,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_SContinue,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_ATerm,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Upper,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_STerm,
+       SB_Close,
+       SB_SContinue,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Format,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_STerm,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Format,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -61980,1532 +61980,1532 @@ static const UV Word_Break_invlist[] = { /* for EBCDIC 037 */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_WB_ENUM_COUNT 19
+#define WB_ENUM_COUNT 19
 
 typedef enum {
-       PL_WB_Other = 0,
-       PL_WB_ALetter = 1,
-       PL_WB_CR = 2,
-       PL_WB_Double_Quote = 3,
-       PL_WB_EDGE = 4,
-       PL_WB_Extend = 5,
-       PL_WB_ExtendNumLet = 6,
-       PL_WB_Format = 7,
-       PL_WB_Hebrew_Letter = 8,
-       PL_WB_Katakana = 9,
-       PL_WB_LF = 10,
-       PL_WB_MidLetter = 11,
-       PL_WB_MidNum = 12,
-       PL_WB_MidNumLet = 13,
-       PL_WB_Newline = 14,
-       PL_WB_Numeric = 15,
-       PL_WB_Regional_Indicator = 16,
-       PL_WB_Single_Quote = 17,
-       PL_WB_UNKNOWN = 18
-} PL_WB_enum;
+       WB_Other = 0,
+       WB_ALetter = 1,
+       WB_CR = 2,
+       WB_Double_Quote = 3,
+       WB_EDGE = 4,
+       WB_Extend = 5,
+       WB_ExtendNumLet = 6,
+       WB_Format = 7,
+       WB_Hebrew_Letter = 8,
+       WB_Katakana = 9,
+       WB_LF = 10,
+       WB_MidLetter = 11,
+       WB_MidNum = 12,
+       WB_MidNumLet = 13,
+       WB_Newline = 14,
+       WB_Numeric = 15,
+       WB_Regional_Indicator = 16,
+       WB_Single_Quote = 17,
+       WB_UNKNOWN = 18
+} WB_enum;
 
-static const PL_WB_enum Word_Break_invmap[] = { /* for EBCDIC 037 */
-       PL_WB_Other,
-       PL_WB_Newline,
-       PL_WB_CR,
-       PL_WB_Other,
-       PL_WB_Newline,
-       PL_WB_Other,
-       PL_WB_LF,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_Single_Quote,
-       PL_WB_Other,
-       PL_WB_Double_Quote,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Format,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_MidNum,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_MidLetter,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_ALetter,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Newline,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Extend,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Regional_Indicator,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other
+static const WB_enum Word_Break_invmap[] = { /* for EBCDIC 037 */
+       WB_Other,
+       WB_Newline,
+       WB_CR,
+       WB_Other,
+       WB_Newline,
+       WB_Other,
+       WB_LF,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_Single_Quote,
+       WB_Other,
+       WB_Double_Quote,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Format,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_MidNum,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_MidLetter,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_ALetter,
+       WB_MidLetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Numeric,
+       WB_Other,
+       WB_Numeric,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Numeric,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Numeric,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidLetter,
+       WB_Newline,
+       WB_Format,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Extend,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_MidNum,
+       WB_Other,
+       WB_MidLetter,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_MidNum,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidLetter,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Regional_Indicator,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -74702,1510 +74702,1510 @@ static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC POSIX-BC */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_GCB_ENUM_COUNT 14
+#define GCB_ENUM_COUNT 14
 
 typedef enum {
-       PL_GCB_Other = 0,
-       PL_GCB_CR = 1,
-       PL_GCB_Control = 2,
-       PL_GCB_EDGE = 3,
-       PL_GCB_Extend = 4,
-       PL_GCB_L = 5,
-       PL_GCB_LF = 6,
-       PL_GCB_LV = 7,
-       PL_GCB_LVT = 8,
-       PL_GCB_Prepend = 9,
-       PL_GCB_Regional_Indicator = 10,
-       PL_GCB_SpacingMark = 11,
-       PL_GCB_T = 12,
-       PL_GCB_V = 13
-} PL_GCB_enum;
+       GCB_Other = 0,
+       GCB_CR = 1,
+       GCB_Control = 2,
+       GCB_EDGE = 3,
+       GCB_Extend = 4,
+       GCB_L = 5,
+       GCB_LF = 6,
+       GCB_LV = 7,
+       GCB_LVT = 8,
+       GCB_Prepend = 9,
+       GCB_Regional_Indicator = 10,
+       GCB_SpacingMark = 11,
+       GCB_T = 12,
+       GCB_V = 13
+} GCB_enum;
 
-static const PL_GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC POSIX-BC */
-       PL_GCB_Control,
-       PL_GCB_CR,
-       PL_GCB_Control,
-       PL_GCB_LF,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_L,
-       PL_GCB_V,
-       PL_GCB_T,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_L,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_LV,
-       PL_GCB_LVT,
-       PL_GCB_Other,
-       PL_GCB_V,
-       PL_GCB_Other,
-       PL_GCB_T,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_SpacingMark,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Extend,
-       PL_GCB_Other,
-       PL_GCB_Regional_Indicator,
-       PL_GCB_Other,
-       PL_GCB_Control,
-       PL_GCB_Extend,
-       PL_GCB_Control,
-       PL_GCB_Other
+static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+       GCB_Control,
+       GCB_CR,
+       GCB_Control,
+       GCB_LF,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_L,
+       GCB_V,
+       GCB_T,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_L,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_LV,
+       GCB_LVT,
+       GCB_Other,
+       GCB_V,
+       GCB_Other,
+       GCB_T,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Control,
+       GCB_Other,
+       GCB_Extend,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Other,
+       GCB_SpacingMark,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Extend,
+       GCB_Other,
+       GCB_Regional_Indicator,
+       GCB_Other,
+       GCB_Control,
+       GCB_Extend,
+       GCB_Control,
+       GCB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -81906,2891 +81906,2891 @@ static const UV Sentence_Break_invlist[] = { /* for EBCDIC POSIX-BC */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_SB_ENUM_COUNT 16
+#define SB_ENUM_COUNT 16
 
 typedef enum {
-       PL_SB_Other = 0,
-       PL_SB_ATerm = 1,
-       PL_SB_CR = 2,
-       PL_SB_Close = 3,
-       PL_SB_EDGE = 4,
-       PL_SB_Extend = 5,
-       PL_SB_Format = 6,
-       PL_SB_LF = 7,
-       PL_SB_Lower = 8,
-       PL_SB_Numeric = 9,
-       PL_SB_OLetter = 10,
-       PL_SB_SContinue = 11,
-       PL_SB_STerm = 12,
-       PL_SB_Sep = 13,
-       PL_SB_Sp = 14,
-       PL_SB_Upper = 15
-} PL_SB_enum;
+       SB_Other = 0,
+       SB_ATerm = 1,
+       SB_CR = 2,
+       SB_Close = 3,
+       SB_EDGE = 4,
+       SB_Extend = 5,
+       SB_Format = 6,
+       SB_LF = 7,
+       SB_Lower = 8,
+       SB_Numeric = 9,
+       SB_OLetter = 10,
+       SB_SContinue = 11,
+       SB_STerm = 12,
+       SB_Sep = 13,
+       SB_Sp = 14,
+       SB_Upper = 15
+} SB_enum;
 
-static const PL_SB_enum Sentence_Break_invmap[] = { /* for EBCDIC POSIX-BC */
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_CR,
-       PL_SB_Other,
-       PL_SB_LF,
-       PL_SB_Other,
-       PL_SB_Sep,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Format,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Close,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Close,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Sp,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Format,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_Sep,
-       PL_SB_Format,
-       PL_SB_Sp,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Extend,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Sp,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_STerm,
-       PL_SB_SContinue,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_ATerm,
-       PL_SB_Other,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_STerm,
-       PL_SB_Close,
-       PL_SB_SContinue,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_STerm,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_STerm,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Format,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Lower,
-       PL_SB_Upper,
-       PL_SB_Lower,
-       PL_SB_Other,
-       PL_SB_Numeric,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Upper,
-       PL_SB_Other,
-       PL_SB_Close,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_OLetter,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Format,
-       PL_SB_Other,
-       PL_SB_Extend,
-       PL_SB_Other
+static const SB_enum Sentence_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+       SB_Other,
+       SB_Sp,
+       SB_Other,
+       SB_Sp,
+       SB_CR,
+       SB_Other,
+       SB_LF,
+       SB_Other,
+       SB_Sep,
+       SB_Other,
+       SB_Sp,
+       SB_Lower,
+       SB_Other,
+       SB_ATerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_STerm,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Upper,
+       SB_Lower,
+       SB_Close,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Format,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Numeric,
+       SB_Other,
+       SB_Close,
+       SB_Upper,
+       SB_Close,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Numeric,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Format,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Close,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Numeric,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Sp,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Numeric,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Lower,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Sp,
+       SB_Format,
+       SB_Extend,
+       SB_Format,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_ATerm,
+       SB_Other,
+       SB_Sep,
+       SB_Format,
+       SB_Sp,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_STerm,
+       SB_Other,
+       SB_Sp,
+       SB_Format,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Extend,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Sp,
+       SB_SContinue,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_OLetter,
+       SB_Lower,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_SContinue,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_ATerm,
+       SB_Other,
+       SB_SContinue,
+       SB_STerm,
+       SB_SContinue,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_SContinue,
+       SB_ATerm,
+       SB_Other,
+       SB_SContinue,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Upper,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Lower,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_Close,
+       SB_STerm,
+       SB_Close,
+       SB_SContinue,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Format,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_STerm,
+       SB_Other,
+       SB_OLetter,
+       SB_STerm,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_STerm,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Format,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Other,
+       SB_Lower,
+       SB_Other,
+       SB_Lower,
+       SB_Upper,
+       SB_Lower,
+       SB_Other,
+       SB_Numeric,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Extend,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Upper,
+       SB_Other,
+       SB_Close,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_OLetter,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Format,
+       SB_Other,
+       SB_Extend,
+       SB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -86395,1534 +86395,1534 @@ static const UV Word_Break_invlist[] = { /* for EBCDIC POSIX-BC */
 
 #if defined(PERL_IN_REGEXEC_C)
 
-#define PL_WB_ENUM_COUNT 19
+#define WB_ENUM_COUNT 19
 
 typedef enum {
-       PL_WB_Other = 0,
-       PL_WB_ALetter = 1,
-       PL_WB_CR = 2,
-       PL_WB_Double_Quote = 3,
-       PL_WB_EDGE = 4,
-       PL_WB_Extend = 5,
-       PL_WB_ExtendNumLet = 6,
-       PL_WB_Format = 7,
-       PL_WB_Hebrew_Letter = 8,
-       PL_WB_Katakana = 9,
-       PL_WB_LF = 10,
-       PL_WB_MidLetter = 11,
-       PL_WB_MidNum = 12,
-       PL_WB_MidNumLet = 13,
-       PL_WB_Newline = 14,
-       PL_WB_Numeric = 15,
-       PL_WB_Regional_Indicator = 16,
-       PL_WB_Single_Quote = 17,
-       PL_WB_UNKNOWN = 18
-} PL_WB_enum;
+       WB_Other = 0,
+       WB_ALetter = 1,
+       WB_CR = 2,
+       WB_Double_Quote = 3,
+       WB_EDGE = 4,
+       WB_Extend = 5,
+       WB_ExtendNumLet = 6,
+       WB_Format = 7,
+       WB_Hebrew_Letter = 8,
+       WB_Katakana = 9,
+       WB_LF = 10,
+       WB_MidLetter = 11,
+       WB_MidNum = 12,
+       WB_MidNumLet = 13,
+       WB_Newline = 14,
+       WB_Numeric = 15,
+       WB_Regional_Indicator = 16,
+       WB_Single_Quote = 17,
+       WB_UNKNOWN = 18
+} WB_enum;
 
-static const PL_WB_enum Word_Break_invmap[] = { /* for EBCDIC POSIX-BC */
-       PL_WB_Other,
-       PL_WB_Newline,
-       PL_WB_CR,
-       PL_WB_Other,
-       PL_WB_LF,
-       PL_WB_Other,
-       PL_WB_Newline,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_Single_Quote,
-       PL_WB_Other,
-       PL_WB_Double_Quote,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Format,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_MidNum,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_MidLetter,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_ALetter,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_Newline,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Extend,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_Other,
-       PL_WB_Hebrew_Letter,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_MidLetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_MidNumLet,
-       PL_WB_Other,
-       PL_WB_MidLetter,
-       PL_WB_MidNum,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ExtendNumLet,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Katakana,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Format,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Numeric,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_ALetter,
-       PL_WB_Other,
-       PL_WB_Regional_Indicator,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Format,
-       PL_WB_Other,
-       PL_WB_Extend,
-       PL_WB_Other
+static const WB_enum Word_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+       WB_Other,
+       WB_Newline,
+       WB_CR,
+       WB_Other,
+       WB_LF,
+       WB_Other,
+       WB_Newline,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_Single_Quote,
+       WB_Other,
+       WB_Double_Quote,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Format,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_MidNum,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_MidLetter,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_ALetter,
+       WB_MidLetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Numeric,
+       WB_Other,
+       WB_Numeric,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Numeric,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Numeric,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidLetter,
+       WB_Newline,
+       WB_Format,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Extend,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_Other,
+       WB_Hebrew_Letter,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_MidNum,
+       WB_Other,
+       WB_MidLetter,
+       WB_MidNum,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_MidNum,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_MidLetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidNum,
+       WB_Other,
+       WB_MidNumLet,
+       WB_Other,
+       WB_MidLetter,
+       WB_MidNum,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ExtendNumLet,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_ALetter,
+       WB_Other,
+       WB_Katakana,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Format,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Numeric,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Extend,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_ALetter,
+       WB_Other,
+       WB_Regional_Indicator,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Format,
+       WB_Other,
+       WB_Extend,
+       WB_Other
 };
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
@@ -97306,6 +97306,7 @@ static const UV XPosixXDigit_invlist[] = { /* for EBCDIC POSIX-BC */
  * bfa3da58ea982199829e1107ac5a9a544b83100470a2d0cc28fb50ec234cb840 lib/unicore/UnicodeData.txt
  * 916289f471c4a337fb1e0715985a11e6bc8bb205736e84164849d601d265d9e0 lib/unicore/auxiliary/GCBTest.txt
  * 3d7ffae56e506d595f3e0e5d36978bc6721d53470e5ca9666ad7cdfc4a46cb3d lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 370ddf3ba9b337819cf21795c2bd7cda578ac5ff4700d1a3ac923e8be988b57e lib/unicore/auxiliary/SBTest.txt
  * 28356f6912113a9fe8244d9396e9786115dbc10b3ffb5e31b08969122e91d3f3 lib/unicore/auxiliary/SentenceBreakProperty.txt
  * 3f56d3ccfc35c6dac44d143a4d6087af4e4ee9f1bdbae482c12f6149b60dec3b lib/unicore/auxiliary/WBTest.txt
  * 82f7304030e6866ef8e02cdfb0485c52c18a661282bfce9c259cc6300abd79ad lib/unicore/auxiliary/WordBreakProperty.txt
@@ -97320,6 +97321,7 @@ static const UV XPosixXDigit_invlist[] = { /* for EBCDIC POSIX-BC */
  * a9791f08281d7b0a417e4ad882cf64463f6815db8156932acd85228ac717fd94 lib/unicore/extracted/DLineBreak.txt
  * a17a0330e57d774343a53c019f1bc69827c2676982a1bf48e0898a76710e8877 lib/unicore/extracted/DNumType.txt
  * c2cb810a67cc5fb4a8d236b6c1bc6dd4d89733d8603881997e8aae2c816a3db1 lib/unicore/extracted/DNumValues.txt
+ * 808d76136d9952faf581347e9bc040dbab5158f143f243a6de455a4af39b7401 lib/unicore/mktables
  * 746472de66b936ac885ca6d6e68058242b4e909e3260c6317f3ec719f78f76cc lib/unicore/version
- * 0bac6f110c7e46527d2bca4d37945ef54008f0e6d50ce493018f5d360d48f11a regen/mk_invlists.pl
+ * 4360c31f23eb368e0f3bfd045a44d3bc37ff0889e216f686ebea02543ac188d9 regen/mk_invlists.pl
  * ex: set ro: */
index 03c6753..fb2224e 100755 (executable)
@@ -1952,7 +1952,8 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 /* LONG_DOUBLESIZE:
  *     This symbol contains the size of a long double, so that the
  *     C preprocessor can make decisions based on it.  It is only
- *     defined if the system supports long doubles.
+ *     defined if the system supports long doubles.   Note that this
+ *     is sizeof(long double), which may include unused bytes.
  */
 /* HAS_LDEXPL:
  *     This symbol, if defined, indicates that the ldexpl routine is
@@ -4912,6 +4913,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* NVSIZE:
  *     This symbol contains the sizeof(NV).
+ *     Note that some floating point formats have unused bytes.
+ *     The most notable example is the x86* 80-bit extended precision
+ *     which comes in byte sizes of 12 and 16 (for 32 and 64 bit
+ *     platforms, respectively), but which only uses 10 bytes.
+ *     Perl compiled with -Duselongdouble on x86* is like this.
  */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
index 83e4ced..2a78691 100644 (file)
@@ -2,8 +2,9 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta;
-# VERSION
-$CPAN::Meta::VERSION = '2.143240';
+
+our $VERSION = '2.150001';
+
 #pod =head1 SYNOPSIS
 #pod
 #pod     use v5.10;
@@ -643,7 +644,7 @@ CPAN::Meta - the distribution metadata for a CPAN dist
 
 =head1 VERSION
 
-version 2.143240
+version 2.150001
 
 =head1 SYNOPSIS
 
@@ -1024,7 +1025,7 @@ Ricardo Signes <rjbs@cpan.org>
 
 =head1 CONTRIBUTORS
 
-=for stopwords Ansgar Burchardt Avar Arnfjord Bjarmason Christopher J. Madsen Chuck Adams Cory G Watson Damyan Ivanov Eric Wilhelm Graham Knop Gregor Hermann Karen Etheridge Kenichi Ishigaki Ken Williams Lars Dieckow Leon Timmermans majensen Mark Fowler Matt S Trout Michael G. Schwern moznion Olaf Alders Olivier Mengue Randy Sims
+=for stopwords Ansgar Burchardt Avar Arnfjord Bjarmason Christopher J. Madsen Chuck Adams Cory G Watson Damyan Ivanov Eric Wilhelm Graham Knop Gregor Hermann Karen Etheridge Kenichi Ishigaki Ken Williams Lars Dieckow Leon Timmermans majensen Mark Fowler Matt S Trout Michael G. Schwern mohawk2 moznion Olaf Alders Olivier Mengue Randy Sims
 
 =over 4
 
@@ -1102,6 +1103,10 @@ Michael G. Schwern <mschwern@cpan.org>
 
 =item *
 
+mohawk2 <mohawk2@users.noreply.github.com>
+
+=item *
+
 moznion <moznion@gmail.com>
 
 =item *
index fe89c36..8b32b13 100644 (file)
@@ -2,8 +2,9 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Converter;
-# VERSION
-$CPAN::Meta::Converter::VERSION = '2.143240';
+
+our $VERSION = '2.150001';
+
 #pod =head1 SYNOPSIS
 #pod
 #pod   my $struct = decode_json_file('META.json');
@@ -319,11 +320,11 @@ sub _no_index_1_2 {
 
   # common mistake: files -> file
   if ( exists $no_index->{files} ) {
-    $no_index->{file} = delete $no_index->{file};
+    $no_index->{file} = delete $no_index->{files};
   }
   # common mistake: modules -> module
   if ( exists $no_index->{modules} ) {
-    $no_index->{module} = delete $no_index->{module};
+    $no_index->{module} = delete $no_index->{modules};
   }
   return _convert($no_index, $no_index_spec_1_2);
 }
@@ -347,11 +348,11 @@ sub _no_index_directory {
   }
   # common mistake: files -> file
   if ( exists $element->{files} ) {
-    $element->{file} = delete $element->{file};
+    $element->{file} = delete $element->{files};
   }
   # common mistake: modules -> module
   if ( exists $element->{modules} ) {
-    $element->{module} = delete $element->{module};
+    $element->{module} = delete $element->{modules};
   }
   my $spec = $version == 2 ? $no_index_spec_2 : $no_index_spec_1_3;
   return _convert($element, $spec);
@@ -1462,6 +1463,8 @@ sub convert {
 #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 Available since version 2.141170.
+#pod
 #pod =cut
 
 sub upgrade_fragment {
@@ -1494,7 +1497,7 @@ CPAN::Meta::Converter - Convert CPAN distribution metadata structures
 
 =head1 VERSION
 
-version 2.143240
+version 2.150001
 
 =head1 SYNOPSIS
 
@@ -1594,6 +1597,8 @@ 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.
 
+Available since version 2.141170.
+
 =head1 BUGS
 
 Please report any bugs or feature using the CPAN Request Tracker.
index 45ab897..4bfbb19 100644 (file)
@@ -2,8 +2,9 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Feature;
-# VERSION
-$CPAN::Meta::Feature::VERSION = '2.143240';
+
+our $VERSION = '2.150001';
+
 use CPAN::Meta::Prereqs;
 
 #pod =head1 DESCRIPTION
@@ -78,7 +79,7 @@ CPAN::Meta::Feature - an optional feature provided by a CPAN distribution
 
 =head1 VERSION
 
-version 2.143240
+version 2.150001
 
 =head1 DESCRIPTION
 
index b5339d1..3d7e558 100644 (file)
@@ -3,8 +3,9 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::History;
-# VERSION
-$CPAN::Meta::History::VERSION = '2.143240';
+
+our $VERSION = '2.150001';
+
 1;
 
 # ABSTRACT: history of CPAN Meta Spec changes
@@ -21,7 +22,7 @@ CPAN::Meta::History - history of CPAN Meta Spec changes
 
 =head1 VERSION
 
-version 2.143240
+version 2.150001
 
 =head1 DESCRIPTION
 
index 2e9568a..1052c3e 100644 (file)
@@ -17,6 +17,11 @@ Modifications from the original:
 
 Conversion from the original HTML to POD format
 
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.17 rather than
+linking to the module.
+
 =back
 
 =head1 DESCRIPTION
@@ -71,8 +76,56 @@ The version of the distribution to which the META.yml file refers.
 Example: C<perl>
 
 The license under which this distribution may be used and
-redistributed.  See L<Module::Build> for the list of valid options.
+redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item gpl
+
+The distribution is distributed under the terms of the Gnu General Public
+License (L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is distributed under the terms of the Gnu Lesser General
+Public License (L<http://www.opensource.org/licenses/lgpl-license.php>).
 
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item unrestricted
+
+The distribution is licensed under a license that is B<not> approved by
+L<www.opensource.org|http://www.opensource.org> but that allows distribution
+without restrictions.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=back
 
 =item distribution_type
 
index 2e5866d..69f3411 100644 (file)
@@ -17,6 +17,11 @@ Modifications from the original:
 
 Conversion from the original HTML to POD format
 
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.18 rather than
+linking to the module.
+
 =back
 
 =head1 DESCRIPTION
@@ -86,8 +91,56 @@ a descriptive term for the licenses ... not authoritative, but must
 be consistent with licensure statements in the READMEs, documentation, etc.
 
 The license under which this distribution may be used and
-redistributed.  See L<Module::Build>
-for the list of valid options.
+redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item gpl
+
+The distribution is distributed under the terms of the Gnu General Public
+License (L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is distributed under the terms of the Gnu Lesser General
+Public License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item unrestricted
+
+The distribution is licensed under a license that is B<not> approved by
+L<www.opensource.org|http://www.opensource.org> but that allows distribution
+without restrictions.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=back
 
 =item license_uri
 
index b0d6cf4..69cd5bb 100644 (file)
@@ -17,6 +17,11 @@ Modifications from the original:
 
 Various spelling corrections
 
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.2611 rather than
+linking to the module.
+
 =back
 
 =head1 SYNOPSIS
@@ -226,8 +231,56 @@ Example:
   license: perl
 
 (Spec 1.0) [required] {string} The license under which this distribution may be
-used and redistributed.  See L<Module::Build> for the list of valid
-options.
+used and redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item gpl
+
+The distribution is distributed under the terms of the Gnu General Public
+License (L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is distributed under the terms of the Gnu Lesser General
+Public License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item unrestricted
+
+The distribution is licensed under a license that is B<not> approved by
+L<www.opensource.org|http://www.opensource.org> but that allows distribution
+without restrictions.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=back
 
 =head2 distribution_type
 
index 57bf7cf..deff28d 100644 (file)
@@ -17,6 +17,11 @@ Modifications from the original:
 
 Various spelling corrections
 
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.2805 rather than
+linking to the module.
+
 =back
 
 =head1 SYNOPSIS
@@ -192,8 +197,72 @@ Example:
   license: perl
 
 (Spec 1.0) [required] {string} The license under which this distribution may be
-used and redistributed.  See L<Module::Build> for the list of valid
-options.
+used and redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item apache
+
+The distribution is licensed under the Apache Software License
+(L<http://opensource.org/licenses/apachepl.php>).
+
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item gpl
+
+The distribution is licensed under the terms of the Gnu General Public License
+(L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is licensed under the terms of the Gnu Lesser General Public
+License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+
+=item mit
+
+The distribution is licensed under the MIT License
+(L<http://opensource.org/licenses/mit-license.php>).
+
+=item mozilla
+
+The distribution is licensed under the Mozilla Public License.
+(L<http://opensource.org/licenses/mozilla1.0.php> or
+L<http://opensource.org/licenses/mozilla1.1.php>)
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=item unrestricted
+
+The distribution is licensed under a license that is not approved by
+L<www.opensource.org|http://www.opensource.org/> but that allows distribution
+without restrictions.
+
+=back
 
 =head2 distribution_type
 
index 091c794..a84fb3d 100644 (file)
@@ -17,6 +17,11 @@ Modifications from the original:
 
 Various spelling corrections
 
+=item *
+
+Include list of valid licenses from L<Module::Build> 0.2807 rather than
+linking to the module.
+
 =back
 
 =head1 SYNOPSIS
@@ -221,9 +226,72 @@ Example:
   license: perl
 
 (Spec 1.0) [required] {string} The license under which this
-distribution may be used and redistributed.  See
-L<http://search.cpan.org/dist/Module-Build/lib/Module/Build/API.pod>
-for the list of valid options.
+distribution may be used and redistributed.
+
+Must be one of the following licenses:
+
+=over 4
+
+=item apache
+
+The distribution is licensed under the Apache Software License
+(L<http://opensource.org/licenses/apachepl.php>).
+
+=item artistic
+
+The distribution is licensed under the Artistic License, as specified by the
+Artistic file in the standard perl distribution.
+
+=item bsd
+
+The distribution is licensed under the BSD License
+(L<http://www.opensource.org/licenses/bsd-license.php>).
+
+=item gpl
+
+The distribution is licensed under the terms of the Gnu General Public License
+(L<http://www.opensource.org/licenses/gpl-license.php>).
+
+=item lgpl
+
+The distribution is licensed under the terms of the Gnu Lesser General Public
+License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+
+=item mit
+
+The distribution is licensed under the MIT License
+(L<http://opensource.org/licenses/mit-license.php>).
+
+=item mozilla
+
+The distribution is licensed under the Mozilla Public License.
+(L<http://opensource.org/licenses/mozilla1.0.php> or
+L<http://opensource.org/licenses/mozilla1.1.php>)
+
+=item open_source
+
+The distribution is licensed under some other Open Source Initiative-approved
+license listed at L<http://www.opensource.org/licenses/>.
+
+=item perl
+
+The distribution may be copied and redistributed under the same terms as perl
+itself (this is by far the most common licensing option for modules on CPAN).
+This is a dual license, in which the user may choose between either the GPL or
+the Artistic license.
+
+=item restrictive
+
+The distribution may not be redistributed without special permission from the
+author and/or copyright holder.
+
+=item unrestricted
+
+The distribution is licensed under a license that is not approved by
+L<www.opensource.org|http://www.opensource.org/> but that allows distribution
+without restrictions.
+
+=back
 
 =head2 distribution_type
 
index 5571c51..f4c1286 100644 (file)
@@ -2,11 +2,12 @@ use strict;
 use warnings;
 
 package CPAN::Meta::Merge;
-# VERSION
-$CPAN::Meta::Merge::VERSION = '2.143240';
+
+our $VERSION = '2.150001';
+
 use Carp qw/croak/;
 use Scalar::Util qw/blessed/;
-use CPAN::Meta::Converter;
+use CPAN::Meta::Converter 2.141170;
 
 sub _identical {
   my ($left, $right, $path) = @_;
@@ -230,7 +231,7 @@ CPAN::Meta::Merge - Merging CPAN Meta fragments
 
 =head1 VERSION
 
-version 2.143240
+version 2.150001
 
 =head1 SYNOPSIS
 
index 748a237..7503510 100644 (file)
@@ -2,8 +2,9 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Prereqs;
-# VERSION
-$CPAN::Meta::Prereqs::VERSION = '2.143240';
+
+our $VERSION = '2.150001';
+
 #pod =head1 DESCRIPTION
 #pod
 #pod A CPAN::Meta::Prereqs object represents the prerequisites for a CPAN
@@ -286,7 +287,7 @@ CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and type
 
 =head1 VERSION
 
-version 2.143240
+version 2.150001
 
 =head1 DESCRIPTION
 
index a4e330b..ec68f17 100644 (file)
@@ -7,8 +7,9 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Spec;
-# VERSION
-$CPAN::Meta::Spec::VERSION = '2.143240';
+
+our $VERSION = '2.150001';
+
 1;
 
 # ABSTRACT: specification for CPAN distribution metadata
@@ -28,7 +29,7 @@ CPAN::Meta::Spec - specification for CPAN distribution metadata
 
 =head1 VERSION
 
-version 2.143240
+version 2.150001
 
 =head1 SYNOPSIS
 
index 8799f52..cc0409e 100644 (file)
@@ -2,8 +2,9 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Validator;
-# VERSION
-$CPAN::Meta::Validator::VERSION = '2.143240';
+
+our $VERSION = '2.150001';
+
 #pod =head1 SYNOPSIS
 #pod
 #pod   my $struct = decode_json_file('META.json');
@@ -997,7 +998,7 @@ CPAN::Meta::Validator - validate CPAN distribution metadata structures
 
 =head1 VERSION
 
-version 2.143240
+version 2.150001
 
 =head1 SYNOPSIS
 
index b548bcc..e8c9bb7 100644 (file)
@@ -4,9 +4,9 @@ use strict;
 use warnings;
 use vars qw($VERSION);
 
-use if $] < 5.008 => "IO::Scalar";
+use if $] < 5.008 => 'IO::Scalar';
 
-$VERSION = '1.62';
+$VERSION = '1.63';
 
 =head1 NAME
 
@@ -23,6 +23,9 @@ App::Cpan - easily interact with CPAN from the command line
        # use local::lib
        cpan -I module_name [ module_name ... ]
 
+       # one time mirror override for faster mirrors
+       cpan -p ...
+
        # with just the dot, install from the distribution in the
        # current directory
        cpan .
@@ -135,6 +138,11 @@ List the modules by the specified authors.
 
 Make the specified modules.
 
+=item -M mirror1,mirror2,...
+
+A comma-separated list of mirrors to use for just this run. The C<-P>
+option can find them for you automatically.
+
 =item -n
 
 Do a dry run, but don't actually install anything. (unimplemented)
@@ -145,11 +153,12 @@ Show the out-of-date modules.
 
 =item -p
 
-Ping the configured mirrors
+Ping the configured mirrors and print a report
 
 =item -P
 
-Find the best mirrors you could be using (but doesn't configure them just yet)
+Find the best mirrors you could be using and use them for the current
+session.
 
 =item -r
 
@@ -208,6 +217,51 @@ and tells you about problems you might have.
        # force install modules ( must use -i )
        cpan -fi CGI::Minimal URI
 
+       # install modules but without testing them
+       cpan -Ti CGI::Minimal URI
+
+=head2 Environment variables
+
+There are several components in CPAN.pm that use environment variables.
+The build tools, L<ExtUtils::MakeMaker> and L<Module::Build> use some,
+while others matter to the levels above them. Some of these are specified
+by the Perl Toolchain Gang:
+
+Lancaster Concensus: L<https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md>
+
+Oslo Concensus: L<https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/oslo-consensus.md>
+
+=over 4
+
+=item NONINTERACTIVE_TESTING
+
+Assume no one is paying attention and skips prompts for distributions
+that do that correctly. C<cpan(1)> sets this to C<1> unless it already
+has a value (even if that value is false).
+
+=item PERL_MM_USE_DEFAULT
+
+Use the default answer for a prompted questions. C<cpan(1)> sets this
+to C<1> unless it already has a value (even if that value is false).
+
+=item CPAN_OPTS
+
+As with C<PERL5OPTS>, a string of additional C<cpan(1)> options to
+add to those you specify on the command line.
+
+=item CPANSCRIPT_LOGLEVEL
+
+The log level to use, with either the embedded, minimal logger or
+L<Log::Log4perl> if it is installed. Possible values are the same as
+the C<Log::Log4perl> levels: C<TRACE>, C<DEBUG>, C<INFO>, C<WARN>,
+C<ERROR>, and C<FATAL>. The default is C<INFO>.
+
+=item GIT_COMMAND
+
+The path to the C<git> binary to use for the Git features. The default
+is C</usr/local/bin/git>.
+
+=back
 
 =head2 Methods
 
@@ -216,7 +270,7 @@ and tells you about problems you might have.
 =cut
 
 use autouse Carp => qw(carp croak cluck);
-use CPAN ();
+use CPAN 1.80 (); # needs no test
 use Config;
 use autouse Cwd => qw(cwd);
 use autouse 'Data::Dumper' => qw(Dumper);
@@ -245,7 +299,7 @@ BEGIN { # most of this should be in methods
 use vars qw( @META_OPTIONS $Default %CPAN_METHODS @CPAN_OPTIONS  @option_order
        %Method_table %Method_table_index );
 
-@META_OPTIONS = qw( h v V I g G C A D O l L a r p P j: J w T);
+@META_OPTIONS = qw( h v V I g G M: C A D O l L a r p P j: J w T);
 
 $Default = 'default';
 
@@ -257,6 +311,7 @@ $Default = 'default';
        'm'      => 'make',
        't'      => 'test',
        'u'      => 'upgrade',
+       'T'      => 'notest',
        );
 @CPAN_OPTIONS = grep { $_ ne $Default } sort keys %CPAN_METHODS;
 
@@ -283,8 +338,9 @@ sub GOOD_EXIT () { 0 }
        J =>  [ \&_dump_config,       NO_ARGS, GOOD_EXIT, 'Dump configuration to stdout' ],
        F =>  [ \&_lock_lobotomy,     NO_ARGS, GOOD_EXIT, 'Turn off CPAN.pm lock files'  ],
        I =>  [ \&_load_local_lib,    NO_ARGS, GOOD_EXIT, 'Loading local::lib'           ],
+       M =>  [ \&_use_these_mirrors,    ARGS, GOOD_EXIT, 'Setting per session mirrors'  ],
+       P =>  [ \&_find_good_mirrors, NO_ARGS, GOOD_EXIT, 'Finding good mirrors'         ],
     w =>  [ \&_turn_on_warnings,  NO_ARGS, GOOD_EXIT, 'Turning on warnings'          ],
-    T =>  [ \&_turn_off_testing,  NO_ARGS, GOOD_EXIT, 'Turning off testing'          ],
 
        # options that do their one thing
        g =>  [ \&_download,          NO_ARGS, GOOD_EXIT, 'Download the latest distro'        ],
@@ -299,7 +355,6 @@ sub GOOD_EXIT () { 0 }
        L =>  [ \&_show_author_mods,     ARGS, GOOD_EXIT, 'Showing author mods'          ],
        a =>  [ \&_create_autobundle, NO_ARGS, GOOD_EXIT, 'Creating autobundle'          ],
        p =>  [ \&_ping_mirrors,      NO_ARGS, GOOD_EXIT, 'Pinging mirrors'              ],
-       P =>  [ \&_find_good_mirrors, NO_ARGS, GOOD_EXIT, 'Finding good mirrors'         ],
 
        r =>  [ \&_recompile,         NO_ARGS, GOOD_EXIT, 'Recompiling'                  ],
        u =>  [ \&_upgrade,           NO_ARGS, GOOD_EXIT, 'Running `make test`'          ],
@@ -309,6 +364,7 @@ sub GOOD_EXIT () { 0 }
        i =>  [ \&_default,              ARGS, GOOD_EXIT, 'Running `make install`'       ],
    'm' => [ \&_default,              ARGS, GOOD_EXIT, 'Running `make`'               ],
        t =>  [ \&_default,              ARGS, GOOD_EXIT, 'Running `make test`'          ],
+       T =>  [ \&_default,              ARGS, GOOD_EXIT, 'Installing with notest'       ],
        );
 
 %Method_table_index = (
@@ -364,7 +420,9 @@ sub _process_setup_options
                        );
                }
 
-       foreach my $o ( qw(F I w T) )
+       $class->_turn_off_testing if $options->{T};
+
+       foreach my $o ( qw(F I w P M) )
                {
                next unless exists $options->{$o};
                $Method_table{$o}[ $Method_table_index{code} ]->( $options->{$o} );
@@ -385,13 +443,25 @@ sub _process_setup_options
 
        my $option_count = grep { $options->{$_} } @option_order;
        no warnings 'uninitialized';
-       $option_count -= $options->{'f'}; # don't count force
+
+       # don't count options that imply installation
+       foreach my $opt ( qw(f T) ) { # don't count force or notest
+               $option_count -= $options->{$opt};
+               }
 
        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
        # if there are no options, set -i (this line fixes RT ticket 16915)
        $options->{i}++ unless $option_count;
        }
 
+sub _setup_environment {
+# should we override or set defaults? If this were a true interactive
+# session, we'd be in the CPAN shell.
+
+# https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md
+       $ENV{NONINTERACTIVE_TESTING} = 1 unless defined $ENV{NONINTERACTIVE_TESTING};
+       $ENV{PERL_MM_USE_DEFAULT}    = 1 unless defined $ENV{PERL_MM_USE_DEFAULT};
+       }
 
 =item run()
 
@@ -424,13 +494,15 @@ sub run
 
        $class->_process_setup_options( $options );
 
+       $class->_setup_environment( $options );
+
        OPTION: foreach my $option ( @option_order )
                {
                next unless $options->{$option};
 
                my( $sub, $takes_args, $description ) =
                        map { $Method_table{$option}[ $Method_table_index{$_} ] }
-                       qw( code takes_args );
+                       qw( code takes_args description );
 
                unless( ref $sub eq ref sub {} )
                        {
@@ -464,6 +536,7 @@ sub _init_logger
 
     unless( $log4perl_loaded )
         {
+        print "Loading internal null logger. Install Log::Log4perl for logging messages\n";
         $logger = Local::Null::Logger->new;
         return $logger;
         }
@@ -494,7 +567,7 @@ sub _default
        # we'll deal with 'f' (force) later, so skip it
        foreach my $option ( @CPAN_OPTIONS )
                {
-               next if $option eq 'f';
+               next if ( $option eq 'f' or $option eq 'T' );
                next unless $options->{$option};
                $switch = $option;
                last;
@@ -512,24 +585,30 @@ sub _default
        my $method = $CPAN_METHODS{$switch};
        die "CPAN.pm cannot $method!\n" unless CPAN::Shell->can( $method );
 
-       # call the CPAN::Shell method, with force if specified
+       # call the CPAN::Shell method, with force or notest if specified
        my $action = do {
-               if( $options->{f} ) { sub { CPAN::Shell->force( $method, @_ ) } }
-               else                { sub { CPAN::Shell->$method( @_ )        } }
+                  if( $options->{f} ) { sub { CPAN::Shell->force( $method, @_ )  } }
+               elsif( $options->{T} ) { sub { CPAN::Shell->notest( $method, @_ ) } }
+               else                   { sub { CPAN::Shell->$method( @_ )         } }
                };
 
        # How do I handle exit codes for multiple arguments?
-       my $errors = 0;
+       my @errors = ();
 
        foreach my $arg ( @$args )
                {
                _clear_cpanpm_output();
                $action->( $arg );
 
-               $errors += defined _cpanpm_output_indicates_failure();
+               my $error = _cpanpm_output_indicates_failure();
+               push @errors, $error if $error;
                }
 
-       $errors ? I_DONT_KNOW_WHAT_HAPPENED : HEY_IT_WORKED;
+       return do {
+               if( @errors ) { $errors[0] }
+               else { HEY_IT_WORKED }
+               };
+
        }
 
 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
@@ -571,21 +650,32 @@ sub _clear_cpanpm_output { $scalar = '' }
 
 sub _get_cpanpm_output   { $scalar }
 
+# These are lines I don't care about in CPAN.pm output. If I can
+# filter out the informational noise, I have a better chance to
+# catch the error signal
 my @skip_lines = (
        qr/^\QWarning \(usually harmless\)/,
        qr/\bwill not store persistent state\b/,
        qr(//hint//),
        qr/^\s+reports\s+/,
+       qr/^Try the command/,
+       qr/^\s+$/,
+       qr/^to find objects/,
+       qr/^\s*Database was generated on/,
+       qr/^Going to read/,
+       qr|^\s+i\s+/|,    # the i /Foo::Whatever/ line when it doesn't know
        );
 
 sub _get_cpanpm_last_line
        {
        my $fh;
-       if ($] < 5.008) {
-               $fh = IO::Scalar->new(\ $scalar);
-        } else {
-               eval q{open $fh, "<", \\ $scalar;};
-        }
+
+       if( $] < 5.008 ) {
+               $fh = IO::Scalar->new( \ $scalar );
+               }
+       else {
+               eval q{ open $fh, '<', \\ $scalar; };
+               }
 
        my @lines = <$fh>;
 
@@ -611,13 +701,16 @@ sub _get_cpanpm_last_line
 
 BEGIN {
 my $epic_fail_words = join '|',
-       qw( Error stop(?:ping)? problems force not unsupported fail(?:ed)? );
+       qw( Error stop(?:ping)? problems force not unsupported
+               fail(?:ed)? Cannot\s+install );
 
 sub _cpanpm_output_indicates_failure
        {
        my $last_line = _get_cpanpm_last_line();
 
        my $result = $last_line =~ /\b(?:$epic_fail_words)\b/i;
+       return A_MODULE_FAILED_TO_INSTALL if $last_line =~ /\b(?:Cannot\s+install)\b/i;
+
        $result || ();
        }
 }
@@ -817,7 +910,6 @@ sub _is_pingable_scheme {
 sub _find_good_mirrors {
        require CPAN::Mirrors;
 
-       my $mirrors = CPAN::Mirrors->new;
        my $file = do {
                my $file = 'MIRRORED.BY';
                my $local_path = File::Spec->catfile(
@@ -830,11 +922,10 @@ sub _find_good_mirrors {
                        $local_path;
                        }
                };
-
-       $mirrors->parse_mirrored_by( $file );
+       my $mirrors = CPAN::Mirrors->new( $file );
 
        my @mirrors = $mirrors->best_mirrors(
-               how_many   => 3,
+               how_many   => 5,
                verbose    => 1,
                );
 
@@ -843,6 +934,9 @@ sub _find_good_mirrors {
                _print_ping_report( $mirror->http );
                }
 
+       $CPAN::Config->{urllist} = [
+               map { $_->http } @mirrors
+               ];
        }
 
 sub _print_inc_dir_report
@@ -859,9 +953,10 @@ sub _print_ping_report
        my( $mirror ) = @_;
 
        my $rtt = eval { _get_ping_report( $mirror ) };
+       my $result = $rtt ? sprintf "+ (%4d ms)", $rtt * 1000 : '!';
 
        $logger->info(
-               sprintf "\t%s (%4d ms) %s", $rtt  ? '+' : '!',  $rtt * 1000, $mirror
+               sprintf "\t%s %s", $result, $mirror
                );
        }
 
@@ -908,6 +1003,19 @@ sub _load_local_lib # -I
        return HEY_IT_WORKED;
        }
 
+sub _use_these_mirrors # -M
+       {
+       $logger->debug( "Setting per session mirrors" );
+       unless( $_[0] ) {
+               $logger->die( "The -M switch requires a comma-separated list of mirrors" );
+               }
+
+       $CPAN::Config->{urllist} = [ split /,/, $_[0] ];
+
+       $logger->debug( "Mirrors are @{$CPAN::Config->{urllist}}" );
+
+       }
+
 sub _create_autobundle
        {
        $logger->info(
@@ -1157,9 +1265,9 @@ sub _show_Details
                print "$arg\n", "-" x 73, "\n\t";
                print join "\n\t",
                        $module->description ? $module->description : "(no description)",
-                       $module->cpan_file,
-                       $module->inst_file,
-                       'Installed: ' . $module->inst_version,
+                       $module->cpan_file ? $module->cpan_file : "(no cpanfile)",
+                       $module->inst_file ? $module->inst_file :"(no installation file)" ,
+                       'Installed: ' . ($module->inst_version ? $module->inst_version : "not installed"),
                        'CPAN:      ' . $module->cpan_version . '  ' .
                                ($module->uptodate ? "" : "Not ") . "up to date",
                        $author->fullname . " (" . $module->userid . ")",
@@ -1306,7 +1414,7 @@ sub _eval_version
 sub _path_to_module
        {
        my( $inc, $path ) = @_;
-       return if length $path< length $inc;
+       return if length $path < length $inc;
 
        my $module_path = substr( $path, length $inc );
        $module_path =~ s/\.pm\z//;
@@ -1348,14 +1456,10 @@ correctly if Log4perl is not installed.
 * When I capture CPAN.pm output, I need to check for errors and
 report them to the user.
 
-* Support local::lib
-
 * Warnings switch
 
 * Check then exit
 
-* ping mirrors support
-
 * no test option
 
 =head1 BUGS
@@ -1364,14 +1468,16 @@ report them to the user.
 
 =head1 SEE ALSO
 
-Most behaviour, including environment variables and configuration,
-comes directly from CPAN.pm.
+L<CPAN>, L<App::cpanminus>
 
 =head1 SOURCE AVAILABILITY
 
-This code is in Github:
+This code is in Github in the CPAN.pm repository:
+
+       https://github.com/andk/cpanpm
 
-       git://github.com/briandfoy/cpan_script.git
+The source used to be tracked separately in another GitHub repo,
+but the canonical source is now in the above repo.
 
 =head1 CREDITS
 
@@ -1391,7 +1497,7 @@ brian d foy, C<< <bdfoy@cpan.org> >>
 
 =head1 COPYRIGHT
 
-Copyright (c) 2001-2013, brian d foy, All Rights Reserved.
+Copyright (c) 2001-2014, brian d foy, All Rights Reserved.
 
 You may redistribute this under the same terms as Perl itself.
 
index 4ed4b6c..93ad482 100644 (file)
@@ -2,7 +2,7 @@
 # vim: ts=4 sts=4 sw=4:
 use strict;
 package CPAN;
-$CPAN::VERSION = '2.05';
+$CPAN::VERSION = '2.10';
 $CPAN::VERSION =~ s/_//;
 
 # we need to run chdir all over and we would get at wrong libraries
@@ -919,6 +919,9 @@ sub getcwd {Cwd::getcwd();}
 #-> sub CPAN::fastcwd ;
 sub fastcwd {Cwd::fastcwd();}
 
+#-> sub CPAN::getdcwd ;
+sub getdcwd {Cwd::getdcwd();}
+
 #-> sub CPAN::backtickcwd ;
 sub backtickcwd {my $cwd = `cwd`; chomp $cwd; $cwd}
 
@@ -1020,6 +1023,18 @@ sub has_usable {
                             },
                            ],
 
+               'CPAN::Meta::Requirements' => [
+                            sub {
+                                require CPAN::Meta::Requirements;
+                                unless (CPAN::Version->vge(CPAN::Meta::Requirements->VERSION, 2.120920)) {
+                                    for ("Will not use CPAN::Meta::Requirements, need version 2.120920\n") {
+                                        $CPAN::Frontend->mywarn($_);
+                                        die $_;
+                                    }
+                                }
+                            },
+                           ],
+
                LWP => [ # we frequently had "Can't locate object
                         # method "new" via package "LWP::UserAgent" at
                         # (eval 69) line 2006
@@ -1103,6 +1118,20 @@ sub has_usable {
     return $HAS_USABLE->{$mod} = 1;
 }
 
+sub frontend {
+    shift;
+    $CPAN::Frontend = shift if @_;
+    $CPAN::Frontend;
+}
+
+sub use_inst {
+    my ($self, $module) = @_;
+
+    unless ($self->has_inst($module)) {
+        $self->frontend->mydie("$module not installed, cannot continue");
+    }
+}
+
 #-> sub CPAN::has_inst
 sub has_inst {
     my($self,$mod,$message) = @_;
@@ -1616,7 +1645,7 @@ in html or plain text format.
 =item C<ls> globbing_expression
 
 The first form lists all distribution files in and below an author's
-CPAN directory as stored in the CHECKUMS files distributed on
+CPAN directory as stored in the CHECKSUMS files distributed on
 CPAN. The listing recurses into subdirectories.
 
 The second form limits or expands the output with shell
@@ -1865,7 +1894,7 @@ separated):
 
 Modules know their associated Distribution objects. They always refer
 to the most recent official release. Developers may mark their releases
-as unstable development versions (by inserting an unserscore into the
+as unstable development versions (by inserting an underscore into the
 module version number which will also be reflected in the distribution
 name when you run 'make dist'), so the really hottest and newest
 distribution is not always the default.  If a module Foo circulates
@@ -1923,6 +1952,39 @@ by the cpan shell B<only when surrounded by whitespace>. So piping to
 pager or redirecting output into a file works somewhat as in a normal
 shell, with the stipulation that you must type extra spaces.
 
+=head2 Plugin support ***EXPERIMENTAL***
+
+Plugins are objects that implement any of currently eight methods:
+
+  pre_get
+  post_get
+  pre_make
+  post_make
+  pre_test
+  post_test
+  pre_install
+  post_install
+
+The C<plugin_list> configuration parameter holds a list of strings of
+the form
+
+  Modulename=arg0,arg1,arg2,arg3,...
+
+At run time, each listed plugin is instantiated as a singleton object
+by running the equivalent of this pseudo code:
+
+  my $plugin = <string representation from config>;
+  <generate Modulename and arguments from $plugin>;
+  my $p = $instance{$plugin} ||= Modulename->new($arg0,$arg1,...);
+
+The generated singletons are kept around from instantiation until the
+end of the shell session. <plugin_list> can be reconfigured at any
+time at run time. While the cpan shell is running, it checks all
+activated plugins at each of the 8 reference points listed above and
+runs the respective method if it is implemented for that object. The
+method is called with the active CPAN::Distribution object passed in
+as an argument.
+
 =head1 CONFIGURATION
 
 When the CPAN module is used for the first time, a configuration
@@ -2091,6 +2153,8 @@ currently defined:
   patch              path to external prg
   patches_dir        local directory containing patch files
   perl5lib_verbosity verbosity level for PERL5LIB additions
+  plugin_list        list of active hooks (see Plugin support above
+                     and the CPAN::Plugin module)
   prefer_external_tar
                      per default all untar operations are done with
                      Archive::Tar; by setting this variable to true
@@ -2202,6 +2266,10 @@ Calls Cwd::getcwd
 
 Calls Cwd::fastcwd
 
+=item getdcwd
+
+Calls Cwd::getdcwd
+
 =item backtickcwd
 
 Calls the external command cwd.
@@ -2272,8 +2340,7 @@ C<ask/no>, CPAN.pm asks the user and sets the default accordingly.
 
 =head2 Configuration for individual distributions (I<Distroprefs>)
 
-(B<Note:> This feature has been introduced in CPAN.pm 1.8854 and is
-still considered beta quality)
+(B<Note:> This feature has been introduced in CPAN.pm 1.8854)
 
 Distributions on CPAN usually behave according to what we call the
 CPAN mantra. Or since the advent of Module::Build we should talk about
@@ -3373,6 +3440,11 @@ loaded:
 
 See the source for details.
 
+=item use_inst($module)
+
+Similary to L<has_inst()> tries to load optional library but also dies if
+library is not available
+
 =item has_usable($module)
 
 Returns true if the module is installed and in a usable state. Only
@@ -3385,6 +3457,12 @@ The constructor for all the singletons used to represent modules,
 distributions, authors, and bundles. If the object already exists, this
 method returns the object; otherwise, it calls the constructor.
 
+=item frontend()
+
+=item frontend($new_frontend)
+
+Getter/setter for frontend object. Method just allows to subclass CPAN.pm.
+
 =back
 
 =head1 SECURITY
index 9a08707..092b781 100644 (file)
@@ -4,12 +4,37 @@ package CPAN::Distribution;
 use strict;
 use Cwd qw(chdir);
 use CPAN::Distroprefs;
-use CPAN::Meta::Requirements 2;
 use CPAN::InfoObj;
 use File::Path ();
 @CPAN::Distribution::ISA = qw(CPAN::InfoObj);
 use vars qw($VERSION);
-$VERSION = "2.02";
+$VERSION = "2.04";
+
+# no prepare, because prepare is not a command on the shell command line
+# TODO: clear instance cache on reload
+my %instance;
+for my $method (qw(get make test install)) {
+    no strict 'refs';
+    for my $prefix (qw(pre post)) {
+        my $hookname = sprintf "%s_%s", $prefix, $method;
+        *$hookname = sub {
+            my($self) = @_;
+            for my $plugin (@{$CPAN::Config->{plugin_list}}) {
+                my($plugin_proper,$args) = split /=/, $plugin, 2;
+                $args = "" unless defined $args;
+                if ($CPAN::META->has_inst($plugin_proper)){
+                    my @args = split /,/, $args;
+                    $instance{$plugin} ||= $plugin_proper->new(@args);
+                    if ($instance{$plugin}->can($hookname)) {
+                        $instance{$plugin}->$hookname($self);
+                    }
+                } else {
+                    $CPAN::Frontend->mydie("Plugin '$plugin_proper' not found");
+                }
+            }
+        };
+    }
+}
 
 # Accessors
 sub cpan_comment {
@@ -180,6 +205,7 @@ sub color_cmd_tmps {
     return if exists $self->{incommandcolor}
         && $color==1
         && $self->{incommandcolor}==$color;
+    $CPAN::MAX_RECURSION||=0; # silence 'once' warnings
     if ($depth>=$CPAN::MAX_RECURSION) {
         die(CPAN::Exception::RecursiveDependency->new($ancestors));
     }
@@ -187,11 +213,10 @@ sub color_cmd_tmps {
     my $prereq_pm = $self->prereq_pm;
     if (defined $prereq_pm) {
         # XXX also optional_req & optional_breq? -- xdg, 2012-04-01
+        # A: no, optional deps may recurse -- ak, 2014-05-07
       PREREQ: for my $pre (
                 keys %{$prereq_pm->{requires}||{}},
                 keys %{$prereq_pm->{build_requires}||{}},
-                keys %{$prereq_pm->{opt_requires}||{}},
-                keys %{$prereq_pm->{opt_build_requires}||{}}
             ) {
             next PREREQ if $pre eq "perl";
             my $premo;
@@ -332,6 +357,8 @@ sub shortcut_get {
 sub get {
     my($self) = @_;
 
+    $self->pre_get();
+
     $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
     if (my $goto = $self->prefs->{goto}) {
         return $self->goto($goto);
@@ -379,6 +406,9 @@ sub get {
     }
     return unless $self->patch;
     $self->store_persistent_state;
+
+    $self->post_get();
+
     return 1; # success
 }
 
@@ -648,6 +678,11 @@ sub parse_meta_yml {
     }
     $self->debug(sprintf("yaml[%s]", $early_yaml || 'UNDEF')) if $CPAN::DEBUG;
     $self->debug($early_yaml) if $CPAN::DEBUG && $early_yaml;
+    if (!ref $early_yaml or ref $early_yaml ne "HASH"){
+        # fix rt.cpan.org #95271
+        $CPAN::Frontend->mywarn("The content of '$yaml' is not a HASH reference. Cannot use it.\n");
+        return {};
+    }
     return $early_yaml || undef;
 }
 
@@ -804,8 +839,16 @@ sub store_persistent_state {
                                     "will not store persistent state\n");
         return;
     }
-    unless (   Cwd::realpath(File::Spec->catdir($dir, File::Spec->updir()) )
-            eq Cwd::realpath($CPAN::Config->{build_dir}                  ) ) {
+    # self-build-dir
+    my $sbd = Cwd::realpath(
+        File::Spec->catdir($dir,                       File::Spec->updir ())
+                           );
+    # config-build-dir
+    my $cbd = Cwd::realpath(
+        # the catdir is a workaround for bug https://rt.cpan.org/Ticket/Display.html?id=101283
+        File::Spec->catdir($CPAN::Config->{build_dir}, File::Spec->curdir())
+    );
+    unless ($sbd eq $cbd) {
         $CPAN::Frontend->mywarnonce("Directory '$dir' not below $CPAN::Config->{build_dir}, ".
                                     "will not store persistent state\n");
         return;
@@ -1835,8 +1878,8 @@ sub prepare {
 
     $self->debug("Changed directory to $builddir") if $CPAN::DEBUG;
 
-    local $ENV{PERL_AUTOINSTALL} = $ENV{PERL_AUTOINSTALL};
-    local $ENV{PERL_EXTUTILS_AUTOINSTALL} = $ENV{PERL_EXTUTILS_AUTOINSTALL};
+    local $ENV{PERL_AUTOINSTALL} = $ENV{PERL_AUTOINSTALL} || '';
+    local $ENV{PERL_EXTUTILS_AUTOINSTALL} = $ENV{PERL_EXTUTILS_AUTOINSTALL} || '';
     $self->choose_MM_or_MB
         or return;
 
@@ -1856,8 +1899,8 @@ sub prepare {
     if ($self->prefs->{pl}) {
         $pl_commandline = $self->prefs->{pl}{commandline};
     }
-    local $ENV{PERL} = $ENV{PERL};
-    local $ENV{PERL5_CPAN_IS_EXECUTING} = $ENV{PERL5_CPAN_IS_EXECUTING};
+    local $ENV{PERL} = defined $ENV{PERL}? $ENV{PERL} : $^X;
+    local $ENV{PERL5_CPAN_IS_EXECUTING} = $ENV{PERL5_CPAN_IS_EXECUTING} || '';
     local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
     local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
     if ($pl_commandline) {
@@ -2036,6 +2079,8 @@ sub shortcut_make {
 sub make {
     my($self) = @_;
 
+    $self->pre_make();
+
     $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
     if (my $goto = $self->prefs->{goto}) {
         return $self->goto($goto);
@@ -2119,10 +2164,10 @@ is part of the perl-%s distribution. To install that, you need to run
 
     my %env;
     while (my($k,$v) = each %ENV) {
-        next unless defined $v;
-        $env{$k} = $v;
+        next if defined $v;
+        $env{$k} = '';
     }
-    local %ENV = %env;
+    local @ENV{keys %env} = values %env;
     my $satisfied = eval { $self->satisfy_requires };
     return $self->goodbye($@) if $@;
     return unless $satisfied ;
@@ -2130,12 +2175,19 @@ is part of the perl-%s distribution. To install that, you need to run
         delete $self->{force_update};
         return;
     }
+
+    # need to chdir again, because $self->satisfy_requires might change the directory
+    unless (chdir $builddir) {
+        $CPAN::Frontend->mywarn("Couldn't chdir to '$builddir': $!");
+        return;
+    }
+
     my $system;
     my $make_commandline;
     if ($self->prefs->{make}) {
         $make_commandline = $self->prefs->{make}{commandline};
     }
-    local $ENV{PERL} = $ENV{PERL};
+    local $ENV{PERL} = defined $ENV{PERL}? $ENV{PERL} : $^X;
     local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
     local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
     if ($make_commandline) {
@@ -2200,6 +2252,9 @@ is part of the perl-%s distribution. To install that, you need to run
         $CPAN::Frontend->mywarn("  $system -- NOT OK\n");
     }
     $self->store_persistent_state;
+
+    $self->post_make();
+
     return !! $system_ok;
 }
 
@@ -2733,6 +2788,8 @@ sub _feature_depends {
 sub prereqs_for_slot {
     my($self,$slot) = @_;
     my($prereq_pm);
+    $CPAN::META->has_usable("CPAN::Meta::Requirements")
+        or die "CPAN::Meta::Requirements not available";
     my $merged = CPAN::Meta::Requirements->new;
     my $prefs_depends = $self->prefs->{depends}||{};
     my $feature_depends = $self->_feature_depends();
@@ -2795,6 +2852,8 @@ sub unsat_prereq {
     my($self,$slot) = @_;
     my($merged_hash,$prereq_pm) = $self->prereqs_for_slot($slot);
     my(@need);
+    $CPAN::META->has_usable("CPAN::Meta::Requirements")
+        or die "CPAN::Meta::Requirements not available";
     my $merged = CPAN::Meta::Requirements->from_string_hash($merged_hash);
     my @merged = $merged->required_modules;
     CPAN->debug("all merged_prereqs[@merged]") if $CPAN::DEBUG;
@@ -3145,8 +3204,9 @@ sub prereq_pm {
         return;
     }
     # no Makefile/Build means configuration aborted, so don't look for prereqs
-    return unless   -f File::Spec->catfile($self->{build_dir},'Makefile')
-                ||  -f File::Spec->catfile($self->{build_dir},'Build');
+    my $makefile  = File::Spec->catfile($self->{build_dir}, $^O eq 'VMS' ? 'descrip.mms' : 'Makefile');
+    my $buildfile = File::Spec->catfile($self->{build_dir}, $^O eq 'VMS' ? 'Build.com' : 'Build');
+    return unless   -f $makefile || -f $buildfile;
     CPAN->debug(sprintf "writemakefile[%s]modulebuild[%s]",
                 $self->{writemakefile}||"",
                 $self->{modulebuild}||"",
@@ -3166,6 +3226,7 @@ sub prereq_pm {
 
         # XXX assemble optional_req && optional_breq from recommends/suggests
         # depending on corresponding policies -- xdg, 2012-04-01
+        CPAN->use_inst("CPAN::Meta::Requirements");
         my $opt_runtime = CPAN::Meta::Requirements->new;
         my $opt_build   = CPAN::Meta::Requirements->new;
         if ( $CPAN::Config->{recommends_policy} ) {
@@ -3413,6 +3474,8 @@ sub _exe_files {
 sub test {
     my($self) = @_;
 
+    $self->pre_test();
+
     $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
     if (my $goto = $self->prefs->{goto}) {
         return $self->goto($goto);
@@ -3591,6 +3654,8 @@ sub test {
     }
     $self->store_persistent_state;
 
+    $self->post_test();
+
     return $self->{force_update} ? 1 : !! $tests_ok;
 }
 
@@ -3815,6 +3880,8 @@ sub shortcut_install {
 sub install {
     my($self) = @_;
 
+    $self->pre_install();
+
     $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
     if (my $goto = $self->prefs->{goto}) {
         return $self->goto($goto);
@@ -3867,7 +3934,6 @@ sub install {
                           $install_directive,
                           $CPAN::Config->{mbuild_install_arg},
                          );
-        
     } else {
         my($make_install_make_command) = $self->_make_install_make_command();
         $system = sprintf("%s install %s",
@@ -3911,8 +3977,7 @@ sub install {
     local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
     local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
 
-    my($pipe) = FileHandle->new("$system $stderr |") || Carp::croak
-("Can't execute $system: $!");
+    my($pipe) = FileHandle->new("$system $stderr |") || Carp::croak("Can't execute $system: $!");
     my($makeout) = "";
     while (<$pipe>) {
         print $_; # intentionally NOT use Frontend->myprint because it
@@ -3954,6 +4019,9 @@ sub install {
     }
     delete $self->{force_update};
     $self->store_persistent_state;
+
+    $self->post_install();
+
     return !! $close_ok;
 }
 
index d1a8eef..918e009 100644 (file)
@@ -10,7 +10,7 @@ use File::Path ();
 use File::Spec ();
 use CPAN::Mirrors ();
 use vars qw($VERSION $auto_config);
-$VERSION = "5.5306";
+$VERSION = "5.5307";
 
 =head1 NAME
 
@@ -198,6 +198,7 @@ alternatives can be configured according to the following table:
     cwd         Cwd::cwd
     getcwd      Cwd::getcwd
     fastcwd     Cwd::fastcwd
+    getdcwd     Cwd::getdcwd
     backtickcwd external command cwd
 
 Preferred method for determining the current working directory?
@@ -1134,6 +1135,17 @@ sub init {
     }
 
     #
+    #= how plugins work
+    #
+
+    # XXX MISSING: my_array_prompt to be used with plugins. We did something like this near
+    #     git log -p fd68f8f5e33f4cecea4fdb7abc5ee19c12f138f0..test-notest-test-dependency
+    # Need to do similar steps for plugin_list. As long as we do not support it here, people
+    # must use the cpan shell prompt to write something like
+    #     o conf plugin_list push CPAN::Plugin::Specfile=dir,/tmp/foo-20141013,...
+    #     o conf commit
+
+    #
     #= how FTP works
     #
 
@@ -1144,7 +1156,7 @@ sub init {
     #
 
     my_prompt_loop(getcwd => 'cwd', $matcher,
-                   'cwd|getcwd|fastcwd|backtickcwd');
+                   'cwd|getcwd|fastcwd|getdcwd|backtickcwd');
 
     #
     #= the CPAN shell itself (prompt, color)
index 097c67d..96a9880 100644 (file)
@@ -4,11 +4,11 @@ package CPAN::HTTP::Credentials;
 use strict;
 use vars qw($USER $PASSWORD $PROXY_USER $PROXY_PASSWORD);
 
-$CPAN::HTTP::Credentials::VERSION = $CPAN::HTTP::Credentials::VERSION = "1.9600";
+$CPAN::HTTP::Credentials::VERSION = $CPAN::HTTP::Credentials::VERSION = "1.9601";
 
 sub clear_credentials {
-   _clear_non_proxy_credentials();
-   _clear_proxy_credentials();
+   clear_non_proxy_credentials();
+   clear_proxy_credentials();
 }
 
 sub clear_non_proxy_credentials {
index a138128..e596cbc 100644 (file)
@@ -12,7 +12,7 @@ CPAN::HandleConfig - internal configuration handling for CPAN.pm
 
 =cut 
 
-$VERSION = "5.5005"; # see also CPAN::Config::VERSION at end of file
+$VERSION = "5.5006"; # see also CPAN::Config::VERSION at end of file
 
 %can = (
         commit   => "Commit changes to disk",
@@ -88,6 +88,7 @@ $VERSION = "5.5005"; # see also CPAN::Config::VERSION at end of file
      "patch",
      "patches_dir",
      "perl5lib_verbosity",
+     "plugin_list",
      "prefer_external_tar",
      "prefer_installer",
      "prefs_dir",
@@ -153,7 +154,7 @@ sub edit {
         # one day I used randomize_urllist for a boolean, so we must
         # list them explicitly --ak
         if (0) {
-        } elsif ($o =~ /^(wait_list|urllist|dontload_list)$/) {
+        } elsif ($o =~ /^(wait_list|urllist|dontload_list|plugin_list)$/) {
 
             #
             # ARRAYS
@@ -768,7 +769,7 @@ sub prefs_lookup {
 
     use strict;
     use vars qw($AUTOLOAD $VERSION);
-    $VERSION = "5.5005";
+    $VERSION = "5.5006";
 
     # formerly CPAN::HandleConfig was known as CPAN::Config
     sub AUTOLOAD { ## no critic
index 2c0c71a..bf1226c 100644 (file)
@@ -7,7 +7,7 @@ use strict;
 use vars qw(
             $VERSION
 );
-$VERSION = "5.5001";
+$VERSION = "5.5002";
 
 BEGIN {
     # alarm() is not implemented in perl 5.6.x and earlier under Windows
@@ -543,9 +543,18 @@ sub uptodate {
 # returns true if installed in privlib or archlib
 sub _in_priv_or_arch {
     my($self,$inst_file) = @_;
-    for my $confdirname (qw(archlibexp privlibexp)) {
-        my $confdir = $Config::Config{$confdirname};
-        if ($confdir eq substr($inst_file,0,length($confdir))) {
+    foreach my $pair (
+        [qw(sitearchexp archlibexp)],
+        [qw(sitelibexp privlibexp)]
+    ) {
+        my ($site, $priv) = @Config::Config{@$pair};
+        if ($^O eq 'VMS') {
+            for my $d ($site, $priv) { $d = VMS::Filespec::unixify($d) };
+        }
+        s!/*$!!g foreach $site, $priv;
+        next if $site eq $priv;
+
+        if ($priv eq substr($inst_file,0,length($priv))) {
             return 1;
         }
     }
diff --git a/cpan/CPAN/lib/CPAN/Plugin.pm b/cpan/CPAN/lib/CPAN/Plugin.pm
new file mode 100644 (file)
index 0000000..646d86b
--- /dev/null
@@ -0,0 +1,145 @@
+package CPAN::Plugin;
+
+use strict;
+use warnings;
+
+our $VERSION = '0.95';
+
+require CPAN;
+
+######################################################################
+
+sub new {                                # ;
+    my ($class, %params) = @_;
+
+    my $self = +{
+        (ref $class ? (%$class) : ()),
+        %params,
+    };
+
+    $self = bless $self, ref $class ? ref $class : $class;
+
+    unless (ref $class) {
+        local $_;
+        no warnings 'once';
+        $CPAN::META->use_inst ($_) for $self->plugin_requires;
+    }
+
+    $self;
+}
+
+######################################################################
+sub plugin_requires {                    # ;
+}
+
+######################################################################
+sub distribution_object {                # ;
+    my ($self) = @_;
+    $self->{distribution_object};
+}
+
+######################################################################
+sub distribution {                       # ;
+    my ($self) = @_;
+
+    my $distribution = $self->distribution_object->id;
+    CPAN::Shell->expand("Distribution",$distribution)
+      or $self->frontend->mydie("Unknowns distribution '$distribution'\n");
+}
+
+######################################################################
+sub distribution_info {                  # ;
+    my ($self) = @_;
+
+    CPAN::DistnameInfo->new ($self->distribution->id);
+}
+
+######################################################################
+sub build_dir {                          # ;
+    my ($self) = @_;
+
+    my $build_dir = $self->distribution->{build_dir}
+      or $self->frontend->mydie("Distribution has not been built yet, cannot proceed");
+}
+
+######################################################################
+sub is_xs {                              #
+    my ($self) = @_;
+
+    my @xs = glob File::Spec->catfile ($self->build_dir, '*.xs'); # quick try
+
+    unless (@xs) {
+        require ExtUtils::Manifest;
+        my $manifest_file = File::Spec->catfile ($self->build_dir, "MANIFEST");
+        my $manifest = ExtUtils::Manifest::maniread($manifest_file);
+        @xs = grep /\.xs$/, keys %$manifest;
+    }
+
+    scalar @xs;
+}
+
+######################################################################
+
+package CPAN::Plugin;
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+CPAN::Plugin - Base class for CPAN shell extensions
+
+=head1 SYNOPSIS
+
+   package My::Plugin;
+   use base 'CPAN::Plugin';
+
+   sub post_test {
+     my ($self, $distribution_object) = @_;
+     $self = $self->new (distribution_object => $distribution_object);
+     ...;
+   }
+
+=head1 DESCRIPTION
+
+=head2 Alpha Status
+
+The plugin system in the CPAN shell was introduced in version 2.07 and
+is still considered experimental.
+
+=head2 How Plugins work?
+
+See L<CPAN/"Plugin support">.
+
+=head1 METHODS
+
+=head2 plugin_requires
+
+returns list of packages given plugin requires for functionality.
+This list is evaluated using C<CPAN->use_inst> method.
+
+=head2 distribution_object
+
+Get current distribution object.
+
+=head2 distribution
+
+=head2 distribution_info
+
+=head2 build_dir
+
+Simple delegatees for misc parameters derived from distribution
+
+=head2 is_xs
+
+Predicate to detect whether package contains XS.
+
+=head1 AUTHOR
+
+Branislav Zahradnik <barney@cpan.org>
+
+=cut
+
diff --git a/cpan/CPAN/lib/CPAN/Plugin/Specfile.pm b/cpan/CPAN/lib/CPAN/Plugin/Specfile.pm
new file mode 100644 (file)
index 0000000..f63d322
--- /dev/null
@@ -0,0 +1,258 @@
+=head1 NAME
+
+CPAN::Plugin::Specfile - Proof of concept implementation of a trivial CPAN::Plugin
+
+=head1 SYNOPSIS
+
+  # once in the cpan shell
+  o conf plugin_list push CPAN::Plugin::Specfile
+
+  # make permanent
+  o conf commit
+
+  # any time in the cpan shell to write a spec file
+  test Acme::Meta
+
+  # disable
+  o conf plugin_list pop
+
+=head1 DESCRIPTION
+
+Implemented as a post-test hook, this plugin writes a specfile after
+every successful test run. The content is also written to the
+terminal.
+
+As a side effect, the timestamps of the written specfiles reflect the
+linear order of all dependencies.
+
+B<WARNING:> This code is just a small demo how to use the plugin
+system of the CPAN shell, not a full fledged spec file writer. Do not
+expect new features in this plugin.
+
+=head2 OPTIONS
+
+The target directory to store the spec files in can be set using C<dir>
+as in
+
+  o conf plugin_list push CPAN::Plugin::Specfile=dir,/tmp/specfiles-000042
+
+The default directory for this is the
+C<plugins/CPAN::Plugin::Specfile> directory in the I<cpan_home>
+directory.
+
+=head1 AUTHOR
+
+Andreas Koenig <andk@cpan.org>, Branislav Zahradnik <barney@cpan.org>
+
+=cut
+
+package CPAN::Plugin::Specfile;
+
+our $VERSION = '0.01';
+
+use File::Path;
+use File::Spec;
+
+sub __accessor {
+    my ($class, $key) = @_;
+    no strict 'refs';
+    *{$class . '::' . $key} = sub {
+        my $self = shift;
+        if (@_) {
+            $self->{$key} = shift;
+        }
+        return $self->{$key};
+    };
+}
+BEGIN { __PACKAGE__->__accessor($_) for qw(dir dir_default) }
+
+sub new {
+    my($class, @rest) = @_;
+    my $self = bless {}, $class;
+    while (my($arg,$val) = splice @rest, 0, 2) {
+        $self->$arg($val);
+    }
+    $self->dir_default(File::Spec->catdir($CPAN::Config->{cpan_home},"plugins",__PACKAGE__));
+    $self;
+}
+
+sub post_test {
+    my $self = shift;
+    my $distribution_object = shift;
+    my $distribution = $distribution_object->pretty_id;
+    unless ($CPAN::META->has_inst("CPAN::DistnameInfo")){
+        $CPAN::Frontend->mydie("CPAN::DistnameInfo not installed; cannot continue");
+    }
+    my $d = CPAN::Shell->expand("Distribution",$distribution)
+        or $CPAN::Frontend->mydie("Unknowns distribution '$distribution'\n");
+    my $build_dir = $d->{build_dir} or $CPAN::Frontend->mydie("Distribution has not been built yet, cannot proceed");
+    my %contains = map {($_ => undef)} $d->containsmods;
+    my @m;
+    my $width = 16;
+    my $header = sub {
+        my($header,$value) = @_;
+        push @m, sprintf("%-s:%*s%s\n", $header, $width-length($header), "", $value);
+    };
+    my $dni = CPAN::DistnameInfo->new($distribution);
+    my $dist = $dni->dist;
+    my $summary = CPAN::Shell->_guess_manpage($d,\%contains,$dist);
+    $header->("Name", "perl-$dist");
+    my $version = $dni->version;
+    $header->("Version", $version);
+    $header->("Release", "1%{?dist}");
+#Summary:        Template processing system
+#Group:          Development/Libraries
+#License:        GPL+ or Artistic
+#URL:            http://www.template-toolkit.org/
+#Source0:        http://search.cpan.org/CPAN/authors/id/A/AB/ABW/Template-Toolkit-%{version}.tar.gz
+#Patch0:         Template-2.22-SREZIC-01.patch
+#BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+    for my $h_tuple
+        ([Summary    => $summary],
+         [Group      => "Development/Libraries"],
+         [License    =>],
+         [URL        =>],
+         [BuildRoot  => "%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)"],
+         [Requires   => "perl(:MODULE_COMPAT_%(eval \"`%{__perl} -V:version`\"; echo \$version))"],
+        ) {
+        my($h,$v) = @$h_tuple;
+        $v = "unknown" unless defined $v;
+        $header->($h, $v);
+    }
+    $header->("Source0", sprintf(
+                                 "http://search.cpan.org/CPAN/authors/id/%s/%s/%s",
+                                 substr($distribution,0,1),
+                                 substr($distribution,0,2),
+                                 $distribution
+                                ));
+    require POSIX;
+    my @xs = glob "$build_dir/*.xs"; # quick try
+    unless (@xs) {
+        require ExtUtils::Manifest;
+        my $manifest_file = "$build_dir/MANIFEST";
+        my $manifest = ExtUtils::Manifest::maniread($manifest_file);
+        @xs = grep /\.xs$/, keys %$manifest;
+    }
+    if (! @xs) {
+        $header->('BuildArch', 'noarch');
+    }
+    for my $k (sort keys %contains) {
+        my $m = CPAN::Shell->expand("Module",$k);
+        my $v = $contains{$k} = $m->cpan_version;
+        my $vspec = $v eq "undef" ? "" : " = $v";
+        $header->("Provides", "perl($k)$vspec");
+    }
+    if (my $prereq_pm = $d->{prereq_pm}) {
+        my %req;
+        for my $reqkey (keys %$prereq_pm) {
+            while (my($k,$v) = each %{$prereq_pm->{$reqkey}}) {
+                $req{$k} = $v;
+            }
+        }
+        if (-e "$build_dir/Build.PL" && ! exists $req{"Module::Build"}) {
+            $req{"Module::Build"} = 0;
+        }
+        for my $k (sort keys %req) {
+            next if $k eq "perl";
+            my $v = $req{$k};
+            my $vspec = defined $v && length $v && $v > 0 ? " >= $v" : "";
+            $header->(BuildRequires => "perl($k)$vspec");
+            next if $k =~ /^(Module::Build)$/; # MB is always only a
+                                               # BuildRequires; if we
+                                               # turn it into a
+                                               # Requires, then we
+                                               # would have to make it
+                                               # a BuildRequires
+                                               # everywhere we depend
+                                               # on *one* MB built
+                                               # module.
+            $header->(Requires => "perl($k)$vspec");
+        }
+    }
+    push @m, "\n%define _use_internal_dependency_generator     0
+%define __find_requires %{nil}
+%define __find_provides %{nil}
+";
+    push @m, "\n%description\n%{summary}.\n";
+    push @m, "\n%prep\n%setup -q -n $dist-%{version}\n";
+    if (-e "$build_dir/Build.PL") {
+        # see http://www.redhat.com/archives/rpm-list/2002-July/msg00110.html about RPM_BUILD_ROOT vs %{buildroot}
+        push @m, <<'EOF';
+
+%build
+%{__perl} Build.PL --installdirs=vendor --libdoc installvendorman3dir
+./Build
+
+%install
+rm -rf $RPM_BUILD_ROOT
+./Build install destdir=$RPM_BUILD_ROOT create_packlist=0
+find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \;
+%{_fixperms} $RPM_BUILD_ROOT/*
+
+%check
+./Build test
+EOF
+    } elsif (-e "$build_dir/Makefile.PL") {
+        push @m, <<'EOF';
+
+%build
+%{__perl} Makefile.PL INSTALLDIRS=vendor
+make %{?_smp_mflags}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make pure_install DESTDIR=$RPM_BUILD_ROOT
+find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
+find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null ';'
+%{_fixperms} $RPM_BUILD_ROOT/*
+
+%check
+make test
+EOF
+    } else {
+        $CPAN::Frontend->mydie("'$distribution' has neither a Build.PL nor a Makefile.PL\n");
+    }
+    push @m, "\n%clean\nrm -rf \$RPM_BUILD_ROOT\n";
+    my $vendorlib = @xs ? "vendorarch" : "vendorlib";
+    my $date = POSIX::strftime("%a %b %d %Y", gmtime);
+    my @doc = grep { -e "$build_dir/$_" } qw(README Changes);
+    my $exe_stanza = "\n";
+    if (my $exe_files = $d->_exe_files) {
+        if (@$exe_files) {
+            $exe_stanza = "%{_mandir}/man1/*.1*\n";
+            for my $e (@$exe_files) {
+                unless (CPAN->has_inst("File::Basename")) {
+                    $CPAN::Frontend->mydie("File::Basename not installed, cannot continue");
+                }
+                my $basename = File::Basename::basename($e);
+                $exe_stanza .= "/usr/bin/$basename\n";
+            }
+        }
+    }
+    push @m, <<EOF;
+
+%files
+%defattr(-,root,root,-)
+%doc @doc
+%{perl_$vendorlib}/*
+%{_mandir}/man3/*.3*
+$exe_stanza
+%changelog
+* $date  <specfile\@specfile.cpan.org> - $version-1
+- autogenerated by CPAN::Plugin::Specfile()
+
+EOF
+
+    my $ret = join "", @m;
+    $CPAN::Frontend->myprint($ret);
+    my $target_dir = $self->dir || $self->dir_default;
+    File::Path::mkpath($target_dir);
+    my $outfile = File::Spec->catfile($target_dir, "perl-$dist.spec");
+    open my $specout, ">", $outfile
+        or $CPAN::Frontend->mydie("Could not open >$outfile: $!");
+    print $specout $ret;
+    $CPAN::Frontend->myprint("Wrote $outfile");
+    $ret;
+}
+
+1;
index 9e0bb14..43e2fb9 100644 (file)
@@ -47,7 +47,7 @@ use vars qw(
              "CPAN/Tarzip.pm",
              "CPAN/Version.pm",
             );
-$VERSION = "5.5004";
+$VERSION = "5.5005";
 # record the initial timestamp for reload.
 $reload = { map {$INC{$_} ? ($_,(stat $INC{$_})[9]) : ()} @relo };
 @CPAN::Shell::ISA = qw(CPAN::Debug);
@@ -374,6 +374,9 @@ sub o {
         if (!@o_what or $cfilter) { # print all things, "o conf"
             $cfilter ||= "";
             my $qrfilter = eval 'qr/$cfilter/';
+            if ($@) {
+                $CPAN::Frontend->mydie("Cannot parse commandline: $@");
+            }
             my($k,$v);
             my $configpm = CPAN::HandleConfig->require_myconfig_or_config;
             $CPAN::Frontend->myprint("\$CPAN::Config options from $configpm\:\n");
@@ -794,177 +797,7 @@ sub _guess_manpage {
 
 #-> sub CPAN::Shell::_specfile ;
 sub _specfile {
-    my $self = shift;
-    my $distribution = shift;
-    unless ($CPAN::META->has_inst("CPAN::DistnameInfo")){
-        $CPAN::Frontend->mydie("CPAN::DistnameInfo not installed; cannot continue");
-    }
-    my $d = CPAN::Shell->expand("Distribution",$distribution)
-        or $CPAN::Frontend->mydie("Unknowns distribution '$distribution'\n");
-    my $build_dir = $d->{build_dir} or $CPAN::Frontend->mydie("Distribution has not been built yet, cannot proceed");
-    my %contains = map {($_ => undef)} $d->containsmods;
-    my @m;
-    my $width = 16;
-    my $header = sub {
-        my($header,$value) = @_;
-        push @m, sprintf("%-s:%*s%s\n", $header, $width-length($header), "", $value);
-    };
-    my $dni = CPAN::DistnameInfo->new($distribution);
-    my $dist = $dni->dist;
-    my $summary = $self->_guess_manpage($d,\%contains,$dist);
-    $header->("Name", "perl-$dist");
-    my $version = $dni->version;
-    $header->("Version", $version);
-    $header->("Release", "1%{?dist}");
-#Summary:        Template processing system
-#Group:          Development/Libraries
-#License:        GPL+ or Artistic
-#URL:            http://www.template-toolkit.org/
-#Source0:        http://search.cpan.org/CPAN/authors/id/A/AB/ABW/Template-Toolkit-%{version}.tar.gz
-#Patch0:         Template-2.22-SREZIC-01.patch
-#BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-    for my $h_tuple
-        ([Summary    => $summary],
-         [Group      => "Development/Libraries"],
-         [License    =>],
-         [URL        =>],
-         [BuildRoot  => "%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)"],
-         [Requires   => "perl(:MODULE_COMPAT_%(eval \"`%{__perl} -V:version`\"; echo \$version))"],
-        ) {
-        my($h,$v) = @$h_tuple;
-        $v = "unknown" unless defined $v;
-        $header->($h, $v);
-    }
-    $header->("Source0", sprintf(
-                                 "http://search.cpan.org/CPAN/authors/id/%s/%s/%s",
-                                 substr($distribution,0,1),
-                                 substr($distribution,0,2),
-                                 $distribution
-                                ));
-    require POSIX;
-    my @xs = glob "$build_dir/*.xs"; # quick try
-    unless (@xs) {
-        require ExtUtils::Manifest;
-        my $manifest_file = "$build_dir/MANIFEST";
-        my $manifest = ExtUtils::Manifest::maniread($manifest_file);
-        @xs = grep /\.xs$/, keys %$manifest;
-    }
-    if (! @xs) {
-        $header->('BuildArch', 'noarch');
-    }
-    for my $k (sort keys %contains) {
-        my $m = CPAN::Shell->expand("Module",$k);
-        my $v = $contains{$k} = $m->cpan_version;
-        my $vspec = $v eq "undef" ? "" : " = $v";
-        $header->("Provides", "perl($k)$vspec");
-    }
-    if (my $prereq_pm = $d->{prereq_pm}) {
-        my %req;
-        for my $reqkey (keys %$prereq_pm) {
-            while (my($k,$v) = each %{$prereq_pm->{$reqkey}}) {
-                $req{$k} = $v;
-            }
-        }
-        if (-e "$build_dir/Build.PL" && ! exists $req{"Module::Build"}) {
-            $req{"Module::Build"} = 0;
-        }
-        for my $k (sort keys %req) {
-            next if $k eq "perl";
-            my $v = $req{$k};
-            my $vspec = defined $v && length $v && $v > 0 ? " >= $v" : "";
-            $header->(BuildRequires => "perl($k)$vspec");
-            next if $k =~ /^(Module::Build)$/; # MB is always only a
-                                               # BuildRequires; if we
-                                               # turn it into a
-                                               # Requires, then we
-                                               # would have to make it
-                                               # a BuildRequires
-                                               # everywhere we depend
-                                               # on *one* MB built
-                                               # module.
-            $header->(Requires => "perl($k)$vspec");
-        }
-    }
-    push @m, "\n%define _use_internal_dependency_generator     0
-%define __find_requires %{nil}
-%define __find_provides %{nil}
-";
-    push @m, "\n%description\n%{summary}.\n";
-    push @m, "\n%prep\n%setup -q -n $dist-%{version}\n";
-    if (-e "$build_dir/Build.PL") {
-        # see http://www.redhat.com/archives/rpm-list/2002-July/msg00110.html about RPM_BUILD_ROOT vs %{buildroot}
-        push @m, <<'EOF';
-
-%build
-%{__perl} Build.PL --installdirs=vendor --libdoc installvendorman3dir
-./Build
-
-%install
-rm -rf $RPM_BUILD_ROOT
-./Build install destdir=$RPM_BUILD_ROOT create_packlist=0
-find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \;
-%{_fixperms} $RPM_BUILD_ROOT/*
-
-%check
-./Build test
-EOF
-    } elsif (-e "$build_dir/Makefile.PL") {
-        push @m, <<'EOF';
-
-%build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-make %{?_smp_mflags}
-
-%install
-rm -rf $RPM_BUILD_ROOT
-make pure_install DESTDIR=$RPM_BUILD_ROOT
-find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
-find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null ';'
-%{_fixperms} $RPM_BUILD_ROOT/*
-
-%check
-make test
-EOF
-    } else {
-        $CPAN::Frontend->mydie("'$distribution' has neither a Build.PL nor a Makefile.PL\n");
-    }
-    push @m, "\n%clean\nrm -rf \$RPM_BUILD_ROOT\n";
-    my $vendorlib = @xs ? "vendorarch" : "vendorlib";
-    my $date = POSIX::strftime("%a %b %d %Y", gmtime);
-    my @doc = grep { -e "$build_dir/$_" } qw(README Changes);
-    my $exe_stanza = "\n";
-    if (my $exe_files = $d->_exe_files) {
-        if (@$exe_files) {
-            $exe_stanza = "%{_mandir}/man1/*.1*\n";
-            for my $e (@$exe_files) {
-                unless (CPAN->has_inst("File::Basename")) {
-                    $CPAN::Frontend->mydie("File::Basename not installed, cannot continue");
-                }
-                my $basename = File::Basename::basename($e);
-                $exe_stanza .= "/usr/bin/$basename\n";
-            }
-        }
-    }
-    push @m, <<EOF;
-
-%files
-%defattr(-,root,root,-)
-%doc @doc
-%{perl_$vendorlib}/*
-%{_mandir}/man3/*.3*
-$exe_stanza
-%changelog
-* $date  <akoenig\@specfile.cpan.org> - $version-1
-- autogenerated by _specfile() in CPAN.pm
-
-EOF
-
-    my $ret = join "", @m;
-    $CPAN::Frontend->myprint($ret);
-    open my $specout, ">", "perl-$dist.spec" or die;
-    print $specout $ret;
-    $CPAN::Frontend->myprint("Wrote perl-$dist.spec");
-    $ret;
+    die "CPAN::Shell::_specfile() has been moved to CPAN::Plugin::Specfile::post_test()";
 }
 
 #-> sub CPAN::Shell::report ;
index 3b4a5b5..5f4320e 100644 (file)
@@ -26,16 +26,22 @@ cpan - easily interact with CPAN from the command line
        # with just the dot, install from the distribution in the
        # current directory
        cpan .
-       
+
        # without arguments, starts CPAN.pm shell
        cpan
 
+       # force install modules (usually those that fail tests)
+       cpan -f module_name [ module_name ... ]
+
+       # install modules but without testing them
+       cpan -T module_name [ module_name ... ]
+
        # dump the configuration
        cpan -J
-       
+
        # load a different configuration to install Module::Foo
        cpan -j some/other/file Module::Foo
-       
+
        # without arguments, but some switches
        cpan [-ahrvACDlLO]
 
@@ -79,7 +85,7 @@ to install a module even if its tests fail. When you use this option,
 
 =item -F
 
-Turn off CPAN.pm's attempts to lock anything. You should be careful with 
+Turn off CPAN.pm's attempts to lock anything. You should be careful with
 this since you might end up with multiple scripts trying to muck in the
 same directory. This isn't so much of a concern if you're loading a special
 config with C<-j>, and that config sets up its own work directories.
@@ -115,7 +121,7 @@ Load C<local::lib> (think like C<-I> for loading lib paths).
 =item -j Config.pm
 
 Load the file that has the CPAN configuration data. This should have the
-same format as the standard F<CPAN/Config.pm> file, which defines 
+same format as the standard F<CPAN/Config.pm> file, which defines
 C<$CPAN::Config> as an anonymous hash.
 
 =item -J
@@ -173,7 +179,7 @@ Print the script version and CPAN.pm version then exit.
 
 Print detailed information about the cpan client.
 
-=item -w 
+=item -w
 
 UNIMPLEMENTED
 
@@ -209,17 +215,53 @@ and tells you about problems you might have.
 
 =over 4
 
+There are several components in CPAN.pm that use environment variables.
+The build tools, L<ExtUtils::MakeMaker> and L<Module::Build> use some,
+while others matter to the levels above them. Some of these are specified
+by the Perl Toolchain Gang:
+
+Lancaster Concensus: L<https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md>
+
+Oslo Concensus: L<https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/oslo-consensus.md>
+
+=over 4
+
 =item CPAN_OPTS
 
 C<cpan> splits this variable on whitespace and prepends that list to C<@ARGV>
 before it processes the command-line arguments. For instance, if you always
 want to use C<local:lib>, you can set C<CPAN_OPTS> to C<-I>.
 
+=item CPANSCRIPT_LOGLEVEL
+
+The log level to use, with either the embedded, minimal logger or
+L<Log::Log4perl> if it is installed. Possible values are the same as
+the C<Log::Log4perl> levels: C<TRACE>, C<DEBUG>, C<INFO>, C<WARN>,
+C<ERROR>, and C<FATAL>. The default is C<INFO>.
+
+=item GIT_COMMAND
+
+The path to the C<git> binary to use for the Git features. The default
+is C</usr/local/bin/git>.
+
+=item NONINTERACTIVE_TESTING
+
+Assume no one is paying attention and skips prompts for distributions
+that do that correctly. C<cpan(1)> sets this to C<1> unless it already
+has a value (even if that value is false).
+
+=item PERL_MM_USE_DEFAULT
+
+Use the default answer for a prompted questions. C<cpan(1)> sets this
+to C<1> unless it already has a value (even if that value is false).
+
+=back
+
 =back
 
 =head1 EXIT VALUES
 
-The script exits with zero if it thinks that everything worked, or a 
+The script exits with zero if it thinks that everything worked, or a
 positive number if it thinks that something failed. Note, however, that
 in some cases it has to divine a failure by the output of things it does
 not control. For now, the exit codes are vague:
@@ -247,9 +289,12 @@ comes directly from CPAN.pm.
 
 =head1 SOURCE AVAILABILITY
 
-This code is in Github:
+This code is in Github in the CPAN.pm repository:
+
+       https://github.com/andk/cpanpm
 
-       git://github.com/briandfoy/cpan_script.git
+The source used to be tracked separately in another GitHub repo,
+but the canonical source is now in the above repo.
 
 =head1 CREDITS
 
@@ -267,7 +312,7 @@ brian d foy, C<< <bdfoy@cpan.org> >>
 
 =head1 COPYRIGHT
 
-Copyright (c) 2001-2013, brian d foy, All Rights Reserved.
+Copyright (c) 2001-2014, brian d foy, All Rights Reserved.
 
 You may redistribute this under the same terms as Perl itself.
 
index 1d877fc..e500bda 100644 (file)
@@ -12,6 +12,7 @@ if ($ENV{PERL_CORE}){
                                       FirstTime
                                       Kwalify
                                       Nox
+                                      Plugin
                                       Queue
                                       Tarzip
                                       Version
@@ -27,7 +28,7 @@ plan(tests => scalar @m);
 for my $m (@m) {
   local $^W = 0;
   eval "require $m";
-  ok($m->VERSION >= 1.76, sprintf "Found version > 1.76 for %20s: %s", $m, $m->VERSION);
+  ok($m->VERSION >= 0.95, sprintf "Found version < 0.95 for %s: %s", $m, $m->VERSION);
 }
 
 # Local Variables:
index 8d818a5..ff59dfc 100644 (file)
@@ -539,7 +539,7 @@ package Devel::PPPort;
 use strict;
 use vars qw($VERSION $data);
 
-$VERSION = '3.28';
+$VERSION = '3.31';
 
 sub _init_data
 {
index ea476eb..1f499d9 100644 (file)
@@ -4,6 +4,7 @@ PL_opfreehook                  # E
 SVt_REGEXP                     # E
 SvOOK_offset                   # U
 av_iter_p                      # U
+gv_add_by_type                 # U
 is_ascii_string                # U
 pregfree2                      # U
 save_adelete                   # U
index 76a1522..3a62526 100644 (file)
@@ -1,6 +1,5 @@
 5.021004
 cv_set_call_checker_flags      # U
-grok_atou                      # U
 grok_infnan                    # U
 isinfnan                       # U
 sync_locale                    # U
index 0989ed1..746d0ca 100644 (file)
 :
 :         proto.h: add __attribute__malloc__
 :
-:   b  Binary backward compatibility; function is a macro
-:      but has also Perl_ implementation (which is exported); often
-:      implemented in mathoms.c (whose compilation can be suppressed; see
-:      INSTALL):
+:   b  Binary backward compatibility; has an exported Perl_ implementation
+:      but function is also normally a macro (i.e. has the "m" flag as well).
+:      Backcompat functions ("b") can be anywhere, but if they are also
+:      macros ("m") then they have no proto.h entries so must either be in
+:      mathoms.c to get marked EXTERN_C (and skipped for -DNO_MATHOMS builds)
+:      or else will require special attention to ensure they are marked
+:      EXTERN_C (and then won't be automatically skipped for -DNO_MATHOMS
+:      builds).
 :
 :         add entry to the list of exported symbols;
 :         don't define PERL_ARGS_ASSERT_FOO
@@ -330,7 +334,7 @@ ApR |I32    |cxinc
 Afp    |void   |deb            |NN const char* pat|...
 Ap     |void   |vdeb           |NN const char* pat|NULLOK va_list* args
 Ap     |void   |debprofdump
-EXp    |SV*    |unop_aux_stringify     |NN const OP* o|NN CV *cv
+EXp    |SV*    |multideref_stringify   |NN const OP* o|NN CV *cv
 Ap     |I32    |debop          |NN const OP* o
 Ap     |I32    |debstack
 Ap     |I32    |debstackptrs
@@ -441,7 +445,7 @@ Ap  |void   |dump_all
 p      |void   |dump_all_perl  |bool justperl
 Ap     |void   |dump_eval
 Ap     |void   |dump_form      |NN const GV* gv
-Ap     |void   |gv_dump        |NN GV* gv
+Ap     |void   |gv_dump        |NULLOK GV* gv
 Ap     |void   |op_dump        |NN const OP *o
 Ap     |void   |pmop_dump      |NULLOK PMOP* pm
 Ap     |void   |dump_packsubs  |NN const HV* stash
@@ -482,7 +486,7 @@ p   |char*  |getenv_len     |NN const char *env_elem|NN unsigned long *len
 pox    |void   |get_db_sub     |NULLOK SV **svp|NN CV *cv
 Ap     |void   |gp_free        |NULLOK GV* gv
 Ap     |GP*    |gp_ref         |NULLOK GP* gp
-Xp     |SV*    |gv_add_by_type_p|NN GV *gv|gv_add_type type
+Ap     |GV*    |gv_add_by_type |NULLOK GV *gv|svtype type
 Apmb   |GV*    |gv_AVadd       |NULLOK GV *gv
 Apmb   |GV*    |gv_HVadd       |NULLOK GV *gv
 Apmb   |GV*    |gv_IOadd       |NULLOK GV* gv
@@ -809,12 +813,12 @@ EMsPR     |char*|form_short_octal_warning|NN const char * const s  \
                                |const STRLEN len
 #endif
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-Apdn   |int    |grok_infnan    |NN const char** sp|NN const char *send
+Apd    |int    |grok_infnan    |NN const char** sp|NN const char *send
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
 Apd    |int    |grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
 ApdR   |bool   |grok_numeric_radix|NN const char **sp|NN const char *send
 Apd    |UV     |grok_oct       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-Apdn   |UV     |grok_atou      |NN const char* pv|NULLOK const char** endptr
+EXpn   |bool   |grok_atoUV     |NN const char* pv|NN UV* valptr|NULLOK const char** endptr
 : These are all indirectly referenced by globals.c. This is somewhat annoying.
 p      |int    |magic_clearenv |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clear_all_env|NN SV* sv|NN MAGIC* mg
@@ -1130,6 +1134,7 @@ 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
+EXpMn  |void   |_warn_problematic_locale
 ApOM   |void   |new_numeric    |NULLOK const char* newcoll
 Ap     |void   |set_numeric_local
 Ap     |void   |set_numeric_radix
@@ -1144,7 +1149,8 @@ Apd       |void   |packlist       |NN SV *cat|NN const char *pat|NN const char *patend|NN SV
 s      |void   |pidgone        |Pid_t pid|int status
 #endif
 : Used in perly.y
-p      |OP*    |pmruntime      |NN OP *o|NN OP *expr|bool isreg|I32 floor
+p      |OP*    |pmruntime      |NN OP *o|NN OP *expr|NULLOK OP *repl \
+                               |bool isreg|I32 floor
 #if defined(PERL_IN_OP_C)
 s      |OP*    |pmtrans        |NN OP* o|NN OP* expr|NN OP* repl
 #endif
@@ -1441,6 +1447,7 @@ Apd       |void   |sv_magic       |NN SV *const sv|NULLOK SV *const obj|const int how \
 Apd    |MAGIC *|sv_magicext    |NN SV *const sv|NULLOK SV *const obj|const int how \
                                |NULLOK const MGVTBL *const vtbl|NULLOK const char *const name \
                                |const I32 namlen
+Ein    |bool   |sv_only_taint_gmagic|NN SV *sv
 : exported for re.pm
 EXp    |MAGIC *|sv_magicext_mglob|NN SV *sv
 ApdbamR        |SV*    |sv_mortalcopy  |NULLOK SV *const oldsv
@@ -1511,7 +1518,6 @@ Ap        |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
 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
 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
 EiMRn  |UV     |invlist_max    |NN SV* const invlist
 EiM    |void   |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
@@ -1554,6 +1560,7 @@ EXp       |SV*    |_core_swash_init|NN const char* pkg|NN const char* name \
                |NULLOK SV* invlist|NULLOK U8* const flags_p
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+EiMRn  |UV*    |invlist_array  |NN SV* const invlist
 EXMpR  |SV*    |_invlist_contents|NN SV* const invlist
 EiMRn  |bool*  |get_invlist_offset_addr|NN SV* invlist
 EiMRn  |UV     |_invlist_len   |NN SV* const invlist
@@ -1763,7 +1770,7 @@ Ap        |void   |do_gvgv_dump   |I32 level|NN PerlIO *file|NN const char *name\
                                |NULLOK GV *sv
 Ap     |void   |do_hv_dump     |I32 level|NN PerlIO *file|NN const char *name\
                                |NULLOK HV *sv
-Ap     |void   |do_magic_dump  |I32 level|NN PerlIO *file|NN const MAGIC *mg|I32 nest \
+Ap     |void   |do_magic_dump  |I32 level|NN PerlIO *file|NULLOK const MAGIC *mg|I32 nest \
                                |I32 maxnest|bool dumpops|STRLEN pvlim
 Ap     |void   |do_op_dump     |I32 level|NN PerlIO *file|NULLOK const OP *o
 Ap     |void   |do_pmop_dump   |I32 level|NN PerlIO *file|NULLOK const PMOP *pm
@@ -1786,7 +1793,7 @@ Apdmb     |void   |sv_force_normal|NN SV *sv
 Apd    |void   |sv_force_normal_flags|NN SV *const sv|const U32 flags
 pX     |SSize_t|tmps_grow_p    |SSize_t ix
 Apd    |SV*    |sv_rvweaken    |NN SV *const sv
-ApPMd  |SV*    |sv_get_backrefs|NN SV *const sv
+AnpPMd |SV*    |sv_get_backrefs|NN SV *const sv
 : This is indirectly referenced by globals.c. This is somewhat annoying.
 p      |int    |magic_killbackrefs|NN SV *sv|NN MAGIC *mg
 Ap     |OP*    |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
@@ -1937,8 +1944,8 @@ s |OP *   |my_kid         |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
 s      |OP *   |dup_attrlist   |NN OP *o
 s      |void   |apply_attrs    |NN HV *stash|NN SV *target|NULLOK OP *attrs
 s      |void   |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
-s      |void   |bad_type_pv    |I32 n|NN const char *t|NN const char *name|U32 flags|NN const OP *kid
-s      |void   |bad_type_gv    |I32 n|NN const char *t|NN GV *gv|U32 flags|NN const OP *kid
+s      |void   |bad_type_pv    |I32 n|NN const char *t|NN const OP *o|NN const OP *kid
+s      |void   |bad_type_gv    |I32 n|NN GV *gv|NN const OP *kid|NN const char *t
 s      |void   |no_bareword_allowed|NN OP *o
 sR     |OP*    |no_fh_allowed|NN OP *o
 sR     |OP*    |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
@@ -2024,7 +2031,7 @@ sR        |const char *|get_num   |NN const char *patptr|NN I32 *lenptr
 ns     |bool   |need_utf8      |NN const char *pat|NN const char *patend
 ns     |char   |first_symbol   |NN const char *pat|NN const char *patend
 sR     |char * |sv_exp_grow    |NN SV *sv|STRLEN needed
-snR    |char * |bytes_to_uni   |NN const U8 *start|STRLEN len|NN char *dest \
+snR    |char * |my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \
                                |const bool needs_swap
 #endif
 
@@ -2120,10 +2127,11 @@ Es      |void    |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
 Es     |AV*     |add_multi_match|NULLOK AV* multi_char_matches             \
                                |NN SV* multi_string                        \
                                |const STRLEN cp_count
-Es     |regnode*|regclass      |NN RExC_state_t *pRExC_state \
+Es     |regnode*|regclass      |NN RExC_state_t *pRExC_state                 \
                                |NN I32 *flagp|U32 depth|const bool stop_at_1 \
                                |bool allow_multi_fold                        \
-                               |const bool silence_non_portable              \
+                               |const bool silence_non_portable              \
+                               |const bool strict                            \
                                |NULLOK SV** ret_invlist
 Es     |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
                                |NN SV** invlist
@@ -2210,6 +2218,7 @@ Es        |I32    |make_trie      |NN RExC_state_t *pRExC_state \
                                |U32 word_count|U32 flags|U32 depth
 Es     |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
                                 |NN regnode *source|U32 depth
+EnPs   |const char *|cntrl_to_mnemonic|const U8 c
 #  ifdef DEBUGGING
 Es        |void        |regdump_intflags|NULLOK const char *lead| const U32 flags
 Es     |void   |regdump_extflags|NULLOK const char *lead| const U32 flags
@@ -2218,7 +2227,6 @@ Es        |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
                                |NULLOK const regnode *last \
                                |NULLOK const regnode *plast \
                                |NN SV* sv|I32 indent|U32 depth
-EnPs   |const char *|cntrl_to_mnemonic|const U8 c
 Es     |void   |put_code_point |NN SV* sv|UV c
 Es     |bool   |put_charclass_bitmap_innards|NN SV* sv     \
                                |NN char* bitmap            \
@@ -2269,6 +2277,33 @@ Es       |void   |to_utf8_substr |NN regexp * prog
 Es     |bool   |to_byte_substr |NN regexp * prog
 ERsn   |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
                                                |NN const regnode *scan
+EsnR   |bool   |isGCB          |const PL_GCB_enum before|const PL_GCB_enum after
+EsR    |bool   |isSB           |PL_SB_enum before                              \
+                               |PL_SB_enum after                               \
+                               |NN const U8 * const strbeg                     \
+                               |NN const U8 * const curpos                     \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+EsR    |PL_SB_enum|advance_one_SB|NN U8 ** curpos                              \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+EsR    |PL_SB_enum|backup_one_SB|NN const U8 * const strbeg                    \
+                               |NN U8 ** curpos                                \
+                               |const bool utf8_target
+EsR    |bool   |isWB           |PL_WB_enum previous                            \
+                               |PL_WB_enum before                              \
+                               |PL_WB_enum after                               \
+                               |NN const U8 * const strbeg                     \
+                               |NN const U8 * const curpos                     \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+EsR    |PL_WB_enum|advance_one_WB|NN U8 ** curpos                              \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+EsR    |PL_WB_enum|backup_one_WB|NN PL_WB_enum * previous                      \
+                               |NN const U8 * const strbeg                     \
+                               |NN U8 ** curpos                                \
+                               |const bool utf8_target
 #  ifdef DEBUGGING
 Es     |void   |dump_exec_pos  |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
                                |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8
index 387b0d8..e99bfa0 100644 (file)
@@ -447,7 +447,7 @@ SvPV_nomg_nolen(sv)
 void
 SvPV_renew(sv, nlen, insv)
         SV *sv
-        IV nlen
+        STRLEN nlen
         SV *insv
         PREINIT:
                 STRLEN slen;
index 92ac2b0..805d8b1 100644 (file)
@@ -4,6 +4,7 @@ PL_opfreehook                  # E
 SVt_REGEXP                     # E
 SvOOK_offset                   # U
 av_iter_p                      # U
+gv_add_by_type                 # U
 is_ascii_string                # U
 pregfree2                      # U
 save_adelete                   # U
index 76a1522..3a62526 100644 (file)
@@ -1,6 +1,5 @@
 5.021004
 cv_set_call_checker_flags      # U
-grok_atou                      # U
 grok_infnan                    # U
 isinfnan                       # U
 sync_locale                    # U
index 6ef23c6..5697203 100644 (file)
@@ -27,7 +27,7 @@ use File::Find;
 use List::Util qw(max);
 use Config;
 
-my $VERSION = '3.28';
+my $VERSION = '3.31';
 
 $| = 1;
 my %OPT = (
index c167084..68863a3 100644 (file)
@@ -16,6 +16,7 @@
 UV                      T_UV
 NV                      T_NV
 HV *                    T_HVREF
+STRLEN                  T_UV
 
 INPUT
 T_UV
index 7a9135c..3bb1097 100644 (file)
@@ -1,10 +1,10 @@
 #
-# $Id: Encode.pm,v 2.70 2015/02/05 10:52:16 dankogai Exp $
+# $Id: Encode.pm,v 2.72 2015/03/14 02:43:24 dankogai Exp $
 #
 package Encode;
 use strict;
 use warnings;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.70 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.72 $ =~ /(\d+)/g;
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 use XSLoader ();
 XSLoader::load( __PACKAGE__, $VERSION );
index 8193de3..7da9329 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $Id: Makefile.PL,v 2.13 2015/02/05 10:53:00 dankogai Exp dankogai $
+# $Id: Makefile.PL,v 2.13 2015/02/05 10:53:00 dankogai Exp $
 #
 use 5.007003;
 use strict;
index 167c2fb..fde410d 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: encoding.pm,v 2.13 2013/04/26 18:30:46 dankogai Exp $
+# $Id: encoding.pm,v 2.14 2015/03/14 02:44:39 dankogai Exp dankogai $
 package encoding;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.13 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.14 $ =~ /(\d+)/g;
 
 use Encode;
 use strict;
index 28d3cad..c0945be 100644 (file)
@@ -2,7 +2,7 @@ package Encode::Alias;
 use strict;
 use warnings;
 no warnings 'redefine';
-our $VERSION = do { my @r = ( q$Revision: 2.18 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.19 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 
 use Exporter 'import';
@@ -256,6 +256,10 @@ sub init_aliases {
         define_alias( qr/\bhk(?:scs)?[-_]?big5$/i => '"big5-hkscs"' );
     }
 
+    # https://github.com/dankogai/p5-encode/issues/37
+    define_alias(qr/cp65000/i => '"UTF-7"');
+    define_alias(qr/cp65001/i => '"utf-8-strict"');
+
     # utf8 is blessed :)
     define_alias( qr/\bUTF-8$/i => '"utf-8-strict"' );
 
index d7a72d2..2fc14cc 100644 (file)
@@ -81,6 +81,8 @@ sub init_a2c{
         'jis0208-raw'   => $ON_EBCDIC ? '' : 'jis0208-raw',
         'jis0212-raw'   => $ON_EBCDIC ? '' : 'jis0212-raw',
         'ksc5601-raw'   => $ON_EBCDIC ? '' : 'ksc5601-raw',
+        'cp65000' => 'UTF-7',
+        'cp65001' => 'utf-8-strict',
        );
 
     for my $i (1..11,13..16){
index 0be46fe..154c008 100644 (file)
@@ -4,8 +4,8 @@
 # Author          : Johan Vromans
 # Created On      : Tue Sep 11 15:00:12 1990
 # Last Modified By: Johan Vromans
-# Last Modified On: Wed Jan 14 15:03:41 2015
-# Update Count    : 1680
+# Last Modified On: Mon Feb 23 20:29:11 2015
+# Update Count    : 1683
 # Status          : Released
 
 ################ Module Preamble ################
@@ -17,10 +17,10 @@ use 5.004;
 use strict;
 
 use vars qw($VERSION);
-$VERSION        =  2.43;
+$VERSION        =  2.45;
 # For testing versions only.
 use vars qw($VERSION_STRING);
-$VERSION_STRING = "2.43";
+$VERSION_STRING = "2.45";
 
 use Exporter;
 use vars qw(@ISA @EXPORT @EXPORT_OK);
@@ -373,9 +373,6 @@ sub GetOptionsFromArray(@) {
                next;
            }
            $linkage{'<>'} = shift (@optionlist);
-           if ( $passthrough ) {
-               $error .= "Option spec <> cannot be used with pass_through\n";
-           }
            next;
        }
 
@@ -721,7 +718,7 @@ sub GetOptionsFromArray(@) {
        elsif ( $order == $PERMUTE ) {
            # Try non-options call-back.
            my $cb;
-           if ( !$passthrough && (defined ($cb = $linkage{'<>'})) ) {
+           if ( defined ($cb = $linkage{'<>'}) ) {
                print STDERR ("=> &L{$tryopt}(\"$tryopt\")\n")
                  if $debug;
                my $eval_error = do {
@@ -2449,22 +2446,22 @@ C<require> statement.
 
 =item pass_through (default: disabled)
 
-Anything that is unknown, ambiguous or supplied with an invalid option
-value is passed through in C<@ARGV> instead of being flagged as
-errors. This makes it possible to write wrapper scripts that process
-only part of the user supplied command line arguments, and pass the
+With C<pass_through> anything that is unknown, ambiguous or supplied with
+an invalid option will not be flagged as an error. Instead the unknown
+option(s) will be passed to the catchall C<< <> >> if present, otherwise
+through to C<@ARGV>. This makes it possible to write wrapper scripts that
+process only part of the user supplied command line arguments, and pass the
 remaining options to some other program.
 
-If C<require_order> is enabled, options processing will terminate at
-the first unrecognized option, or non-option, whichever comes first.
-However, if C<permute> is enabled instead, results can become confusing.
+If C<require_order> is enabled, options processing will terminate at the
+first unrecognized option, or non-option, whichever comes first and all
+remaining arguments are passed to C<@ARGV> instead of the catchall
+C<< <> >> if present.  However, if C<permute> is enabled instead, results
+can become confusing.
 
 Note that the options terminator (default C<-->), if present, will
 also be passed through in C<@ARGV>.
 
-For obvious reasons, B<pass_through> cannot be used with the
-non-option catchall C<< <> >>.
-
 =item prefix
 
 The string that starts options. If a constant string is not
index df975c8..d4b526b 100644 (file)
@@ -11,7 +11,7 @@ BEGIN {
 
 use Getopt::Long;
 
-print "1..33\n";
+print "1..37\n";
 
 @ARGV = qw(-Foo -baR --foo bar);
 Getopt::Long::Configure ("no_ignore_case");
@@ -91,3 +91,31 @@ print (!(exists $lnk{bar})   ? "" : "not ", "ok 28\n");
     package Overload::Test;
     use overload '""' => sub{ die "Bad mojo!" };
 }
+
+{
+    @ARGV = (qw[-thru -here -more 1]);
+    my $got = "";
+    Getopt::Long::Configure("default");
+    Getopt::Long::Configure("pass_through");
+    print "not" unless GetOptions
+       ("here" => sub { $got .= " sub_here"; },
+        "<>" => sub { $got .= " <>=".$_[0]; }, );
+    $got .= " remain=".join(',',@ARGV);
+    print "ok 34\n";
+    print +(($got eq " <>=-thru sub_here <>=-more <>=1 remain=")
+           ? "" : "not ", "ok 35\n");
+}
+
+{
+    @ARGV = (qw[-thru -here -more -- 1]);
+    my $got = "";
+    Getopt::Long::Configure("default");
+    Getopt::Long::Configure("pass_through","require_order");
+    print "not" unless GetOptions
+       ("here" => sub { $got .= " sub_here"; },
+        "<>" => sub { $got .= " <>=".$_[0]; }, );
+    $got .= " remain=".join(',',@ARGV);
+    print "ok 36\n";
+    print +(($got eq " remain=-thru,-here,-more,--,1")
+           ? "" : "not ", "ok 37\n");
+}
index e1511e6..855c377 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Codes;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -31,7 +31,7 @@ our($VERSION,%Data,%Retired);
 # $Retired{ TYPE }{ CODESET }{ code }{ CODE } = NAME
 #                            { name }{ NAME } = [CODE,NAME]  (the key is lowercase)
 
-$VERSION='3.33';
+$VERSION='3.34';
 
 #=======================================================================
 #
index 672cdf0..430a464 100644 (file)
@@ -289,7 +289,7 @@ perl problem tracker at:
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001      Michael Hennecke (Locale::Currency)
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 110719d..4353e19 100644 (file)
@@ -312,7 +312,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index d3bf7fc..697a2e4 100644 (file)
@@ -22,7 +22,15 @@ September, December). I will also check on request, so if a code
 changes that you use, feel free to contact me.  Any time there are new
 codes, I will add them to the module and release a new version.
 
-=head1 VERSION 3.34  (planned 2015-03-01; sbeck)
+=head1 VERSION 3.37  (planned 2015-12-01; sbeck)
+
+=head1 VERSION 3.36  (planned 2015-09-01; sbeck)
+
+=head1 VERSION 3.35  (planned 2015-06-01; sbeck)
+
+=head1 VERSION 3.34  (2015-03-01; sbeck)
+
+NEW CODE(s)
 
 =head1 VERSION 3.33  (2014-12-01; sbeck)
 
@@ -732,7 +740,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 =head1 COPYRIGHT
 
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 7d4f64f..256d695 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Codes::Constants;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -17,7 +17,7 @@ require Exporter;
 our($VERSION,@ISA,@EXPORT);
 our(%ALL_CODESETS);
 
-$VERSION='3.33';
+$VERSION='3.34';
 @ISA     = qw(Exporter);
 @EXPORT  = qw(LOCALE_CODE_ALPHA_2
               LOCALE_CODE_ALPHA_3
index 04bc28d..0ad1335 100644 (file)
@@ -32,7 +32,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index aa5f842..2fc76c4 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Codes::Country;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -22,7 +22,7 @@ use Locale::Codes::Country_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.33';
+$VERSION='3.34';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2country
                 country2code
index 8c0e80b..e1d8646 100644 (file)
@@ -198,7 +198,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 556e447..4a0ffdb 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: Fri Nov 21 19:24:19 GMT 2014
+#    Generated on: Thu Feb 19 20:23:53 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Data{'country'}{'id'} = '0250';
 
@@ -20,10 +20,10 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Afghanistan),
       ],
    q(0002) => [
-      q(Albania),
+      q(Aland Islands),
       ],
    q(0003) => [
-      q(Antarctica),
+      q(Albania),
       ],
    q(0004) => [
       q(Algeria),
@@ -38,150 +38,142 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Angola),
       ],
    q(0008) => [
-      q(Antigua and Barbuda),
+      q(Anguilla),
       ],
    q(0009) => [
-      q(Azerbaijan),
+      q(Antarctica),
       ],
    q(0010) => [
-      q(Argentina),
+      q(Antigua and Barbuda),
       ],
    q(0011) => [
-      q(Australia),
+      q(Argentina),
       ],
    q(0012) => [
-      q(Austria),
+      q(Armenia),
       ],
    q(0013) => [
-      q(Bahamas),
-      q(The Bahamas),
-      q(Bahamas, The),
-      q(Bahamas (The)),
+      q(Aruba),
       ],
    q(0014) => [
-      q(Bahrain),
+      q(Australia),
       ],
    q(0015) => [
-      q(Bangladesh),
+      q(Austria),
       ],
    q(0016) => [
-      q(Armenia),
+      q(Azerbaijan),
       ],
    q(0017) => [
-      q(Barbados),
+      q(Bahamas),
+      q(The Bahamas),
+      q(Bahamas, The),
+      q(Bahamas (The)),
       ],
    q(0018) => [
-      q(Belgium),
+      q(Bahrain),
       ],
    q(0019) => [
-      q(Bermuda),
+      q(Bangladesh),
       ],
    q(0020) => [
-      q(Bhutan),
+      q(Barbados),
       ],
    q(0021) => [
-      q(Bolivia, Plurinational State of),
-      q(Bolivia (Plurinational State of)),
-      q(Plurinational State of Bolivia),
-      q(Bolivia),
+      q(Belarus),
       ],
    q(0022) => [
-      q(Bosnia and Herzegovina),
+      q(Belgium),
       ],
    q(0023) => [
-      q(Botswana),
+      q(Belize),
       ],
    q(0024) => [
-      q(Bouvet Island),
+      q(Benin),
       ],
    q(0025) => [
-      q(Brazil),
+      q(Bermuda),
       ],
    q(0026) => [
-      q(Belize),
+      q(Bhutan),
       ],
    q(0027) => [
-      q(British Indian Ocean Territory),
-      q(The British Indian Ocean Territory),
-      q(British Indian Ocean Territory, The),
-      q(British Indian Ocean Territory (The)),
+      q(Bolivia (Plurinational State of)),
+      q(Bolivia, Plurinational State of),
+      q(Plurinational State of Bolivia),
+      q(Bolivia),
       ],
    q(0028) => [
-      q(Solomon Islands),
-      q(The Solomon Islands),
-      q(Solomon Islands, The),
-      q(Solomon Islands (The)),
+      q(Bonaire, Sint Eustatius and Saba),
       ],
    q(0029) => [
-      q(Virgin Islands (British)),
-      q(British Virgin Islands),
-      q(Virgin Islands, British),
-      q(Virgin Islands (UK)),
+      q(Bosnia and Herzegovina),
       ],
    q(0030) => [
-      q(Brunei Darussalam),
-      q(Brunei),
+      q(Botswana),
       ],
    q(0031) => [
-      q(Bulgaria),
+      q(Bouvet Island),
       ],
    q(0032) => [
-      q(Myanmar),
-      q(The Republic of the Union of Myanmar),
-      q(Republic of the Union of Myanmar),
-      q(Burma),
+      q(Brazil),
       ],
    q(0033) => [
-      q(Burundi),
+      q(British Indian Ocean Territory),
+      q(The British Indian Ocean Territory),
+      q(British Indian Ocean Territory, The),
+      q(British Indian Ocean Territory (The)),
       ],
    q(0034) => [
-      q(Belarus),
+      q(Brunei Darussalam),
+      q(Brunei),
       ],
    q(0035) => [
-      q(Cambodia),
+      q(Bulgaria),
       ],
    q(0036) => [
-      q(Cameroon),
+      q(Burkina Faso),
       ],
    q(0037) => [
-      q(Canada),
+      q(Burundi),
       ],
    q(0038) => [
       q(Cabo Verde),
       ],
    q(0039) => [
+      q(Cambodia),
+      ],
+   q(0040) => [
+      q(Cameroon),
+      ],
+   q(0041) => [
+      q(Canada),
+      ],
+   q(0042) => [
       q(Cayman Islands),
       q(The Cayman Islands),
       q(Cayman Islands, The),
       q(Cayman Islands (The)),
       ],
-   q(0040) => [
+   q(0043) => [
       q(Central African Republic),
       q(The Central African Republic),
       q(Central African Republic, The),
       q(Central African Republic (The)),
       ],
-   q(0041) => [
-      q(Sri Lanka),
-      ],
-   q(0042) => [
+   q(0044) => [
       q(Chad),
       ],
-   q(0043) => [
+   q(0045) => [
       q(Chile),
       ],
-   q(0044) => [
+   q(0046) => [
       q(China),
       ],
-   q(0045) => [
-      q(Taiwan (Province of China)),
-      q(Taiwan),
-      q(Taiwan, Province of China),
-      ],
-   q(0046) => [
+   q(0047) => [
       q(Christmas Island),
       ],
-   q(0047) => [
+   q(0048) => [
       q(Cocos (Keeling) Islands),
       q(The Cocos (Keeling) Islands),
       q(Cocos (Keeling) Islands, The),
@@ -191,25 +183,16 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Keeling Islands),
       q(The Keeling Islands),
       ],
-   q(0048) => [
-      q(Colombia),
-      ],
    q(0049) => [
-      q(Comoros),
+      q(Colombia),
       ],
    q(0050) => [
-      q(Mayotte),
+      q(Comoros),
+      q(The Comoros),
+      q(Comoros, The),
+      q(Comoros (The)),
       ],
    q(0051) => [
-      q(Congo),
-      q(The Republic of the Congo),
-      q(Republic of the Congo),
-      q(Congo, The Republic of the),
-      q(Congo, Republic of the),
-      q(Congo-Brazzaville),
-      q(Congo (Brazzaville)),
-      ],
-   q(0052) => [
       q(Congo (The Democratic Republic of the)),
       q(Congo, The Democratic Republic of the),
       q(Congo, Democratic Republic of the),
@@ -218,6 +201,18 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Congo-Kinshasa),
       q(Congo (Kinshasa)),
       ],
+   q(0052) => [
+      q(Congo),
+      q(The Congo),
+      q(Congo, The),
+      q(Congo (The)),
+      q(The Republic of the Congo),
+      q(Republic of the Congo),
+      q(Congo, The Republic of the),
+      q(Congo, Republic of the),
+      q(Congo-Brazzaville),
+      q(Congo (Brazzaville)),
+      ],
    q(0053) => [
       q(Cook Islands),
       q(The Cook Islands),
@@ -228,147 +223,144 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Costa Rica),
       ],
    q(0055) => [
-      q(Croatia),
+      q(Cote d'Ivoire),
       ],
    q(0056) => [
-      q(Cuba),
+      q(Croatia),
       ],
    q(0057) => [
-      q(Cyprus),
+      q(Cuba),
       ],
    q(0058) => [
+      q(Curacao),
+      ],
+   q(0059) => [
+      q(Cyprus),
+      ],
+   q(0060) => [
       q(Czech Republic),
       q(The Czech Republic),
       q(Czech Republic, The),
       q(Czech Republic (The)),
       ],
-   q(0059) => [
-      q(Benin),
-      ],
-   q(0060) => [
+   q(0061) => [
       q(Denmark),
       ],
-   q(0061) => [
+   q(0062) => [
+      q(Djibouti),
+      ],
+   q(0063) => [
       q(Dominica),
       ],
-   q(0062) => [
+   q(0064) => [
       q(Dominican Republic),
       q(The Dominican Republic),
       q(Dominican Republic, The),
       q(Dominican Republic (The)),
       ],
-   q(0063) => [
-      q(Ecuador),
-      ],
-   q(0064) => [
-      q(El Salvador),
-      ],
    q(0065) => [
-      q(Equatorial Guinea),
+      q(Ecuador),
       ],
    q(0066) => [
-      q(Ethiopia),
+      q(Egypt),
       ],
    q(0067) => [
-      q(Eritrea),
+      q(El Salvador),
       ],
    q(0068) => [
-      q(Estonia),
+      q(Equatorial Guinea),
       ],
    q(0069) => [
-      q(Faroe Islands),
-      q(The Faroe Islands),
-      q(Faroe Islands, The),
-      q(Faroe Islands (The)),
-      q(Faeroe Islands),
-      q(The Faeroe Islands),
+      q(Eritrea),
       ],
    q(0070) => [
-      q(Falkland Islands (The) [Malvinas]),
-      q(Falkland Islands (Malvinas)),
-      q(Falkland Islands (Islas Malvinas)),
+      q(Estonia),
       ],
    q(0071) => [
-      q(South Georgia and the South Sandwich Islands),
-      q(South Georgia and the Islands),
+      q(Ethiopia),
       ],
    q(0072) => [
-      q(Fiji),
+      q(Falkland Islands (The) [Malvinas]),
+      q(Falkland Islands (Malvinas)),
+      q(Falkland Islands (Islas Malvinas)),
       ],
    q(0073) => [
-      q(Finland),
+      q(Faroe Islands),
+      q(The Faroe Islands),
+      q(Faroe Islands, The),
+      q(Faroe Islands (The)),
+      q(Faeroe Islands),
+      q(The Faeroe Islands),
       ],
    q(0074) => [
-      q(Aland Islands),
+      q(Fiji),
       ],
    q(0075) => [
-      q(France),
+      q(Finland),
       ],
    q(0076) => [
-      q(French Guiana),
+      q(France),
       ],
    q(0077) => [
-      q(French Polynesia),
+      q(French Guiana),
       ],
    q(0078) => [
+      q(French Polynesia),
+      ],
+   q(0079) => [
       q(French Southern Territories),
       q(The French Southern Territories),
       q(French Southern Territories, The),
       q(French Southern Territories (The)),
       q(French Southern and Antarctic Lands),
       ],
-   q(0079) => [
-      q(Djibouti),
-      ],
    q(0080) => [
       q(Gabon),
       ],
    q(0081) => [
-      q(Georgia),
-      ],
-   q(0082) => [
       q(Gambia),
       q(The Gambia),
       q(Gambia, The),
       q(Gambia (The)),
       ],
+   q(0082) => [
+      q(Georgia),
+      ],
    q(0083) => [
-      q(Palestine, State of),
-      q(Palestine (State of)),
-      q(State of Palestine),
+      q(Germany),
       ],
    q(0084) => [
-      q(Germany),
+      q(Ghana),
       ],
    q(0085) => [
-      q(Ghana),
+      q(Gibraltar),
       ],
    q(0086) => [
-      q(Gibraltar),
+      q(Greece),
       ],
    q(0087) => [
-      q(Kiribati),
+      q(Greenland),
       ],
    q(0088) => [
-      q(Greece),
+      q(Grenada),
       ],
    q(0089) => [
-      q(Greenland),
+      q(Guadeloupe),
       ],
    q(0090) => [
-      q(Grenada),
+      q(Guam),
       ],
    q(0091) => [
-      q(Guadeloupe),
+      q(Guatemala),
       ],
    q(0092) => [
-      q(Guam),
+      q(Guernsey),
       ],
    q(0093) => [
-      q(Guatemala),
+      q(Guinea),
       ],
    q(0094) => [
-      q(Guinea),
+      q(Guinea-Bissau),
       ],
    q(0095) => [
       q(Guyana),
@@ -380,13 +372,13 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Heard Island and McDonald Islands),
       ],
    q(0098) => [
+      q(Holy See),
+      q(The Holy See),
+      q(Holy See, The),
+      q(Holy See (The)),
       q(Holy See (The) [Vatican City State]),
       q(Holy See (Vatican City State)),
       q(Holy See (Vatican City)),
-      q(The Holy See),
-      q(Holy See),
-      q(Holy See (The)),
-      q(Holy See, The),
       q(Vatican City),
       ],
    q(0099) => [
@@ -411,12 +403,12 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Indonesia),
       ],
    q(0105) => [
-      q(Iran, The Islamic Republic of),
+      q(Iran (Islamic Republic of)),
       q(Iran (The Islamic Republic of)),
       q(Iran, Islamic Republic of),
-      q(Iran (Islamic Republic of)),
-      q(The Islamic Republic of Iran),
+      q(Iran, The Islamic Republic of),
       q(Islamic Republic of Iran),
+      q(The Islamic Republic of Iran),
       q(Iran),
       ],
    q(0106) => [
@@ -426,13 +418,13 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Ireland),
       ],
    q(0108) => [
-      q(Israel),
+      q(Isle of Man),
       ],
    q(0109) => [
-      q(Italy),
+      q(Israel),
       ],
    q(0110) => [
-      q(Cote d'Ivoire),
+      q(Italy),
       ],
    q(0111) => [
       q(Jamaica),
@@ -441,16 +433,22 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Japan),
       ],
    q(0113) => [
-      q(Kazakhstan),
-      q(Kazakstan),
+      q(Jersey),
       ],
    q(0114) => [
       q(Jordan),
       ],
    q(0115) => [
-      q(Kenya),
+      q(Kazakhstan),
+      q(Kazakstan),
       ],
    q(0116) => [
+      q(Kenya),
+      ],
+   q(0117) => [
+      q(Kiribati),
+      ],
+   q(0118) => [
       q(Korea, The Democratic People's Republic of),
       q(Korea (The Democratic People's Republic of)),
       q(Korea, Democratic People's Republic of),
@@ -459,7 +457,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Democratic People's Republic of Korea),
       q(North Korea),
       ],
-   q(0117) => [
+   q(0119) => [
       q(Korea, The Republic of),
       q(Korea (The Republic of)),
       q(Korea, Republic of),
@@ -468,43 +466,43 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Republic of Korea),
       q(South Korea),
       ],
-   q(0118) => [
+   q(0120) => [
       q(Kuwait),
       ],
-   q(0119) => [
+   q(0121) => [
       q(Kyrgyzstan),
       ],
-   q(0120) => [
+   q(0122) => [
       q(Lao People's Democratic Republic),
       q(The Lao People's Democratic Republic),
       q(Lao People's Democratic Republic, The),
       q(Lao People's Democratic Republic (The)),
       ],
-   q(0121) => [
-      q(Lebanon),
-      ],
-   q(0122) => [
-      q(Lesotho),
-      ],
    q(0123) => [
       q(Latvia),
       ],
    q(0124) => [
-      q(Liberia),
+      q(Lebanon),
       ],
    q(0125) => [
-      q(Libya),
+      q(Lesotho),
       ],
    q(0126) => [
-      q(Liechtenstein),
+      q(Liberia),
       ],
    q(0127) => [
-      q(Lithuania),
+      q(Libya),
       ],
    q(0128) => [
-      q(Luxembourg),
+      q(Liechtenstein),
       ],
    q(0129) => [
+      q(Lithuania),
+      ],
+   q(0130) => [
+      q(Luxembourg),
+      ],
+   q(0131) => [
       q(Macao),
       q(China, Macao Special Administrative Region),
       q(Macao Special Administrative Region of China),
@@ -512,121 +510,132 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Macau S.A.R.),
       q(Macau),
       ],
-   q(0130) => [
-      q(Madagascar),
-      ],
-   q(0131) => [
-      q(Malawi),
-      ],
    q(0132) => [
-      q(Malaysia),
+      q(Macedonia, The former Yugoslav Republic of),
+      q(Macedonia (The former Yugoslav Republic of)),
+      q(Macedonia, former Yugoslav Republic of),
+      q(Macedonia (former Yugoslav Republic of)),
+      q(The former Yugoslav Republic of Macedonia),
+      q(former Yugoslav Republic of Macedonia),
+      q(Macedonia),
       ],
    q(0133) => [
-      q(Maldives),
+      q(Madagascar),
       ],
    q(0134) => [
-      q(Mali),
+      q(Malawi),
       ],
    q(0135) => [
-      q(Malta),
+      q(Malaysia),
       ],
    q(0136) => [
-      q(Martinique),
+      q(Maldives),
       ],
    q(0137) => [
-      q(Mauritania),
+      q(Mali),
       ],
    q(0138) => [
-      q(Mauritius),
+      q(Malta),
       ],
    q(0139) => [
-      q(Mexico),
+      q(Marshall Islands),
+      q(The Marshall Islands),
+      q(Marshall Islands, The),
+      q(Marshall Islands (The)),
       ],
    q(0140) => [
-      q(Monaco),
+      q(Martinique),
       ],
    q(0141) => [
-      q(Mongolia),
+      q(Mauritania),
       ],
    q(0142) => [
-      q(Moldova, The Republic of),
-      q(Moldova (The Republic of)),
-      q(Moldova, Republic of),
-      q(Moldova (Republic of)),
-      q(The Republic of Moldova),
-      q(Republic of Moldova),
+      q(Mauritius),
       ],
    q(0143) => [
-      q(Montenegro),
+      q(Mayotte),
       ],
    q(0144) => [
-      q(Montserrat),
+      q(Mexico),
       ],
    q(0145) => [
-      q(Morocco),
+      q(Micronesia (Federated States of)),
+      q(Federated States of Micronesia),
+      q(Micronesia (The Federated States of)),
+      q(Micronesia, Federated States of),
+      q(Micronesia, The Federated States of),
+      q(The Federated States of Micronesia),
       ],
    q(0146) => [
-      q(Mozambique),
+      q(Moldova, The Republic of),
+      q(Moldova (The Republic of)),
+      q(Moldova, Republic of),
+      q(Moldova (Republic of)),
+      q(The Republic of Moldova),
+      q(Republic of Moldova),
       ],
    q(0147) => [
-      q(Oman),
+      q(Monaco),
       ],
    q(0148) => [
-      q(Namibia),
+      q(Mongolia),
       ],
    q(0149) => [
-      q(Nauru),
+      q(Montenegro),
       ],
    q(0150) => [
-      q(Nepal),
+      q(Montserrat),
       ],
    q(0151) => [
-      q(Netherlands),
-      q(The Netherlands),
-      q(Netherlands, The),
-      q(Netherlands (The)),
+      q(Morocco),
       ],
    q(0152) => [
-      q(Curacao),
+      q(Mozambique),
       ],
    q(0153) => [
-      q(Aruba),
+      q(Myanmar),
+      q(The Republic of the Union of Myanmar),
+      q(Republic of the Union of Myanmar),
+      q(Burma),
       ],
    q(0154) => [
-      q(Sint Maarten (Dutch part)),
+      q(Namibia),
       ],
    q(0155) => [
-      q(Bonaire, Sint Eustatius and Saba),
+      q(Nauru),
       ],
    q(0156) => [
-      q(New Caledonia),
+      q(Nepal),
       ],
    q(0157) => [
-      q(Vanuatu),
+      q(Netherlands),
+      q(The Netherlands),
+      q(Netherlands, The),
+      q(Netherlands (The)),
       ],
    q(0158) => [
-      q(New Zealand),
+      q(New Caledonia),
       ],
    q(0159) => [
-      q(Nicaragua),
+      q(New Zealand),
       ],
    q(0160) => [
+      q(Nicaragua),
+      ],
+   q(0161) => [
       q(Niger),
       q(The Niger),
       q(Niger, The),
       q(Niger (The)),
       ],
-   q(0161) => [
-      q(Nigeria),
-      ],
    q(0162) => [
-      q(Niue),
+      q(Nigeria),
       ],
    q(0163) => [
-      q(Norfolk Island),
+      q(Niue),
       ],
    q(0164) => [
-      q(Norway),
+      q(Norfolk Island),
       ],
    q(0165) => [
       q(Northern Mariana Islands),
@@ -635,30 +644,21 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Northern Mariana Islands (The)),
       ],
    q(0166) => [
-      q(United States Minor Outlying Islands),
-      q(The United States Minor Outlying Islands),
-      q(United States Minor Outlying Islands, The),
-      q(United States Minor Outlying Islands (The)),
+      q(Norway),
       ],
    q(0167) => [
-      q(Micronesia, The Federated States of),
-      q(Micronesia (The Federated States of)),
-      q(Micronesia, Federated States of),
-      q(Micronesia (Federated States of)),
-      q(The Federated States of Micronesia),
-      q(Federated States of Micronesia),
+      q(Oman),
       ],
    q(0168) => [
-      q(Marshall Islands),
-      q(The Marshall Islands),
-      q(Marshall Islands, The),
-      q(Marshall Islands (The)),
+      q(Pakistan),
       ],
    q(0169) => [
       q(Palau),
       ],
    q(0170) => [
-      q(Pakistan),
+      q(Palestine, State of),
+      q(Palestine (State of)),
+      q(State of Palestine),
       ],
    q(0171) => [
       q(Panama),
@@ -690,120 +690,112 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Portugal),
       ],
    q(0179) => [
-      q(Guinea-Bissau),
-      ],
-   q(0180) => [
-      q(Timor-Leste),
-      q(East Timor),
-      q(The Democratic Republic of Timor-Leste),
-      q(Democratic Republic of Timor-Leste),
-      q(Timor-Leste, The Democratic Republic of),
-      q(Timor-Leste, Democratic Republic of),
-      q(Timor-Leste (The Democratic Republic of)),
-      q(Timor-Leste (Democratic Republic of)),
-      ],
-   q(0181) => [
       q(Puerto Rico),
       ],
-   q(0182) => [
+   q(0180) => [
       q(Qatar),
       ],
-   q(0183) => [
+   q(0181) => [
       q(Reunion),
       ],
-   q(0184) => [
+   q(0182) => [
       q(Romania),
       ],
-   q(0185) => [
+   q(0183) => [
       q(Russian Federation),
       q(The Russian Federation),
       q(Russian Federation, The),
       q(Russian Federation (The)),
       ],
-   q(0186) => [
+   q(0184) => [
       q(Rwanda),
       ],
-   q(0187) => [
+   q(0185) => [
       q(Saint Barthelemy),
       q(Saint-Barthelemy),
       ],
-   q(0188) => [
+   q(0186) => [
       q(Saint Helena, Ascension and Tristan da Cunha),
       q(Saint Helena),
       ],
-   q(0189) => [
+   q(0187) => [
       q(Saint Kitts and Nevis),
       ],
-   q(0190) => [
-      q(Anguilla),
-      ],
-   q(0191) => [
+   q(0188) => [
       q(Saint Lucia),
       ],
-   q(0192) => [
+   q(0189) => [
       q(Saint Martin (French part)),
       q(Saint Martin),
       q(Saint-Martin (French part)),
       q(Saint-Martin),
       ],
-   q(0193) => [
+   q(0190) => [
       q(Saint Pierre and Miquelon),
       ],
-   q(0194) => [
+   q(0191) => [
       q(Saint Vincent and the Grenadines),
       ],
-   q(0195) => [
+   q(0192) => [
+      q(Samoa),
+      ],
+   q(0193) => [
       q(San Marino),
       ],
-   q(0196) => [
+   q(0194) => [
       q(Sao Tome and Principe),
       ],
-   q(0197) => [
+   q(0195) => [
       q(Saudi Arabia),
       ],
-   q(0198) => [
+   q(0196) => [
       q(Senegal),
       ],
-   q(0199) => [
+   q(0197) => [
       q(Serbia),
       ],
-   q(0200) => [
+   q(0198) => [
       q(Seychelles),
       ],
-   q(0201) => [
+   q(0199) => [
       q(Sierra Leone),
       ],
-   q(0202) => [
+   q(0200) => [
       q(Singapore),
       ],
-   q(0203) => [
+   q(0201) => [
+      q(Sint Maarten (Dutch part)),
+      ],
+   q(0202) => [
       q(Slovakia),
       ],
+   q(0203) => [
+      q(Slovenia),
+      ],
    q(0204) => [
-      q(Viet Nam),
-      q(Vietnam),
+      q(Solomon Islands),
+      q(Solomon Islands (The)),
+      q(Solomon Islands, The),
+      q(The Solomon Islands),
       ],
    q(0205) => [
-      q(Slovenia),
+      q(Somalia),
       ],
    q(0206) => [
-      q(Somalia),
+      q(South Africa),
       ],
    q(0207) => [
-      q(South Africa),
+      q(South Georgia and the South Sandwich Islands),
+      q(South Georgia and the Islands),
       ],
    q(0208) => [
-      q(Zimbabwe),
-      q(The Republic of Zimbabwe),
-      q(Republic of Zimbabwe),
-      q(Republic of Zimbabwe, The),
-      q(Republic of Zimbabwe (The)),
+      q(South Sudan),
       ],
    q(0209) => [
       q(Spain),
       ],
    q(0210) => [
-      q(South Sudan),
+      q(Sri Lanka),
       ],
    q(0211) => [
       q(Sudan),
@@ -812,166 +804,188 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Sudan (The)),
       ],
    q(0212) => [
-      q(Western Sahara),
-      ],
-   q(0213) => [
       q(Suriname),
       ],
-   q(0214) => [
+   q(0213) => [
       q(Svalbard and Jan Mayen),
       q(Svalbard and Jan Mayen Islands),
       ],
-   q(0215) => [
+   q(0214) => [
       q(Swaziland),
       ],
-   q(0216) => [
+   q(0215) => [
       q(Sweden),
       ],
-   q(0217) => [
+   q(0216) => [
       q(Switzerland),
       ],
-   q(0218) => [
+   q(0217) => [
       q(Syrian Arab Republic),
-      q(The Syrian Arab Republic),
-      q(Syrian Arab Republic, The),
       q(Syrian Arab Republic (The)),
+      q(Syrian Arab Republic, The),
+      q(The Syrian Arab Republic),
       q(Syria),
       ],
+   q(0218) => [
+      q(Taiwan (Province of China)),
+      q(Taiwan),
+      q(Taiwan, Province of China),
+      ],
    q(0219) => [
       q(Tajikistan),
       ],
    q(0220) => [
-      q(Thailand),
+      q(Tanzania, United Republic of),
+      q(Tanzania (United Republic of)),
+      q(United Republic of Tanzania),
       ],
    q(0221) => [
-      q(Togo),
+      q(Thailand),
       ],
    q(0222) => [
-      q(Tokelau),
+      q(Timor-Leste),
+      q(East Timor),
+      q(The Democratic Republic of Timor-Leste),
+      q(Democratic Republic of Timor-Leste),
+      q(Timor-Leste, The Democratic Republic of),
+      q(Timor-Leste, Democratic Republic of),
+      q(Timor-Leste (The Democratic Republic of)),
+      q(Timor-Leste (Democratic Republic of)),
       ],
    q(0223) => [
-      q(Tonga),
+      q(Togo),
       ],
    q(0224) => [
-      q(Trinidad and Tobago),
+      q(Tokelau),
       ],
    q(0225) => [
-      q(United Arab Emirates),
-      q(The United Arab Emirates),
-      q(United Arab Emirates, The),
-      q(United Arab Emirates (The)),
+      q(Tonga),
       ],
    q(0226) => [
-      q(Tunisia),
+      q(Trinidad and Tobago),
       ],
    q(0227) => [
-      q(Turkey),
+      q(Tunisia),
       ],
    q(0228) => [
-      q(Turkmenistan),
+      q(Turkey),
       ],
    q(0229) => [
+      q(Turkmenistan),
+      ],
+   q(0230) => [
       q(Turks and Caicos Islands),
       q(The Turks and Caicos Islands),
       q(Turks and Caicos Islands, The),
       q(Turks and Caicos Islands (The)),
       ],
-   q(0230) => [
-      q(Tuvalu),
-      ],
    q(0231) => [
-      q(Uganda),
+      q(Tuvalu),
       ],
    q(0232) => [
-      q(Ukraine),
+      q(Uganda),
       ],
    q(0233) => [
-      q(Macedonia, The former Yugoslav Republic of),
-      q(Macedonia (The former Yugoslav Republic of)),
-      q(Macedonia, former Yugoslav Republic of),
-      q(Macedonia (former Yugoslav Republic of)),
-      q(The former Yugoslav Republic of Macedonia),
-      q(former Yugoslav Republic of Macedonia),
-      q(Macedonia),
+      q(Ukraine),
       ],
    q(0234) => [
-      q(Egypt),
+      q(United Arab Emirates),
+      q(The United Arab Emirates),
+      q(United Arab Emirates, The),
+      q(United Arab Emirates (The)),
       ],
    q(0235) => [
-      q(United Kingdom),
+      q(United Kingdom of Great Britain and Northern Ireland),
+      q(The United Kingdom of Great Britain and Northern Ireland),
+      q(United Kingdom of Great Britain and Northern Ireland, The),
+      q(United Kingdom of Great Britain and Northern Ireland (The)),
+      q(Great Britain),
+      q(United Kingdom (The)),
       q(The United Kingdom),
+      q(United Kingdom),
       q(United Kingdom, The),
-      q(United Kingdom (The)),
-      q(Great Britain),
-      q(United Kingdom of Great Britain and Northern Ireland),
       q(UK),
       ],
    q(0236) => [
-      q(Guernsey),
+      q(United States Minor Outlying Islands),
+      q(The United States Minor Outlying Islands),
+      q(United States Minor Outlying Islands, The),
+      q(United States Minor Outlying Islands (The)),
       ],
    q(0237) => [
-      q(Jersey),
+      q(United States of America),
+      q(The United States of America),
+      q(United States of America, The),
+      q(United States of America (The)),
+      q(The United States),
+      q(United States),
+      q(United States, The),
+      q(United States (The)),
+      q(US),
+      q(USA),
       ],
    q(0238) => [
-      q(Isle of Man),
+      q(Uruguay),
       ],
    q(0239) => [
-      q(Tanzania, United Republic of),
-      q(Tanzania (United Republic of)),
-      q(United Republic of Tanzania),
+      q(Uzbekistan),
       ],
    q(0240) => [
-      q(United States),
-      q(The United States),
-      q(United States, The),
-      q(United States (The)),
-      q(US),
-      q(USA),
-      q(United States of America),
-      q(The United States of America),
+      q(Vanuatu),
       ],
    q(0241) => [
-      q(Virgin Islands (U.S.)),
-      q(United States Virgin Islands),
-      q(Virgin Islands (US)),
-      q(Virgin Islands, U.S.),
-      q(Virgin Islands),
+      q(Venezuela (Bolivarian Republic of)),
+      q(Venezuela, Bolivarian Republic of),
+      q(Venezuela, Bolivarian Republic),
+      q(Venezuela),
       ],
    q(0242) => [
-      q(Burkina Faso),
+      q(Viet Nam),
+      q(Vietnam),
       ],
    q(0243) => [
-      q(Uruguay),
+      q(Virgin Islands (British)),
+      q(British Virgin Islands),
+      q(Virgin Islands, British),
+      q(Virgin Islands (UK)),
       ],
    q(0244) => [
-      q(Uzbekistan),
+      q(Virgin Islands (U.S.)),
+      q(United States Virgin Islands),
+      q(Virgin Islands (US)),
+      q(Virgin Islands, U.S.),
+      q(Virgin Islands),
       ],
    q(0245) => [
-      q(Venezuela, Bolivarian Republic of ),
-      ],
-   q(0246) => [
       q(Wallis and Futuna),
       q(Wallis and Futuna Islands),
       q(The Territory of the Wallis and Futuna Islands),
       q(Territory of the Wallis and Futuna Islands),
       ],
-   q(0247) => [
-      q(Samoa),
+   q(0246) => [
+      q(Western Sahara),
       ],
-   q(0248) => [
+   q(0247) => [
       q(Yemen),
       q(The Yemeni Republic),
       q(Yemeni Republic),
       q(Yemeni Republic, The),
       q(Yemeni Republic (The)),
       ],
-   q(0249) => [
+   q(0248) => [
       q(Zambia),
       q(The Republic of Zambia),
       q(Republic of Zambia),
       q(Republic of Zambia, The),
       q(Republic of Zambia (The)),
       ],
+   q(0249) => [
+      q(Zimbabwe),
+      q(The Republic of Zimbabwe),
+      q(Republic of Zimbabwe),
+      q(Republic of Zimbabwe, The),
+      q(Republic of Zimbabwe (The)),
+      ],
 };
 
 $Locale::Codes::Data{'country'}{'alias2id'} = {
@@ -980,11 +994,11 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(aland islands) => [
-      q(0074),
+      q(0002),
       q(0),
       ],
    q(albania) => [
-      q(0002),
+      q(0003),
       q(0),
       ],
    q(algeria) => [
@@ -1004,159 +1018,159 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(anguilla) => [
-      q(0190),
+      q(0008),
       q(0),
       ],
    q(antarctica) => [
-      q(0003),
+      q(0009),
       q(0),
       ],
    q(antigua and barbuda) => [
-      q(0008),
+      q(0010),
       q(0),
       ],
    q(argentina) => [
-      q(0010),
+      q(0011),
       q(0),
       ],
    q(armenia) => [
-      q(0016),
+      q(0012),
       q(0),
       ],
    q(aruba) => [
-      q(0153),
+      q(0013),
       q(0),
       ],
    q(australia) => [
-      q(0011),
+      q(0014),
       q(0),
       ],
    q(austria) => [
-      q(0012),
+      q(0015),
       q(0),
       ],
    q(azerbaijan) => [
-      q(0009),
+      q(0016),
       q(0),
       ],
    q(bahamas) => [
-      q(0013),
+      q(0017),
       q(0),
       ],
    q(bahamas (the)) => [
-      q(0013),
+      q(0017),
       q(3),
       ],
    q(bahamas, the) => [
-      q(0013),
+      q(0017),
       q(2),
       ],
    q(bahrain) => [
-      q(0014),
+      q(0018),
       q(0),
       ],
    q(bangladesh) => [
-      q(0015),
+      q(0019),
       q(0),
       ],
    q(barbados) => [
-      q(0017),
+      q(0020),
       q(0),
       ],
    q(belarus) => [
-      q(0034),
+      q(0021),
       q(0),
       ],
    q(belgium) => [
-      q(0018),
+      q(0022),
       q(0),
       ],
    q(belize) => [
-      q(0026),
+      q(0023),
       q(0),
       ],
    q(benin) => [
-      q(0059),
+      q(0024),
       q(0),
       ],
    q(bermuda) => [
-      q(0019),
+      q(0025),
       q(0),
       ],
    q(bhutan) => [
-      q(0020),
+      q(0026),
       q(0),
       ],
    q(bolivia) => [
-      q(0021),
+      q(0027),
       q(3),
       ],
    q(bolivia (plurinational state of)) => [
-      q(0021),
-      q(1),
+      q(0027),
+      q(0),
       ],
    q(bolivia, plurinational state of) => [
-      q(0021),
-      q(0),
+      q(0027),
+      q(1),
       ],
    q(bonaire, sint eustatius and saba) => [
-      q(0155),
+      q(0028),
       q(0),
       ],
    q(bosnia and herzegovina) => [
-      q(0022),
+      q(0029),
       q(0),
       ],
    q(botswana) => [
-      q(0023),
+      q(0030),
       q(0),
       ],
    q(bouvet island) => [
-      q(0024),
+      q(0031),
       q(0),
       ],
    q(brazil) => [
-      q(0025),
+      q(0032),
       q(0),
       ],
    q(british indian ocean territory) => [
-      q(0027),
+      q(0033),
       q(0),
       ],
    q(british indian ocean territory (the)) => [
-      q(0027),
+      q(0033),
       q(3),
       ],
    q(british indian ocean territory, the) => [
-      q(0027),
+      q(0033),
       q(2),
       ],
    q(british virgin islands) => [
-      q(0029),
+      q(0243),
       q(1),
       ],
    q(brunei) => [
-      q(0030),
+      q(0034),
       q(1),
       ],
    q(brunei darussalam) => [
-      q(0030),
+      q(0034),
       q(0),
       ],
    q(bulgaria) => [
-      q(0031),
+      q(0035),
       q(0),
       ],
    q(burkina faso) => [
-      q(0242),
+      q(0036),
       q(0),
       ],
    q(burma) => [
-      q(0032),
+      q(0153),
       q(3),
       ],
    q(burundi) => [
-      q(0033),
+      q(0037),
       q(0),
       ],
    q(cabo verde) => [
@@ -1164,51 +1178,51 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(cambodia) => [
-      q(0035),
+      q(0039),
       q(0),
       ],
    q(cameroon) => [
-      q(0036),
+      q(0040),
       q(0),
       ],
    q(canada) => [
-      q(0037),
+      q(0041),
       q(0),
       ],
    q(cayman islands) => [
-      q(0039),
+      q(0042),
       q(0),
       ],
    q(cayman islands (the)) => [
-      q(0039),
+      q(0042),
       q(3),
       ],
    q(cayman islands, the) => [
-      q(0039),
+      q(0042),
       q(2),
       ],
    q(central african republic) => [
-      q(0040),
+      q(0043),
       q(0),
       ],
    q(central african republic (the)) => [
-      q(0040),
+      q(0043),
       q(3),
       ],
    q(central african republic, the) => [
-      q(0040),
+      q(0043),
       q(2),
       ],
    q(chad) => [
-      q(0042),
+      q(0044),
       q(0),
       ],
    q(chile) => [
-      q(0043),
+      q(0045),
       q(0),
       ],
    q(china) => [
-      q(0044),
+      q(0046),
       q(0),
       ],
    q(china, hong kong special administrative region) => [
@@ -1216,75 +1230,91 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(1),
       ],
    q(china, macao special administrative region) => [
-      q(0129),
+      q(0131),
       q(1),
       ],
    q(christmas island) => [
-      q(0046),
+      q(0047),
       q(0),
       ],
    q(cocos (keeling) islands) => [
-      q(0047),
+      q(0048),
       q(0),
       ],
    q(cocos (keeling) islands (the)) => [
-      q(0047),
+      q(0048),
       q(3),
       ],
    q(cocos (keeling) islands, the) => [
-      q(0047),
+      q(0048),
       q(2),
       ],
    q(cocos islands) => [
-      q(0047),
+      q(0048),
       q(4),
       ],
    q(colombia) => [
-      q(0048),
+      q(0049),
       q(0),
       ],
    q(comoros) => [
-      q(0049),
+      q(0050),
       q(0),
       ],
+   q(comoros (the)) => [
+      q(0050),
+      q(3),
+      ],
+   q(comoros, the) => [
+      q(0050),
+      q(2),
+      ],
    q(congo) => [
-      q(0051),
+      q(0052),
       q(0),
       ],
    q(congo (brazzaville)) => [
-      q(0051),
-      q(6),
+      q(0052),
+      q(9),
       ],
    q(congo (kinshasa)) => [
-      q(0052),
+      q(0051),
       q(6),
       ],
    q(congo (the democratic republic of the)) => [
-      q(0052),
+      q(0051),
       q(0),
       ],
-   q(congo, democratic republic of the) => [
+   q(congo (the)) => [
       q(0052),
+      q(3),
+      ],
+   q(congo, democratic republic of the) => [
+      q(0051),
       q(2),
       ],
    q(congo, republic of the) => [
-      q(0051),
-      q(4),
+      q(0052),
+      q(7),
       ],
-   q(congo, the democratic republic of the) => [
+   q(congo, the) => [
       q(0052),
+      q(2),
+      ],
+   q(congo, the democratic republic of the) => [
+      q(0051),
       q(1),
       ],
    q(congo, the republic of the) => [
-      q(0051),
-      q(3),
+      q(0052),
+      q(6),
       ],
    q(congo-brazzaville) => [
-      q(0051),
-      q(5),
+      q(0052),
+      q(8),
       ],
    q(congo-kinshasa) => [
-      q(0052),
+      q(0051),
       q(5),
       ],
    q(cook islands) => [
@@ -1304,175 +1334,175 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(cote d'ivoire) => [
-      q(0110),
+      q(0055),
       q(0),
       ],
    q(croatia) => [
-      q(0055),
+      q(0056),
       q(0),
       ],
    q(cuba) => [
-      q(0056),
+      q(0057),
       q(0),
       ],
    q(curacao) => [
-      q(0152),
+      q(0058),
       q(0),
       ],
    q(cyprus) => [
-      q(0057),
+      q(0059),
       q(0),
       ],
    q(czech republic) => [
-      q(0058),
+      q(0060),
       q(0),
       ],
    q(czech republic (the)) => [
-      q(0058),
+      q(0060),
       q(3),
       ],
    q(czech republic, the) => [
-      q(0058),
+      q(0060),
       q(2),
       ],
    q(democratic people's republic of korea) => [
-      q(0116),
+      q(0118),
       q(5),
       ],
    q(democratic republic of the congo) => [
-      q(0052),
+      q(0051),
       q(4),
       ],
    q(democratic republic of timor-leste) => [
-      q(0180),
+      q(0222),
       q(3),
       ],
    q(denmark) => [
-      q(0060),
+      q(0061),
       q(0),
       ],
    q(djibouti) => [
-      q(0079),
+      q(0062),
       q(0),
       ],
    q(dominica) => [
-      q(0061),
+      q(0063),
       q(0),
       ],
    q(dominican republic) => [
-      q(0062),
+      q(0064),
       q(0),
       ],
    q(dominican republic (the)) => [
-      q(0062),
+      q(0064),
       q(3),
       ],
    q(dominican republic, the) => [
-      q(0062),
+      q(0064),
       q(2),
       ],
    q(east timor) => [
-      q(0180),
+      q(0222),
       q(1),
       ],
    q(ecuador) => [
-      q(0063),
+      q(0065),
       q(0),
       ],
    q(egypt) => [
-      q(0234),
+      q(0066),
       q(0),
       ],
    q(el salvador) => [
-      q(0064),
+      q(0067),
       q(0),
       ],
    q(equatorial guinea) => [
-      q(0065),
+      q(0068),
       q(0),
       ],
    q(eritrea) => [
-      q(0067),
+      q(0069),
       q(0),
       ],
    q(estonia) => [
-      q(0068),
+      q(0070),
       q(0),
       ],
    q(ethiopia) => [
-      q(0066),
+      q(0071),
       q(0),
       ],
    q(faeroe islands) => [
-      q(0069),
+      q(0073),
       q(4),
       ],
    q(falkland islands (islas malvinas)) => [
-      q(0070),
+      q(0072),
       q(2),
       ],
    q(falkland islands (malvinas)) => [
-      q(0070),
+      q(0072),
       q(1),
       ],
    q(falkland islands (the) [malvinas]) => [
-      q(0070),
+      q(0072),
       q(0),
       ],
    q(faroe islands) => [
-      q(0069),
+      q(0073),
       q(0),
       ],
    q(faroe islands (the)) => [
-      q(0069),
+      q(0073),
       q(3),
       ],
    q(faroe islands, the) => [
-      q(0069),
+      q(0073),
       q(2),
       ],
    q(federated states of micronesia) => [
-      q(0167),
-      q(5),
+      q(0145),
+      q(1),
       ],
    q(fiji) => [
-      q(0072),
+      q(0074),
       q(0),
       ],
    q(finland) => [
-      q(0073),
+      q(0075),
       q(0),
       ],
    q(former yugoslav republic of macedonia) => [
-      q(0233),
+      q(0132),
       q(5),
       ],
    q(france) => [
-      q(0075),
+      q(0076),
       q(0),
       ],
    q(french guiana) => [
-      q(0076),
+      q(0077),
       q(0),
       ],
    q(french polynesia) => [
-      q(0077),
+      q(0078),
       q(0),
       ],
    q(french southern and antarctic lands) => [
-      q(0078),
+      q(0079),
       q(4),
       ],
    q(french southern territories) => [
-      q(0078),
+      q(0079),
       q(0),
       ],
    q(french southern territories (the)) => [
-      q(0078),
+      q(0079),
       q(3),
       ],
    q(french southern territories, the) => [
-      q(0078),
+      q(0079),
       q(2),
       ],
    q(gabon) => [
@@ -1480,31 +1510,31 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(gambia) => [
-      q(0082),
+      q(0081),
       q(0),
       ],
    q(gambia (the)) => [
-      q(0082),
+      q(0081),
       q(3),
       ],
    q(gambia, the) => [
-      q(0082),
+      q(0081),
       q(2),
       ],
    q(georgia) => [
-      q(0081),
+      q(0082),
       q(0),
       ],
    q(germany) => [
-      q(0084),
+      q(0083),
       q(0),
       ],
    q(ghana) => [
-      q(0085),
+      q(0084),
       q(0),
       ],
    q(gibraltar) => [
-      q(0086),
+      q(0085),
       q(0),
       ],
    q(great britain) => [
@@ -1512,39 +1542,39 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(4),
       ],
    q(greece) => [
-      q(0088),
+      q(0086),
       q(0),
       ],
    q(greenland) => [
-      q(0089),
+      q(0087),
       q(0),
       ],
    q(grenada) => [
-      q(0090),
+      q(0088),
       q(0),
       ],
    q(guadeloupe) => [
-      q(0091),
+      q(0089),
       q(0),
       ],
    q(guam) => [
-      q(0092),
+      q(0090),
       q(0),
       ],
    q(guatemala) => [
-      q(0093),
+      q(0091),
       q(0),
       ],
    q(guernsey) => [
-      q(0236),
+      q(0092),
       q(0),
       ],
    q(guinea) => [
-      q(0094),
+      q(0093),
       q(0),
       ],
    q(guinea-bissau) => [
-      q(0179),
+      q(0094),
       q(0),
       ],
    q(guyana) => [
@@ -1561,27 +1591,27 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       ],
    q(holy see) => [
       q(0098),
-      q(4),
+      q(0),
       ],
    q(holy see (the)) => [
       q(0098),
-      q(5),
+      q(3),
       ],
    q(holy see (the) [vatican city state]) => [
       q(0098),
-      q(0),
+      q(4),
       ],
    q(holy see (vatican city state)) => [
       q(0098),
-      q(1),
+      q(5),
       ],
    q(holy see (vatican city)) => [
       q(0098),
-      q(2),
+      q(6),
       ],
    q(holy see, the) => [
       q(0098),
-      q(6),
+      q(2),
       ],
    q(honduras) => [
       q(0099),
@@ -1621,7 +1651,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       ],
    q(iran (islamic republic of)) => [
       q(0105),
-      q(3),
+      q(0),
       ],
    q(iran (the islamic republic of)) => [
       q(0105),
@@ -1633,7 +1663,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       ],
    q(iran, the islamic republic of) => [
       q(0105),
-      q(0),
+      q(3),
       ],
    q(iraq) => [
       q(0106),
@@ -1645,18 +1675,18 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       ],
    q(islamic republic of iran) => [
       q(0105),
-      q(5),
+      q(4),
       ],
    q(isle of man) => [
-      q(0238),
+      q(0108),
       q(0),
       ],
    q(israel) => [
-      q(0108),
+      q(0109),
       q(0),
       ],
    q(italy) => [
-      q(0109),
+      q(0110),
       q(0),
       ],
    q(jamaica) => [
@@ -1668,7 +1698,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(jersey) => [
-      q(0237),
+      q(0113),
       q(0),
       ],
    q(jordan) => [
@@ -1676,75 +1706,75 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(kazakhstan) => [
-      q(0113),
+      q(0115),
       q(0),
       ],
    q(kazakstan) => [
-      q(0113),
+      q(0115),
       q(1),
       ],
    q(keeling islands) => [
-      q(0047),
+      q(0048),
       q(6),
       ],
    q(kenya) => [
-      q(0115),
+      q(0116),
       q(0),
       ],
    q(kiribati) => [
-      q(0087),
+      q(0117),
       q(0),
       ],
    q(korea (democratic people's republic of)) => [
-      q(0116),
+      q(0118),
       q(3),
       ],
    q(korea (republic of)) => [
-      q(0117),
+      q(0119),
       q(3),
       ],
    q(korea (the democratic people's republic of)) => [
-      q(0116),
+      q(0118),
       q(1),
       ],
    q(korea (the republic of)) => [
-      q(0117),
+      q(0119),
       q(1),
       ],
    q(korea, democratic people's republic of) => [
-      q(0116),
+      q(0118),
       q(2),
       ],
    q(korea, republic of) => [
-      q(0117),
+      q(0119),
       q(2),
       ],
    q(korea, the democratic people's republic of) => [
-      q(0116),
+      q(0118),
       q(0),
       ],
    q(korea, the republic of) => [
-      q(0117),
+      q(0119),
       q(0),
       ],
    q(kuwait) => [
-      q(0118),
+      q(0120),
       q(0),
       ],
    q(kyrgyzstan) => [
-      q(0119),
+      q(0121),
       q(0),
       ],
    q(lao people's democratic republic) => [
-      q(0120),
+      q(0122),
       q(0),
       ],
    q(lao people's democratic republic (the)) => [
-      q(0120),
+      q(0122),
       q(3),
       ],
    q(lao people's democratic republic, the) => [
-      q(0120),
+      q(0122),
       q(2),
       ],
    q(latvia) => [
@@ -1752,251 +1782,251 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(lebanon) => [
-      q(0121),
+      q(0124),
       q(0),
       ],
    q(lesotho) => [
-      q(0122),
+      q(0125),
       q(0),
       ],
    q(liberia) => [
-      q(0124),
+      q(0126),
       q(0),
       ],
    q(libya) => [
-      q(0125),
+      q(0127),
       q(0),
       ],
    q(liechtenstein) => [
-      q(0126),
+      q(0128),
       q(0),
       ],
    q(lithuania) => [
-      q(0127),
+      q(0129),
       q(0),
       ],
    q(luxembourg) => [
-      q(0128),
+      q(0130),
       q(0),
       ],
    q(macao) => [
-      q(0129),
+      q(0131),
       q(0),
       ],
    q(macao special administrative region of china) => [
-      q(0129),
+      q(0131),
       q(2),
       ],
    q(macau) => [
-      q(0129),
+      q(0131),
       q(5),
       ],
    q(macau s.a.r) => [
-      q(0129),
+      q(0131),
       q(3),
       ],
    q(macau s.a.r.) => [
-      q(0129),
+      q(0131),
       q(4),
       ],
    q(macedonia) => [
-      q(0233),
+      q(0132),
       q(6),
       ],
    q(macedonia (former yugoslav republic of)) => [
-      q(0233),
+      q(0132),
       q(3),
       ],
    q(macedonia (the former yugoslav republic of)) => [
-      q(0233),
+      q(0132),
       q(1),
       ],
    q(macedonia, former yugoslav republic of) => [
-      q(0233),
+      q(0132),
       q(2),
       ],
    q(macedonia, the former yugoslav republic of) => [
-      q(0233),
+      q(0132),
       q(0),
       ],
    q(madagascar) => [
-      q(0130),
+      q(0133),
       q(0),
       ],
    q(malawi) => [
-      q(0131),
+      q(0134),
       q(0),
       ],
    q(malaysia) => [
-      q(0132),
+      q(0135),
       q(0),
       ],
    q(maldives) => [
-      q(0133),
+      q(0136),
       q(0),
       ],
    q(mali) => [
-      q(0134),
+      q(0137),
       q(0),
       ],
    q(malta) => [
-      q(0135),
+      q(0138),
       q(0),
       ],
    q(marshall islands) => [
-      q(0168),
+      q(0139),
       q(0),
       ],
    q(marshall islands (the)) => [
-      q(0168),
+      q(0139),
       q(3),
       ],
    q(marshall islands, the) => [
-      q(0168),
+      q(0139),
       q(2),
       ],
    q(martinique) => [
-      q(0136),
+      q(0140),
       q(0),
       ],
    q(mauritania) => [
-      q(0137),
+      q(0141),
       q(0),
       ],
    q(mauritius) => [
-      q(0138),
+      q(0142),
       q(0),
       ],
    q(mayotte) => [
-      q(0050),
+      q(0143),
       q(0),
       ],
    q(mexico) => [
-      q(0139),
+      q(0144),
       q(0),
       ],
    q(micronesia (federated states of)) => [
-      q(0167),
-      q(3),
+      q(0145),
+      q(0),
       ],
    q(micronesia (the federated states of)) => [
-      q(0167),
-      q(1),
+      q(0145),
+      q(2),
       ],
    q(micronesia, federated states of) => [
-      q(0167),
-      q(2),
+      q(0145),
+      q(3),
       ],
    q(micronesia, the federated states of) => [
-      q(0167),
-      q(0),
+      q(0145),
+      q(4),
       ],
    q(moldova (republic of)) => [
-      q(0142),
+      q(0146),
       q(3),
       ],
    q(moldova (the republic of)) => [
-      q(0142),
+      q(0146),
       q(1),
       ],
    q(moldova, republic of) => [
-      q(0142),
+      q(0146),
       q(2),
       ],
    q(moldova, the republic of) => [
-      q(0142),
+      q(0146),
       q(0),
       ],
    q(monaco) => [
-      q(0140),
+      q(0147),
       q(0),
       ],
    q(mongolia) => [
-      q(0141),
+      q(0148),
       q(0),
       ],
    q(montenegro) => [
-      q(0143),
+      q(0149),
       q(0),
       ],
    q(montserrat) => [
-      q(0144),
+      q(0150),
       q(0),
       ],
    q(morocco) => [
-      q(0145),
+      q(0151),
       q(0),
       ],
    q(mozambique) => [
-      q(0146),
+      q(0152),
       q(0),
       ],
    q(myanmar) => [
-      q(0032),
+      q(0153),
       q(0),
       ],
    q(namibia) => [
-      q(0148),
+      q(0154),
       q(0),
       ],
    q(nauru) => [
-      q(0149),
+      q(0155),
       q(0),
       ],
    q(nepal) => [
-      q(0150),
+      q(0156),
       q(0),
       ],
    q(netherlands) => [
-      q(0151),
+      q(0157),
       q(0),
       ],
    q(netherlands (the)) => [
-      q(0151),
+      q(0157),
       q(3),
       ],
    q(netherlands, the) => [
-      q(0151),
+      q(0157),
       q(2),
       ],
    q(new caledonia) => [
-      q(0156),
+      q(0158),
       q(0),
       ],
    q(new zealand) => [
-      q(0158),
+      q(0159),
       q(0),
       ],
    q(nicaragua) => [
-      q(0159),
+      q(0160),
       q(0),
       ],
    q(niger) => [
-      q(0160),
+      q(0161),
       q(0),
       ],
    q(niger (the)) => [
-      q(0160),
+      q(0161),
       q(3),
       ],
    q(niger, the) => [
-      q(0160),
+      q(0161),
       q(2),
       ],
    q(nigeria) => [
-      q(0161),
+      q(0162),
       q(0),
       ],
    q(niue) => [
-      q(0162),
+      q(0163),
       q(0),
       ],
    q(norfolk island) => [
-      q(0163),
+      q(0164),
       q(0),
       ],
    q(north korea) => [
-      q(0116),
+      q(0118),
       q(6),
       ],
    q(northern mariana islands) => [
@@ -2012,15 +2042,15 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(2),
       ],
    q(norway) => [
-      q(0164),
+      q(0166),
       q(0),
       ],
    q(oman) => [
-      q(0147),
+      q(0167),
       q(0),
       ],
    q(pakistan) => [
-      q(0170),
+      q(0168),
       q(0),
       ],
    q(palau) => [
@@ -2028,11 +2058,11 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(palestine (state of)) => [
-      q(0083),
+      q(0170),
       q(1),
       ],
    q(palestine, state of) => [
-      q(0083),
+      q(0170),
       q(0),
       ],
    q(panama) => [
@@ -2076,7 +2106,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(2),
       ],
    q(plurinational state of bolivia) => [
-      q(0021),
+      q(0027),
       q(2),
       ],
    q(poland) => [
@@ -2088,207 +2118,207 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(puerto rico) => [
-      q(0181),
+      q(0179),
       q(0),
       ],
    q(qatar) => [
-      q(0182),
+      q(0180),
       q(0),
       ],
    q(republic of korea) => [
-      q(0117),
+      q(0119),
       q(5),
       ],
    q(republic of moldova) => [
-      q(0142),
+      q(0146),
       q(5),
       ],
    q(republic of the congo) => [
-      q(0051),
-      q(2),
+      q(0052),
+      q(5),
       ],
    q(republic of the union of myanmar) => [
-      q(0032),
+      q(0153),
       q(2),
       ],
    q(republic of zambia) => [
-      q(0249),
+      q(0248),
       q(2),
       ],
    q(republic of zambia (the)) => [
-      q(0249),
+      q(0248),
       q(4),
       ],
    q(republic of zambia, the) => [
-      q(0249),
+      q(0248),
       q(3),
       ],
    q(republic of zimbabwe) => [
-      q(0208),
+      q(0249),
       q(2),
       ],
    q(republic of zimbabwe (the)) => [
-      q(0208),
+      q(0249),
       q(4),
       ],
    q(republic of zimbabwe, the) => [
-      q(0208),
+      q(0249),
       q(3),
       ],
    q(reunion) => [
-      q(0183),
+      q(0181),
       q(0),
       ],
    q(romania) => [
-      q(0184),
+      q(0182),
       q(0),
       ],
    q(russian federation) => [
-      q(0185),
+      q(0183),
       q(0),
       ],
    q(russian federation (the)) => [
-      q(0185),
+      q(0183),
       q(3),
       ],
    q(russian federation, the) => [
-      q(0185),
+      q(0183),
       q(2),
       ],
    q(rwanda) => [
-      q(0186),
+      q(0184),
       q(0),
       ],
    q(saint barthelemy) => [
-      q(0187),
+      q(0185),
       q(0),
       ],
    q(saint helena) => [
-      q(0188),
+      q(0186),
       q(1),
       ],
    q(saint helena, ascension and tristan da cunha) => [
-      q(0188),
+      q(0186),
       q(0),
       ],
    q(saint kitts and nevis) => [
-      q(0189),
+      q(0187),
       q(0),
       ],
    q(saint lucia) => [
-      q(0191),
+      q(0188),
       q(0),
       ],
    q(saint martin) => [
-      q(0192),
+      q(0189),
       q(1),
       ],
    q(saint martin (french part)) => [
-      q(0192),
+      q(0189),
       q(0),
       ],
    q(saint pierre and miquelon) => [
-      q(0193),
+      q(0190),
       q(0),
       ],
    q(saint vincent and the grenadines) => [
-      q(0194),
+      q(0191),
       q(0),
       ],
    q(saint-barthelemy) => [
-      q(0187),
+      q(0185),
       q(1),
       ],
    q(saint-martin) => [
-      q(0192),
+      q(0189),
       q(3),
       ],
    q(saint-martin (french part)) => [
-      q(0192),
+      q(0189),
       q(2),
       ],
    q(samoa) => [
-      q(0247),
+      q(0192),
       q(0),
       ],
    q(san marino) => [
-      q(0195),
+      q(0193),
       q(0),
       ],
    q(sao tome and principe) => [
-      q(0196),
+      q(0194),
       q(0),
       ],
    q(saudi arabia) => [
-      q(0197),
+      q(0195),
       q(0),
       ],
    q(senegal) => [
-      q(0198),
+      q(0196),
       q(0),
       ],
    q(serbia) => [
-      q(0199),
+      q(0197),
       q(0),
       ],
    q(seychelles) => [
-      q(0200),
+      q(0198),
       q(0),
       ],
    q(sierra leone) => [
-      q(0201),
+      q(0199),
       q(0),
       ],
    q(singapore) => [
-      q(0202),
+      q(0200),
       q(0),
       ],
    q(sint maarten (dutch part)) => [
-      q(0154),
+      q(0201),
       q(0),
       ],
    q(slovakia) => [
-      q(0203),
+      q(0202),
       q(0),
       ],
    q(slovenia) => [
-      q(0205),
+      q(0203),
       q(0),
       ],
    q(solomon islands) => [
-      q(0028),
+      q(0204),
       q(0),
       ],
    q(solomon islands (the)) => [
-      q(0028),
-      q(3),
+      q(0204),
+      q(1),
       ],
    q(solomon islands, the) => [
-      q(0028),
+      q(0204),
       q(2),
       ],
    q(somalia) => [
-      q(0206),
+      q(0205),
       q(0),
       ],
    q(south africa) => [
-      q(0207),
+      q(0206),
       q(0),
       ],
    q(south georgia and the islands) => [
-      q(0071),
+      q(0207),
       q(1),
       ],
    q(south georgia and the south sandwich islands) => [
-      q(0071),
+      q(0207),
       q(0),
       ],
    q(south korea) => [
-      q(0117),
+      q(0119),
       q(6),
       ],
    q(south sudan) => [
-      q(0210),
+      q(0208),
       q(0),
       ],
    q(spain) => [
@@ -2296,11 +2326,11 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(sri lanka) => [
-      q(0041),
+      q(0210),
       q(0),
       ],
    q(state of palestine) => [
-      q(0083),
+      q(0170),
       q(2),
       ],
    q(sudan) => [
@@ -2316,55 +2346,55 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(2),
       ],
    q(suriname) => [
-      q(0213),
+      q(0212),
       q(0),
       ],
    q(svalbard and jan mayen) => [
-      q(0214),
+      q(0213),
       q(0),
       ],
    q(svalbard and jan mayen islands) => [
-      q(0214),
+      q(0213),
       q(1),
       ],
    q(swaziland) => [
-      q(0215),
+      q(0214),
       q(0),
       ],
    q(sweden) => [
-      q(0216),
+      q(0215),
       q(0),
       ],
    q(switzerland) => [
-      q(0217),
+      q(0216),
       q(0),
       ],
    q(syria) => [
-      q(0218),
+      q(0217),
       q(4),
       ],
    q(syrian arab republic) => [
-      q(0218),
+      q(0217),
       q(0),
       ],
    q(syrian arab republic (the)) => [
-      q(0218),
-      q(3),
+      q(0217),
+      q(1),
       ],
    q(syrian arab republic, the) => [
-      q(0218),
+      q(0217),
       q(2),
       ],
    q(taiwan) => [
-      q(0045),
+      q(0218),
       q(1),
       ],
    q(taiwan (province of china)) => [
-      q(0045),
+      q(0218),
       q(0),
       ],
    q(taiwan, province of china) => [
-      q(0045),
+      q(0218),
       q(2),
       ],
    q(tajikistan) => [
@@ -2372,119 +2402,127 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0),
       ],
    q(tanzania (united republic of)) => [
-      q(0239),
+      q(0220),
       q(1),
       ],
    q(tanzania, united republic of) => [
-      q(0239),
+      q(0220),
       q(0),
       ],
    q(territory of the wallis and futuna islands) => [
-      q(0246),
+      q(0245),
       q(3),
       ],
    q(thailand) => [
-      q(0220),
+      q(0221),
       q(0),
       ],
    q(the bahamas) => [
-      q(0013),
+      q(0017),
       q(1),
       ],
    q(the british indian ocean territory) => [
-      q(0027),
+      q(0033),
       q(1),
       ],
    q(the cayman islands) => [
-      q(0039),
+      q(0042),
       q(1),
       ],
    q(the central african republic) => [
-      q(0040),
+      q(0043),
       q(1),
       ],
    q(the cocos (keeling) islands) => [
-      q(0047),
+      q(0048),
       q(1),
       ],
    q(the cocos islands) => [
-      q(0047),
+      q(0048),
       q(5),
       ],
+   q(the comoros) => [
+      q(0050),
+      q(1),
+      ],
+   q(the congo) => [
+      q(0052),
+      q(1),
+      ],
    q(the cook islands) => [
       q(0053),
       q(1),
       ],
    q(the czech republic) => [
-      q(0058),
+      q(0060),
       q(1),
       ],
    q(the democratic people's republic of korea) => [
-      q(0116),
+      q(0118),
       q(4),
       ],
    q(the democratic republic of the congo) => [
-      q(0052),
+      q(0051),
       q(3),
       ],
    q(the democratic republic of timor-leste) => [
-      q(0180),
+      q(0222),
       q(2),
       ],
    q(the dominican republic) => [
-      q(0062),
+      q(0064),
       q(1),
       ],
    q(the faeroe islands) => [
-      q(0069),
+      q(0073),
       q(5),
       ],
    q(the faroe islands) => [
-      q(0069),
+      q(0073),
       q(1),
       ],
    q(the federated states of micronesia) => [
-      q(0167),
-      q(4),
+      q(0145),
+      q(5),
       ],
    q(the former yugoslav republic of macedonia) => [
-      q(0233),
+      q(0132),
       q(4),
       ],
    q(the french southern territories) => [
-      q(0078),
+      q(0079),
       q(1),
       ],
    q(the gambia) => [
-      q(0082),
+      q(0081),
       q(1),
       ],
    q(the holy see) => [
       q(0098),
-      q(3),
+      q(1),
       ],
    q(the islamic republic of iran) => [
       q(0105),
-      q(4),
+      q(5),
       ],
    q(the keeling islands) => [
-      q(0047),
+      q(0048),
       q(7),
       ],
    q(the lao people's democratic republic) => [
-      q(0120),
+      q(0122),
       q(1),
       ],
    q(the marshall islands) => [
-      q(0168),
+      q(0139),
       q(1),
       ],
    q(the netherlands) => [
-      q(0151),
+      q(0157),
       q(1),
       ],
    q(the niger) => [
-      q(0160),
+      q(0161),
       q(1),
       ],
    q(the northern mariana islands) => [
@@ -2496,315 +2534,347 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(1),
       ],
    q(the republic of korea) => [
-      q(0117),
+      q(0119),
       q(4),
       ],
    q(the republic of moldova) => [
-      q(0142),
+      q(0146),
       q(4),
       ],
    q(the republic of the congo) => [
-      q(0051),
-      q(1),
+      q(0052),
+      q(4),
       ],
    q(the republic of the union of myanmar) => [
-      q(0032),
+      q(0153),
       q(1),
       ],
    q(the republic of zambia) => [
-      q(0249),
+      q(0248),
       q(1),
       ],
    q(the republic of zimbabwe) => [
-      q(0208),
+      q(0249),
       q(1),
       ],
    q(the russian federation) => [
-      q(0185),
+      q(0183),
       q(1),
       ],
    q(the solomon islands) => [
-      q(0028),
-      q(1),
+      q(0204),
+      q(3),
       ],
    q(the sudan) => [
       q(0211),
       q(1),
       ],
    q(the syrian arab republic) => [
-      q(0218),
-      q(1),
+      q(0217),
+      q(3),
       ],
    q(the territory of the wallis and futuna islands) => [
-      q(0246),
+      q(0245),
       q(2),
       ],
    q(the turks and caicos islands) => [
-      q(0229),
+      q(0230),
       q(1),
       ],
    q(the united arab emirates) => [
-      q(0225),
+      q(0234),
       q(1),
       ],
    q(the united kingdom) => [
       q(0235),
+      q(6),
+      ],
+   q(the united kingdom of great britain and northern ireland) => [
+      q(0235),
       q(1),
       ],
    q(the united states) => [
-      q(0240),
-      q(1),
+      q(0237),
+      q(4),
       ],
    q(the united states minor outlying islands) => [
-      q(0166),
+      q(0236),
       q(1),
       ],
    q(the united states of america) => [
-      q(0240),
-      q(7),
+      q(0237),
+      q(1),
       ],
    q(the yemeni republic) => [
-      q(0248),
+      q(0247),
       q(1),
       ],
    q(timor-leste) => [
-      q(0180),
+      q(0222),
       q(0),
       ],
    q(timor-leste (democratic republic of)) => [
-      q(0180),
+      q(0222),
       q(7),
       ],
    q(timor-leste (the democratic republic of)) => [
-      q(0180),
+      q(0222),
       q(6),
       ],
    q(timor-leste, democratic republic of) => [
-      q(0180),
+      q(0222),
       q(5),
       ],
    q(timor-leste, the democratic republic of) => [
-      q(0180),
+      q(0222),
       q(4),
       ],
    q(togo) => [
-      q(0221),
+      q(0223),
       q(0),
       ],
    q(tokelau) => [
-      q(0222),
+      q(0224),
       q(0),
       ],
    q(tonga) => [
-      q(0223),
+      q(0225),
       q(0),
       ],
    q(trinidad and tobago) => [
-      q(0224),
+      q(0226),
       q(0),
       ],
    q(tunisia) => [
-      q(0226),
+      q(0227),
       q(0),
       ],
    q(turkey) => [
-      q(0227),
+      q(0228),
       q(0),
       ],
    q(turkmenistan) => [
-      q(0228),
+      q(0229),
       q(0),
       ],
    q(turks and caicos islands) => [
-      q(0229),
+      q(0230),
       q(0),
       ],
    q(turks and caicos islands (the)) => [
-      q(0229),
+      q(0230),
       q(3),
       ],
    q(turks and caicos islands, the) => [
-      q(0229),
+      q(0230),
       q(2),
       ],
    q(tuvalu) => [
-      q(0230),
+      q(0231),
       q(0),
       ],
    q(uganda) => [
-      q(0231),
+      q(0232),
       q(0),
       ],
    q(uk) => [
       q(0235),
-      q(6),
+      q(9),
       ],
    q(ukraine) => [
-      q(0232),
+      q(0233),
       q(0),
       ],
    q(united arab emirates) => [
-      q(0225),
+      q(0234),
       q(0),
       ],
    q(united arab emirates (the)) => [
-      q(0225),
+      q(0234),
       q(3),
       ],
    q(united arab emirates, the) => [
-      q(0225),
+      q(0234),
       q(2),
       ],
    q(united kingdom) => [
       q(0235),
-      q(0),
+      q(7),
       ],
    q(united kingdom (the)) => [
       q(0235),
-      q(3),
+      q(5),
       ],
    q(united kingdom of great britain and northern ireland) => [
       q(0235),
-      q(5),
+      q(0),
       ],
-   q(united kingdom, the) => [
+   q(united kingdom of great britain and northern ireland (the)) => [
+      q(0235),
+      q(3),
+      ],
+   q(united kingdom of great britain and northern ireland, the) => [
       q(0235),
       q(2),
       ],
+   q(united kingdom, the) => [
+      q(0235),
+      q(8),
+      ],
    q(united republic of tanzania) => [
-      q(0239),
+      q(0220),
       q(2),
       ],
    q(united states) => [
-      q(0240),
-      q(0),
+      q(0237),
+      q(5),
       ],
    q(united states (the)) => [
-      q(0240),
-      q(3),
+      q(0237),
+      q(7),
       ],
    q(united states minor outlying islands) => [
-      q(0166),
+      q(0236),
       q(0),
       ],
    q(united states minor outlying islands (the)) => [
-      q(0166),
+      q(0236),
       q(3),
       ],
    q(united states minor outlying islands, the) => [
-      q(0166),
+      q(0236),
       q(2),
       ],
    q(united states of america) => [
-      q(0240),
-      q(6),
+      q(0237),
+      q(0),
+      ],
+   q(united states of america (the)) => [
+      q(0237),
+      q(3),
+      ],
+   q(united states of america, the) => [
+      q(0237),
+      q(2),
       ],
    q(united states virgin islands) => [
-      q(0241),
+      q(0244),
       q(1),
       ],
    q(united states, the) => [
-      q(0240),
-      q(2),
+      q(0237),
+      q(6),
       ],
    q(uruguay) => [
-      q(0243),
+      q(0238),
       q(0),
       ],
    q(us) => [
-      q(0240),
-      q(4),
+      q(0237),
+      q(8),
       ],
    q(usa) => [
-      q(0240),
-      q(5),
+      q(0237),
+      q(9),
       ],
    q(uzbekistan) => [
-      q(0244),
+      q(0239),
       q(0),
       ],
    q(vanuatu) => [
-      q(0157),
+      q(0240),
       q(0),
       ],
    q(vatican city) => [
       q(0098),
       q(7),
       ],
-   q(venezuela, bolivarian republic of ) => [
-      q(0245),
+   q(venezuela) => [
+      q(0241),
+      q(3),
+      ],
+   q(venezuela (bolivarian republic of)) => [
+      q(0241),
       q(0),
       ],
+   q(venezuela, bolivarian republic) => [
+      q(0241),
+      q(2),
+      ],
+   q(venezuela, bolivarian republic of) => [
+      q(0241),
+      q(1),
+      ],
    q(viet nam) => [
-      q(0204),
+      q(0242),
       q(0),
       ],
    q(vietnam) => [
-      q(0204),
+      q(0242),
       q(1),
       ],
    q(virgin islands) => [
-      q(0241),
+      q(0244),
       q(4),
       ],
    q(virgin islands (british)) => [
-      q(0029),
+      q(0243),
       q(0),
       ],
    q(virgin islands (u.s.)) => [
-      q(0241),
+      q(0244),
       q(0),
       ],
    q(virgin islands (uk)) => [
-      q(0029),
+      q(0243),
       q(3),
       ],
    q(virgin islands (us)) => [
-      q(0241),
+      q(0244),
       q(2),
       ],
    q(virgin islands, british) => [
-      q(0029),
+      q(0243),
       q(2),
       ],
    q(virgin islands, u.s.) => [
-      q(0241),
+      q(0244),
       q(3),
       ],
    q(wallis and futuna) => [
-      q(0246),
+      q(0245),
       q(0),
       ],
    q(wallis and futuna islands) => [
-      q(0246),
+      q(0245),
       q(1),
       ],
    q(western sahara) => [
-      q(0212),
+      q(0246),
       q(0),
       ],
    q(yemen) => [
-      q(0248),
+      q(0247),
       q(0),
       ],
    q(yemeni republic) => [
-      q(0248),
+      q(0247),
       q(2),
       ],
    q(yemeni republic (the)) => [
-      q(0248),
+      q(0247),
       q(4),
       ],
    q(yemeni republic, the) => [
-      q(0248),
+      q(0247),
       q(3),
       ],
    q(zambia) => [
-      q(0249),
+      q(0248),
       q(0),
       ],
    q(zimbabwe) => [
-      q(0208),
+      q(0249),
       q(0),
       ],
 };
@@ -2816,7 +2886,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ae) => [
-         q(0225),
+         q(0234),
          q(0),
          ],
       q(af) => [
@@ -2824,19 +2894,19 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ag) => [
-         q(0008),
+         q(0010),
          q(0),
          ],
       q(ai) => [
-         q(0190),
+         q(0008),
          q(0),
          ],
       q(al) => [
-         q(0002),
+         q(0003),
          q(0),
          ],
       q(am) => [
-         q(0016),
+         q(0012),
          q(0),
          ],
       q(ao) => [
@@ -2844,11 +2914,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(aq) => [
-         q(0003),
+         q(0009),
          q(0),
          ],
       q(ar) => [
-         q(0010),
+         q(0011),
          q(0),
          ],
       q(as) => [
@@ -2856,135 +2926,135 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(at) => [
-         q(0012),
+         q(0015),
          q(0),
          ],
       q(au) => [
-         q(0011),
+         q(0014),
          q(0),
          ],
       q(aw) => [
-         q(0153),
+         q(0013),
          q(0),
          ],
       q(ax) => [
-         q(0074),
+         q(0002),
          q(0),
          ],
       q(az) => [
-         q(0009),
+         q(0016),
          q(0),
          ],
       q(ba) => [
-         q(0022),
+         q(0029),
          q(0),
          ],
       q(bb) => [
-         q(0017),
+         q(0020),
          q(0),
          ],
       q(bd) => [
-         q(0015),
+         q(0019),
          q(0),
          ],
       q(be) => [
-         q(0018),
+         q(0022),
          q(0),
          ],
       q(bf) => [
-         q(0242),
+         q(0036),
          q(0),
          ],
       q(bg) => [
-         q(0031),
+         q(0035),
          q(0),
          ],
       q(bh) => [
-         q(0014),
+         q(0018),
          q(0),
          ],
       q(bi) => [
-         q(0033),
+         q(0037),
          q(0),
          ],
       q(bj) => [
-         q(0059),
+         q(0024),
          q(0),
          ],
       q(bl) => [
-         q(0187),
+         q(0185),
          q(0),
          ],
       q(bm) => [
-         q(0019),
+         q(0025),
          q(0),
          ],
       q(bn) => [
-         q(0030),
+         q(0034),
          q(0),
          ],
       q(bo) => [
-         q(0021),
+         q(0027),
          q(0),
          ],
       q(bq) => [
-         q(0155),
+         q(0028),
          q(0),
          ],
       q(br) => [
-         q(0025),
+         q(0032),
          q(0),
          ],
       q(bs) => [
-         q(0013),
+         q(0017),
          q(0),
          ],
       q(bt) => [
-         q(0020),
+         q(0026),
          q(0),
          ],
       q(bv) => [
-         q(0024),
+         q(0031),
          q(0),
          ],
       q(bw) => [
-         q(0023),
+         q(0030),
          q(0),
          ],
       q(by) => [
-         q(0034),
+         q(0021),
          q(0),
          ],
       q(bz) => [
-         q(0026),
+         q(0023),
          q(0),
          ],
       q(ca) => [
-         q(0037),
+         q(0041),
          q(0),
          ],
       q(cc) => [
-         q(0047),
+         q(0048),
          q(0),
          ],
       q(cd) => [
-         q(0052),
+         q(0051),
          q(0),
          ],
       q(cf) => [
-         q(0040),
+         q(0043),
          q(0),
          ],
       q(cg) => [
-         q(0051),
+         q(0052),
          q(0),
          ],
       q(ch) => [
-         q(0217),
+         q(0216),
          q(0),
          ],
       q(ci) => [
-         q(0110),
+         q(0055),
          q(0),
          ],
       q(ck) => [
@@ -2992,19 +3062,19 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cl) => [
-         q(0043),
+         q(0045),
          q(0),
          ],
       q(cm) => [
-         q(0036),
+         q(0040),
          q(0),
          ],
       q(cn) => [
-         q(0044),
+         q(0046),
          q(0),
          ],
       q(co) => [
-         q(0048),
+         q(0049),
          q(0),
          ],
       q(cr) => [
@@ -3012,7 +3082,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cu) => [
-         q(0056),
+         q(0057),
          q(0),
          ],
       q(cv) => [
@@ -3020,39 +3090,39 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cw) => [
-         q(0152),
+         q(0058),
          q(0),
          ],
       q(cx) => [
-         q(0046),
+         q(0047),
          q(0),
          ],
       q(cy) => [
-         q(0057),
+         q(0059),
          q(0),
          ],
       q(cz) => [
-         q(0058),
+         q(0060),
          q(0),
          ],
       q(de) => [
-         q(0084),
+         q(0083),
          q(0),
          ],
       q(dj) => [
-         q(0079),
+         q(0062),
          q(0),
          ],
       q(dk) => [
-         q(0060),
+         q(0061),
          q(0),
          ],
       q(dm) => [
-         q(0061),
+         q(0063),
          q(0),
          ],
       q(do) => [
-         q(0062),
+         q(0064),
          q(0),
          ],
       q(dz) => [
@@ -3060,23 +3130,23 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ec) => [
-         q(0063),
+         q(0065),
          q(0),
          ],
       q(ee) => [
-         q(0068),
+         q(0070),
          q(0),
          ],
       q(eg) => [
-         q(0234),
+         q(0066),
          q(0),
          ],
       q(eh) => [
-         q(0212),
+         q(0246),
          q(0),
          ],
       q(er) => [
-         q(0067),
+         q(0069),
          q(0),
          ],
       q(es) => [
@@ -3084,31 +3154,31 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(et) => [
-         q(0066),
+         q(0071),
          q(0),
          ],
       q(fi) => [
-         q(0073),
+         q(0075),
          q(0),
          ],
       q(fj) => [
-         q(0072),
+         q(0074),
          q(0),
          ],
       q(fk) => [
-         q(0070),
+         q(0072),
          q(0),
          ],
       q(fm) => [
-         q(0167),
+         q(0145),
          q(0),
          ],
       q(fo) => [
-         q(0069),
+         q(0073),
          q(0),
          ],
       q(fr) => [
-         q(0075),
+         q(0076),
          q(0),
          ],
       q(ga) => [
@@ -3120,67 +3190,67 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(gd) => [
-         q(0090),
+         q(0088),
          q(0),
          ],
       q(ge) => [
-         q(0081),
+         q(0082),
          q(0),
          ],
       q(gf) => [
-         q(0076),
+         q(0077),
          q(0),
          ],
       q(gg) => [
-         q(0236),
+         q(0092),
          q(0),
          ],
       q(gh) => [
-         q(0085),
+         q(0084),
          q(0),
          ],
       q(gi) => [
-         q(0086),
+         q(0085),
          q(0),
          ],
       q(gl) => [
-         q(0089),
+         q(0087),
          q(0),
          ],
       q(gm) => [
-         q(0082),
+         q(0081),
          q(0),
          ],
       q(gn) => [
-         q(0094),
+         q(0093),
          q(0),
          ],
       q(gp) => [
-         q(0091),
+         q(0089),
          q(0),
          ],
       q(gq) => [
-         q(0065),
+         q(0068),
          q(0),
          ],
       q(gr) => [
-         q(0088),
+         q(0086),
          q(0),
          ],
       q(gs) => [
-         q(0071),
+         q(0207),
          q(0),
          ],
       q(gt) => [
-         q(0093),
+         q(0091),
          q(0),
          ],
       q(gu) => [
-         q(0092),
+         q(0090),
          q(0),
          ],
       q(gw) => [
-         q(0179),
+         q(0094),
          q(0),
          ],
       q(gy) => [
@@ -3200,7 +3270,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(hr) => [
-         q(0055),
+         q(0056),
          q(0),
          ],
       q(ht) => [
@@ -3220,11 +3290,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(il) => [
-         q(0108),
+         q(0109),
          q(0),
          ],
       q(im) => [
-         q(0238),
+         q(0108),
          q(0),
          ],
       q(in) => [
@@ -3232,7 +3302,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(io) => [
-         q(0027),
+         q(0033),
          q(0),
          ],
       q(iq) => [
@@ -3248,11 +3318,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(it) => [
-         q(0109),
+         q(0110),
          q(0),
          ],
       q(je) => [
-         q(0237),
+         q(0113),
          q(0),
          ],
       q(jm) => [
@@ -3268,83 +3338,83 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ke) => [
-         q(0115),
+         q(0116),
          q(0),
          ],
       q(kg) => [
-         q(0119),
+         q(0121),
          q(0),
          ],
       q(kh) => [
-         q(0035),
+         q(0039),
          q(0),
          ],
       q(ki) => [
-         q(0087),
+         q(0117),
          q(0),
          ],
       q(km) => [
-         q(0049),
+         q(0050),
          q(0),
          ],
       q(kn) => [
-         q(0189),
+         q(0187),
          q(0),
          ],
       q(kp) => [
-         q(0116),
+         q(0118),
          q(0),
          ],
       q(kr) => [
-         q(0117),
+         q(0119),
          q(0),
          ],
       q(kw) => [
-         q(0118),
+         q(0120),
          q(0),
          ],
       q(ky) => [
-         q(0039),
+         q(0042),
          q(0),
          ],
       q(kz) => [
-         q(0113),
+         q(0115),
          q(0),
          ],
       q(la) => [
-         q(0120),
+         q(0122),
          q(0),
          ],
       q(lb) => [
-         q(0121),
+         q(0124),
          q(0),
          ],
       q(lc) => [
-         q(0191),
+         q(0188),
          q(0),
          ],
       q(li) => [
-         q(0126),
+         q(0128),
          q(0),
          ],
       q(lk) => [
-         q(0041),
+         q(0210),
          q(0),
          ],
       q(lr) => [
-         q(0124),
+         q(0126),
          q(0),
          ],
       q(ls) => [
-         q(0122),
+         q(0125),
          q(0),
          ],
       q(lt) => [
-         q(0127),
+         q(0129),
          q(0),
          ],
       q(lu) => [
-         q(0128),
+         q(0130),
          q(0),
          ],
       q(lv) => [
@@ -3352,55 +3422,55 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ly) => [
-         q(0125),
+         q(0127),
          q(0),
          ],
       q(ma) => [
-         q(0145),
+         q(0151),
          q(0),
          ],
       q(mc) => [
-         q(0140),
+         q(0147),
          q(0),
          ],
       q(md) => [
-         q(0142),
+         q(0146),
          q(0),
          ],
       q(me) => [
-         q(0143),
+         q(0149),
          q(0),
          ],
       q(mf) => [
-         q(0192),
+         q(0189),
          q(0),
          ],
       q(mg) => [
-         q(0130),
+         q(0133),
          q(0),
          ],
       q(mh) => [
-         q(0168),
+         q(0139),
          q(0),
          ],
       q(mk) => [
-         q(0233),
+         q(0132),
          q(0),
          ],
       q(ml) => [
-         q(0134),
+         q(0137),
          q(0),
          ],
       q(mm) => [
-         q(0032),
+         q(0153),
          q(0),
          ],
       q(mn) => [
-         q(0141),
+         q(0148),
          q(0),
          ],
       q(mo) => [
-         q(0129),
+         q(0131),
          q(0),
          ],
       q(mp) => [
@@ -3408,95 +3478,95 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(mq) => [
-         q(0136),
+         q(0140),
          q(0),
          ],
       q(mr) => [
-         q(0137),
+         q(0141),
          q(0),
          ],
       q(ms) => [
-         q(0144),
+         q(0150),
          q(0),
          ],
       q(mt) => [
-         q(0135),
+         q(0138),
          q(0),
          ],
       q(mu) => [
-         q(0138),
+         q(0142),
          q(0),
          ],
       q(mv) => [
-         q(0133),
+         q(0136),
          q(0),
          ],
       q(mw) => [
-         q(0131),
+         q(0134),
          q(0),
          ],
       q(mx) => [
-         q(0139),
+         q(0144),
          q(0),
          ],
       q(my) => [
-         q(0132),
+         q(0135),
          q(0),
          ],
       q(mz) => [
-         q(0146),
+         q(0152),
          q(0),
          ],
       q(na) => [
-         q(0148),
+         q(0154),
          q(0),
          ],
       q(nc) => [
-         q(0156),
+         q(0158),
          q(0),
          ],
       q(ne) => [
-         q(0160),
+         q(0161),
          q(0),
          ],
       q(nf) => [
-         q(0163),
+         q(0164),
          q(0),
          ],
       q(ng) => [
-         q(0161),
+         q(0162),
          q(0),
          ],
       q(ni) => [
-         q(0159),
+         q(0160),
          q(0),
          ],
       q(nl) => [
-         q(0151),
+         q(0157),
          q(0),
          ],
       q(no) => [
-         q(0164),
+         q(0166),
          q(0),
          ],
       q(np) => [
-         q(0150),
+         q(0156),
          q(0),
          ],
       q(nr) => [
-         q(0149),
+         q(0155),
          q(0),
          ],
       q(nu) => [
-         q(0162),
+         q(0163),
          q(0),
          ],
       q(nz) => [
-         q(0158),
+         q(0159),
          q(0),
          ],
       q(om) => [
-         q(0147),
+         q(0167),
          q(0),
          ],
       q(pa) => [
@@ -3508,7 +3578,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pf) => [
-         q(0077),
+         q(0078),
          q(0),
          ],
       q(pg) => [
@@ -3520,7 +3590,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pk) => [
-         q(0170),
+         q(0168),
          q(0),
          ],
       q(pl) => [
@@ -3528,7 +3598,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pm) => [
-         q(0193),
+         q(0190),
          q(0),
          ],
       q(pn) => [
@@ -3536,11 +3606,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pr) => [
-         q(0181),
+         q(0179),
          q(0),
          ],
       q(ps) => [
-         q(0083),
+         q(0170),
          q(0),
          ],
       q(pt) => [
@@ -3556,39 +3626,39 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(qa) => [
-         q(0182),
+         q(0180),
          q(0),
          ],
       q(re) => [
-         q(0183),
+         q(0181),
          q(0),
          ],
       q(ro) => [
-         q(0184),
+         q(0182),
          q(0),
          ],
       q(rs) => [
-         q(0199),
+         q(0197),
          q(0),
          ],
       q(ru) => [
-         q(0185),
+         q(0183),
          q(0),
          ],
       q(rw) => [
-         q(0186),
+         q(0184),
          q(0),
          ],
       q(sa) => [
-         q(0197),
+         q(0195),
          q(0),
          ],
       q(sb) => [
-         q(0028),
+         q(0204),
          q(0),
          ],
       q(sc) => [
-         q(0200),
+         q(0198),
          q(0),
          ],
       q(sd) => [
@@ -3596,91 +3666,91 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(se) => [
-         q(0216),
+         q(0215),
          q(0),
          ],
       q(sg) => [
-         q(0202),
+         q(0200),
          q(0),
          ],
       q(sh) => [
-         q(0188),
+         q(0186),
          q(0),
          ],
       q(si) => [
-         q(0205),
+         q(0203),
          q(0),
          ],
       q(sj) => [
-         q(0214),
+         q(0213),
          q(0),
          ],
       q(sk) => [
-         q(0203),
+         q(0202),
          q(0),
          ],
       q(sl) => [
-         q(0201),
+         q(0199),
          q(0),
          ],
       q(sm) => [
-         q(0195),
+         q(0193),
          q(0),
          ],
       q(sn) => [
-         q(0198),
+         q(0196),
          q(0),
          ],
       q(so) => [
-         q(0206),
+         q(0205),
          q(0),
          ],
       q(sr) => [
-         q(0213),
+         q(0212),
          q(0),
          ],
       q(ss) => [
-         q(0210),
+         q(0208),
          q(0),
          ],
       q(st) => [
-         q(0196),
+         q(0194),
          q(0),
          ],
       q(sv) => [
-         q(0064),
+         q(0067),
          q(0),
          ],
       q(sx) => [
-         q(0154),
+         q(0201),
          q(0),
          ],
       q(sy) => [
-         q(0218),
+         q(0217),
          q(0),
          ],
       q(sz) => [
-         q(0215),
+         q(0214),
          q(0),
          ],
       q(tc) => [
-         q(0229),
+         q(0230),
          q(0),
          ],
       q(td) => [
-         q(0042),
+         q(0044),
          q(0),
          ],
       q(tf) => [
-         q(0078),
+         q(0079),
          q(0),
          ],
       q(tg) => [
-         q(0221),
+         q(0223),
          q(0),
          ],
       q(th) => [
-         q(0220),
+         q(0221),
          q(0),
          ],
       q(tj) => [
@@ -3688,67 +3758,67 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(tk) => [
-         q(0222),
+         q(0224),
          q(0),
          ],
       q(tl) => [
-         q(0180),
+         q(0222),
          q(0),
          ],
       q(tm) => [
-         q(0228),
+         q(0229),
          q(0),
          ],
       q(tn) => [
-         q(0226),
+         q(0227),
          q(0),
          ],
       q(to) => [
-         q(0223),
+         q(0225),
          q(0),
          ],
       q(tr) => [
-         q(0227),
+         q(0228),
          q(0),
          ],
       q(tt) => [
-         q(0224),
+         q(0226),
          q(0),
          ],
       q(tv) => [
-         q(0230),
+         q(0231),
          q(0),
          ],
       q(tw) => [
-         q(0045),
+         q(0218),
          q(0),
          ],
       q(tz) => [
-         q(0239),
+         q(0220),
          q(0),
          ],
       q(ua) => [
-         q(0232),
+         q(0233),
          q(0),
          ],
       q(ug) => [
-         q(0231),
+         q(0232),
          q(0),
          ],
       q(um) => [
-         q(0166),
+         q(0236),
          q(0),
          ],
       q(us) => [
-         q(0240),
+         q(0237),
          q(0),
          ],
       q(uy) => [
-         q(0243),
+         q(0238),
          q(0),
          ],
       q(uz) => [
-         q(0244),
+         q(0239),
          q(0),
          ],
       q(va) => [
@@ -3756,61 +3826,61 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(vc) => [
-         q(0194),
+         q(0191),
          q(0),
          ],
       q(ve) => [
-         q(0245),
+         q(0241),
          q(0),
          ],
       q(vg) => [
-         q(0029),
+         q(0243),
          q(0),
          ],
       q(vi) => [
-         q(0241),
+         q(0244),
          q(0),
          ],
       q(vn) => [
-         q(0204),
+         q(0242),
          q(0),
          ],
       q(vu) => [
-         q(0157),
+         q(0240),
          q(0),
          ],
       q(wf) => [
-         q(0246),
+         q(0245),
          q(0),
          ],
       q(ws) => [
-         q(0247),
+         q(0192),
          q(0),
          ],
       q(ye) => [
-         q(0248),
+         q(0247),
          q(0),
          ],
       q(yt) => [
-         q(0050),
+         q(0143),
          q(0),
          ],
       q(za) => [
-         q(0207),
+         q(0206),
          q(0),
          ],
       q(zm) => [
-         q(0249),
+         q(0248),
          q(0),
          ],
       q(zw) => [
-         q(0208),
+         q(0249),
          q(0),
          ],
       },
    q(alpha-3) => {
       q(abw) => [
-         q(0153),
+         q(0013),
          q(0),
          ],
       q(afg) => [
@@ -3822,15 +3892,15 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(aia) => [
-         q(0190),
+         q(0008),
          q(0),
          ],
       q(ala) => [
-         q(0074),
+         q(0002),
          q(0),
          ],
       q(alb) => [
-         q(0002),
+         q(0003),
          q(0),
          ],
       q(and) => [
@@ -3838,15 +3908,15 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(are) => [
-         q(0225),
+         q(0234),
          q(0),
          ],
       q(arg) => [
-         q(0010),
+         q(0011),
          q(0),
          ],
       q(arm) => [
-         q(0016),
+         q(0012),
          q(0),
          ],
       q(asm) => [
@@ -3854,151 +3924,151 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ata) => [
-         q(0003),
+         q(0009),
          q(0),
          ],
       q(atf) => [
-         q(0078),
+         q(0079),
          q(0),
          ],
       q(atg) => [
-         q(0008),
+         q(0010),
          q(0),
          ],
       q(aus) => [
-         q(0011),
+         q(0014),
          q(0),
          ],
       q(aut) => [
-         q(0012),
+         q(0015),
          q(0),
          ],
       q(aze) => [
-         q(0009),
+         q(0016),
          q(0),
          ],
       q(bdi) => [
-         q(0033),
+         q(0037),
          q(0),
          ],
       q(bel) => [
-         q(0018),
+         q(0022),
          q(0),
          ],
       q(ben) => [
-         q(0059),
+         q(0024),
          q(0),
          ],
       q(bes) => [
-         q(0155),
+         q(0028),
          q(0),
          ],
       q(bfa) => [
-         q(0242),
+         q(0036),
          q(0),
          ],
       q(bgd) => [
-         q(0015),
+         q(0019),
          q(0),
          ],
       q(bgr) => [
-         q(0031),
+         q(0035),
          q(0),
          ],
       q(bhr) => [
-         q(0014),
+         q(0018),
          q(0),
          ],
       q(bhs) => [
-         q(0013),
+         q(0017),
          q(0),
          ],
       q(bih) => [
-         q(0022),
+         q(0029),
          q(0),
          ],
       q(blm) => [
-         q(0187),
+         q(0185),
          q(0),
          ],
       q(blr) => [
-         q(0034),
+         q(0021),
          q(0),
          ],
       q(blz) => [
-         q(0026),
+         q(0023),
          q(0),
          ],
       q(bmu) => [
-         q(0019),
+         q(0025),
          q(0),
          ],
       q(bol) => [
-         q(0021),
+         q(0027),
          q(0),
          ],
       q(bra) => [
-         q(0025),
+         q(0032),
          q(0),
          ],
       q(brb) => [
-         q(0017),
+         q(0020),
          q(0),
          ],
       q(brn) => [
-         q(0030),
+         q(0034),
          q(0),
          ],
       q(btn) => [
-         q(0020),
+         q(0026),
          q(0),
          ],
       q(bvt) => [
-         q(0024),
+         q(0031),
          q(0),
          ],
       q(bwa) => [
-         q(0023),
+         q(0030),
          q(0),
          ],
       q(caf) => [
-         q(0040),
+         q(0043),
          q(0),
          ],
       q(can) => [
-         q(0037),
+         q(0041),
          q(0),
          ],
       q(cck) => [
-         q(0047),
+         q(0048),
          q(0),
          ],
       q(che) => [
-         q(0217),
+         q(0216),
          q(0),
          ],
       q(chl) => [
-         q(0043),
+         q(0045),
          q(0),
          ],
       q(chn) => [
-         q(0044),
+         q(0046),
          q(0),
          ],
       q(civ) => [
-         q(0110),
+         q(0055),
          q(0),
          ],
       q(cmr) => [
-         q(0036),
+         q(0040),
          q(0),
          ],
       q(cod) => [
-         q(0052),
+         q(0051),
          q(0),
          ],
       q(cog) => [
-         q(0051),
+         q(0052),
          q(0),
          ],
       q(cok) => [
@@ -4006,11 +4076,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(col) => [
-         q(0048),
+         q(0049),
          q(0),
          ],
       q(com) => [
-         q(0049),
+         q(0050),
          q(0),
          ],
       q(cpv) => [
@@ -4022,47 +4092,47 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cub) => [
-         q(0056),
+         q(0057),
          q(0),
          ],
       q(cuw) => [
-         q(0152),
+         q(0058),
          q(0),
          ],
       q(cxr) => [
-         q(0046),
+         q(0047),
          q(0),
          ],
       q(cym) => [
-         q(0039),
+         q(0042),
          q(0),
          ],
       q(cyp) => [
-         q(0057),
+         q(0059),
          q(0),
          ],
       q(cze) => [
-         q(0058),
+         q(0060),
          q(0),
          ],
       q(deu) => [
-         q(0084),
+         q(0083),
          q(0),
          ],
       q(dji) => [
-         q(0079),
+         q(0062),
          q(0),
          ],
       q(dma) => [
-         q(0061),
+         q(0063),
          q(0),
          ],
       q(dnk) => [
-         q(0060),
+         q(0061),
          q(0),
          ],
       q(dom) => [
-         q(0062),
+         q(0064),
          q(0),
          ],
       q(dza) => [
@@ -4070,19 +4140,19 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ecu) => [
-         q(0063),
+         q(0065),
          q(0),
          ],
       q(egy) => [
-         q(0234),
+         q(0066),
          q(0),
          ],
       q(eri) => [
-         q(0067),
+         q(0069),
          q(0),
          ],
       q(esh) => [
-         q(0212),
+         q(0246),
          q(0),
          ],
       q(esp) => [
@@ -4090,35 +4160,35 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(est) => [
-         q(0068),
+         q(0070),
          q(0),
          ],
       q(eth) => [
-         q(0066),
+         q(0071),
          q(0),
          ],
       q(fin) => [
-         q(0073),
+         q(0075),
          q(0),
          ],
       q(fji) => [
-         q(0072),
+         q(0074),
          q(0),
          ],
       q(flk) => [
-         q(0070),
+         q(0072),
          q(0),
          ],
       q(fra) => [
-         q(0075),
+         q(0076),
          q(0),
          ],
       q(fro) => [
-         q(0069),
+         q(0073),
          q(0),
          ],
       q(fsm) => [
-         q(0167),
+         q(0145),
          q(0),
          ],
       q(gab) => [
@@ -4130,63 +4200,63 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(geo) => [
-         q(0081),
+         q(0082),
          q(0),
          ],
       q(ggy) => [
-         q(0236),
+         q(0092),
          q(0),
          ],
       q(gha) => [
-         q(0085),
+         q(0084),
          q(0),
          ],
       q(gib) => [
-         q(0086),
+         q(0085),
          q(0),
          ],
       q(gin) => [
-         q(0094),
+         q(0093),
          q(0),
          ],
       q(glp) => [
-         q(0091),
+         q(0089),
          q(0),
          ],
       q(gmb) => [
-         q(0082),
+         q(0081),
          q(0),
          ],
       q(gnb) => [
-         q(0179),
+         q(0094),
          q(0),
          ],
       q(gnq) => [
-         q(0065),
+         q(0068),
          q(0),
          ],
       q(grc) => [
-         q(0088),
+         q(0086),
          q(0),
          ],
       q(grd) => [
-         q(0090),
+         q(0088),
          q(0),
          ],
       q(grl) => [
-         q(0089),
+         q(0087),
          q(0),
          ],
       q(gtm) => [
-         q(0093),
+         q(0091),
          q(0),
          ],
       q(guf) => [
-         q(0076),
+         q(0077),
          q(0),
          ],
       q(gum) => [
-         q(0092),
+         q(0090),
          q(0),
          ],
       q(guy) => [
@@ -4206,7 +4276,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(hrv) => [
-         q(0055),
+         q(0056),
          q(0),
          ],
       q(hti) => [
@@ -4222,7 +4292,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(imn) => [
-         q(0238),
+         q(0108),
          q(0),
          ],
       q(ind) => [
@@ -4230,7 +4300,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(iot) => [
-         q(0027),
+         q(0033),
          q(0),
          ],
       q(irl) => [
@@ -4250,11 +4320,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(isr) => [
-         q(0108),
+         q(0109),
          q(0),
          ],
       q(ita) => [
-         q(0109),
+         q(0110),
          q(0),
          ],
       q(jam) => [
@@ -4262,7 +4332,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(jey) => [
-         q(0237),
+         q(0113),
          q(0),
          ],
       q(jor) => [
@@ -4274,75 +4344,75 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(kaz) => [
-         q(0113),
+         q(0115),
          q(0),
          ],
       q(ken) => [
-         q(0115),
+         q(0116),
          q(0),
          ],
       q(kgz) => [
-         q(0119),
+         q(0121),
          q(0),
          ],
       q(khm) => [
-         q(0035),
+         q(0039),
          q(0),
          ],
       q(kir) => [
-         q(0087),
+         q(0117),
          q(0),
          ],
       q(kna) => [
-         q(0189),
+         q(0187),
          q(0),
          ],
       q(kor) => [
-         q(0117),
+         q(0119),
          q(0),
          ],
       q(kwt) => [
-         q(0118),
+         q(0120),
          q(0),
          ],
       q(lao) => [
-         q(0120),
+         q(0122),
          q(0),
          ],
       q(lbn) => [
-         q(0121),
+         q(0124),
          q(0),
          ],
       q(lbr) => [
-         q(0124),
+         q(0126),
          q(0),
          ],
       q(lby) => [
-         q(0125),
+         q(0127),
          q(0),
          ],
       q(lca) => [
-         q(0191),
+         q(0188),
          q(0),
          ],
       q(lie) => [
-         q(0126),
+         q(0128),
          q(0),
          ],
       q(lka) => [
-         q(0041),
+         q(0210),
          q(0),
          ],
       q(lso) => [
-         q(0122),
+         q(0125),
          q(0),
          ],
       q(ltu) => [
-         q(0127),
+         q(0129),
          q(0),
          ],
       q(lux) => [
-         q(0128),
+         q(0130),
          q(0),
          ],
       q(lva) => [
@@ -4350,63 +4420,63 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(mac) => [
-         q(0129),
+         q(0131),
          q(0),
          ],
       q(maf) => [
-         q(0192),
+         q(0189),
          q(0),
          ],
       q(mar) => [
-         q(0145),
+         q(0151),
          q(0),
          ],
       q(mco) => [
-         q(0140),
+         q(0147),
          q(0),
          ],
       q(mda) => [
-         q(0142),
+         q(0146),
          q(0),
          ],
       q(mdg) => [
-         q(0130),
+         q(0133),
          q(0),
          ],
       q(mdv) => [
-         q(0133),
+         q(0136),
          q(0),
          ],
       q(mex) => [
-         q(0139),
+         q(0144),
          q(0),
          ],
       q(mhl) => [
-         q(0168),
+         q(0139),
          q(0),
          ],
       q(mkd) => [
-         q(0233),
+         q(0132),
          q(0),
          ],
       q(mli) => [
-         q(0134),
+         q(0137),
          q(0),
          ],
       q(mlt) => [
-         q(0135),
+         q(0138),
          q(0),
          ],
       q(mmr) => [
-         q(0032),
+         q(0153),
          q(0),
          ],
       q(mne) => [
-         q(0143),
+         q(0149),
          q(0),
          ],
       q(mng) => [
-         q(0141),
+         q(0148),
          q(0),
          ],
       q(mnp) => [
@@ -4414,91 +4484,91 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(moz) => [
-         q(0146),
+         q(0152),
          q(0),
          ],
       q(mrt) => [
-         q(0137),
+         q(0141),
          q(0),
          ],
       q(msr) => [
-         q(0144),
+         q(0150),
          q(0),
          ],
       q(mtq) => [
-         q(0136),
+         q(0140),
          q(0),
          ],
       q(mus) => [
-         q(0138),
+         q(0142),
          q(0),
          ],
       q(mwi) => [
-         q(0131),
+         q(0134),
          q(0),
          ],
       q(mys) => [
-         q(0132),
+         q(0135),
          q(0),
          ],
       q(myt) => [
-         q(0050),
+         q(0143),
          q(0),
          ],
       q(nam) => [
-         q(0148),
+         q(0154),
          q(0),
          ],
       q(ncl) => [
-         q(0156),
+         q(0158),
          q(0),
          ],
       q(ner) => [
-         q(0160),
+         q(0161),
          q(0),
          ],
       q(nfk) => [
-         q(0163),
+         q(0164),
          q(0),
          ],
       q(nga) => [
-         q(0161),
+         q(0162),
          q(0),
          ],
       q(nic) => [
-         q(0159),
+         q(0160),
          q(0),
          ],
       q(niu) => [
-         q(0162),
+         q(0163),
          q(0),
          ],
       q(nld) => [
-         q(0151),
+         q(0157),
          q(0),
          ],
       q(nor) => [
-         q(0164),
+         q(0166),
          q(0),
          ],
       q(npl) => [
-         q(0150),
+         q(0156),
          q(0),
          ],
       q(nru) => [
-         q(0149),
+         q(0155),
          q(0),
          ],
       q(nzl) => [
-         q(0158),
+         q(0159),
          q(0),
          ],
       q(omn) => [
-         q(0147),
+         q(0167),
          q(0),
          ],
       q(pak) => [
-         q(0170),
+         q(0168),
          q(0),
          ],
       q(pan) => [
@@ -4530,11 +4600,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pri) => [
-         q(0181),
+         q(0179),
          q(0),
          ],
       q(prk) => [
-         q(0116),
+         q(0118),
          q(0),
          ],
       q(prt) => [
@@ -4546,35 +4616,35 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pse) => [
-         q(0083),
+         q(0170),
          q(0),
          ],
       q(pyf) => [
-         q(0077),
+         q(0078),
          q(0),
          ],
       q(qat) => [
-         q(0182),
+         q(0180),
          q(0),
          ],
       q(reu) => [
-         q(0183),
+         q(0181),
          q(0),
          ],
       q(rou) => [
-         q(0184),
+         q(0182),
          q(0),
          ],
       q(rus) => [
-         q(0185),
+         q(0183),
          q(0),
          ],
       q(rwa) => [
-         q(0186),
+         q(0184),
          q(0),
          ],
       q(sau) => [
-         q(0197),
+         q(0195),
          q(0),
          ],
       q(sdn) => [
@@ -4582,107 +4652,107 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(sen) => [
-         q(0198),
+         q(0196),
          q(0),
          ],
       q(sgp) => [
-         q(0202),
+         q(0200),
          q(0),
          ],
       q(sgs) => [
-         q(0071),
+         q(0207),
          q(0),
          ],
       q(shn) => [
-         q(0188),
+         q(0186),
          q(0),
          ],
       q(sjm) => [
-         q(0214),
+         q(0213),
          q(0),
          ],
       q(slb) => [
-         q(0028),
+         q(0204),
          q(0),
          ],
       q(sle) => [
-         q(0201),
+         q(0199),
          q(0),
          ],
       q(slv) => [
-         q(0064),
+         q(0067),
          q(0),
          ],
       q(smr) => [
-         q(0195),
+         q(0193),
          q(0),
          ],
       q(som) => [
-         q(0206),
+         q(0205),
          q(0),
          ],
       q(spm) => [
-         q(0193),
+         q(0190),
          q(0),
          ],
       q(srb) => [
-         q(0199),
+         q(0197),
          q(0),
          ],
       q(ssd) => [
-         q(0210),
+         q(0208),
          q(0),
          ],
       q(stp) => [
-         q(0196),
+         q(0194),
          q(0),
          ],
       q(sur) => [
-         q(0213),
+         q(0212),
          q(0),
          ],
       q(svk) => [
-         q(0203),
+         q(0202),
          q(0),
          ],
       q(svn) => [
-         q(0205),
+         q(0203),
          q(0),
          ],
       q(swe) => [
-         q(0216),
+         q(0215),
          q(0),
          ],
       q(swz) => [
-         q(0215),
+         q(0214),
          q(0),
          ],
       q(sxm) => [
-         q(0154),
+         q(0201),
          q(0),
          ],
       q(syc) => [
-         q(0200),
+         q(0198),
          q(0),
          ],
       q(syr) => [
-         q(0218),
+         q(0217),
          q(0),
          ],
       q(tca) => [
-         q(0229),
+         q(0230),
          q(0),
          ],
       q(tcd) => [
-         q(0042),
+         q(0044),
          q(0),
          ],
       q(tgo) => [
-         q(0221),
+         q(0223),
          q(0),
          ],
       q(tha) => [
-         q(0220),
+         q(0221),
          q(0),
          ],
       q(tjk) => [
@@ -4690,67 +4760,67 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(tkl) => [
-         q(0222),
+         q(0224),
          q(0),
          ],
       q(tkm) => [
-         q(0228),
+         q(0229),
          q(0),
          ],
       q(tls) => [
-         q(0180),
+         q(0222),
          q(0),
          ],
       q(ton) => [
-         q(0223),
+         q(0225),
          q(0),
          ],
       q(tto) => [
-         q(0224),
+         q(0226),
          q(0),
          ],
       q(tun) => [
-         q(0226),
+         q(0227),
          q(0),
          ],
       q(tur) => [
-         q(0227),
+         q(0228),
          q(0),
          ],
       q(tuv) => [
-         q(0230),
+         q(0231),
          q(0),
          ],
       q(twn) => [
-         q(0045),
+         q(0218),
          q(0),
          ],
       q(tza) => [
-         q(0239),
+         q(0220),
          q(0),
          ],
       q(uga) => [
-         q(0231),
+         q(0232),
          q(0),
          ],
       q(ukr) => [
-         q(0232),
+         q(0233),
          q(0),
          ],
       q(umi) => [
-         q(0166),
+         q(0236),
          q(0),
          ],
       q(ury) => [
-         q(0243),
+         q(0238),
          q(0),
          ],
       q(usa) => [
-         q(0240),
+         q(0237),
          q(0),
          ],
       q(uzb) => [
-         q(0244),
+         q(0239),
          q(0),
          ],
       q(vat) => [
@@ -4758,51 +4828,51 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(vct) => [
-         q(0194),
+         q(0191),
          q(0),
          ],
       q(ven) => [
-         q(0245),
+         q(0241),
          q(0),
          ],
       q(vgb) => [
-         q(0029),
+         q(0243),
          q(0),
          ],
       q(vir) => [
-         q(0241),
+         q(0244),
          q(0),
          ],
       q(vnm) => [
-         q(0204),
+         q(0242),
          q(0),
          ],
       q(vut) => [
-         q(0157),
+         q(0240),
          q(0),
          ],
       q(wlf) => [
-         q(0246),
+         q(0245),
          q(0),
          ],
       q(wsm) => [
-         q(0247),
+         q(0192),
          q(0),
          ],
       q(yem) => [
-         q(0248),
+         q(0247),
          q(0),
          ],
       q(zaf) => [
-         q(0207),
+         q(0206),
          q(0),
          ],
       q(zmb) => [
-         q(0249),
+         q(0248),
          q(0),
          ],
       q(zwe) => [
-         q(0208),
+         q(0249),
          q(0),
          ],
       },
@@ -4812,7 +4882,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ae) => [
-         q(0225),
+         q(0234),
          q(0),
          ],
       q(af) => [
@@ -4820,19 +4890,19 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ag) => [
-         q(0008),
+         q(0010),
          q(0),
          ],
       q(ai) => [
-         q(0190),
+         q(0008),
          q(0),
          ],
       q(al) => [
-         q(0002),
+         q(0003),
          q(0),
          ],
       q(am) => [
-         q(0016),
+         q(0012),
          q(0),
          ],
       q(ao) => [
@@ -4840,11 +4910,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(aq) => [
-         q(0003),
+         q(0009),
          q(0),
          ],
       q(ar) => [
-         q(0010),
+         q(0011),
          q(0),
          ],
       q(as) => [
@@ -4852,135 +4922,135 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(at) => [
-         q(0012),
+         q(0015),
          q(0),
          ],
       q(au) => [
-         q(0011),
+         q(0014),
          q(0),
          ],
       q(aw) => [
-         q(0153),
+         q(0013),
          q(0),
          ],
       q(ax) => [
-         q(0074),
+         q(0002),
          q(0),
          ],
       q(az) => [
-         q(0009),
+         q(0016),
          q(0),
          ],
       q(ba) => [
-         q(0022),
+         q(0029),
          q(0),
          ],
       q(bb) => [
-         q(0017),
+         q(0020),
          q(0),
          ],
       q(bd) => [
-         q(0015),
+         q(0019),
          q(0),
          ],
       q(be) => [
-         q(0018),
+         q(0022),
          q(0),
          ],
       q(bf) => [
-         q(0242),
+         q(0036),
          q(0),
          ],
       q(bg) => [
-         q(0031),
+         q(0035),
          q(0),
          ],
       q(bh) => [
-         q(0014),
+         q(0018),
          q(0),
          ],
       q(bi) => [
-         q(0033),
+         q(0037),
          q(0),
          ],
       q(bj) => [
-         q(0059),
+         q(0024),
          q(0),
          ],
       q(bl) => [
-         q(0187),
+         q(0185),
          q(0),
          ],
       q(bm) => [
-         q(0019),
+         q(0025),
          q(0),
          ],
       q(bn) => [
-         q(0030),
+         q(0034),
          q(0),
          ],
       q(bo) => [
-         q(0021),
+         q(0027),
          q(0),
          ],
       q(bq) => [
-         q(0155),
+         q(0028),
          q(0),
          ],
       q(br) => [
-         q(0025),
+         q(0032),
          q(0),
          ],
       q(bs) => [
-         q(0013),
+         q(0017),
          q(0),
          ],
       q(bt) => [
-         q(0020),
+         q(0026),
          q(0),
          ],
       q(bv) => [
-         q(0024),
+         q(0031),
          q(0),
          ],
       q(bw) => [
-         q(0023),
+         q(0030),
          q(0),
          ],
       q(by) => [
-         q(0034),
+         q(0021),
          q(0),
          ],
       q(bz) => [
-         q(0026),
+         q(0023),
          q(0),
          ],
       q(ca) => [
-         q(0037),
+         q(0041),
          q(0),
          ],
       q(cc) => [
-         q(0047),
+         q(0048),
          q(0),
          ],
       q(cd) => [
-         q(0052),
+         q(0051),
          q(0),
          ],
       q(cf) => [
-         q(0040),
+         q(0043),
          q(0),
          ],
       q(cg) => [
-         q(0051),
+         q(0052),
          q(0),
          ],
       q(ch) => [
-         q(0217),
+         q(0216),
          q(0),
          ],
       q(ci) => [
-         q(0110),
+         q(0055),
          q(0),
          ],
       q(ck) => [
@@ -4988,19 +5058,19 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cl) => [
-         q(0043),
+         q(0045),
          q(0),
          ],
       q(cm) => [
-         q(0036),
+         q(0040),
          q(0),
          ],
       q(cn) => [
-         q(0044),
+         q(0046),
          q(0),
          ],
       q(co) => [
-         q(0048),
+         q(0049),
          q(0),
          ],
       q(cr) => [
@@ -5008,7 +5078,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cu) => [
-         q(0056),
+         q(0057),
          q(0),
          ],
       q(cv) => [
@@ -5016,39 +5086,39 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cw) => [
-         q(0152),
+         q(0058),
          q(0),
          ],
       q(cx) => [
-         q(0046),
+         q(0047),
          q(0),
          ],
       q(cy) => [
-         q(0057),
+         q(0059),
          q(0),
          ],
       q(cz) => [
-         q(0058),
+         q(0060),
          q(0),
          ],
       q(de) => [
-         q(0084),
+         q(0083),
          q(0),
          ],
       q(dj) => [
-         q(0079),
+         q(0062),
          q(0),
          ],
       q(dk) => [
-         q(0060),
+         q(0061),
          q(0),
          ],
       q(dm) => [
-         q(0061),
+         q(0063),
          q(0),
          ],
       q(do) => [
-         q(0062),
+         q(0064),
          q(0),
          ],
       q(dz) => [
@@ -5056,23 +5126,23 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ec) => [
-         q(0063),
+         q(0065),
          q(0),
          ],
       q(ee) => [
-         q(0068),
+         q(0070),
          q(0),
          ],
       q(eg) => [
-         q(0234),
+         q(0066),
          q(0),
          ],
       q(eh) => [
-         q(0212),
+         q(0246),
          q(0),
          ],
       q(er) => [
-         q(0067),
+         q(0069),
          q(0),
          ],
       q(es) => [
@@ -5080,31 +5150,31 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(et) => [
-         q(0066),
+         q(0071),
          q(0),
          ],
       q(fi) => [
-         q(0073),
+         q(0075),
          q(0),
          ],
       q(fj) => [
-         q(0072),
+         q(0074),
          q(0),
          ],
       q(fk) => [
-         q(0070),
+         q(0072),
          q(0),
          ],
       q(fm) => [
-         q(0167),
+         q(0145),
          q(0),
          ],
       q(fo) => [
-         q(0069),
+         q(0073),
          q(0),
          ],
       q(fr) => [
-         q(0075),
+         q(0076),
          q(0),
          ],
       q(ga) => [
@@ -5116,67 +5186,67 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(gd) => [
-         q(0090),
+         q(0088),
          q(0),
          ],
       q(ge) => [
-         q(0081),
+         q(0082),
          q(0),
          ],
       q(gf) => [
-         q(0076),
+         q(0077),
          q(0),
          ],
       q(gg) => [
-         q(0236),
+         q(0092),
          q(0),
          ],
       q(gh) => [
-         q(0085),
+         q(0084),
          q(0),
          ],
       q(gi) => [
-         q(0086),
+         q(0085),
          q(0),
          ],
       q(gl) => [
-         q(0089),
+         q(0087),
          q(0),
          ],
       q(gm) => [
-         q(0082),
+         q(0081),
          q(0),
          ],
       q(gn) => [
-         q(0094),
+         q(0093),
          q(0),
          ],
       q(gp) => [
-         q(0091),
+         q(0089),
          q(0),
          ],
       q(gq) => [
-         q(0065),
+         q(0068),
          q(0),
          ],
       q(gr) => [
-         q(0088),
+         q(0086),
          q(0),
          ],
       q(gs) => [
-         q(0071),
+         q(0207),
          q(0),
          ],
       q(gt) => [
-         q(0093),
+         q(0091),
          q(0),
          ],
       q(gu) => [
-         q(0092),
+         q(0090),
          q(0),
          ],
       q(gw) => [
-         q(0179),
+         q(0094),
          q(0),
          ],
       q(gy) => [
@@ -5196,7 +5266,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(hr) => [
-         q(0055),
+         q(0056),
          q(0),
          ],
       q(ht) => [
@@ -5216,11 +5286,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(il) => [
-         q(0108),
+         q(0109),
          q(0),
          ],
       q(im) => [
-         q(0238),
+         q(0108),
          q(0),
          ],
       q(in) => [
@@ -5228,7 +5298,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(io) => [
-         q(0027),
+         q(0033),
          q(0),
          ],
       q(iq) => [
@@ -5244,11 +5314,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(it) => [
-         q(0109),
+         q(0110),
          q(0),
          ],
       q(je) => [
-         q(0237),
+         q(0113),
          q(0),
          ],
       q(jm) => [
@@ -5264,83 +5334,83 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ke) => [
-         q(0115),
+         q(0116),
          q(0),
          ],
       q(kg) => [
-         q(0119),
+         q(0121),
          q(0),
          ],
       q(kh) => [
-         q(0035),
+         q(0039),
          q(0),
          ],
       q(ki) => [
-         q(0087),
+         q(0117),
          q(0),
          ],
       q(km) => [
-         q(0049),
+         q(0050),
          q(0),
          ],
       q(kn) => [
-         q(0189),
+         q(0187),
          q(0),
          ],
       q(kp) => [
-         q(0116),
+         q(0118),
          q(0),
          ],
       q(kr) => [
-         q(0117),
+         q(0119),
          q(0),
          ],
       q(kw) => [
-         q(0118),
+         q(0120),
          q(0),
          ],
       q(ky) => [
-         q(0039),
+         q(0042),
          q(0),
          ],
       q(kz) => [
-         q(0113),
+         q(0115),
          q(0),
          ],
       q(la) => [
-         q(0120),
+         q(0122),
          q(0),
          ],
       q(lb) => [
-         q(0121),
+         q(0124),
          q(0),
          ],
       q(lc) => [
-         q(0191),
+         q(0188),
          q(0),
          ],
       q(li) => [
-         q(0126),
+         q(0128),
          q(0),
          ],
       q(lk) => [
-         q(0041),
+         q(0210),
          q(0),
          ],
       q(lr) => [
-         q(0124),
+         q(0126),
          q(0),
          ],
       q(ls) => [
-         q(0122),
+         q(0125),
          q(0),
          ],
       q(lt) => [
-         q(0127),
+         q(0129),
          q(0),
          ],
       q(lu) => [
-         q(0128),
+         q(0130),
          q(0),
          ],
       q(lv) => [
@@ -5348,55 +5418,55 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ly) => [
-         q(0125),
+         q(0127),
          q(0),
          ],
       q(ma) => [
-         q(0145),
+         q(0151),
          q(0),
          ],
       q(mc) => [
-         q(0140),
+         q(0147),
          q(0),
          ],
       q(md) => [
-         q(0142),
+         q(0146),
          q(0),
          ],
       q(me) => [
-         q(0143),
+         q(0149),
          q(0),
          ],
       q(mf) => [
-         q(0192),
+         q(0189),
          q(0),
          ],
       q(mg) => [
-         q(0130),
+         q(0133),
          q(0),
          ],
       q(mh) => [
-         q(0168),
+         q(0139),
          q(0),
          ],
       q(mk) => [
-         q(0233),
+         q(0132),
          q(0),
          ],
       q(ml) => [
-         q(0134),
+         q(0137),
          q(0),
          ],
       q(mm) => [
-         q(0032),
+         q(0153),
          q(0),
          ],
       q(mn) => [
-         q(0141),
+         q(0148),
          q(0),
          ],
       q(mo) => [
-         q(0129),
+         q(0131),
          q(0),
          ],
       q(mp) => [
@@ -5404,95 +5474,95 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(mq) => [
-         q(0136),
+         q(0140),
          q(0),
          ],
       q(mr) => [
-         q(0137),
+         q(0141),
          q(0),
          ],
       q(ms) => [
-         q(0144),
+         q(0150),
          q(0),
          ],
       q(mt) => [
-         q(0135),
+         q(0138),
          q(0),
          ],
       q(mu) => [
-         q(0138),
+         q(0142),
          q(0),
          ],
       q(mv) => [
-         q(0133),
+         q(0136),
          q(0),
          ],
       q(mw) => [
-         q(0131),
+         q(0134),
          q(0),
          ],
       q(mx) => [
-         q(0139),
+         q(0144),
          q(0),
          ],
       q(my) => [
-         q(0132),
+         q(0135),
          q(0),
          ],
       q(mz) => [
-         q(0146),
+         q(0152),
          q(0),
          ],
       q(na) => [
-         q(0148),
+         q(0154),
          q(0),
          ],
       q(nc) => [
-         q(0156),
+         q(0158),
          q(0),
          ],
       q(ne) => [
-         q(0160),
+         q(0161),
          q(0),
          ],
       q(nf) => [
-         q(0163),
+         q(0164),
          q(0),
          ],
       q(ng) => [
-         q(0161),
+         q(0162),
          q(0),
          ],
       q(ni) => [
-         q(0159),
+         q(0160),
          q(0),
          ],
       q(nl) => [
-         q(0151),
+         q(0157),
          q(0),
          ],
       q(no) => [
-         q(0164),
+         q(0166),
          q(0),
          ],
       q(np) => [
-         q(0150),
+         q(0156),
          q(0),
          ],
       q(nr) => [
-         q(0149),
+         q(0155),
          q(0),
          ],
       q(nu) => [
-         q(0162),
+         q(0163),
          q(0),
          ],
       q(nz) => [
-         q(0158),
+         q(0159),
          q(0),
          ],
       q(om) => [
-         q(0147),
+         q(0167),
          q(0),
          ],
       q(pa) => [
@@ -5504,7 +5574,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pf) => [
-         q(0077),
+         q(0078),
          q(0),
          ],
       q(pg) => [
@@ -5516,7 +5586,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pk) => [
-         q(0170),
+         q(0168),
          q(0),
          ],
       q(pl) => [
@@ -5524,7 +5594,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pm) => [
-         q(0193),
+         q(0190),
          q(0),
          ],
       q(pn) => [
@@ -5532,11 +5602,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(pr) => [
-         q(0181),
+         q(0179),
          q(0),
          ],
       q(ps) => [
-         q(0083),
+         q(0170),
          q(0),
          ],
       q(pt) => [
@@ -5552,39 +5622,39 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(qa) => [
-         q(0182),
+         q(0180),
          q(0),
          ],
       q(re) => [
-         q(0183),
+         q(0181),
          q(0),
          ],
       q(ro) => [
-         q(0184),
+         q(0182),
          q(0),
          ],
       q(rs) => [
-         q(0199),
+         q(0197),
          q(0),
          ],
       q(ru) => [
-         q(0185),
+         q(0183),
          q(0),
          ],
       q(rw) => [
-         q(0186),
+         q(0184),
          q(0),
          ],
       q(sa) => [
-         q(0197),
+         q(0195),
          q(0),
          ],
       q(sb) => [
-         q(0028),
+         q(0204),
          q(0),
          ],
       q(sc) => [
-         q(0200),
+         q(0198),
          q(0),
          ],
       q(sd) => [
@@ -5592,91 +5662,91 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(se) => [
-         q(0216),
+         q(0215),
          q(0),
          ],
       q(sg) => [
-         q(0202),
+         q(0200),
          q(0),
          ],
       q(sh) => [
-         q(0188),
+         q(0186),
          q(0),
          ],
       q(si) => [
-         q(0205),
+         q(0203),
          q(0),
          ],
       q(sj) => [
-         q(0214),
+         q(0213),
          q(0),
          ],
       q(sk) => [
-         q(0203),
+         q(0202),
          q(0),
          ],
       q(sl) => [
-         q(0201),
+         q(0199),
          q(0),
          ],
       q(sm) => [
-         q(0195),
+         q(0193),
          q(0),
          ],
       q(sn) => [
-         q(0198),
+         q(0196),
          q(0),
          ],
       q(so) => [
-         q(0206),
+         q(0205),
          q(0),
          ],
       q(sr) => [
-         q(0213),
+         q(0212),
          q(0),
          ],
       q(ss) => [
-         q(0210),
+         q(0208),
          q(0),
          ],
       q(st) => [
-         q(0196),
+         q(0194),
          q(0),
          ],
       q(sv) => [
-         q(0064),
+         q(0067),
          q(0),
          ],
       q(sx) => [
-         q(0154),
+         q(0201),
          q(0),
          ],
       q(sy) => [
-         q(0218),
+         q(0217),
          q(0),
          ],
       q(sz) => [
-         q(0215),
+         q(0214),
          q(0),
          ],
       q(tc) => [
-         q(0229),
+         q(0230),
          q(0),
          ],
       q(td) => [
-         q(0042),
+         q(0044),
          q(0),
          ],
       q(tf) => [
-         q(0078),
+         q(0079),
          q(0),
          ],
       q(tg) => [
-         q(0221),
+         q(0223),
          q(0),
          ],
       q(th) => [
-         q(0220),
+         q(0221),
          q(0),
          ],
       q(tj) => [
@@ -5684,67 +5754,67 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(tk) => [
-         q(0222),
+         q(0224),
          q(0),
          ],
       q(tl) => [
-         q(0180),
+         q(0222),
          q(0),
          ],
       q(tm) => [
-         q(0228),
+         q(0229),
          q(0),
          ],
       q(tn) => [
-         q(0226),
+         q(0227),
          q(0),
          ],
       q(to) => [
-         q(0223),
+         q(0225),
          q(0),
          ],
       q(tr) => [
-         q(0227),
+         q(0228),
          q(0),
          ],
       q(tt) => [
-         q(0224),
+         q(0226),
          q(0),
          ],
       q(tv) => [
-         q(0230),
+         q(0231),
          q(0),
          ],
       q(tw) => [
-         q(0045),
+         q(0218),
          q(0),
          ],
       q(tz) => [
-         q(0239),
+         q(0220),
          q(0),
          ],
       q(ua) => [
-         q(0232),
+         q(0233),
          q(0),
          ],
       q(ug) => [
-         q(0231),
+         q(0232),
          q(0),
          ],
       q(um) => [
-         q(0166),
+         q(0236),
          q(0),
          ],
       q(us) => [
-         q(0240),
+         q(0237),
          q(0),
          ],
       q(uy) => [
-         q(0243),
+         q(0238),
          q(0),
          ],
       q(uz) => [
-         q(0244),
+         q(0239),
          q(0),
          ],
       q(va) => [
@@ -5752,55 +5822,55 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(vc) => [
-         q(0194),
+         q(0191),
          q(0),
          ],
       q(ve) => [
-         q(0245),
+         q(0241),
          q(0),
          ],
       q(vg) => [
-         q(0029),
+         q(0243),
          q(0),
          ],
       q(vi) => [
-         q(0241),
+         q(0244),
          q(0),
          ],
       q(vn) => [
-         q(0204),
+         q(0242),
          q(0),
          ],
       q(vu) => [
-         q(0157),
+         q(0240),
          q(0),
          ],
       q(wf) => [
-         q(0246),
+         q(0245),
          q(0),
          ],
       q(ws) => [
-         q(0247),
+         q(0192),
          q(0),
          ],
       q(ye) => [
-         q(0248),
+         q(0247),
          q(0),
          ],
       q(yt) => [
-         q(0050),
+         q(0143),
          q(0),
          ],
       q(za) => [
-         q(0207),
+         q(0206),
          q(0),
          ],
       q(zm) => [
-         q(0249),
+         q(0248),
          q(0),
          ],
       q(zw) => [
-         q(0208),
+         q(0249),
          q(0),
          ],
       },
@@ -5810,11 +5880,11 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(008) => [
-         q(0002),
+         q(0003),
          q(0),
          ],
       q(010) => [
-         q(0003),
+         q(0009),
          q(0),
          ],
       q(012) => [
@@ -5834,123 +5904,123 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(028) => [
-         q(0008),
+         q(0010),
          q(0),
          ],
       q(031) => [
-         q(0009),
+         q(0016),
          q(0),
          ],
       q(032) => [
-         q(0010),
+         q(0011),
          q(0),
          ],
       q(036) => [
-         q(0011),
+         q(0014),
          q(0),
          ],
       q(040) => [
-         q(0012),
+         q(0015),
          q(0),
          ],
       q(044) => [
-         q(0013),
+         q(0017),
          q(0),
          ],
       q(048) => [
-         q(0014),
+         q(0018),
          q(0),
          ],
       q(050) => [
-         q(0015),
+         q(0019),
          q(0),
          ],
       q(051) => [
-         q(0016),
+         q(0012),
          q(0),
          ],
       q(052) => [
-         q(0017),
+         q(0020),
          q(0),
          ],
       q(056) => [
-         q(0018),
+         q(0022),
          q(0),
          ],
       q(060) => [
-         q(0019),
+         q(0025),
          q(0),
          ],
       q(064) => [
-         q(0020),
+         q(0026),
          q(0),
          ],
       q(068) => [
-         q(0021),
+         q(0027),
          q(0),
          ],
       q(070) => [
-         q(0022),
+         q(0029),
          q(0),
          ],
       q(072) => [
-         q(0023),
+         q(0030),
          q(0),
          ],
       q(074) => [
-         q(0024),
+         q(0031),
          q(0),
          ],
       q(076) => [
-         q(0025),
+         q(0032),
          q(0),
          ],
       q(084) => [
-         q(0026),
+         q(0023),
          q(0),
          ],
       q(086) => [
-         q(0027),
+         q(0033),
          q(0),
          ],
       q(090) => [
-         q(0028),
+         q(0204),
          q(0),
          ],
       q(092) => [
-         q(0029),
+         q(0243),
          q(0),
          ],
       q(096) => [
-         q(0030),
+         q(0034),
          q(0),
          ],
       q(100) => [
-         q(0031),
+         q(0035),
          q(0),
          ],
       q(104) => [
-         q(0032),
+         q(0153),
          q(0),
          ],
       q(108) => [
-         q(0033),
+         q(0037),
          q(0),
          ],
       q(112) => [
-         q(0034),
+         q(0021),
          q(0),
          ],
       q(116) => [
-         q(0035),
+         q(0039),
          q(0),
          ],
       q(120) => [
-         q(0036),
+         q(0040),
          q(0),
          ],
       q(124) => [
-         q(0037),
+         q(0041),
          q(0),
          ],
       q(132) => [
@@ -5958,59 +6028,59 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(136) => [
-         q(0039),
+         q(0042),
          q(0),
          ],
       q(140) => [
-         q(0040),
+         q(0043),
          q(0),
          ],
       q(144) => [
-         q(0041),
+         q(0210),
          q(0),
          ],
       q(148) => [
-         q(0042),
+         q(0044),
          q(0),
          ],
       q(152) => [
-         q(0043),
+         q(0045),
          q(0),
          ],
       q(156) => [
-         q(0044),
+         q(0046),
          q(0),
          ],
       q(158) => [
-         q(0045),
+         q(0218),
          q(0),
          ],
       q(162) => [
-         q(0046),
+         q(0047),
          q(0),
          ],
       q(166) => [
-         q(0047),
+         q(0048),
          q(0),
          ],
       q(170) => [
-         q(0048),
+         q(0049),
          q(0),
          ],
       q(174) => [
-         q(0049),
+         q(0050),
          q(0),
          ],
       q(175) => [
-         q(0050),
+         q(0143),
          q(0),
          ],
       q(178) => [
-         q(0051),
+         q(0052),
          q(0),
          ],
       q(180) => [
-         q(0052),
+         q(0051),
          q(0),
          ],
       q(184) => [
@@ -6022,103 +6092,103 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(191) => [
-         q(0055),
+         q(0056),
          q(0),
          ],
       q(192) => [
-         q(0056),
+         q(0057),
          q(0),
          ],
       q(196) => [
-         q(0057),
+         q(0059),
          q(0),
          ],
       q(203) => [
-         q(0058),
+         q(0060),
          q(0),
          ],
       q(204) => [
-         q(0059),
+         q(0024),
          q(0),
          ],
       q(208) => [
-         q(0060),
+         q(0061),
          q(0),
          ],
       q(212) => [
-         q(0061),
+         q(0063),
          q(0),
          ],
       q(214) => [
-         q(0062),
+         q(0064),
          q(0),
          ],
       q(218) => [
-         q(0063),
+         q(0065),
          q(0),
          ],
       q(222) => [
-         q(0064),
+         q(0067),
          q(0),
          ],
       q(226) => [
-         q(0065),
+         q(0068),
          q(0),
          ],
       q(231) => [
-         q(0066),
+         q(0071),
          q(0),
          ],
       q(232) => [
-         q(0067),
+         q(0069),
          q(0),
          ],
       q(233) => [
-         q(0068),
+         q(0070),
          q(0),
          ],
       q(234) => [
-         q(0069),
+         q(0073),
          q(0),
          ],
       q(238) => [
-         q(0070),
+         q(0072),
          q(0),
          ],
       q(239) => [
-         q(0071),
+         q(0207),
          q(0),
          ],
       q(242) => [
-         q(0072),
+         q(0074),
          q(0),
          ],
       q(246) => [
-         q(0073),
+         q(0075),
          q(0),
          ],
       q(248) => [
-         q(0074),
+         q(0002),
          q(0),
          ],
       q(250) => [
-         q(0075),
+         q(0076),
          q(0),
          ],
       q(254) => [
-         q(0076),
+         q(0077),
          q(0),
          ],
       q(258) => [
-         q(0077),
+         q(0078),
          q(0),
          ],
       q(260) => [
-         q(0078),
+         q(0079),
          q(0),
          ],
       q(262) => [
-         q(0079),
+         q(0062),
          q(0),
          ],
       q(266) => [
@@ -6126,59 +6196,59 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(268) => [
-         q(0081),
+         q(0082),
          q(0),
          ],
       q(270) => [
-         q(0082),
+         q(0081),
          q(0),
          ],
       q(275) => [
-         q(0083),
+         q(0170),
          q(0),
          ],
       q(276) => [
-         q(0084),
+         q(0083),
          q(0),
          ],
       q(288) => [
-         q(0085),
+         q(0084),
          q(0),
          ],
       q(292) => [
-         q(0086),
+         q(0085),
          q(0),
          ],
       q(296) => [
-         q(0087),
+         q(0117),
          q(0),
          ],
       q(300) => [
-         q(0088),
+         q(0086),
          q(0),
          ],
       q(304) => [
-         q(0089),
+         q(0087),
          q(0),
          ],
       q(308) => [
-         q(0090),
+         q(0088),
          q(0),
          ],
       q(312) => [
-         q(0091),
+         q(0089),
          q(0),
          ],
       q(316) => [
-         q(0092),
+         q(0090),
          q(0),
          ],
       q(320) => [
-         q(0093),
+         q(0091),
          q(0),
          ],
       q(324) => [
-         q(0094),
+         q(0093),
          q(0),
          ],
       q(328) => [
@@ -6234,15 +6304,15 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(376) => [
-         q(0108),
+         q(0109),
          q(0),
          ],
       q(380) => [
-         q(0109),
+         q(0110),
          q(0),
          ],
       q(384) => [
-         q(0110),
+         q(0055),
          q(0),
          ],
       q(388) => [
@@ -6254,7 +6324,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(398) => [
-         q(0113),
+         q(0115),
          q(0),
          ],
       q(400) => [
@@ -6262,35 +6332,35 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(404) => [
-         q(0115),
+         q(0116),
          q(0),
          ],
       q(408) => [
-         q(0116),
+         q(0118),
          q(0),
          ],
       q(410) => [
-         q(0117),
+         q(0119),
          q(0),
          ],
       q(414) => [
-         q(0118),
+         q(0120),
          q(0),
          ],
       q(417) => [
-         q(0119),
+         q(0121),
          q(0),
          ],
       q(418) => [
-         q(0120),
+         q(0122),
          q(0),
          ],
       q(422) => [
-         q(0121),
+         q(0124),
          q(0),
          ],
       q(426) => [
-         q(0122),
+         q(0125),
          q(0),
          ],
       q(428) => [
@@ -6298,167 +6368,167 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(430) => [
-         q(0124),
+         q(0126),
          q(0),
          ],
       q(434) => [
-         q(0125),
+         q(0127),
          q(0),
          ],
       q(438) => [
-         q(0126),
+         q(0128),
          q(0),
          ],
       q(440) => [
-         q(0127),
+         q(0129),
          q(0),
          ],
       q(442) => [
-         q(0128),
+         q(0130),
          q(0),
          ],
       q(446) => [
-         q(0129),
+         q(0131),
          q(0),
          ],
       q(450) => [
-         q(0130),
+         q(0133),
          q(0),
          ],
       q(454) => [
-         q(0131),
+         q(0134),
          q(0),
          ],
       q(458) => [
-         q(0132),
+         q(0135),
          q(0),
          ],
       q(462) => [
-         q(0133),
+         q(0136),
          q(0),
          ],
       q(466) => [
-         q(0134),
+         q(0137),
          q(0),
          ],
       q(470) => [
-         q(0135),
+         q(0138),
          q(0),
          ],
       q(474) => [
-         q(0136),
+         q(0140),
          q(0),
          ],
       q(478) => [
-         q(0137),
+         q(0141),
          q(0),
          ],
       q(480) => [
-         q(0138),
+         q(0142),
          q(0),
          ],
       q(484) => [
-         q(0139),
+         q(0144),
          q(0),
          ],
       q(492) => [
-         q(0140),
+         q(0147),
          q(0),
          ],
       q(496) => [
-         q(0141),
+         q(0148),
          q(0),
          ],
       q(498) => [
-         q(0142),
+         q(0146),
          q(0),
          ],
       q(499) => [
-         q(0143),
+         q(0149),
          q(0),
          ],
       q(500) => [
-         q(0144),
+         q(0150),
          q(0),
          ],
       q(504) => [
-         q(0145),
+         q(0151),
          q(0),
          ],
       q(508) => [
-         q(0146),
+         q(0152),
          q(0),
          ],
       q(512) => [
-         q(0147),
+         q(0167),
          q(0),
          ],
       q(516) => [
-         q(0148),
+         q(0154),
          q(0),
          ],
       q(520) => [
-         q(0149),
+         q(0155),
          q(0),
          ],
       q(524) => [
-         q(0150),
+         q(0156),
          q(0),
          ],
       q(528) => [
-         q(0151),
+         q(0157),
          q(0),
          ],
       q(531) => [
-         q(0152),
+         q(0058),
          q(0),
          ],
       q(533) => [
-         q(0153),
+         q(0013),
          q(0),
          ],
       q(534) => [
-         q(0154),
+         q(0201),
          q(0),
          ],
       q(535) => [
-         q(0155),
+         q(0028),
          q(0),
          ],
       q(540) => [
-         q(0156),
+         q(0158),
          q(0),
          ],
       q(548) => [
-         q(0157),
+         q(0240),
          q(0),
          ],
       q(554) => [
-         q(0158),
+         q(0159),
          q(0),
          ],
       q(558) => [
-         q(0159),
+         q(0160),
          q(0),
          ],
       q(562) => [
-         q(0160),
+         q(0161),
          q(0),
          ],
       q(566) => [
-         q(0161),
+         q(0162),
          q(0),
          ],
       q(570) => [
-         q(0162),
+         q(0163),
          q(0),
          ],
       q(574) => [
-         q(0163),
+         q(0164),
          q(0),
          ],
       q(578) => [
-         q(0164),
+         q(0166),
          q(0),
          ],
       q(580) => [
@@ -6466,15 +6536,15 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(581) => [
-         q(0166),
+         q(0236),
          q(0),
          ],
       q(583) => [
-         q(0167),
+         q(0145),
          q(0),
          ],
       q(584) => [
-         q(0168),
+         q(0139),
          q(0),
          ],
       q(585) => [
@@ -6482,7 +6552,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(586) => [
-         q(0170),
+         q(0168),
          q(0),
          ],
       q(591) => [
@@ -6518,123 +6588,123 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(624) => [
-         q(0179),
+         q(0094),
          q(0),
          ],
       q(626) => [
-         q(0180),
+         q(0222),
          q(0),
          ],
       q(630) => [
-         q(0181),
+         q(0179),
          q(0),
          ],
       q(634) => [
-         q(0182),
+         q(0180),
          q(0),
          ],
       q(638) => [
-         q(0183),
+         q(0181),
          q(0),
          ],
       q(642) => [
-         q(0184),
+         q(0182),
          q(0),
          ],
       q(643) => [
-         q(0185),
+         q(0183),
          q(0),
          ],
       q(646) => [
-         q(0186),
+         q(0184),
          q(0),
          ],
       q(652) => [
-         q(0187),
+         q(0185),
          q(0),
          ],
       q(654) => [
-         q(0188),
+         q(0186),
          q(0),
          ],
       q(659) => [
-         q(0189),
+         q(0187),
          q(0),
          ],
       q(660) => [
-         q(0190),
+         q(0008),
          q(0),
          ],
       q(662) => [
-         q(0191),
+         q(0188),
          q(0),
          ],
       q(663) => [
-         q(0192),
+         q(0189),
          q(0),
          ],
       q(666) => [
-         q(0193),
+         q(0190),
          q(0),
          ],
       q(670) => [
-         q(0194),
+         q(0191),
          q(0),
          ],
       q(674) => [
-         q(0195),
+         q(0193),
          q(0),
          ],
       q(678) => [
-         q(0196),
+         q(0194),
          q(0),
          ],
       q(682) => [
-         q(0197),
+         q(0195),
          q(0),
          ],
       q(686) => [
-         q(0198),
+         q(0196),
          q(0),
          ],
       q(688) => [
-         q(0199),
+         q(0197),
          q(0),
          ],
       q(690) => [
-         q(0200),
+         q(0198),
          q(0),
          ],
       q(694) => [
-         q(0201),
+         q(0199),
          q(0),
          ],
       q(702) => [
-         q(0202),
+         q(0200),
          q(0),
          ],
       q(703) => [
-         q(0203),
+         q(0202),
          q(0),
          ],
       q(704) => [
-         q(0204),
+         q(0242),
          q(0),
          ],
       q(705) => [
-         q(0205),
+         q(0203),
          q(0),
          ],
       q(706) => [
-         q(0206),
+         q(0205),
          q(0),
          ],
       q(710) => [
-         q(0207),
+         q(0206),
          q(0),
          ],
       q(716) => [
-         q(0208),
+         q(0249),
          q(0),
          ],
       q(724) => [
@@ -6642,7 +6712,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(728) => [
-         q(0210),
+         q(0208),
          q(0),
          ],
       q(729) => [
@@ -6650,31 +6720,31 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(732) => [
-         q(0212),
+         q(0246),
          q(0),
          ],
       q(740) => [
-         q(0213),
+         q(0212),
          q(0),
          ],
       q(744) => [
-         q(0214),
+         q(0213),
          q(0),
          ],
       q(748) => [
-         q(0215),
+         q(0214),
          q(0),
          ],
       q(752) => [
-         q(0216),
+         q(0215),
          q(0),
          ],
       q(756) => [
-         q(0217),
+         q(0216),
          q(0),
          ],
       q(760) => [
-         q(0218),
+         q(0217),
          q(0),
          ],
       q(762) => [
@@ -6682,63 +6752,63 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(764) => [
-         q(0220),
+         q(0221),
          q(0),
          ],
       q(768) => [
-         q(0221),
+         q(0223),
          q(0),
          ],
       q(772) => [
-         q(0222),
+         q(0224),
          q(0),
          ],
       q(776) => [
-         q(0223),
+         q(0225),
          q(0),
          ],
       q(780) => [
-         q(0224),
+         q(0226),
          q(0),
          ],
       q(784) => [
-         q(0225),
+         q(0234),
          q(0),
          ],
       q(788) => [
-         q(0226),
+         q(0227),
          q(0),
          ],
       q(792) => [
-         q(0227),
+         q(0228),
          q(0),
          ],
       q(795) => [
-         q(0228),
+         q(0229),
          q(0),
          ],
       q(796) => [
-         q(0229),
+         q(0230),
          q(0),
          ],
       q(798) => [
-         q(0230),
+         q(0231),
          q(0),
          ],
       q(800) => [
-         q(0231),
+         q(0232),
          q(0),
          ],
       q(804) => [
-         q(0232),
+         q(0233),
          q(0),
          ],
       q(807) => [
-         q(0233),
+         q(0132),
          q(0),
          ],
       q(818) => [
-         q(0234),
+         q(0066),
          q(0),
          ],
       q(826) => [
@@ -6746,59 +6816,59 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(831) => [
-         q(0236),
+         q(0092),
          q(0),
          ],
       q(832) => [
-         q(0237),
+         q(0113),
          q(0),
          ],
       q(833) => [
-         q(0238),
+         q(0108),
          q(0),
          ],
       q(834) => [
-         q(0239),
+         q(0220),
          q(0),
          ],
       q(840) => [
-         q(0240),
+         q(0237),
          q(0),
          ],
       q(850) => [
-         q(0241),
+         q(0244),
          q(0),
          ],
       q(854) => [
-         q(0242),
+         q(0036),
          q(0),
          ],
       q(858) => [
-         q(0243),
+         q(0238),
          q(0),
          ],
       q(860) => [
-         q(0244),
+         q(0239),
          q(0),
          ],
       q(862) => [
-         q(0245),
+         q(0241),
          q(0),
          ],
       q(876) => [
-         q(0246),
+         q(0245),
          q(0),
          ],
       q(882) => [
-         q(0247),
+         q(0192),
          q(0),
          ],
       q(887) => [
-         q(0248),
+         q(0247),
          q(0),
          ],
       q(894) => [
-         q(0249),
+         q(0248),
          q(0),
          ],
       },
@@ -6807,99 +6877,99 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
 $Locale::Codes::Data{'country'}{'id2code'} = {
    q(alpha-2) => {
       q(0001) => q(af),
-      q(0002) => q(al),
-      q(0003) => q(aq),
+      q(0002) => q(ax),
+      q(0003) => q(al),
       q(0004) => q(dz),
       q(0005) => q(as),
       q(0006) => q(ad),
       q(0007) => q(ao),
-      q(0008) => q(ag),
-      q(0009) => q(az),
-      q(0010) => q(ar),
-      q(0011) => q(au),
-      q(0012) => q(at),
-      q(0013) => q(bs),
-      q(0014) => q(bh),
-      q(0015) => q(bd),
-      q(0016) => q(am),
-      q(0017) => q(bb),
-      q(0018) => q(be),
-      q(0019) => q(bm),
-      q(0020) => q(bt),
-      q(0021) => q(bo),
-      q(0022) => q(ba),
-      q(0023) => q(bw),
-      q(0024) => q(bv),
-      q(0025) => q(br),
-      q(0026) => q(bz),
-      q(0027) => q(io),
-      q(0028) => q(sb),
-      q(0029) => q(vg),
-      q(0030) => q(bn),
-      q(0031) => q(bg),
-      q(0032) => q(mm),
-      q(0033) => q(bi),
-      q(0034) => q(by),
-      q(0035) => q(kh),
-      q(0036) => q(cm),
-      q(0037) => q(ca),
+      q(0008) => q(ai),
+      q(0009) => q(aq),
+      q(0010) => q(ag),
+      q(0011) => q(ar),
+      q(0012) => q(am),
+      q(0013) => q(aw),
+      q(0014) => q(au),
+      q(0015) => q(at),
+      q(0016) => q(az),
+      q(0017) => q(bs),
+      q(0018) => q(bh),
+      q(0019) => q(bd),
+      q(0020) => q(bb),
+      q(0021) => q(by),
+      q(0022) => q(be),
+      q(0023) => q(bz),
+      q(0024) => q(bj),
+      q(0025) => q(bm),
+      q(0026) => q(bt),
+      q(0027) => q(bo),
+      q(0028) => q(bq),
+      q(0029) => q(ba),
+      q(0030) => q(bw),
+      q(0031) => q(bv),
+      q(0032) => q(br),
+      q(0033) => q(io),
+      q(0034) => q(bn),
+      q(0035) => q(bg),
+      q(0036) => q(bf),
+      q(0037) => q(bi),
       q(0038) => q(cv),
-      q(0039) => q(ky),
-      q(0040) => q(cf),
-      q(0041) => q(lk),
-      q(0042) => q(td),
-      q(0043) => q(cl),
-      q(0044) => q(cn),
-      q(0045) => q(tw),
-      q(0046) => q(cx),
-      q(0047) => q(cc),
-      q(0048) => q(co),
-      q(0049) => q(km),
-      q(0050) => q(yt),
-      q(0051) => q(cg),
-      q(0052) => q(cd),
+      q(0039) => q(kh),
+      q(0040) => q(cm),
+      q(0041) => q(ca),
+      q(0042) => q(ky),
+      q(0043) => q(cf),
+      q(0044) => q(td),
+      q(0045) => q(cl),
+      q(0046) => q(cn),
+      q(0047) => q(cx),
+      q(0048) => q(cc),
+      q(0049) => q(co),
+      q(0050) => q(km),
+      q(0051) => q(cd),
+      q(0052) => q(cg),
       q(0053) => q(ck),
       q(0054) => q(cr),
-      q(0055) => q(hr),
-      q(0056) => q(cu),
-      q(0057) => q(cy),
-      q(0058) => q(cz),
-      q(0059) => q(bj),
-      q(0060) => q(dk),
-      q(0061) => q(dm),
-      q(0062) => q(do),
-      q(0063) => q(ec),
-      q(0064) => q(sv),
-      q(0065) => q(gq),
-      q(0066) => q(et),
-      q(0067) => q(er),
-      q(0068) => q(ee),
-      q(0069) => q(fo),
-      q(0070) => q(fk),
-      q(0071) => q(gs),
-      q(0072) => q(fj),
-      q(0073) => q(fi),
-      q(0074) => q(ax),
-      q(0075) => q(fr),
-      q(0076) => q(gf),
-      q(0077) => q(pf),
-      q(0078) => q(tf),
-      q(0079) => q(dj),
+      q(0055) => q(ci),
+      q(0056) => q(hr),
+      q(0057) => q(cu),
+      q(0058) => q(cw),
+      q(0059) => q(cy),
+      q(0060) => q(cz),
+      q(0061) => q(dk),
+      q(0062) => q(dj),
+      q(0063) => q(dm),
+      q(0064) => q(do),
+      q(0065) => q(ec),
+      q(0066) => q(eg),
+      q(0067) => q(sv),
+      q(0068) => q(gq),
+      q(0069) => q(er),
+      q(0070) => q(ee),
+      q(0071) => q(et),
+      q(0072) => q(fk),
+      q(0073) => q(fo),
+      q(0074) => q(fj),
+      q(0075) => q(fi),
+      q(0076) => q(fr),
+      q(0077) => q(gf),
+      q(0078) => q(pf),
+      q(0079) => q(tf),
       q(0080) => q(ga),
-      q(0081) => q(ge),
-      q(0082) => q(gm),
-      q(0083) => q(ps),
-      q(0084) => q(de),
-      q(0085) => q(gh),
-      q(0086) => q(gi),
-      q(0087) => q(ki),
-      q(0088) => q(gr),
-      q(0089) => q(gl),
-      q(0090) => q(gd),
-      q(0091) => q(gp),
-      q(0092) => q(gu),
-      q(0093) => q(gt),
-      q(0094) => q(gn),
+      q(0081) => q(gm),
+      q(0082) => q(ge),
+      q(0083) => q(de),
+      q(0084) => q(gh),
+      q(0085) => q(gi),
+      q(0086) => q(gr),
+      q(0087) => q(gl),
+      q(0088) => q(gd),
+      q(0089) => q(gp),
+      q(0090) => q(gu),
+      q(0091) => q(gt),
+      q(0092) => q(gg),
+      q(0093) => q(gn),
+      q(0094) => q(gw),
       q(0095) => q(gy),
       q(0096) => q(ht),
       q(0097) => q(hm),
@@ -6913,69 +6983,69 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0105) => q(ir),
       q(0106) => q(iq),
       q(0107) => q(ie),
-      q(0108) => q(il),
-      q(0109) => q(it),
-      q(0110) => q(ci),
+      q(0108) => q(im),
+      q(0109) => q(il),
+      q(0110) => q(it),
       q(0111) => q(jm),
       q(0112) => q(jp),
-      q(0113) => q(kz),
+      q(0113) => q(je),
       q(0114) => q(jo),
-      q(0115) => q(ke),
-      q(0116) => q(kp),
-      q(0117) => q(kr),
-      q(0118) => q(kw),
-      q(0119) => q(kg),
-      q(0120) => q(la),
-      q(0121) => q(lb),
-      q(0122) => q(ls),
+      q(0115) => q(kz),
+      q(0116) => q(ke),
+      q(0117) => q(ki),
+      q(0118) => q(kp),
+      q(0119) => q(kr),
+      q(0120) => q(kw),
+      q(0121) => q(kg),
+      q(0122) => q(la),
       q(0123) => q(lv),
-      q(0124) => q(lr),
-      q(0125) => q(ly),
-      q(0126) => q(li),
-      q(0127) => q(lt),
-      q(0128) => q(lu),
-      q(0129) => q(mo),
-      q(0130) => q(mg),
-      q(0131) => q(mw),
-      q(0132) => q(my),
-      q(0133) => q(mv),
-      q(0134) => q(ml),
-      q(0135) => q(mt),
-      q(0136) => q(mq),
-      q(0137) => q(mr),
-      q(0138) => q(mu),
-      q(0139) => q(mx),
-      q(0140) => q(mc),
-      q(0141) => q(mn),
-      q(0142) => q(md),
-      q(0143) => q(me),
-      q(0144) => q(ms),
-      q(0145) => q(ma),
-      q(0146) => q(mz),
-      q(0147) => q(om),
-      q(0148) => q(na),
-      q(0149) => q(nr),
-      q(0150) => q(np),
-      q(0151) => q(nl),
-      q(0152) => q(cw),
-      q(0153) => q(aw),
-      q(0154) => q(sx),
-      q(0155) => q(bq),
-      q(0156) => q(nc),
-      q(0157) => q(vu),
-      q(0158) => q(nz),
-      q(0159) => q(ni),
-      q(0160) => q(ne),
-      q(0161) => q(ng),
-      q(0162) => q(nu),
-      q(0163) => q(nf),
-      q(0164) => q(no),
+      q(0124) => q(lb),
+      q(0125) => q(ls),
+      q(0126) => q(lr),
+      q(0127) => q(ly),
+      q(0128) => q(li),
+      q(0129) => q(lt),
+      q(0130) => q(lu),
+      q(0131) => q(mo),
+      q(0132) => q(mk),
+      q(0133) => q(mg),
+      q(0134) => q(mw),
+      q(0135) => q(my),
+      q(0136) => q(mv),
+      q(0137) => q(ml),
+      q(0138) => q(mt),
+      q(0139) => q(mh),
+      q(0140) => q(mq),
+      q(0141) => q(mr),
+      q(0142) => q(mu),
+      q(0143) => q(yt),
+      q(0144) => q(mx),
+      q(0145) => q(fm),
+      q(0146) => q(md),
+      q(0147) => q(mc),
+      q(0148) => q(mn),
+      q(0149) => q(me),
+      q(0150) => q(ms),
+      q(0151) => q(ma),
+      q(0152) => q(mz),
+      q(0153) => q(mm),
+      q(0154) => q(na),
+      q(0155) => q(nr),
+      q(0156) => q(np),
+      q(0157) => q(nl),
+      q(0158) => q(nc),
+      q(0159) => q(nz),
+      q(0160) => q(ni),
+      q(0161) => q(ne),
+      q(0162) => q(ng),
+      q(0163) => q(nu),
+      q(0164) => q(nf),
       q(0165) => q(mp),
-      q(0166) => q(um),
-      q(0167) => q(fm),
-      q(0168) => q(mh),
+      q(0166) => q(no),
+      q(0167) => q(om),
+      q(0168) => q(pk),
       q(0169) => q(pw),
-      q(0170) => q(pk),
+      q(0170) => q(ps),
       q(0171) => q(pa),
       q(0172) => q(pg),
       q(0173) => q(py),
@@ -6984,173 +7054,173 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0176) => q(pn),
       q(0177) => q(pl),
       q(0178) => q(pt),
-      q(0179) => q(gw),
-      q(0180) => q(tl),
-      q(0181) => q(pr),
-      q(0182) => q(qa),
-      q(0183) => q(re),
-      q(0184) => q(ro),
-      q(0185) => q(ru),
-      q(0186) => q(rw),
-      q(0187) => q(bl),
-      q(0188) => q(sh),
-      q(0189) => q(kn),
-      q(0190) => q(ai),
-      q(0191) => q(lc),
-      q(0192) => q(mf),
-      q(0193) => q(pm),
-      q(0194) => q(vc),
-      q(0195) => q(sm),
-      q(0196) => q(st),
-      q(0197) => q(sa),
-      q(0198) => q(sn),
-      q(0199) => q(rs),
-      q(0200) => q(sc),
-      q(0201) => q(sl),
-      q(0202) => q(sg),
-      q(0203) => q(sk),
-      q(0204) => q(vn),
-      q(0205) => q(si),
-      q(0206) => q(so),
-      q(0207) => q(za),
-      q(0208) => q(zw),
+      q(0179) => q(pr),
+      q(0180) => q(qa),
+      q(0181) => q(re),
+      q(0182) => q(ro),
+      q(0183) => q(ru),
+      q(0184) => q(rw),
+      q(0185) => q(bl),
+      q(0186) => q(sh),
+      q(0187) => q(kn),
+      q(0188) => q(lc),
+      q(0189) => q(mf),
+      q(0190) => q(pm),
+      q(0191) => q(vc),
+      q(0192) => q(ws),
+      q(0193) => q(sm),
+      q(0194) => q(st),
+      q(0195) => q(sa),
+      q(0196) => q(sn),
+      q(0197) => q(rs),
+      q(0198) => q(sc),
+      q(0199) => q(sl),
+      q(0200) => q(sg),
+      q(0201) => q(sx),
+      q(0202) => q(sk),
+      q(0203) => q(si),
+      q(0204) => q(sb),
+      q(0205) => q(so),
+      q(0206) => q(za),
+      q(0207) => q(gs),
+      q(0208) => q(ss),
       q(0209) => q(es),
-      q(0210) => q(ss),
+      q(0210) => q(lk),
       q(0211) => q(sd),
-      q(0212) => q(eh),
-      q(0213) => q(sr),
-      q(0214) => q(sj),
-      q(0215) => q(sz),
-      q(0216) => q(se),
-      q(0217) => q(ch),
-      q(0218) => q(sy),
+      q(0212) => q(sr),
+      q(0213) => q(sj),
+      q(0214) => q(sz),
+      q(0215) => q(se),
+      q(0216) => q(ch),
+      q(0217) => q(sy),
+      q(0218) => q(tw),
       q(0219) => q(tj),
-      q(0220) => q(th),
-      q(0221) => q(tg),
-      q(0222) => q(tk),
-      q(0223) => q(to),
-      q(0224) => q(tt),
-      q(0225) => q(ae),
-      q(0226) => q(tn),
-      q(0227) => q(tr),
-      q(0228) => q(tm),
-      q(0229) => q(tc),
-      q(0230) => q(tv),
-      q(0231) => q(ug),
-      q(0232) => q(ua),
-      q(0233) => q(mk),
-      q(0234) => q(eg),
+      q(0220) => q(tz),
+      q(0221) => q(th),
+      q(0222) => q(tl),
+      q(0223) => q(tg),
+      q(0224) => q(tk),
+      q(0225) => q(to),
+      q(0226) => q(tt),
+      q(0227) => q(tn),
+      q(0228) => q(tr),
+      q(0229) => q(tm),
+      q(0230) => q(tc),
+      q(0231) => q(tv),
+      q(0232) => q(ug),
+      q(0233) => q(ua),
+      q(0234) => q(ae),
       q(0235) => q(gb),
-      q(0236) => q(gg),
-      q(0237) => q(je),
-      q(0238) => q(im),
-      q(0239) => q(tz),
-      q(0240) => q(us),
-      q(0241) => q(vi),
-      q(0242) => q(bf),
-      q(0243) => q(uy),
-      q(0244) => q(uz),
-      q(0245) => q(ve),
-      q(0246) => q(wf),
-      q(0247) => q(ws),
-      q(0248) => q(ye),
-      q(0249) => q(zm),
+      q(0236) => q(um),
+      q(0237) => q(us),
+      q(0238) => q(uy),
+      q(0239) => q(uz),
+      q(0240) => q(vu),
+      q(0241) => q(ve),
+      q(0242) => q(vn),
+      q(0243) => q(vg),
+      q(0244) => q(vi),
+      q(0245) => q(wf),
+      q(0246) => q(eh),
+      q(0247) => q(ye),
+      q(0248) => q(zm),
+      q(0249) => q(zw),
       },
    q(alpha-3) => {
       q(0001) => q(afg),
-      q(0002) => q(alb),
-      q(0003) => q(ata),
+      q(0002) => q(ala),
+      q(0003) => q(alb),
       q(0004) => q(dza),
       q(0005) => q(asm),
       q(0006) => q(and),
       q(0007) => q(ago),
-      q(0008) => q(atg),
-      q(0009) => q(aze),
-      q(0010) => q(arg),
-      q(0011) => q(aus),
-      q(0012) => q(aut),
-      q(0013) => q(bhs),
-      q(0014) => q(bhr),
-      q(0015) => q(bgd),
-      q(0016) => q(arm),
-      q(0017) => q(brb),
-      q(0018) => q(bel),
-      q(0019) => q(bmu),
-      q(0020) => q(btn),
-      q(0021) => q(bol),
-      q(0022) => q(bih),
-      q(0023) => q(bwa),
-      q(0024) => q(bvt),
-      q(0025) => q(bra),
-      q(0026) => q(blz),
-      q(0027) => q(iot),
-      q(0028) => q(slb),
-      q(0029) => q(vgb),
-      q(0030) => q(brn),
-      q(0031) => q(bgr),
-      q(0032) => q(mmr),
-      q(0033) => q(bdi),
-      q(0034) => q(blr),
-      q(0035) => q(khm),
-      q(0036) => q(cmr),
-      q(0037) => q(can),
+      q(0008) => q(aia),
+      q(0009) => q(ata),
+      q(0010) => q(atg),
+      q(0011) => q(arg),
+      q(0012) => q(arm),
+      q(0013) => q(abw),
+      q(0014) => q(aus),
+      q(0015) => q(aut),
+      q(0016) => q(aze),
+      q(0017) => q(bhs),
+      q(0018) => q(bhr),
+      q(0019) => q(bgd),
+      q(0020) => q(brb),
+      q(0021) => q(blr),
+      q(0022) => q(bel),
+      q(0023) => q(blz),
+      q(0024) => q(ben),
+      q(0025) => q(bmu),
+      q(0026) => q(btn),
+      q(0027) => q(bol),
+      q(0028) => q(bes),
+      q(0029) => q(bih),
+      q(0030) => q(bwa),
+      q(0031) => q(bvt),
+      q(0032) => q(bra),
+      q(0033) => q(iot),
+      q(0034) => q(brn),
+      q(0035) => q(bgr),
+      q(0036) => q(bfa),
+      q(0037) => q(bdi),
       q(0038) => q(cpv),
-      q(0039) => q(cym),
-      q(0040) => q(caf),
-      q(0041) => q(lka),
-      q(0042) => q(tcd),
-      q(0043) => q(chl),
-      q(0044) => q(chn),
-      q(0045) => q(twn),
-      q(0046) => q(cxr),
-      q(0047) => q(cck),
-      q(0048) => q(col),
-      q(0049) => q(com),
-      q(0050) => q(myt),
-      q(0051) => q(cog),
-      q(0052) => q(cod),
+      q(0039) => q(khm),
+      q(0040) => q(cmr),
+      q(0041) => q(can),
+      q(0042) => q(cym),
+      q(0043) => q(caf),
+      q(0044) => q(tcd),
+      q(0045) => q(chl),
+      q(0046) => q(chn),
+      q(0047) => q(cxr),
+      q(0048) => q(cck),
+      q(0049) => q(col),
+      q(0050) => q(com),
+      q(0051) => q(cod),
+      q(0052) => q(cog),
       q(0053) => q(cok),
       q(0054) => q(cri),
-      q(0055) => q(hrv),
-      q(0056) => q(cub),
-      q(0057) => q(cyp),
-      q(0058) => q(cze),
-      q(0059) => q(ben),
-      q(0060) => q(dnk),
-      q(0061) => q(dma),
-      q(0062) => q(dom),
-      q(0063) => q(ecu),
-      q(0064) => q(slv),
-      q(0065) => q(gnq),
-      q(0066) => q(eth),
-      q(0067) => q(eri),
-      q(0068) => q(est),
-      q(0069) => q(fro),
-      q(0070) => q(flk),
-      q(0071) => q(sgs),
-      q(0072) => q(fji),
-      q(0073) => q(fin),
-      q(0074) => q(ala),
-      q(0075) => q(fra),
-      q(0076) => q(guf),
-      q(0077) => q(pyf),
-      q(0078) => q(atf),
-      q(0079) => q(dji),
+      q(0055) => q(civ),
+      q(0056) => q(hrv),
+      q(0057) => q(cub),
+      q(0058) => q(cuw),
+      q(0059) => q(cyp),
+      q(0060) => q(cze),
+      q(0061) => q(dnk),
+      q(0062) => q(dji),
+      q(0063) => q(dma),
+      q(0064) => q(dom),
+      q(0065) => q(ecu),
+      q(0066) => q(egy),
+      q(0067) => q(slv),
+      q(0068) => q(gnq),
+      q(0069) => q(eri),
+      q(0070) => q(est),
+      q(0071) => q(eth),
+      q(0072) => q(flk),
+      q(0073) => q(fro),
+      q(0074) => q(fji),
+      q(0075) => q(fin),
+      q(0076) => q(fra),
+      q(0077) => q(guf),
+      q(0078) => q(pyf),
+      q(0079) => q(atf),
       q(0080) => q(gab),
-      q(0081) => q(geo),
-      q(0082) => q(gmb),
-      q(0083) => q(pse),
-      q(0084) => q(deu),
-      q(0085) => q(gha),
-      q(0086) => q(gib),
-      q(0087) => q(kir),
-      q(0088) => q(grc),
-      q(0089) => q(grl),
-      q(0090) => q(grd),
-      q(0091) => q(glp),
-      q(0092) => q(gum),
-      q(0093) => q(gtm),
-      q(0094) => q(gin),
+      q(0081) => q(gmb),
+      q(0082) => q(geo),
+      q(0083) => q(deu),
+      q(0084) => q(gha),
+      q(0085) => q(gib),
+      q(0086) => q(grc),
+      q(0087) => q(grl),
+      q(0088) => q(grd),
+      q(0089) => q(glp),
+      q(0090) => q(gum),
+      q(0091) => q(gtm),
+      q(0092) => q(ggy),
+      q(0093) => q(gin),
+      q(0094) => q(gnb),
       q(0095) => q(guy),
       q(0096) => q(hti),
       q(0097) => q(hmd),
@@ -7164,69 +7234,69 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0105) => q(irn),
       q(0106) => q(irq),
       q(0107) => q(irl),
-      q(0108) => q(isr),
-      q(0109) => q(ita),
-      q(0110) => q(civ),
+      q(0108) => q(imn),
+      q(0109) => q(isr),
+      q(0110) => q(ita),
       q(0111) => q(jam),
       q(0112) => q(jpn),
-      q(0113) => q(kaz),
+      q(0113) => q(jey),
       q(0114) => q(jor),
-      q(0115) => q(ken),
-      q(0116) => q(prk),
-      q(0117) => q(kor),
-      q(0118) => q(kwt),
-      q(0119) => q(kgz),
-      q(0120) => q(lao),
-      q(0121) => q(lbn),
-      q(0122) => q(lso),
+      q(0115) => q(kaz),
+      q(0116) => q(ken),
+      q(0117) => q(kir),
+      q(0118) => q(prk),
+      q(0119) => q(kor),
+      q(0120) => q(kwt),
+      q(0121) => q(kgz),
+      q(0122) => q(lao),
       q(0123) => q(lva),
-      q(0124) => q(lbr),
-      q(0125) => q(lby),
-      q(0126) => q(lie),
-      q(0127) => q(ltu),
-      q(0128) => q(lux),
-      q(0129) => q(mac),
-      q(0130) => q(mdg),
-      q(0131) => q(mwi),
-      q(0132) => q(mys),
-      q(0133) => q(mdv),
-      q(0134) => q(mli),
-      q(0135) => q(mlt),
-      q(0136) => q(mtq),
-      q(0137) => q(mrt),
-      q(0138) => q(mus),
-      q(0139) => q(mex),
-      q(0140) => q(mco),
-      q(0141) => q(mng),
-      q(0142) => q(mda),
-      q(0143) => q(mne),
-      q(0144) => q(msr),
-      q(0145) => q(mar),
-      q(0146) => q(moz),
-      q(0147) => q(omn),
-      q(0148) => q(nam),
-      q(0149) => q(nru),
-      q(0150) => q(npl),
-      q(0151) => q(nld),
-      q(0152) => q(cuw),
-      q(0153) => q(abw),
-      q(0154) => q(sxm),
-      q(0155) => q(bes),
-      q(0156) => q(ncl),
-      q(0157) => q(vut),
-      q(0158) => q(nzl),
-      q(0159) => q(nic),
-      q(0160) => q(ner),
-      q(0161) => q(nga),
-      q(0162) => q(niu),
-      q(0163) => q(nfk),
-      q(0164) => q(nor),
+      q(0124) => q(lbn),
+      q(0125) => q(lso),
+      q(0126) => q(lbr),
+      q(0127) => q(lby),
+      q(0128) => q(lie),
+      q(0129) => q(ltu),
+      q(0130) => q(lux),
+      q(0131) => q(mac),
+      q(0132) => q(mkd),
+      q(0133) => q(mdg),
+      q(0134) => q(mwi),
+      q(0135) => q(mys),
+      q(0136) => q(mdv),
+      q(0137) => q(mli),
+      q(0138) => q(mlt),
+      q(0139) => q(mhl),
+      q(0140) => q(mtq),
+      q(0141) => q(mrt),
+      q(0142) => q(mus),
+      q(0143) => q(myt),
+      q(0144) => q(mex),
+      q(0145) => q(fsm),
+      q(0146) => q(mda),
+      q(0147) => q(mco),
+      q(0148) => q(mng),
+      q(0149) => q(mne),
+      q(0150) => q(msr),
+      q(0151) => q(mar),
+      q(0152) => q(moz),
+      q(0153) => q(mmr),
+      q(0154) => q(nam),
+      q(0155) => q(nru),
+      q(0156) => q(npl),
+      q(0157) => q(nld),
+      q(0158) => q(ncl),
+      q(0159) => q(nzl),
+      q(0160) => q(nic),
+      q(0161) => q(ner),
+      q(0162) => q(nga),
+      q(0163) => q(niu),
+      q(0164) => q(nfk),
       q(0165) => q(mnp),
-      q(0166) => q(umi),
-      q(0167) => q(fsm),
-      q(0168) => q(mhl),
+      q(0166) => q(nor),
+      q(0167) => q(omn),
+      q(0168) => q(pak),
       q(0169) => q(plw),
-      q(0170) => q(pak),
+      q(0170) => q(pse),
       q(0171) => q(pan),
       q(0172) => q(png),
       q(0173) => q(pry),
@@ -7235,173 +7305,173 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0176) => q(pcn),
       q(0177) => q(pol),
       q(0178) => q(prt),
-      q(0179) => q(gnb),
-      q(0180) => q(tls),
-      q(0181) => q(pri),
-      q(0182) => q(qat),
-      q(0183) => q(reu),
-      q(0184) => q(rou),
-      q(0185) => q(rus),
-      q(0186) => q(rwa),
-      q(0187) => q(blm),
-      q(0188) => q(shn),
-      q(0189) => q(kna),
-      q(0190) => q(aia),
-      q(0191) => q(lca),
-      q(0192) => q(maf),
-      q(0193) => q(spm),
-      q(0194) => q(vct),
-      q(0195) => q(smr),
-      q(0196) => q(stp),
-      q(0197) => q(sau),
-      q(0198) => q(sen),
-      q(0199) => q(srb),
-      q(0200) => q(syc),
-      q(0201) => q(sle),
-      q(0202) => q(sgp),
-      q(0203) => q(svk),
-      q(0204) => q(vnm),
-      q(0205) => q(svn),
-      q(0206) => q(som),
-      q(0207) => q(zaf),
-      q(0208) => q(zwe),
+      q(0179) => q(pri),
+      q(0180) => q(qat),
+      q(0181) => q(reu),
+      q(0182) => q(rou),
+      q(0183) => q(rus),
+      q(0184) => q(rwa),
+      q(0185) => q(blm),
+      q(0186) => q(shn),
+      q(0187) => q(kna),
+      q(0188) => q(lca),
+      q(0189) => q(maf),
+      q(0190) => q(spm),
+      q(0191) => q(vct),
+      q(0192) => q(wsm),
+      q(0193) => q(smr),
+      q(0194) => q(stp),
+      q(0195) => q(sau),
+      q(0196) => q(sen),
+      q(0197) => q(srb),
+      q(0198) => q(syc),
+      q(0199) => q(sle),
+      q(0200) => q(sgp),
+      q(0201) => q(sxm),
+      q(0202) => q(svk),
+      q(0203) => q(svn),
+      q(0204) => q(slb),
+      q(0205) => q(som),
+      q(0206) => q(zaf),
+      q(0207) => q(sgs),
+      q(0208) => q(ssd),
       q(0209) => q(esp),
-      q(0210) => q(ssd),
+      q(0210) => q(lka),
       q(0211) => q(sdn),
-      q(0212) => q(esh),
-      q(0213) => q(sur),
-      q(0214) => q(sjm),
-      q(0215) => q(swz),
-      q(0216) => q(swe),
-      q(0217) => q(che),
-      q(0218) => q(syr),
+      q(0212) => q(sur),
+      q(0213) => q(sjm),
+      q(0214) => q(swz),
+      q(0215) => q(swe),
+      q(0216) => q(che),
+      q(0217) => q(syr),
+      q(0218) => q(twn),
       q(0219) => q(tjk),
-      q(0220) => q(tha),
-      q(0221) => q(tgo),
-      q(0222) => q(tkl),
-      q(0223) => q(ton),
-      q(0224) => q(tto),
-      q(0225) => q(are),
-      q(0226) => q(tun),
-      q(0227) => q(tur),
-      q(0228) => q(tkm),
-      q(0229) => q(tca),
-      q(0230) => q(tuv),
-      q(0231) => q(uga),
-      q(0232) => q(ukr),
-      q(0233) => q(mkd),
-      q(0234) => q(egy),
+      q(0220) => q(tza),
+      q(0221) => q(tha),
+      q(0222) => q(tls),
+      q(0223) => q(tgo),
+      q(0224) => q(tkl),
+      q(0225) => q(ton),
+      q(0226) => q(tto),
+      q(0227) => q(tun),
+      q(0228) => q(tur),
+      q(0229) => q(tkm),
+      q(0230) => q(tca),
+      q(0231) => q(tuv),
+      q(0232) => q(uga),
+      q(0233) => q(ukr),
+      q(0234) => q(are),
       q(0235) => q(gbr),
-      q(0236) => q(ggy),
-      q(0237) => q(jey),
-      q(0238) => q(imn),
-      q(0239) => q(tza),
-      q(0240) => q(usa),
-      q(0241) => q(vir),
-      q(0242) => q(bfa),
-      q(0243) => q(ury),
-      q(0244) => q(uzb),
-      q(0245) => q(ven),
-      q(0246) => q(wlf),
-      q(0247) => q(wsm),
-      q(0248) => q(yem),
-      q(0249) => q(zmb),
+      q(0236) => q(umi),
+      q(0237) => q(usa),
+      q(0238) => q(ury),
+      q(0239) => q(uzb),
+      q(0240) => q(vut),
+      q(0241) => q(ven),
+      q(0242) => q(vnm),
+      q(0243) => q(vgb),
+      q(0244) => q(vir),
+      q(0245) => q(wlf),
+      q(0246) => q(esh),
+      q(0247) => q(yem),
+      q(0248) => q(zmb),
+      q(0249) => q(zwe),
       },
    q(dom) => {
       q(0001) => q(af),
-      q(0002) => q(al),
-      q(0003) => q(aq),
+      q(0002) => q(ax),
+      q(0003) => q(al),
       q(0004) => q(dz),
       q(0005) => q(as),
       q(0006) => q(ad),
       q(0007) => q(ao),
-      q(0008) => q(ag),
-      q(0009) => q(az),
-      q(0010) => q(ar),
-      q(0011) => q(au),
-      q(0012) => q(at),
-      q(0013) => q(bs),
-      q(0014) => q(bh),
-      q(0015) => q(bd),
-      q(0016) => q(am),
-      q(0017) => q(bb),
-      q(0018) => q(be),
-      q(0019) => q(bm),
-      q(0020) => q(bt),
-      q(0021) => q(bo),
-      q(0022) => q(ba),
-      q(0023) => q(bw),
-      q(0024) => q(bv),
-      q(0025) => q(br),
-      q(0026) => q(bz),
-      q(0027) => q(io),
-      q(0028) => q(sb),
-      q(0029) => q(vg),
-      q(0030) => q(bn),
-      q(0031) => q(bg),
-      q(0032) => q(mm),
-      q(0033) => q(bi),
-      q(0034) => q(by),
-      q(0035) => q(kh),
-      q(0036) => q(cm),
-      q(0037) => q(ca),
+      q(0008) => q(ai),
+      q(0009) => q(aq),
+      q(0010) => q(ag),
+      q(0011) => q(ar),
+      q(0012) => q(am),
+      q(0013) => q(aw),
+      q(0014) => q(au),
+      q(0015) => q(at),
+      q(0016) => q(az),
+      q(0017) => q(bs),
+      q(0018) => q(bh),
+      q(0019) => q(bd),
+      q(0020) => q(bb),
+      q(0021) => q(by),
+      q(0022) => q(be),
+      q(0023) => q(bz),
+      q(0024) => q(bj),
+      q(0025) => q(bm),
+      q(0026) => q(bt),
+      q(0027) => q(bo),
+      q(0028) => q(bq),
+      q(0029) => q(ba),
+      q(0030) => q(bw),
+      q(0031) => q(bv),
+      q(0032) => q(br),
+      q(0033) => q(io),
+      q(0034) => q(bn),
+      q(0035) => q(bg),
+      q(0036) => q(bf),
+      q(0037) => q(bi),
       q(0038) => q(cv),
-      q(0039) => q(ky),
-      q(0040) => q(cf),
-      q(0041) => q(lk),
-      q(0042) => q(td),
-      q(0043) => q(cl),
-      q(0044) => q(cn),
-      q(0045) => q(tw),
-      q(0046) => q(cx),
-      q(0047) => q(cc),
-      q(0048) => q(co),
-      q(0049) => q(km),
-      q(0050) => q(yt),
-      q(0051) => q(cg),
-      q(0052) => q(cd),
+      q(0039) => q(kh),
+      q(0040) => q(cm),
+      q(0041) => q(ca),
+      q(0042) => q(ky),
+      q(0043) => q(cf),
+      q(0044) => q(td),
+      q(0045) => q(cl),
+      q(0046) => q(cn),
+      q(0047) => q(cx),
+      q(0048) => q(cc),
+      q(0049) => q(co),
+      q(0050) => q(km),
+      q(0051) => q(cd),
+      q(0052) => q(cg),
       q(0053) => q(ck),
       q(0054) => q(cr),
-      q(0055) => q(hr),
-      q(0056) => q(cu),
-      q(0057) => q(cy),
-      q(0058) => q(cz),
-      q(0059) => q(bj),
-      q(0060) => q(dk),
-      q(0061) => q(dm),
-      q(0062) => q(do),
-      q(0063) => q(ec),
-      q(0064) => q(sv),
-      q(0065) => q(gq),
-      q(0066) => q(et),
-      q(0067) => q(er),
-      q(0068) => q(ee),
-      q(0069) => q(fo),
-      q(0070) => q(fk),
-      q(0071) => q(gs),
-      q(0072) => q(fj),
-      q(0073) => q(fi),
-      q(0074) => q(ax),
-      q(0075) => q(fr),
-      q(0076) => q(gf),
-      q(0077) => q(pf),
-      q(0078) => q(tf),
-      q(0079) => q(dj),
+      q(0055) => q(ci),
+      q(0056) => q(hr),
+      q(0057) => q(cu),
+      q(0058) => q(cw),
+      q(0059) => q(cy),
+      q(0060) => q(cz),
+      q(0061) => q(dk),
+      q(0062) => q(dj),
+      q(0063) => q(dm),
+      q(0064) => q(do),
+      q(0065) => q(ec),
+      q(0066) => q(eg),
+      q(0067) => q(sv),
+      q(0068) => q(gq),
+      q(0069) => q(er),
+      q(0070) => q(ee),
+      q(0071) => q(et),
+      q(0072) => q(fk),
+      q(0073) => q(fo),
+      q(0074) => q(fj),
+      q(0075) => q(fi),
+      q(0076) => q(fr),
+      q(0077) => q(gf),
+      q(0078) => q(pf),
+      q(0079) => q(tf),
       q(0080) => q(ga),
-      q(0081) => q(ge),
-      q(0082) => q(gm),
-      q(0083) => q(ps),
-      q(0084) => q(de),
-      q(0085) => q(gh),
-      q(0086) => q(gi),
-      q(0087) => q(ki),
-      q(0088) => q(gr),
-      q(0089) => q(gl),
-      q(0090) => q(gd),
-      q(0091) => q(gp),
-      q(0092) => q(gu),
-      q(0093) => q(gt),
-      q(0094) => q(gn),
+      q(0081) => q(gm),
+      q(0082) => q(ge),
+      q(0083) => q(de),
+      q(0084) => q(gh),
+      q(0085) => q(gi),
+      q(0086) => q(gr),
+      q(0087) => q(gl),
+      q(0088) => q(gd),
+      q(0089) => q(gp),
+      q(0090) => q(gu),
+      q(0091) => q(gt),
+      q(0092) => q(gg),
+      q(0093) => q(gn),
+      q(0094) => q(gw),
       q(0095) => q(gy),
       q(0096) => q(ht),
       q(0097) => q(hm),
@@ -7415,69 +7485,69 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0105) => q(ir),
       q(0106) => q(iq),
       q(0107) => q(ie),
-      q(0108) => q(il),
-      q(0109) => q(it),
-      q(0110) => q(ci),
+      q(0108) => q(im),
+      q(0109) => q(il),
+      q(0110) => q(it),
       q(0111) => q(jm),
       q(0112) => q(jp),
-      q(0113) => q(kz),
+      q(0113) => q(je),
       q(0114) => q(jo),
-      q(0115) => q(ke),
-      q(0116) => q(kp),
-      q(0117) => q(kr),
-      q(0118) => q(kw),
-      q(0119) => q(kg),
-      q(0120) => q(la),
-      q(0121) => q(lb),
-      q(0122) => q(ls),
+      q(0115) => q(kz),
+      q(0116) => q(ke),
+      q(0117) => q(ki),
+      q(0118) => q(kp),
+      q(0119) => q(kr),
+      q(0120) => q(kw),
+      q(0121) => q(kg),
+      q(0122) => q(la),
       q(0123) => q(lv),
-      q(0124) => q(lr),
-      q(0125) => q(ly),
-      q(0126) => q(li),
-      q(0127) => q(lt),
-      q(0128) => q(lu),
-      q(0129) => q(mo),
-      q(0130) => q(mg),
-      q(0131) => q(mw),
-      q(0132) => q(my),
-      q(0133) => q(mv),
-      q(0134) => q(ml),
-      q(0135) => q(mt),
-      q(0136) => q(mq),
-      q(0137) => q(mr),
-      q(0138) => q(mu),
-      q(0139) => q(mx),
-      q(0140) => q(mc),
-      q(0141) => q(mn),
-      q(0142) => q(md),
-      q(0143) => q(me),
-      q(0144) => q(ms),
-      q(0145) => q(ma),
-      q(0146) => q(mz),
-      q(0147) => q(om),
-      q(0148) => q(na),
-      q(0149) => q(nr),
-      q(0150) => q(np),
-      q(0151) => q(nl),
-      q(0152) => q(cw),
-      q(0153) => q(aw),
-      q(0154) => q(sx),
-      q(0155) => q(bq),
-      q(0156) => q(nc),
-      q(0157) => q(vu),
-      q(0158) => q(nz),
-      q(0159) => q(ni),
-      q(0160) => q(ne),
-      q(0161) => q(ng),
-      q(0162) => q(nu),
-      q(0163) => q(nf),
-      q(0164) => q(no),
+      q(0124) => q(lb),
+      q(0125) => q(ls),
+      q(0126) => q(lr),
+      q(0127) => q(ly),
+      q(0128) => q(li),
+      q(0129) => q(lt),
+      q(0130) => q(lu),
+      q(0131) => q(mo),
+      q(0132) => q(mk),
+      q(0133) => q(mg),
+      q(0134) => q(mw),
+      q(0135) => q(my),
+      q(0136) => q(mv),
+      q(0137) => q(ml),
+      q(0138) => q(mt),
+      q(0139) => q(mh),
+      q(0140) => q(mq),
+      q(0141) => q(mr),
+      q(0142) => q(mu),
+      q(0143) => q(yt),
+      q(0144) => q(mx),
+      q(0145) => q(fm),
+      q(0146) => q(md),
+      q(0147) => q(mc),
+      q(0148) => q(mn),
+      q(0149) => q(me),
+      q(0150) => q(ms),
+      q(0151) => q(ma),
+      q(0152) => q(mz),
+      q(0153) => q(mm),
+      q(0154) => q(na),
+      q(0155) => q(nr),
+      q(0156) => q(np),
+      q(0157) => q(nl),
+      q(0158) => q(nc),
+      q(0159) => q(nz),
+      q(0160) => q(ni),
+      q(0161) => q(ne),
+      q(0162) => q(ng),
+      q(0163) => q(nu),
+      q(0164) => q(nf),
       q(0165) => q(mp),
-      q(0166) => q(um),
-      q(0167) => q(fm),
-      q(0168) => q(mh),
+      q(0166) => q(no),
+      q(0167) => q(om),
+      q(0168) => q(pk),
       q(0169) => q(pw),
-      q(0170) => q(pk),
+      q(0170) => q(ps),
       q(0171) => q(pa),
       q(0172) => q(pg),
       q(0173) => q(py),
@@ -7486,173 +7556,173 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0176) => q(pn),
       q(0177) => q(pl),
       q(0178) => q(pt),
-      q(0179) => q(gw),
-      q(0180) => q(tl),
-      q(0181) => q(pr),
-      q(0182) => q(qa),
-      q(0183) => q(re),
-      q(0184) => q(ro),
-      q(0185) => q(ru),
-      q(0186) => q(rw),
-      q(0187) => q(bl),
-      q(0188) => q(sh),
-      q(0189) => q(kn),
-      q(0190) => q(ai),
-      q(0191) => q(lc),
-      q(0192) => q(mf),
-      q(0193) => q(pm),
-      q(0194) => q(vc),
-      q(0195) => q(sm),
-      q(0196) => q(st),
-      q(0197) => q(sa),
-      q(0198) => q(sn),
-      q(0199) => q(rs),
-      q(0200) => q(sc),
-      q(0201) => q(sl),
-      q(0202) => q(sg),
-      q(0203) => q(sk),
-      q(0204) => q(vn),
-      q(0205) => q(si),
-      q(0206) => q(so),
-      q(0207) => q(za),
-      q(0208) => q(zw),
+      q(0179) => q(pr),
+      q(0180) => q(qa),
+      q(0181) => q(re),
+      q(0182) => q(ro),
+      q(0183) => q(ru),
+      q(0184) => q(rw),
+      q(0185) => q(bl),
+      q(0186) => q(sh),
+      q(0187) => q(kn),
+      q(0188) => q(lc),
+      q(0189) => q(mf),
+      q(0190) => q(pm),
+      q(0191) => q(vc),
+      q(0192) => q(ws),
+      q(0193) => q(sm),
+      q(0194) => q(st),
+      q(0195) => q(sa),
+      q(0196) => q(sn),
+      q(0197) => q(rs),
+      q(0198) => q(sc),
+      q(0199) => q(sl),
+      q(0200) => q(sg),
+      q(0201) => q(sx),
+      q(0202) => q(sk),
+      q(0203) => q(si),
+      q(0204) => q(sb),
+      q(0205) => q(so),
+      q(0206) => q(za),
+      q(0207) => q(gs),
+      q(0208) => q(ss),
       q(0209) => q(es),
-      q(0210) => q(ss),
+      q(0210) => q(lk),
       q(0211) => q(sd),
-      q(0212) => q(eh),
-      q(0213) => q(sr),
-      q(0214) => q(sj),
-      q(0215) => q(sz),
-      q(0216) => q(se),
-      q(0217) => q(ch),
-      q(0218) => q(sy),
+      q(0212) => q(sr),
+      q(0213) => q(sj),
+      q(0214) => q(sz),
+      q(0215) => q(se),
+      q(0216) => q(ch),
+      q(0217) => q(sy),
+      q(0218) => q(tw),
       q(0219) => q(tj),
-      q(0220) => q(th),
-      q(0221) => q(tg),
-      q(0222) => q(tk),
-      q(0223) => q(to),
-      q(0224) => q(tt),
-      q(0225) => q(ae),
-      q(0226) => q(tn),
-      q(0227) => q(tr),
-      q(0228) => q(tm),
-      q(0229) => q(tc),
-      q(0230) => q(tv),
-      q(0231) => q(ug),
-      q(0232) => q(ua),
-      q(0233) => q(mk),
-      q(0234) => q(eg),
+      q(0220) => q(tz),
+      q(0221) => q(th),
+      q(0222) => q(tl),
+      q(0223) => q(tg),
+      q(0224) => q(tk),
+      q(0225) => q(to),
+      q(0226) => q(tt),
+      q(0227) => q(tn),
+      q(0228) => q(tr),
+      q(0229) => q(tm),
+      q(0230) => q(tc),
+      q(0231) => q(tv),
+      q(0232) => q(ug),
+      q(0233) => q(ua),
+      q(0234) => q(ae),
       q(0235) => q(gb),
-      q(0236) => q(gg),
-      q(0237) => q(je),
-      q(0238) => q(im),
-      q(0239) => q(tz),
-      q(0240) => q(us),
-      q(0241) => q(vi),
-      q(0242) => q(bf),
-      q(0243) => q(uy),
-      q(0244) => q(uz),
-      q(0245) => q(ve),
-      q(0246) => q(wf),
-      q(0247) => q(ws),
-      q(0248) => q(ye),
-      q(0249) => q(zm),
+      q(0236) => q(um),
+      q(0237) => q(us),
+      q(0238) => q(uy),
+      q(0239) => q(uz),
+      q(0240) => q(vu),
+      q(0241) => q(ve),
+      q(0242) => q(vn),
+      q(0243) => q(vg),
+      q(0244) => q(vi),
+      q(0245) => q(wf),
+      q(0246) => q(eh),
+      q(0247) => q(ye),
+      q(0248) => q(zm),
+      q(0249) => q(zw),
       },
    q(numeric) => {
       q(0001) => q(004),
-      q(0002) => q(008),
-      q(0003) => q(010),
+      q(0002) => q(248),
+      q(0003) => q(008),
       q(0004) => q(012),
       q(0005) => q(016),
       q(0006) => q(020),
       q(0007) => q(024),
-      q(0008) => q(028),
-      q(0009) => q(031),
-      q(0010) => q(032),
-      q(0011) => q(036),
-      q(0012) => q(040),
-      q(0013) => q(044),
-      q(0014) => q(048),
-      q(0015) => q(050),
-      q(0016) => q(051),
-      q(0017) => q(052),
-      q(0018) => q(056),
-      q(0019) => q(060),
-      q(0020) => q(064),
-      q(0021) => q(068),
-      q(0022) => q(070),
-      q(0023) => q(072),
-      q(0024) => q(074),
-      q(0025) => q(076),
-      q(0026) => q(084),
-      q(0027) => q(086),
-      q(0028) => q(090),
-      q(0029) => q(092),
-      q(0030) => q(096),
-      q(0031) => q(100),
-      q(0032) => q(104),
-      q(0033) => q(108),
-      q(0034) => q(112),
-      q(0035) => q(116),
-      q(0036) => q(120),
-      q(0037) => q(124),
+      q(0008) => q(660),
+      q(0009) => q(010),
+      q(0010) => q(028),
+      q(0011) => q(032),
+      q(0012) => q(051),
+      q(0013) => q(533),
+      q(0014) => q(036),
+      q(0015) => q(040),
+      q(0016) => q(031),
+      q(0017) => q(044),
+      q(0018) => q(048),
+      q(0019) => q(050),
+      q(0020) => q(052),
+      q(0021) => q(112),
+      q(0022) => q(056),
+      q(0023) => q(084),
+      q(0024) => q(204),
+      q(0025) => q(060),
+      q(0026) => q(064),
+      q(0027) => q(068),
+      q(0028) => q(535),
+      q(0029) => q(070),
+      q(0030) => q(072),
+      q(0031) => q(074),
+      q(0032) => q(076),
+      q(0033) => q(086),
+      q(0034) => q(096),
+      q(0035) => q(100),
+      q(0036) => q(854),
+      q(0037) => q(108),
       q(0038) => q(132),
-      q(0039) => q(136),
-      q(0040) => q(140),
-      q(0041) => q(144),
-      q(0042) => q(148),
-      q(0043) => q(152),
-      q(0044) => q(156),
-      q(0045) => q(158),
-      q(0046) => q(162),
-      q(0047) => q(166),
-      q(0048) => q(170),
-      q(0049) => q(174),
-      q(0050) => q(175),
-      q(0051) => q(178),
-      q(0052) => q(180),
+      q(0039) => q(116),
+      q(0040) => q(120),
+      q(0041) => q(124),
+      q(0042) => q(136),
+      q(0043) => q(140),
+      q(0044) => q(148),
+      q(0045) => q(152),
+      q(0046) => q(156),
+      q(0047) => q(162),
+      q(0048) => q(166),
+      q(0049) => q(170),
+      q(0050) => q(174),
+      q(0051) => q(180),
+      q(0052) => q(178),
       q(0053) => q(184),
       q(0054) => q(188),
-      q(0055) => q(191),
-      q(0056) => q(192),
-      q(0057) => q(196),
-      q(0058) => q(203),
-      q(0059) => q(204),
-      q(0060) => q(208),
-      q(0061) => q(212),
-      q(0062) => q(214),
-      q(0063) => q(218),
-      q(0064) => q(222),
-      q(0065) => q(226),
-      q(0066) => q(231),
-      q(0067) => q(232),
-      q(0068) => q(233),
-      q(0069) => q(234),
-      q(0070) => q(238),
-      q(0071) => q(239),
-      q(0072) => q(242),
-      q(0073) => q(246),
-      q(0074) => q(248),
-      q(0075) => q(250),
-      q(0076) => q(254),
-      q(0077) => q(258),
-      q(0078) => q(260),
-      q(0079) => q(262),
+      q(0055) => q(384),
+      q(0056) => q(191),
+      q(0057) => q(192),
+      q(0058) => q(531),
+      q(0059) => q(196),
+      q(0060) => q(203),
+      q(0061) => q(208),
+      q(0062) => q(262),
+      q(0063) => q(212),
+      q(0064) => q(214),
+      q(0065) => q(218),
+      q(0066) => q(818),
+      q(0067) => q(222),
+      q(0068) => q(226),
+      q(0069) => q(232),
+      q(0070) => q(233),
+      q(0071) => q(231),
+      q(0072) => q(238),
+      q(0073) => q(234),
+      q(0074) => q(242),
+      q(0075) => q(246),
+      q(0076) => q(250),
+      q(0077) => q(254),
+      q(0078) => q(258),
+      q(0079) => q(260),
       q(0080) => q(266),
-      q(0081) => q(268),
-      q(0082) => q(270),
-      q(0083) => q(275),
-      q(0084) => q(276),
-      q(0085) => q(288),
-      q(0086) => q(292),
-      q(0087) => q(296),
-      q(0088) => q(300),
-      q(0089) => q(304),
-      q(0090) => q(308),
-      q(0091) => q(312),
-      q(0092) => q(316),
-      q(0093) => q(320),
-      q(0094) => q(324),
+      q(0081) => q(270),
+      q(0082) => q(268),
+      q(0083) => q(276),
+      q(0084) => q(288),
+      q(0085) => q(292),
+      q(0086) => q(300),
+      q(0087) => q(304),
+      q(0088) => q(308),
+      q(0089) => q(312),
+      q(0090) => q(316),
+      q(0091) => q(320),
+      q(0092) => q(831),
+      q(0093) => q(324),
+      q(0094) => q(624),
       q(0095) => q(328),
       q(0096) => q(332),
       q(0097) => q(334),
@@ -7666,69 +7736,69 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0105) => q(364),
       q(0106) => q(368),
       q(0107) => q(372),
-      q(0108) => q(376),
-      q(0109) => q(380),
-      q(0110) => q(384),
+      q(0108) => q(833),
+      q(0109) => q(376),
+      q(0110) => q(380),
       q(0111) => q(388),
       q(0112) => q(392),
-      q(0113) => q(398),
+      q(0113) => q(832),
       q(0114) => q(400),
-      q(0115) => q(404),
-      q(0116) => q(408),
-      q(0117) => q(410),
-      q(0118) => q(414),
-      q(0119) => q(417),
-      q(0120) => q(418),
-      q(0121) => q(422),
-      q(0122) => q(426),
+      q(0115) => q(398),
+      q(0116) => q(404),
+      q(0117) => q(296),
+      q(0118) => q(408),
+      q(0119) => q(410),
+      q(0120) => q(414),
+      q(0121) => q(417),
+      q(0122) => q(418),
       q(0123) => q(428),
-      q(0124) => q(430),
-      q(0125) => q(434),
-      q(0126) => q(438),
-      q(0127) => q(440),
-      q(0128) => q(442),
-      q(0129) => q(446),
-      q(0130) => q(450),
-      q(0131) => q(454),
-      q(0132) => q(458),
-      q(0133) => q(462),
-      q(0134) => q(466),
-      q(0135) => q(470),
-      q(0136) => q(474),
-      q(0137) => q(478),
-      q(0138) => q(480),
-      q(0139) => q(484),
-      q(0140) => q(492),
-      q(0141) => q(496),
-      q(0142) => q(498),
-      q(0143) => q(499),
-      q(0144) => q(500),
-      q(0145) => q(504),
-      q(0146) => q(508),
-      q(0147) => q(512),
-      q(0148) => q(516),
-      q(0149) => q(520),
-      q(0150) => q(524),
-      q(0151) => q(528),
-      q(0152) => q(531),
-      q(0153) => q(533),
-      q(0154) => q(534),
-      q(0155) => q(535),
-      q(0156) => q(540),
-      q(0157) => q(548),
-      q(0158) => q(554),
-      q(0159) => q(558),
-      q(0160) => q(562),
-      q(0161) => q(566),
-      q(0162) => q(570),
-      q(0163) => q(574),
-      q(0164) => q(578),
+      q(0124) => q(422),
+      q(0125) => q(426),
+      q(0126) => q(430),
+      q(0127) => q(434),
+      q(0128) => q(438),
+      q(0129) => q(440),
+      q(0130) => q(442),
+      q(0131) => q(446),
+      q(0132) => q(807),
+      q(0133) => q(450),
+      q(0134) => q(454),
+      q(0135) => q(458),
+      q(0136) => q(462),
+      q(0137) => q(466),
+      q(0138) => q(470),
+      q(0139) => q(584),
+      q(0140) => q(474),
+      q(0141) => q(478),
+      q(0142) => q(480),
+      q(0143) => q(175),
+      q(0144) => q(484),
+      q(0145) => q(583),
+      q(0146) => q(498),
+      q(0147) => q(492),
+      q(0148) => q(496),
+      q(0149) => q(499),
+      q(0150) => q(500),
+      q(0151) => q(504),
+      q(0152) => q(508),
+      q(0153) => q(104),
+      q(0154) => q(516),
+      q(0155) => q(520),
+      q(0156) => q(524),
+      q(0157) => q(528),
+      q(0158) => q(540),
+      q(0159) => q(554),
+      q(0160) => q(558),
+      q(0161) => q(562),
+      q(0162) => q(566),
+      q(0163) => q(570),
+      q(0164) => q(574),
       q(0165) => q(580),
-      q(0166) => q(581),
-      q(0167) => q(583),
-      q(0168) => q(584),
+      q(0166) => q(578),
+      q(0167) => q(512),
+      q(0168) => q(586),
       q(0169) => q(585),
-      q(0170) => q(586),
+      q(0170) => q(275),
       q(0171) => q(591),
       q(0172) => q(598),
       q(0173) => q(600),
@@ -7737,77 +7807,77 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0176) => q(612),
       q(0177) => q(616),
       q(0178) => q(620),
-      q(0179) => q(624),
-      q(0180) => q(626),
-      q(0181) => q(630),
-      q(0182) => q(634),
-      q(0183) => q(638),
-      q(0184) => q(642),
-      q(0185) => q(643),
-      q(0186) => q(646),
-      q(0187) => q(652),
-      q(0188) => q(654),
-      q(0189) => q(659),
-      q(0190) => q(660),
-      q(0191) => q(662),
-      q(0192) => q(663),
-      q(0193) => q(666),
-      q(0194) => q(670),
-      q(0195) => q(674),
-      q(0196) => q(678),
-      q(0197) => q(682),
-      q(0198) => q(686),
-      q(0199) => q(688),
-      q(0200) => q(690),
-      q(0201) => q(694),
-      q(0202) => q(702),
-      q(0203) => q(703),
-      q(0204) => q(704),
-      q(0205) => q(705),
-      q(0206) => q(706),
-      q(0207) => q(710),
-      q(0208) => q(716),
+      q(0179) => q(630),
+      q(0180) => q(634),
+      q(0181) => q(638),
+      q(0182) => q(642),
+      q(0183) => q(643),
+      q(0184) => q(646),
+      q(0185) => q(652),
+      q(0186) => q(654),
+      q(0187) => q(659),
+      q(0188) => q(662),
+      q(0189) => q(663),
+      q(0190) => q(666),
+      q(0191) => q(670),
+      q(0192) => q(882),
+      q(0193) => q(674),
+      q(0194) => q(678),
+      q(0195) => q(682),
+      q(0196) => q(686),
+      q(0197) => q(688),
+      q(0198) => q(690),
+      q(0199) => q(694),
+      q(0200) => q(702),
+      q(0201) => q(534),
+      q(0202) => q(703),
+      q(0203) => q(705),
+      q(0204) => q(090),
+      q(0205) => q(706),
+      q(0206) => q(710),
+      q(0207) => q(239),
+      q(0208) => q(728),
       q(0209) => q(724),
-      q(0210) => q(728),
+      q(0210) => q(144),
       q(0211) => q(729),
-      q(0212) => q(732),
-      q(0213) => q(740),
-      q(0214) => q(744),
-      q(0215) => q(748),
-      q(0216) => q(752),
-      q(0217) => q(756),
-      q(0218) => q(760),
+      q(0212) => q(740),
+      q(0213) => q(744),
+      q(0214) => q(748),
+      q(0215) => q(752),
+      q(0216) => q(756),
+      q(0217) => q(760),
+      q(0218) => q(158),
       q(0219) => q(762),
-      q(0220) => q(764),
-      q(0221) => q(768),
-      q(0222) => q(772),
-      q(0223) => q(776),
-      q(0224) => q(780),
-      q(0225) => q(784),
-      q(0226) => q(788),
-      q(0227) => q(792),
-      q(0228) => q(795),
-      q(0229) => q(796),
-      q(0230) => q(798),
-      q(0231) => q(800),
-      q(0232) => q(804),
-      q(0233) => q(807),
-      q(0234) => q(818),
+      q(0220) => q(834),
+      q(0221) => q(764),
+      q(0222) => q(626),
+      q(0223) => q(768),
+      q(0224) => q(772),
+      q(0225) => q(776),
+      q(0226) => q(780),
+      q(0227) => q(788),
+      q(0228) => q(792),
+      q(0229) => q(795),
+      q(0230) => q(796),
+      q(0231) => q(798),
+      q(0232) => q(800),
+      q(0233) => q(804),
+      q(0234) => q(784),
       q(0235) => q(826),
-      q(0236) => q(831),
-      q(0237) => q(832),
-      q(0238) => q(833),
-      q(0239) => q(834),
-      q(0240) => q(840),
-      q(0241) => q(850),
-      q(0242) => q(854),
-      q(0243) => q(858),
-      q(0244) => q(860),
-      q(0245) => q(862),
-      q(0246) => q(876),
-      q(0247) => q(882),
-      q(0248) => q(887),
-      q(0249) => q(894),
+      q(0236) => q(581),
+      q(0237) => q(840),
+      q(0238) => q(858),
+      q(0239) => q(860),
+      q(0240) => q(548),
+      q(0241) => q(862),
+      q(0242) => q(704),
+      q(0243) => q(092),
+      q(0244) => q(850),
+      q(0245) => q(876),
+      q(0246) => q(732),
+      q(0247) => q(887),
+      q(0248) => q(894),
+      q(0249) => q(716),
       },
 };
 
index dbe56b0..7defc73 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: Mon Nov 24 13:38:10 GMT 2014
+#    Generated on: Fri Feb 20 15:27:22 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Retired{'country'}{'alpha-2'}{'code'} = {
    q(an) => q(Netherlands Antilles),
@@ -329,6 +329,7 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'code'} = {
 
 $Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
    q(bolivia) => [ q(bo), q(Bolivia) ],
+   q(bolivia, plurinational state of) => [ q(bo), q(Bolivia, Plurinational State of) ],
    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) ],
@@ -337,9 +338,11 @@ $Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
    q(falkland islands (malvinas)) => [ q(fk), q(Falkland Islands (Malvinas)) ],
    q(france, metropolitan) => [ q(fx), q(France, Metropolitan) ],
    q(heard and mc donald islands) => [ q(hm), q(Heard and Mc Donald Islands) ],
+   q(holy see (the) [vatican city state]) => [ q(va), q(Holy See (The) [Vatican City State]) ],
    q(holy see (vatican city state)) => [ q(va), q(Holy See (Vatican City State)) ],
    q(iran (islamic republic of)) => [ q(ir), q(Iran (Islamic Republic of)) ],
    q(iran, islamic republic of) => [ q(ir), q(Iran, Islamic Republic of) ],
+   q(iran, the islamic republic of) => [ q(ir), q(Iran, The Islamic Republic of) ],
    q(kazakstan) => [ q(kz), q(Kazakstan) ],
    q(korea, democratic people's republic of) => [ q(kp), q(Korea, Democratic People's Republic of) ],
    q(korea, republic of) => [ q(kr), q(Korea, Republic of) ],
@@ -347,6 +350,7 @@ $Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
    q(macau) => [ q(mo), q(Macau) ],
    q(micronesia (federated states of)) => [ q(fm), q(Micronesia (Federated States of)) ],
    q(micronesia, federated states of) => [ q(fm), q(Micronesia, Federated States of) ],
+   q(micronesia, the federated states of) => [ q(fm), q(Micronesia, The Federated States of) ],
    q(moldova, republic of) => [ q(md), q(Moldova, Republic of) ],
    q(netherlands antilles) => [ q(an), q(Netherlands Antilles) ],
    q(saint helena) => [ q(sh), q(Saint Helena) ],
@@ -356,9 +360,12 @@ $Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
    q(st. pierre and miquelon) => [ q(pm), q(St. Pierre and Miquelon) ],
    q(svalbard and jan mayen islands) => [ q(sj), q(Svalbard and Jan Mayen Islands) ],
    q(taiwan, province of china) => [ q(tw), q(Taiwan, Province of China) ],
+   q(united kingdom) => [ q(gb), q(United Kingdom) ],
+   q(united states) => [ q(us), q(United States) ],
    q(vatican city state (holy see)) => [ q(va), q(Vatican City State (Holy See)) ],
    q(venezuela) => [ q(ve), q(Venezuela) ],
    q(venezuela, bolivarian republic of) => [ q(ve), q(Venezuela, Bolivarian Republic of) ],
+   q(venezuela, bolivarian republic of ) => [ q(ve), q(Venezuela, Bolivarian Republic of ) ],
    q(vietnam) => [ q(vn), q(Vietnam) ],
    q(virgin islands (british)) => [ q(vg), q(Virgin Islands (British)) ],
    q(virgin islands (u.s.)) => [ q(vi), q(Virgin Islands (U.S.)) ],
@@ -373,6 +380,7 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
    q(antarctica) => [ q(ata), q(Antarctica) ],
    q(bolivia) => [ q(bol), q(Bolivia) ],
    q(bolivia (plurinational state of)) => [ q(bol), q(Bolivia (Plurinational State of)) ],
+   q(bolivia, plurinational state of) => [ q(bol), q(Bolivia, Plurinational State of) ],
    q(bonaire, saint eustatius and saba) => [ q(bes), q(Bonaire, Saint Eustatius and Saba) ],
    q(bouvet island) => [ q(bvt), q(Bouvet Island) ],
    q(british indian ocean territory) => [ q(iot), q(British Indian Ocean Territory) ],
@@ -395,11 +403,13 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
    q(french southern territories) => [ q(atf), q(French Southern Territories) ],
    q(heard island and mcdonald islands) => [ q(hmd), q(Heard Island and Mcdonald Islands) ],
    q(holy see) => [ q(vat), q(Holy See) ],
+   q(holy see (the) [vatican city state]) => [ q(vat), q(Holy See (The) [Vatican City State]) ],
    q(holy see (vatican city state)) => [ q(vat), q(Holy See (Vatican City State)) ],
    q(hong kong) => [ q(hkg), q(Hong Kong) ],
    q(hong kong special administrative region of china) => [ q(hkg), q(Hong Kong Special Administrative Region of China) ],
    q(iran (islamic republic of)) => [ q(irn), q(Iran (Islamic Republic of)) ],
    q(iran, islamic republic of) => [ q(irn), q(Iran, Islamic Republic of) ],
+   q(iran, the islamic republic of) => [ q(irn), q(Iran, The Islamic Republic of) ],
    q(kazakstan) => [ q(kaz), q(Kazakstan) ],
    q(korea, democratic people's republic of) => [ q(prk), q(Korea, Democratic People's Republic of) ],
    q(korea, republic of) => [ q(kor), q(Korea, Republic of) ],
@@ -410,6 +420,7 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
    q(macedonia, the former yugoslav republic of) => [ q(mkd), q(Macedonia, the Former Yugoslav Republic of) ],
    q(micronesia (federated states of)) => [ q(fsm), q(Micronesia (Federated States of)) ],
    q(micronesia, federated states of) => [ q(fsm), q(Micronesia, Federated States of) ],
+   q(micronesia, the federated states of) => [ q(fsm), q(Micronesia, The Federated States of) ],
    q(moldova, republic of) => [ q(mda), q(Moldova, Republic of) ],
    q(netherlands antilles) => [ q(ant), q(Netherlands Antilles) ],
    q(palestinian territory, occupied) => [ q(pse), q(Palestinian Territory, Occupied) ],
@@ -437,6 +448,7 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
    q(united states virgin islands) => [ q(vir), q(United States Virgin Islands) ],
    q(venezuela) => [ q(ven), q(Venezuela) ],
    q(venezuela (bolivarian republic of)) => [ q(ven), q(Venezuela (Bolivarian Republic of)) ],
+   q(venezuela, bolivarian republic of ) => [ q(ven), q(Venezuela, Bolivarian Republic of ) ],
    q(vietnam) => [ q(vnm), q(Vietnam) ],
    q(virgin islands, british) => [ q(vgb), q(Virgin Islands, British) ],
    q(virgin islands, u.s.) => [ q(vir), q(Virgin Islands, U.S.) ],
@@ -448,6 +460,7 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
 
 $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
    q(ascension island) => [ q(ac), q(Ascension Island) ],
+   q(bolivia, plurinational state of) => [ q(bo), q(Bolivia, Plurinational State of) ],
    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) ],
@@ -456,12 +469,15 @@ $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
    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) ],
+   q(holy see (the) [vatican city state]) => [ q(va), q(Holy See (The) [Vatican City State]) ],
    q(holy see (vatican city state)) => [ q(va), q(Holy See (Vatican City State)) ],
    q(iran, islamic republic of) => [ q(ir), q(Iran, Islamic Republic of) ],
+   q(iran, the islamic republic of) => [ q(ir), q(Iran, The Islamic Republic of) ],
    q(korea, democratic people's republic of) => [ q(kp), q(Korea, Democratic People's Republic of) ],
    q(korea, republic of) => [ q(kr), q(Korea, Republic of) ],
    q(libyan arab jamahiriya) => [ q(LY), q(Libyan Arab Jamahiriya) ],
    q(micronesia, federated states of) => [ q(fm), q(Micronesia, Federated States of) ],
+   q(micronesia, the federated states of) => [ q(fm), q(Micronesia, The 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) ],
@@ -472,8 +488,11 @@ $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(united kingdom) => [ q(gb), q(United Kingdom) ],
+   q(united states) => [ q(us), q(United States) ],
    q(ussr) => [ q(su), q(USSR) ],
    q(venezuela, bolivarian republic of) => [ q(ve), q(Venezuela, Bolivarian Republic of) ],
+   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.) ],
    q(yugoslavia ) => [ q(YU), q(Yugoslavia ) ],
@@ -483,6 +502,7 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
    q(antarctica) => [ q(010), q(Antarctica) ],
    q(bolivia) => [ q(068), q(Bolivia) ],
    q(bolivia (plurinational state of)) => [ q(068), q(Bolivia (Plurinational State of)) ],
+   q(bolivia, plurinational state of) => [ q(068), q(Bolivia, Plurinational State of) ],
    q(bonaire, saint eustatius and saba) => [ q(535), q(Bonaire, Saint Eustatius and Saba) ],
    q(bouvet island) => [ q(074), q(Bouvet Island) ],
    q(british indian ocean territory) => [ q(086), q(British Indian Ocean Territory) ],
@@ -506,11 +526,13 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
    q(french southern territories) => [ q(260), q(French Southern Territories) ],
    q(heard island and mcdonald islands) => [ q(334), q(Heard Island and Mcdonald Islands) ],
    q(holy see) => [ q(336), q(Holy See) ],
+   q(holy see (the) [vatican city state]) => [ q(336), q(Holy See (The) [Vatican City State]) ],
    q(holy see (vatican city state)) => [ q(336), q(Holy See (Vatican City State)) ],
    q(hong kong) => [ q(344), q(Hong Kong) ],
    q(hong kong special administrative region of china) => [ q(344), q(Hong Kong Special Administrative Region of China) ],
    q(iran (islamic republic of)) => [ q(364), q(Iran (Islamic Republic of)) ],
    q(iran, islamic republic of) => [ q(364), q(Iran, Islamic Republic of) ],
+   q(iran, the islamic republic of) => [ q(364), q(Iran, The Islamic Republic of) ],
    q(kazakstan) => [ q(398), q(Kazakstan) ],
    q(korea, democratic people's republic of) => [ q(408), q(Korea, Democratic People's Republic of) ],
    q(korea, republic of) => [ q(410), q(Korea, Republic of) ],
@@ -521,6 +543,7 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
    q(macedonia, the former yugoslav republic of) => [ q(807), q(Macedonia, the Former Yugoslav Republic of) ],
    q(micronesia (federated states of)) => [ q(583), q(Micronesia (Federated States of)) ],
    q(micronesia, federated states of) => [ q(583), q(Micronesia, Federated States of) ],
+   q(micronesia, the federated states of) => [ q(583), q(Micronesia, The Federated States of) ],
    q(moldova, republic of) => [ q(498), q(Moldova, Republic of) ],
    q(netherlands antilles) => [ q(530), q(Netherlands Antilles) ],
    q(palestinian territory, occupied) => [ q(275), q(Palestinian Territory, Occupied) ],
@@ -549,6 +572,7 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
    q(united states virgin islands) => [ q(850), q(United States Virgin Islands) ],
    q(venezuela) => [ q(862), q(Venezuela) ],
    q(venezuela (bolivarian republic of)) => [ q(862), q(Venezuela (Bolivarian Republic of)) ],
+   q(venezuela, bolivarian republic of ) => [ q(862), q(Venezuela, Bolivarian Republic of ) ],
    q(vietnam) => [ q(704), q(Vietnam) ],
    q(virgin islands, british) => [ q(092), q(Virgin Islands, British) ],
    q(virgin islands, u.s.) => [ q(850), q(Virgin Islands, U.S.) ],
index 62fc56d..a2478c2 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Codes::Currency;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -22,7 +22,7 @@ use Locale::Codes::Currency_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.33';
+$VERSION='3.34';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2currency
                 currency2code
index e941685..39221f8 100644 (file)
@@ -119,7 +119,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001      Michael Hennecke
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index d6589a8..812d827 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: Mon Nov 24 13:36:11 GMT 2014
+#    Generated on: Thu Feb 19 20:50:17 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,9 +11,9 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
-$Locale::Codes::Data{'currency'}{'id'} = '0178';
+$Locale::Codes::Data{'currency'}{'id'} = '0177';
 
 $Locale::Codes::Data{'currency'}{'id2names'} = {
    q(0001) => [
@@ -299,259 +299,256 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
       q(Swiss Franc),
       ],
    q(0095) => [
-      q(Lithuanian Litas),
-      ],
-   q(0096) => [
       q(Pataca),
       ],
-   q(0097) => [
+   q(0096) => [
       q(Denar),
       ],
-   q(0098) => [
+   q(0097) => [
       q(Malagasy Ariary),
       ],
-   q(0099) => [
+   q(0098) => [
       q(Kwacha),
       ],
-   q(0100) => [
+   q(0099) => [
       q(Malaysian Ringgit),
       ],
-   q(0101) => [
+   q(0100) => [
       q(Rufiyaa),
       ],
-   q(0102) => [
+   q(0101) => [
       q(Ouguiya),
       ],
-   q(0103) => [
+   q(0102) => [
       q(Mauritius Rupee),
       ],
-   q(0104) => [
+   q(0103) => [
       q(ADB Unit of Account),
       ],
-   q(0105) => [
+   q(0104) => [
       q(Mexican Peso),
       ],
-   q(0106) => [
+   q(0105) => [
       q(Mexican Unidad de Inversion (UDI)),
       ],
-   q(0107) => [
+   q(0106) => [
       q(Moldovan Leu),
       ],
-   q(0108) => [
+   q(0107) => [
       q(Tugrik),
       ],
-   q(0109) => [
+   q(0108) => [
       q(Moroccan Dirham),
       ],
-   q(0110) => [
+   q(0109) => [
       q(Mozambique Metical),
       ],
-   q(0111) => [
+   q(0110) => [
       q(Kyat),
       ],
-   q(0112) => [
+   q(0111) => [
       q(Namibia Dollar),
       ],
-   q(0113) => [
+   q(0112) => [
       q(Nepalese Rupee),
       ],
-   q(0114) => [
+   q(0113) => [
       q(Cordoba Oro),
       ],
-   q(0115) => [
+   q(0114) => [
       q(Naira),
       ],
-   q(0116) => [
+   q(0115) => [
       q(Rial Omani),
       ],
-   q(0117) => [
+   q(0116) => [
       q(Pakistan Rupee),
       ],
-   q(0118) => [
+   q(0117) => [
       q(Balboa),
       ],
-   q(0119) => [
+   q(0118) => [
       q(Kina),
       ],
-   q(0120) => [
+   q(0119) => [
       q(Guarani),
       ],
-   q(0121) => [
+   q(0120) => [
       q(Nuevo Sol),
       ],
-   q(0122) => [
+   q(0121) => [
       q(Philippine Peso),
       ],
-   q(0123) => [
+   q(0122) => [
       q(Zloty),
       ],
-   q(0124) => [
+   q(0123) => [
       q(Qatari Rial),
       ],
-   q(0125) => [
+   q(0124) => [
       q(New Romanian Leu),
       ],
-   q(0126) => [
+   q(0125) => [
       q(Russian Ruble),
       ],
-   q(0127) => [
+   q(0126) => [
       q(Rwanda Franc),
       ],
-   q(0128) => [
+   q(0127) => [
       q(Saint Helena Pound),
       ],
-   q(0129) => [
+   q(0128) => [
       q(Tala),
       ],
-   q(0130) => [
+   q(0129) => [
       q(Dobra),
       ],
-   q(0131) => [
+   q(0130) => [
       q(Saudi Riyal),
       ],
-   q(0132) => [
+   q(0131) => [
       q(Serbian Dinar),
       ],
-   q(0133) => [
+   q(0132) => [
       q(Seychelles Rupee),
       ],
-   q(0134) => [
+   q(0133) => [
       q(Leone),
       ],
-   q(0135) => [
+   q(0134) => [
       q(Singapore Dollar),
       ],
-   q(0136) => [
+   q(0135) => [
       q(Sucre),
       ],
-   q(0137) => [
+   q(0136) => [
       q(Solomon Islands Dollar),
       ],
-   q(0138) => [
+   q(0137) => [
       q(Somali Shilling),
       ],
-   q(0139) => [
+   q(0138) => [
       q(South Sudanese Pound),
       ],
-   q(0140) => [
+   q(0139) => [
       q(Sri Lanka Rupee),
       ],
-   q(0141) => [
+   q(0140) => [
       q(Sudanese Pound),
       ],
-   q(0142) => [
+   q(0141) => [
       q(Surinam Dollar),
       ],
-   q(0143) => [
+   q(0142) => [
       q(Lilangeni),
       ],
-   q(0144) => [
+   q(0143) => [
       q(Swedish Krona),
       ],
-   q(0145) => [
+   q(0144) => [
       q(WIR Euro),
       ],
-   q(0146) => [
+   q(0145) => [
       q(WIR Franc),
       ],
-   q(0147) => [
+   q(0146) => [
       q(Syrian Pound),
       ],
-   q(0148) => [
+   q(0147) => [
       q(New Taiwan Dollar),
       ],
-   q(0149) => [
+   q(0148) => [
       q(Somoni),
       ],
-   q(0150) => [
+   q(0149) => [
       q(Tanzanian Shilling),
       ],
-   q(0151) => [
+   q(0150) => [
       q(Baht),
       ],
-   q(0152) => [
+   q(0151) => [
       q(Pa'anga),
       ],
-   q(0153) => [
+   q(0152) => [
       q(Trinidad and Tobago Dollar),
       ],
-   q(0154) => [
+   q(0153) => [
       q(Tunisian Dinar),
       ],
-   q(0155) => [
+   q(0154) => [
       q(Turkish Lira),
       ],
-   q(0156) => [
+   q(0155) => [
       q(Turkmenistan New Manat),
       ],
-   q(0157) => [
+   q(0156) => [
       q(Uganda Shilling),
       ],
-   q(0158) => [
+   q(0157) => [
       q(Hryvnia),
       ],
-   q(0159) => [
+   q(0158) => [
       q(UAE Dirham),
       ],
-   q(0160) => [
+   q(0159) => [
       q(US Dollar (Next day)),
       ],
-   q(0161) => [
+   q(0160) => [
       q(Uruguay Peso en Unidades Indexadas (URUIURUI)),
       ],
-   q(0162) => [
+   q(0161) => [
       q(Peso Uruguayo),
       ],
-   q(0163) => [
+   q(0162) => [
       q(Uzbekistan Sum),
       ],
-   q(0164) => [
+   q(0163) => [
       q(Vatu),
       ],
-   q(0165) => [
+   q(0164) => [
       q(Bolivar),
       ],
-   q(0166) => [
+   q(0165) => [
       q(Dong),
       ],
-   q(0167) => [
+   q(0166) => [
       q(Yemeni Rial),
       ],
-   q(0168) => [
+   q(0167) => [
       q(Zambian Kwacha),
       ],
-   q(0169) => [
+   q(0168) => [
       q(Zimbabwe Dollar),
       ],
-   q(0170) => [
+   q(0169) => [
       q(Bond Markets Unit European Composite Unit (EURCO)),
       ],
-   q(0171) => [
+   q(0170) => [
       q(Bond Markets Unit European Monetary Unit (E.M.U.-6)),
       ],
-   q(0172) => [
+   q(0171) => [
       q(Bond Markets Unit European Unit of Account 9 (E.U.A.-9)),
       ],
-   q(0173) => [
+   q(0172) => [
       q(Bond Markets Unit European Unit of Account 17 (E.U.A.-17)),
       ],
-   q(0174) => [
+   q(0173) => [
       q(Gold),
       ],
-   q(0175) => [
+   q(0174) => [
       q(Palladium),
       ],
-   q(0176) => [
+   q(0175) => [
       q(Platinum),
       ],
-   q(0177) => [
+   q(0176) => [
       q(Silver),
       ],
 };
 
 $Locale::Codes::Data{'currency'}{'alias2id'} = {
    q(adb unit of account) => [
-      q(0104),
+      q(0103),
       q(0),
       ],
    q(afghani) => [
@@ -591,11 +588,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(baht) => [
-      q(0151),
+      q(0150),
       q(0),
       ],
    q(balboa) => [
-      q(0118),
+      q(0117),
       q(0),
       ],
    q(barbados dollar) => [
@@ -615,7 +612,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(bolivar) => [
-      q(0165),
+      q(0164),
       q(0),
       ],
    q(boliviano) => [
@@ -623,19 +620,19 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(bond markets unit european composite unit (eurco)) => [
-      q(0170),
+      q(0169),
       q(0),
       ],
    q(bond markets unit european monetary unit (e.m.u.-6)) => [
-      q(0171),
+      q(0170),
       q(0),
       ],
    q(bond markets unit european unit of account 17 (e.u.a.-17)) => [
-      q(0173),
+      q(0172),
       q(0),
       ],
    q(bond markets unit european unit of account 9 (e.u.a.-9)) => [
-      q(0172),
+      q(0171),
       q(0),
       ],
    q(brazilian real) => [
@@ -699,7 +696,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(cordoba oro) => [
-      q(0114),
+      q(0113),
       q(0),
       ],
    q(costa rican colon) => [
@@ -727,7 +724,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(denar) => [
-      q(0097),
+      q(0096),
       q(0),
       ],
    q(djibouti franc) => [
@@ -735,7 +732,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(dobra) => [
-      q(0130),
+      q(0129),
       q(0),
       ],
    q(dominican peso) => [
@@ -743,7 +740,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(dong) => [
-      q(0166),
+      q(0165),
       q(0),
       ],
    q(east caribbean dollar) => [
@@ -787,7 +784,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(gold) => [
-      q(0174),
+      q(0173),
       q(0),
       ],
    q(gourde) => [
@@ -795,7 +792,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(guarani) => [
-      q(0120),
+      q(0119),
       q(0),
       ],
    q(guinea franc) => [
@@ -811,7 +808,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(hryvnia) => [
-      q(0158),
+      q(0157),
       q(0),
       ],
    q(iceland krona) => [
@@ -843,7 +840,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(kina) => [
-      q(0119),
+      q(0118),
       q(0),
       ],
    q(kip) => [
@@ -855,7 +852,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(kwacha) => [
-      q(0099),
+      q(0098),
       q(0),
       ],
    q(kwanza) => [
@@ -863,7 +860,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(kyat) => [
-      q(0111),
+      q(0110),
       q(0),
       ],
    q(lari) => [
@@ -883,7 +880,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(leone) => [
-      q(0134),
+      q(0133),
       q(0),
       ],
    q(liberian dollar) => [
@@ -895,11 +892,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(lilangeni) => [
-      q(0143),
-      q(0),
-      ],
-   q(lithuanian litas) => [
-      q(0095),
+      q(0142),
       q(0),
       ],
    q(loti) => [
@@ -907,35 +900,35 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(malagasy ariary) => [
-      q(0098),
+      q(0097),
       q(0),
       ],
    q(malaysian ringgit) => [
-      q(0100),
+      q(0099),
       q(0),
       ],
    q(mauritius rupee) => [
-      q(0103),
+      q(0102),
       q(0),
       ],
    q(mexican peso) => [
-      q(0105),
+      q(0104),
       q(0),
       ],
    q(mexican unidad de inversion (udi)) => [
-      q(0106),
+      q(0105),
       q(0),
       ],
    q(moldovan leu) => [
-      q(0107),
+      q(0106),
       q(0),
       ],
    q(moroccan dirham) => [
-      q(0109),
+      q(0108),
       q(0),
       ],
    q(mozambique metical) => [
-      q(0110),
+      q(0109),
       q(0),
       ],
    q(mvdol) => [
@@ -943,7 +936,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(naira) => [
-      q(0115),
+      q(0114),
       q(0),
       ],
    q(nakfa) => [
@@ -951,11 +944,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(namibia dollar) => [
-      q(0112),
+      q(0111),
       q(0),
       ],
    q(nepalese rupee) => [
-      q(0113),
+      q(0112),
       q(0),
       ],
    q(netherlands antillean guilder) => [
@@ -967,11 +960,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(new romanian leu) => [
-      q(0125),
+      q(0124),
       q(0),
       ],
    q(new taiwan dollar) => [
-      q(0148),
+      q(0147),
       q(0),
       ],
    q(new zealand dollar) => [
@@ -991,27 +984,27 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(nuevo sol) => [
-      q(0121),
+      q(0120),
       q(0),
       ],
    q(ouguiya) => [
-      q(0102),
+      q(0101),
       q(0),
       ],
    q(pa'anga) => [
-      q(0152),
+      q(0151),
       q(0),
       ],
    q(pakistan rupee) => [
-      q(0117),
+      q(0116),
       q(0),
       ],
    q(palladium) => [
-      q(0175),
+      q(0174),
       q(0),
       ],
    q(pataca) => [
-      q(0096),
+      q(0095),
       q(0),
       ],
    q(peso convertible) => [
@@ -1019,15 +1012,15 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(peso uruguayo) => [
-      q(0162),
+      q(0161),
       q(0),
       ],
    q(philippine peso) => [
-      q(0122),
+      q(0121),
       q(0),
       ],
    q(platinum) => [
-      q(0176),
+      q(0175),
       q(0),
       ],
    q(pound sterling) => [
@@ -1039,7 +1032,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(qatari rial) => [
-      q(0124),
+      q(0123),
       q(0),
       ],
    q(quetzal) => [
@@ -1051,7 +1044,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(rial omani) => [
-      q(0116),
+      q(0115),
       q(0),
       ],
    q(riel) => [
@@ -1059,7 +1052,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(rufiyaa) => [
-      q(0101),
+      q(0100),
       q(0),
       ],
    q(rupiah) => [
@@ -1067,19 +1060,19 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(russian ruble) => [
-      q(0126),
+      q(0125),
       q(0),
       ],
    q(rwanda franc) => [
-      q(0127),
+      q(0126),
       q(0),
       ],
    q(saint helena pound) => [
-      q(0128),
+      q(0127),
       q(0),
       ],
    q(saudi riyal) => [
-      q(0131),
+      q(0130),
       q(0),
       ],
    q(sdr (special drawing right)) => [
@@ -1087,23 +1080,23 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(serbian dinar) => [
-      q(0132),
+      q(0131),
       q(0),
       ],
    q(seychelles rupee) => [
-      q(0133),
+      q(0132),
       q(0),
       ],
    q(silver) => [
-      q(0177),
+      q(0176),
       q(0),
       ],
    q(singapore dollar) => [
-      q(0135),
+      q(0134),
       q(0),
       ],
    q(solomon islands dollar) => [
-      q(0137),
+      q(0136),
       q(0),
       ],
    q(som) => [
@@ -1111,35 +1104,35 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(somali shilling) => [
-      q(0138),
+      q(0137),
       q(0),
       ],
    q(somoni) => [
-      q(0149),
+      q(0148),
       q(0),
       ],
    q(south sudanese pound) => [
-      q(0139),
+      q(0138),
       q(0),
       ],
    q(sri lanka rupee) => [
-      q(0140),
+      q(0139),
       q(0),
       ],
    q(sucre) => [
-      q(0136),
+      q(0135),
       q(0),
       ],
    q(sudanese pound) => [
-      q(0141),
+      q(0140),
       q(0),
       ],
    q(surinam dollar) => [
-      q(0142),
+      q(0141),
       q(0),
       ],
    q(swedish krona) => [
-      q(0144),
+      q(0143),
       q(0),
       ],
    q(swiss franc) => [
@@ -1147,7 +1140,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(syrian pound) => [
-      q(0147),
+      q(0146),
       q(0),
       ],
    q(taka) => [
@@ -1155,11 +1148,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(tala) => [
-      q(0129),
+      q(0128),
       q(0),
       ],
    q(tanzanian shilling) => [
-      q(0150),
+      q(0149),
       q(0),
       ],
    q(tenge) => [
@@ -1167,31 +1160,31 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(trinidad and tobago dollar) => [
-      q(0153),
+      q(0152),
       q(0),
       ],
    q(tugrik) => [
-      q(0108),
+      q(0107),
       q(0),
       ],
    q(tunisian dinar) => [
-      q(0154),
+      q(0153),
       q(0),
       ],
    q(turkish lira) => [
-      q(0155),
+      q(0154),
       q(0),
       ],
    q(turkmenistan new manat) => [
-      q(0156),
+      q(0155),
       q(0),
       ],
    q(uae dirham) => [
-      q(0159),
+      q(0158),
       q(0),
       ],
    q(uganda shilling) => [
-      q(0157),
+      q(0156),
       q(0),
       ],
    q(unidad de fomento) => [
@@ -1203,7 +1196,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(uruguay peso en unidades indexadas (uruiurui)) => [
-      q(0161),
+      q(0160),
       q(0),
       ],
    q(us dollar) => [
@@ -1211,23 +1204,23 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(us dollar (next day)) => [
-      q(0160),
+      q(0159),
       q(0),
       ],
    q(uzbekistan sum) => [
-      q(0163),
+      q(0162),
       q(0),
       ],
    q(vatu) => [
-      q(0164),
+      q(0163),
       q(0),
       ],
    q(wir euro) => [
-      q(0145),
+      q(0144),
       q(0),
       ],
    q(wir franc) => [
-      q(0146),
+      q(0145),
       q(0),
       ],
    q(won) => [
@@ -1235,7 +1228,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(yemeni rial) => [
-      q(0167),
+      q(0166),
       q(0),
       ],
    q(yen) => [
@@ -1247,15 +1240,15 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(zambian kwacha) => [
-      q(0168),
+      q(0167),
       q(0),
       ],
    q(zimbabwe dollar) => [
-      q(0169),
+      q(0168),
       q(0),
       ],
    q(zloty) => [
-      q(0123),
+      q(0122),
       q(0),
       ],
 };
@@ -1263,7 +1256,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
 $Locale::Codes::Data{'currency'}{'code2id'} = {
    q(alpha) => {
       q(AED) => [
-         q(0159),
+         q(0158),
          q(0),
          ],
       q(AFN) => [
@@ -1375,7 +1368,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(CHE) => [
-         q(0145),
+         q(0144),
          q(0),
          ],
       q(CHF) => [
@@ -1383,7 +1376,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(CHW) => [
-         q(0146),
+         q(0145),
          q(0),
          ],
       q(CLF) => [
@@ -1599,7 +1592,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(LKR) => [
-         q(0140),
+         q(0139),
          q(0),
          ],
       q(LRD) => [
@@ -1610,84 +1603,80 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0090),
          q(0),
          ],
-      q(LTL) => [
-         q(0095),
-         q(0),
-         ],
       q(LYD) => [
          q(0093),
          q(0),
          ],
       q(MAD) => [
-         q(0109),
+         q(0108),
          q(0),
          ],
       q(MDL) => [
-         q(0107),
+         q(0106),
          q(0),
          ],
       q(MGA) => [
-         q(0098),
+         q(0097),
          q(0),
          ],
       q(MKD) => [
-         q(0097),
+         q(0096),
          q(0),
          ],
       q(MMK) => [
-         q(0111),
+         q(0110),
          q(0),
          ],
       q(MNT) => [
-         q(0108),
+         q(0107),
          q(0),
          ],
       q(MOP) => [
-         q(0096),
+         q(0095),
          q(0),
          ],
       q(MRO) => [
-         q(0102),
+         q(0101),
          q(0),
          ],
       q(MUR) => [
-         q(0103),
+         q(0102),
          q(0),
          ],
       q(MVR) => [
-         q(0101),
+         q(0100),
          q(0),
          ],
       q(MWK) => [
-         q(0099),
+         q(0098),
          q(0),
          ],
       q(MXN) => [
-         q(0105),
+         q(0104),
          q(0),
          ],
       q(MXV) => [
-         q(0106),
+         q(0105),
          q(0),
          ],
       q(MYR) => [
-         q(0100),
+         q(0099),
          q(0),
          ],
       q(MZN) => [
-         q(0110),
+         q(0109),
          q(0),
          ],
       q(NAD) => [
-         q(0112),
+         q(0111),
          q(0),
          ],
       q(NGN) => [
-         q(0115),
+         q(0114),
          q(0),
          ],
       q(NIO) => [
-         q(0114),
+         q(0113),
          q(0),
          ],
       q(NOK) => [
@@ -1695,7 +1684,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(NPR) => [
-         q(0113),
+         q(0112),
          q(0),
          ],
       q(NZD) => [
@@ -1703,103 +1692,103 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(OMR) => [
-         q(0116),
+         q(0115),
          q(0),
          ],
       q(PAB) => [
-         q(0118),
+         q(0117),
          q(0),
          ],
       q(PEN) => [
-         q(0121),
+         q(0120),
          q(0),
          ],
       q(PGK) => [
-         q(0119),
+         q(0118),
          q(0),
          ],
       q(PHP) => [
-         q(0122),
+         q(0121),
          q(0),
          ],
       q(PKR) => [
-         q(0117),
+         q(0116),
          q(0),
          ],
       q(PLN) => [
-         q(0123),
+         q(0122),
          q(0),
          ],
       q(PYG) => [
-         q(0120),
+         q(0119),
          q(0),
          ],
       q(QAR) => [
-         q(0124),
+         q(0123),
          q(0),
          ],
       q(RON) => [
-         q(0125),
+         q(0124),
          q(0),
          ],
       q(RSD) => [
-         q(0132),
+         q(0131),
          q(0),
          ],
       q(RUB) => [
-         q(0126),
+         q(0125),
          q(0),
          ],
       q(RWF) => [
-         q(0127),
+         q(0126),
          q(0),
          ],
       q(SAR) => [
-         q(0131),
+         q(0130),
          q(0),
          ],
       q(SBD) => [
-         q(0137),
+         q(0136),
          q(0),
          ],
       q(SCR) => [
-         q(0133),
+         q(0132),
          q(0),
          ],
       q(SDG) => [
-         q(0141),
+         q(0140),
          q(0),
          ],
       q(SEK) => [
-         q(0144),
+         q(0143),
          q(0),
          ],
       q(SGD) => [
-         q(0135),
+         q(0134),
          q(0),
          ],
       q(SHP) => [
-         q(0128),
+         q(0127),
          q(0),
          ],
       q(SLL) => [
-         q(0134),
+         q(0133),
          q(0),
          ],
       q(SOS) => [
-         q(0138),
+         q(0137),
          q(0),
          ],
       q(SRD) => [
-         q(0142),
+         q(0141),
          q(0),
          ],
       q(SSP) => [
-         q(0139),
+         q(0138),
          q(0),
          ],
       q(STD) => [
-         q(0130),
+         q(0129),
          q(0),
          ],
       q(SVC) => [
@@ -1807,55 +1796,55 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(SYP) => [
-         q(0147),
+         q(0146),
          q(0),
          ],
       q(SZL) => [
-         q(0143),
+         q(0142),
          q(0),
          ],
       q(THB) => [
-         q(0151),
+         q(0150),
          q(0),
          ],
       q(TJS) => [
-         q(0149),
+         q(0148),
          q(0),
          ],
       q(TMT) => [
-         q(0156),
+         q(0155),
          q(0),
          ],
       q(TND) => [
-         q(0154),
+         q(0153),
          q(0),
          ],
       q(TOP) => [
-         q(0152),
+         q(0151),
          q(0),
          ],
       q(TRY) => [
-         q(0155),
+         q(0154),
          q(0),
          ],
       q(TTD) => [
-         q(0153),
+         q(0152),
          q(0),
          ],
       q(TWD) => [
-         q(0148),
+         q(0147),
          q(0),
          ],
       q(TZS) => [
-         q(0150),
+         q(0149),
          q(0),
          ],
       q(UAH) => [
-         q(0158),
+         q(0157),
          q(0),
          ],
       q(UGX) => [
-         q(0157),
+         q(0156),
          q(0),
          ],
       q(USD) => [
@@ -1863,35 +1852,35 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(USN) => [
-         q(0160),
+         q(0159),
          q(0),
          ],
       q(UYI) => [
-         q(0161),
+         q(0160),
          q(0),
          ],
       q(UYU) => [
-         q(0162),
+         q(0161),
          q(0),
          ],
       q(UZS) => [
-         q(0163),
+         q(0162),
          q(0),
          ],
       q(VEF) => [
-         q(0165),
+         q(0164),
          q(0),
          ],
       q(VND) => [
-         q(0166),
+         q(0165),
          q(0),
          ],
       q(VUV) => [
-         q(0164),
+         q(0163),
          q(0),
          ],
       q(WST) => [
-         q(0129),
+         q(0128),
          q(0),
          ],
       q(XAF) => [
@@ -1899,27 +1888,27 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(XAG) => [
-         q(0177),
+         q(0176),
          q(0),
          ],
       q(XAU) => [
-         q(0174),
+         q(0173),
          q(0),
          ],
       q(XBA) => [
-         q(0170),
+         q(0169),
          q(0),
          ],
       q(XBB) => [
-         q(0171),
+         q(0170),
          q(0),
          ],
       q(XBC) => [
-         q(0172),
+         q(0171),
          q(0),
          ],
       q(XBD) => [
-         q(0173),
+         q(0172),
          q(0),
          ],
       q(XCD) => [
@@ -1935,7 +1924,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(XPD) => [
-         q(0175),
+         q(0174),
          q(0),
          ],
       q(XPF) => [
@@ -1943,19 +1932,19 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(XPT) => [
-         q(0176),
+         q(0175),
          q(0),
          ],
       q(XSU) => [
-         q(0136),
+         q(0135),
          q(0),
          ],
       q(XUA) => [
-         q(0104),
+         q(0103),
          q(0),
          ],
       q(YER) => [
-         q(0167),
+         q(0166),
          q(0),
          ],
       q(ZAR) => [
@@ -1963,11 +1952,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(ZMW) => [
-         q(0168),
+         q(0167),
          q(0),
          ],
       q(ZWL) => [
-         q(0169),
+         q(0168),
          q(0),
          ],
       },
@@ -2029,7 +2018,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(090) => [
-         q(0137),
+         q(0136),
          q(0),
          ],
       q(096) => [
@@ -2037,7 +2026,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(104) => [
-         q(0111),
+         q(0110),
          q(0),
          ],
       q(108) => [
@@ -2061,7 +2050,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(144) => [
-         q(0140),
+         q(0139),
          q(0),
          ],
       q(152) => [
@@ -2244,60 +2233,56 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0093),
          q(0),
          ],
-      q(440) => [
-         q(0095),
-         q(0),
-         ],
       q(446) => [
-         q(0096),
+         q(0095),
          q(0),
          ],
       q(454) => [
-         q(0099),
+         q(0098),
          q(0),
          ],
       q(458) => [
-         q(0100),
+         q(0099),
          q(0),
          ],
       q(462) => [
-         q(0101),
+         q(0100),
          q(0),
          ],
       q(478) => [
-         q(0102),
+         q(0101),
          q(0),
          ],
       q(480) => [
-         q(0103),
+         q(0102),
          q(0),
          ],
       q(484) => [
-         q(0105),
+         q(0104),
          q(0),
          ],
       q(496) => [
-         q(0108),
+         q(0107),
          q(0),
          ],
       q(498) => [
-         q(0107),
+         q(0106),
          q(0),
          ],
       q(504) => [
-         q(0109),
+         q(0108),
          q(0),
          ],
       q(512) => [
-         q(0116),
+         q(0115),
          q(0),
          ],
       q(516) => [
-         q(0112),
+         q(0111),
          q(0),
          ],
       q(524) => [
-         q(0113),
+         q(0112),
          q(0),
          ],
       q(532) => [
@@ -2309,7 +2294,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(548) => [
-         q(0164),
+         q(0163),
          q(0),
          ],
       q(554) => [
@@ -2317,11 +2302,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(558) => [
-         q(0114),
+         q(0113),
          q(0),
          ],
       q(566) => [
-         q(0115),
+         q(0114),
          q(0),
          ],
       q(578) => [
@@ -2329,71 +2314,71 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(586) => [
-         q(0117),
+         q(0116),
          q(0),
          ],
       q(590) => [
-         q(0118),
+         q(0117),
          q(0),
          ],
       q(598) => [
-         q(0119),
+         q(0118),
          q(0),
          ],
       q(600) => [
-         q(0120),
+         q(0119),
          q(0),
          ],
       q(604) => [
-         q(0121),
+         q(0120),
          q(0),
          ],
       q(608) => [
-         q(0122),
+         q(0121),
          q(0),
          ],
       q(634) => [
-         q(0124),
+         q(0123),
          q(0),
          ],
       q(643) => [
-         q(0126),
+         q(0125),
          q(0),
          ],
       q(646) => [
-         q(0127),
+         q(0126),
          q(0),
          ],
       q(654) => [
-         q(0128),
+         q(0127),
          q(0),
          ],
       q(678) => [
-         q(0130),
+         q(0129),
          q(0),
          ],
       q(682) => [
-         q(0131),
+         q(0130),
          q(0),
          ],
       q(690) => [
-         q(0133),
+         q(0132),
          q(0),
          ],
       q(694) => [
-         q(0134),
+         q(0133),
          q(0),
          ],
       q(702) => [
-         q(0135),
+         q(0134),
          q(0),
          ],
       q(704) => [
-         q(0166),
+         q(0165),
          q(0),
          ],
       q(706) => [
-         q(0138),
+         q(0137),
          q(0),
          ],
       q(710) => [
@@ -2401,15 +2386,15 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(728) => [
-         q(0139),
+         q(0138),
          q(0),
          ],
       q(748) => [
-         q(0143),
+         q(0142),
          q(0),
          ],
       q(752) => [
-         q(0144),
+         q(0143),
          q(0),
          ],
       q(756) => [
@@ -2417,35 +2402,35 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(760) => [
-         q(0147),
+         q(0146),
          q(0),
          ],
       q(764) => [
-         q(0151),
+         q(0150),
          q(0),
          ],
       q(776) => [
-         q(0152),
+         q(0151),
          q(0),
          ],
       q(780) => [
-         q(0153),
+         q(0152),
          q(0),
          ],
       q(784) => [
-         q(0159),
+         q(0158),
          q(0),
          ],
       q(788) => [
-         q(0154),
+         q(0153),
          q(0),
          ],
       q(800) => [
-         q(0157),
+         q(0156),
          q(0),
          ],
       q(807) => [
-         q(0097),
+         q(0096),
          q(0),
          ],
       q(818) => [
@@ -2457,7 +2442,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(834) => [
-         q(0150),
+         q(0149),
          q(0),
          ],
       q(840) => [
@@ -2465,23 +2450,23 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(858) => [
-         q(0162),
+         q(0161),
          q(0),
          ],
       q(860) => [
-         q(0163),
+         q(0162),
          q(0),
          ],
       q(882) => [
-         q(0129),
+         q(0128),
          q(0),
          ],
       q(886) => [
-         q(0167),
+         q(0166),
          q(0),
          ],
       q(901) => [
-         q(0148),
+         q(0147),
          q(0),
          ],
       q(931) => [
@@ -2489,11 +2474,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(932) => [
-         q(0169),
+         q(0168),
          q(0),
          ],
       q(934) => [
-         q(0156),
+         q(0155),
          q(0),
          ],
       q(936) => [
@@ -2501,23 +2486,23 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(937) => [
-         q(0165),
+         q(0164),
          q(0),
          ],
       q(938) => [
-         q(0141),
+         q(0140),
          q(0),
          ],
       q(940) => [
-         q(0161),
+         q(0160),
          q(0),
          ],
       q(941) => [
-         q(0132),
+         q(0131),
          q(0),
          ],
       q(943) => [
-         q(0110),
+         q(0109),
          q(0),
          ],
       q(944) => [
@@ -2525,19 +2510,19 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(946) => [
-         q(0125),
+         q(0124),
          q(0),
          ],
       q(947) => [
-         q(0145),
+         q(0144),
          q(0),
          ],
       q(948) => [
-         q(0146),
+         q(0145),
          q(0),
          ],
       q(949) => [
-         q(0155),
+         q(0154),
          q(0),
          ],
       q(950) => [
@@ -2557,23 +2542,23 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(955) => [
-         q(0170),
+         q(0169),
          q(0),
          ],
       q(956) => [
-         q(0171),
+         q(0170),
          q(0),
          ],
       q(957) => [
-         q(0172),
+         q(0171),
          q(0),
          ],
       q(958) => [
-         q(0173),
+         q(0172),
          q(0),
          ],
       q(959) => [
-         q(0174),
+         q(0173),
          q(0),
          ],
       q(960) => [
@@ -2581,31 +2566,31 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(961) => [
-         q(0177),
+         q(0176),
          q(0),
          ],
       q(962) => [
-         q(0176),
+         q(0175),
          q(0),
          ],
       q(964) => [
-         q(0175),
+         q(0174),
          q(0),
          ],
       q(965) => [
-         q(0104),
+         q(0103),
          q(0),
          ],
       q(967) => [
-         q(0168),
+         q(0167),
          q(0),
          ],
       q(968) => [
-         q(0142),
+         q(0141),
          q(0),
          ],
       q(969) => [
-         q(0098),
+         q(0097),
          q(0),
          ],
       q(970) => [
@@ -2617,7 +2602,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(972) => [
-         q(0149),
+         q(0148),
          q(0),
          ],
       q(973) => [
@@ -2645,11 +2630,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(979) => [
-         q(0106),
+         q(0105),
          q(0),
          ],
       q(980) => [
-         q(0158),
+         q(0157),
          q(0),
          ],
       q(981) => [
@@ -2661,7 +2646,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(985) => [
-         q(0123),
+         q(0122),
          q(0),
          ],
       q(986) => [
@@ -2673,11 +2658,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(994) => [
-         q(0136),
+         q(0135),
          q(0),
          ],
       q(997) => [
-         q(0160),
+         q(0159),
          q(0),
          ],
       },
@@ -2779,89 +2764,88 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
       q(0092) => q(LRD),
       q(0093) => q(LYD),
       q(0094) => q(CHF),
-      q(0095) => q(LTL),
-      q(0096) => q(MOP),
-      q(0097) => q(MKD),
-      q(0098) => q(MGA),
-      q(0099) => q(MWK),
-      q(0100) => q(MYR),
-      q(0101) => q(MVR),
-      q(0102) => q(MRO),
-      q(0103) => q(MUR),
-      q(0104) => q(XUA),
-      q(0105) => q(MXN),
-      q(0106) => q(MXV),
-      q(0107) => q(MDL),
-      q(0108) => q(MNT),
-      q(0109) => q(MAD),
-      q(0110) => q(MZN),
-      q(0111) => q(MMK),
-      q(0112) => q(NAD),
-      q(0113) => q(NPR),
-      q(0114) => q(NIO),
-      q(0115) => q(NGN),
-      q(0116) => q(OMR),
-      q(0117) => q(PKR),
-      q(0118) => q(PAB),
-      q(0119) => q(PGK),
-      q(0120) => q(PYG),
-      q(0121) => q(PEN),
-      q(0122) => q(PHP),
-      q(0123) => q(PLN),
-      q(0124) => q(QAR),
-      q(0125) => q(RON),
-      q(0126) => q(RUB),
-      q(0127) => q(RWF),
-      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),
-      q(0164) => q(VUV),
-      q(0165) => q(VEF),
-      q(0166) => q(VND),
-      q(0167) => q(YER),
-      q(0168) => q(ZMW),
-      q(0169) => q(ZWL),
-      q(0170) => q(XBA),
-      q(0171) => q(XBB),
-      q(0172) => q(XBC),
-      q(0173) => q(XBD),
-      q(0174) => q(XAU),
-      q(0175) => q(XPD),
-      q(0176) => q(XPT),
-      q(0177) => q(XAG),
+      q(0095) => q(MOP),
+      q(0096) => q(MKD),
+      q(0097) => q(MGA),
+      q(0098) => q(MWK),
+      q(0099) => q(MYR),
+      q(0100) => q(MVR),
+      q(0101) => q(MRO),
+      q(0102) => q(MUR),
+      q(0103) => q(XUA),
+      q(0104) => q(MXN),
+      q(0105) => q(MXV),
+      q(0106) => q(MDL),
+      q(0107) => q(MNT),
+      q(0108) => q(MAD),
+      q(0109) => q(MZN),
+      q(0110) => q(MMK),
+      q(0111) => q(NAD),
+      q(0112) => q(NPR),
+      q(0113) => q(NIO),
+      q(0114) => q(NGN),
+      q(0115) => q(OMR),
+      q(0116) => q(PKR),
+      q(0117) => q(PAB),
+      q(0118) => q(PGK),
+      q(0119) => q(PYG),
+      q(0120) => q(PEN),
+      q(0121) => q(PHP),
+      q(0122) => q(PLN),
+      q(0123) => q(QAR),
+      q(0124) => q(RON),
+      q(0125) => q(RUB),
+      q(0126) => q(RWF),
+      q(0127) => q(SHP),
+      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(UYI),
+      q(0161) => q(UYU),
+      q(0162) => q(UZS),
+      q(0163) => q(VUV),
+      q(0164) => q(VEF),
+      q(0165) => q(VND),
+      q(0166) => q(YER),
+      q(0167) => q(ZMW),
+      q(0168) => q(ZWL),
+      q(0169) => q(XBA),
+      q(0170) => q(XBB),
+      q(0171) => q(XBC),
+      q(0172) => q(XBD),
+      q(0173) => q(XAU),
+      q(0174) => q(XPD),
+      q(0175) => q(XPT),
+      q(0176) => q(XAG),
       },
    q(num) => {
       q(0001) => q(971),
@@ -2958,89 +2942,88 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
       q(0092) => q(430),
       q(0093) => q(434),
       q(0094) => q(756),
-      q(0095) => q(440),
-      q(0096) => q(446),
-      q(0097) => q(807),
-      q(0098) => q(969),
-      q(0099) => q(454),
-      q(0100) => q(458),
-      q(0101) => q(462),
-      q(0102) => q(478),
-      q(0103) => q(480),
-      q(0104) => q(965),
-      q(0105) => q(484),
-      q(0106) => q(979),
-      q(0107) => q(498),
-      q(0108) => q(496),
-      q(0109) => q(504),
-      q(0110) => q(943),
-      q(0111) => q(104),
-      q(0112) => q(516),
-      q(0113) => q(524),
-      q(0114) => q(558),
-      q(0115) => q(566),
-      q(0116) => q(512),
-      q(0117) => q(586),
-      q(0118) => q(590),
-      q(0119) => q(598),
-      q(0120) => q(600),
-      q(0121) => q(604),
-      q(0122) => q(608),
-      q(0123) => q(985),
-      q(0124) => q(634),
-      q(0125) => q(946),
-      q(0126) => q(643),
-      q(0127) => q(646),
-      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),
-      q(0164) => q(548),
-      q(0165) => q(937),
-      q(0166) => q(704),
-      q(0167) => q(886),
-      q(0168) => q(967),
-      q(0169) => q(932),
-      q(0170) => q(955),
-      q(0171) => q(956),
-      q(0172) => q(957),
-      q(0173) => q(958),
-      q(0174) => q(959),
-      q(0175) => q(964),
-      q(0176) => q(962),
-      q(0177) => q(961),
+      q(0095) => q(446),
+      q(0096) => q(807),
+      q(0097) => q(969),
+      q(0098) => q(454),
+      q(0099) => q(458),
+      q(0100) => q(462),
+      q(0101) => q(478),
+      q(0102) => q(480),
+      q(0103) => q(965),
+      q(0104) => q(484),
+      q(0105) => q(979),
+      q(0106) => q(498),
+      q(0107) => q(496),
+      q(0108) => q(504),
+      q(0109) => q(943),
+      q(0110) => q(104),
+      q(0111) => q(516),
+      q(0112) => q(524),
+      q(0113) => q(558),
+      q(0114) => q(566),
+      q(0115) => q(512),
+      q(0116) => q(586),
+      q(0117) => q(590),
+      q(0118) => q(598),
+      q(0119) => q(600),
+      q(0120) => q(604),
+      q(0121) => q(608),
+      q(0122) => q(985),
+      q(0123) => q(634),
+      q(0124) => q(946),
+      q(0125) => q(643),
+      q(0126) => q(646),
+      q(0127) => q(654),
+      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(940),
+      q(0161) => q(858),
+      q(0162) => q(860),
+      q(0163) => q(548),
+      q(0164) => q(937),
+      q(0165) => q(704),
+      q(0166) => q(886),
+      q(0167) => q(967),
+      q(0168) => q(932),
+      q(0169) => q(955),
+      q(0170) => q(956),
+      q(0171) => q(957),
+      q(0172) => q(958),
+      q(0173) => q(959),
+      q(0174) => q(964),
+      q(0175) => q(962),
+      q(0176) => q(961),
       },
 };
 
index 8a91cd5..eef9e73 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: Mon Nov 24 13:38:10 GMT 2014
+#    Generated on: Fri Feb 20 15:27:22 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
    q(ADP) => q(Andorran Peseta),
@@ -36,6 +36,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
    q(GWP) => q(Guinea-Bissau Peso),
    q(IEP) => q(Irish Pound),
    q(ITL) => q(Italian Lira),
+   q(LTL) => q(Lithuanian Litas),
    q(LUF) => q(Luxembourg Franc),
    q(LVL) => q(Latvian Lats),
    q(MGF) => q(Malagasy Franc),
@@ -69,6 +70,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
 
 $Locale::Codes::Retired{'currency'}{'num'}{'code'} = {
    q(428) => q(Latvian Lats),
+   q(440) => q(Lithuanian Litas),
    q(654) => q(Saint Helena Pound),
    q(998) => q(US Dollar (Same day)),
 };
@@ -111,6 +113,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
    q(latvian lats) => [ q(LVL), q(Latvian Lats) ],
    q(leu) => [ q(RON), q(Leu) ],
    q(lev) => [ q(BGL), q(Lev) ],
+   q(lithuanian litas) => [ q(LTL), q(Lithuanian Litas) ],
    q(luxembourg franc) => [ q(LUF), q(Luxembourg Franc) ],
    q(malagasy franc) => [ q(MGF), q(Malagasy Franc) ],
    q(maltese lira) => [ q(MTL), q(Maltese Lira) ],
@@ -153,6 +156,7 @@ $Locale::Codes::Retired{'currency'}{'num'}{'name'} = {
    q(cedi) => [ q(936), q(Cedi) ],
    q(latvian lats) => [ q(428), q(Latvian Lats) ],
    q(leu) => [ q(946), q(Leu) ],
+   q(lithuanian litas) => [ q(440), q(Lithuanian Litas) ],
    q(metical) => [ q(943), q(Metical) ],
    q(new manat) => [ q(934), q(New Manat) ],
    q(saint helena pound) => [ q(654), q(Saint Helena Pound) ],
index e87daff..561e5d1 100644 (file)
@@ -1,5 +1,5 @@
 package Locale::Codes::LangExt;
-# Copyright (c) 2011-2014 Sullivan Beck
+# Copyright (c) 2011-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -20,7 +20,7 @@ use Locale::Codes::LangExt_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.33';
+$VERSION='3.34';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2langext
                 langext2code
index 34aed49..4cc1b44 100644 (file)
@@ -108,7 +108,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
 =head1 COPYRIGHT
 
-   Copyright (c) 2011-2014 Sullivan Beck
+   Copyright (c) 2011-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 2a487bb..c7e5e1e 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: Mon Nov 24 13:36:44 GMT 2014
+#    Generated on: Thu Feb 19 20:50:35 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Data{'langext'}{'id'} = '0229';
 
@@ -314,381 +314,381 @@ $Locale::Codes::Data{'langext'}{'id2names'} = {
       q(Icelandic Sign Language),
       ],
    q(0098) => [
-      q(International Sign),
+      q(Inuit Sign Language),
       ],
    q(0099) => [
-      q(Indonesian Sign Language),
+      q(International Sign),
       ],
    q(0100) => [
-      q(Indian Sign Language),
+      q(Indonesian Sign Language),
       ],
    q(0101) => [
-      q(Italian Sign Language),
+      q(Indian Sign Language),
       ],
    q(0102) => [
-      q(Irish Sign Language),
+      q(Italian Sign Language),
       ],
    q(0103) => [
-      q(Israeli Sign Language),
+      q(Irish Sign Language),
       ],
    q(0104) => [
-      q(Jakun),
+      q(Israeli Sign Language),
       ],
    q(0105) => [
-      q(Jambi Malay),
+      q(Jakun),
       ],
    q(0106) => [
-      q(Jamaican Country Sign Language),
+      q(Jambi Malay),
       ],
    q(0107) => [
-      q(Jhankot Sign Language),
+      q(Jamaican Country Sign Language),
       ],
    q(0108) => [
-      q(Jamaican Sign Language),
+      q(Jhankot Sign Language),
       ],
    q(0109) => [
-      q(Jordanian Sign Language),
+      q(Jamaican Sign Language),
       ],
    q(0110) => [
-      q(Japanese Sign Language),
+      q(Jordanian Sign Language),
       ],
    q(0111) => [
-      q(Jumla Sign Language),
+      q(Japanese Sign Language),
       ],
    q(0112) => [
-      q(Selangor Sign Language),
+      q(Jumla Sign Language),
       ],
    q(0113) => [
-      q(Konkani (individual language)),
+      q(Selangor Sign Language),
       ],
    q(0114) => [
-      q(Kubu),
+      q(Konkani (individual language)),
       ],
    q(0115) => [
-      q(Korean Sign Language),
+      q(Kubu),
       ],
    q(0116) => [
-      q(Kerinci),
+      q(Korean Sign Language),
       ],
    q(0117) => [
-      q(Brunei),
+      q(Kerinci),
       ],
    q(0118) => [
-      q(Libyan Sign Language),
+      q(Brunei),
       ],
    q(0119) => [
-      q(Loncong),
+      q(Libyan Sign Language),
       ],
    q(0120) => [
-      q(Lubu),
+      q(Loncong),
       ],
    q(0121) => [
-      q(Col),
+      q(Lubu),
       ],
    q(0122) => [
-      q(Lithuanian Sign Language),
+      q(Col),
       ],
    q(0123) => [
-      q(Lyons Sign Language),
+      q(Lithuanian Sign Language),
       ],
    q(0124) => [
-      q(Latvian Sign Language),
+      q(Lyons Sign Language),
       ],
    q(0125) => [
-      q(Laos Sign Language),
+      q(Latvian Sign Language),
       ],
    q(0126) => [
+      q(Laos Sign Language),
+      ],
+   q(0127) => [
       q(Panamanian Sign Language),
       q(Lengua de Senas Panamenas),
       ],
-   q(0127) => [
+   q(0128) => [
       q(Trinidad and Tobago Sign Language),
       ],
-   q(0128) => [
+   q(0129) => [
       q(Mauritian Sign Language),
       ],
-   q(0129) => [
+   q(0130) => [
       q(Latgalian),
       ],
-   q(0130) => [
+   q(0131) => [
       q(Standard Latvian),
       ],
-   q(0131) => [
+   q(0132) => [
       q(Literary Chinese),
       ],
-   q(0132) => [
+   q(0133) => [
       q(North Moluccan Malay),
       ],
-   q(0133) => [
+   q(0134) => [
       q(Maltese Sign Language),
       ],
-   q(0134) => [
+   q(0135) => [
       q(Kedah Malay),
       ],
-   q(0135) => [
+   q(0136) => [
       q(Pattani Malay),
       ],
-   q(0136) => [
+   q(0137) => [
       q(Bangka),
       ],
-   q(0137) => [
+   q(0138) => [
       q(Mexican Sign Language),
       ],
-   q(0138) => [
+   q(0139) => [
       q(Minangkabau),
       ],
-   q(0139) => [
+   q(0140) => [
       q(Min Bei Chinese),
       ],
-   q(0140) => [
+   q(0141) => [
       q(Kota Bangun Kutai Malay),
       ],
-   q(0141) => [
+   q(0142) => [
       q(Martha's Vineyard Sign Language),
       ],
-   q(0142) => [
+   q(0143) => [
       q(Yucatec Maya Sign Language),
       ],
-   q(0143) => [
+   q(0144) => [
       q(Sabah Malay),
       ],
-   q(0144) => [
+   q(0145) => [
       q(Mongolian Sign Language),
       ],
-   q(0145) => [
+   q(0146) => [
       q(Musi),
       ],
-   q(0146) => [
+   q(0147) => [
       q(Madagascar Sign Language),
       ],
-   q(0147) => [
+   q(0148) => [
       q(Monastic Sign Language),
       ],
-   q(0148) => [
+   q(0149) => [
       q(Mozambican Sign Language),
       ],
-   q(0149) => [
+   q(0150) => [
       q(Min Nan Chinese),
       ],
-   q(0150) => [
+   q(0151) => [
       q(Namibian Sign Language),
       ],
-   q(0151) => [
+   q(0152) => [
       q(Nicaraguan Sign Language),
       ],
-   q(0152) => [
+   q(0153) => [
       q(Nigerian Sign Language),
       ],
-   q(0153) => [
+   q(0154) => [
       q(Norwegian Sign Language),
       ],
-   q(0154) => [
+   q(0155) => [
       q(Nepalese Sign Language),
       ],
-   q(0155) => [
+   q(0156) => [
       q(Maritime Sign Language),
       ],
-   q(0156) => [
+   q(0157) => [
       q(New Zealand Sign Language),
       ],
-   q(0157) => [
+   q(0158) => [
       q(Old Kentish Sign Language),
       ],
-   q(0158) => [
+   q(0159) => [
       q(Orang Kanaq),
       ],
-   q(0159) => [
+   q(0160) => [
       q(Orang Seletar),
       ],
-   q(0160) => [
+   q(0161) => [
       q(Pekal),
       ],
-   q(0161) => [
+   q(0162) => [
       q(Sudanese Creole Arabic),
       ],
-   q(0162) => [
+   q(0163) => [
       q(Pakistan Sign Language),
       ],
-   q(0163) => [
+   q(0164) => [
       q(Peruvian Sign Language),
       ],
-   q(0164) => [
+   q(0165) => [
       q(Providencia Sign Language),
       ],
-   q(0165) => [
+   q(0166) => [
       q(Persian Sign Language),
       ],
-   q(0166) => [
+   q(0167) => [
       q(Plains Indian Sign Language),
       ],
-   q(0167) => [
+   q(0168) => [
       q(Central Malay),
       ],
-   q(0168) => [
+   q(0169) => [
       q(Penang Sign Language),
       ],
-   q(0169) => [
+   q(0170) => [
       q(Puerto Rican Sign Language),
       ],
-   q(0170) => [
+   q(0171) => [
       q(Polish Sign Language),
       ],
-   q(0171) => [
+   q(0172) => [
       q(Philippine Sign Language),
       ],
-   q(0172) => [
+   q(0173) => [
       q(Portuguese Sign Language),
       ],
-   q(0173) => [
+   q(0174) => [
       q(Paraguayan Sign Language),
       q(Lengua de Senas del Paraguay),
       ],
-   q(0174) => [
+   q(0175) => [
       q(Romanian Sign Language),
       ],
-   q(0175) => [
+   q(0176) => [
       q(Rennellese Sign Language),
       ],
-   q(0176) => [
+   q(0177) => [
       q(Russian Sign Language),
       ],
-   q(0177) => [
+   q(0178) => [
       q(Saudi Arabian Sign Language),
       ],
-   q(0178) => [
+   q(0179) => [
       q(Langue des signes de Belgique Francophone),
       q(French Belgian Sign Language),
       ],
-   q(0179) => [
+   q(0180) => [
       q(South African Sign Language),
       ],
-   q(0180) => [
+   q(0181) => [
       q(Swiss-German Sign Language),
       ],
-   q(0181) => [
+   q(0182) => [
       q(Sierra Leone Sign Language),
       ],
-   q(0182) => [
+   q(0183) => [
       q(Chadian Arabic),
       ],
-   q(0183) => [
+   q(0184) => [
       q(Swiss-Italian Sign Language),
       ],
-   q(0184) => [
+   q(0185) => [
       q(Singapore Sign Language),
       ],
-   q(0185) => [
+   q(0186) => [
       q(Albanian Sign Language),
       ],
-   q(0186) => [
+   q(0187) => [
       q(Sri Lankan Sign Language),
       ],
-   q(0187) => [
+   q(0188) => [
       q(Shihhi Arabic),
       ],
-   q(0188) => [
+   q(0189) => [
       q(Spanish Sign Language),
       ],
-   q(0189) => [
+   q(0190) => [
       q(Swiss-French Sign Language),
       ],
-   q(0190) => [
+   q(0191) => [
       q(Slovakian Sign Language),
       ],
-   q(0191) => [
+   q(0192) => [
       q(Congo Swahili),
       ],
-   q(0192) => [
+   q(0193) => [
       q(Swahili (individual language)),
       q(Kiswahili),
       ],
-   q(0193) => [
+   q(0194) => [
       q(Swedish Sign Language),
       ],
-   q(0194) => [
+   q(0195) => [
       q(Al-Sayyid Bedouin Sign Language),
       ],
-   q(0195) => [
+   q(0196) => [
       q(Temuan),
       ],
-   q(0196) => [
+   q(0197) => [
       q(Tunisian Sign Language),
       ],
-   q(0197) => [
+   q(0198) => [
       q(Turkish Sign Language),
       q(Turk Isaret Dili),
       ],
-   q(0198) => [
+   q(0199) => [
       q(Thai Sign Language),
       ],
-   q(0199) => [
+   q(0200) => [
       q(Taiwan Sign Language),
       ],
-   q(0200) => [
+   q(0201) => [
       q(Tebul Sign Language),
       ],
-   q(0201) => [
+   q(0202) => [
       q(Tanzanian Sign Language),
       ],
-   q(0202) => [
+   q(0203) => [
       q(Ugandan Sign Language),
       ],
-   q(0203) => [
+   q(0204) => [
       q(Uruguayan Sign Language),
       ],
-   q(0204) => [
+   q(0205) => [
       q(Ukrainian Sign Language),
       ],
-   q(0205) => [
+   q(0206) => [
       q(Urubu-Kaapor Sign Language),
       q(Kaapor Sign Language),
       ],
-   q(0206) => [
+   q(0207) => [
       q(Urak Lawoi'),
       ],
-   q(0207) => [
+   q(0208) => [
       q(Northern Uzbek),
       ],
-   q(0208) => [
+   q(0209) => [
       q(Southern Uzbek),
       ],
-   q(0209) => [
+   q(0210) => [
       q(Vlaamse Gebarentaal),
       q(Flemish Sign Language),
       ],
-   q(0210) => [
+   q(0211) => [
       q(Kaur),
       ],
-   q(0211) => [
+   q(0212) => [
       q(Tenggarong Kutai Malay),
       ],
-   q(0212) => [
+   q(0213) => [
       q(Moldova Sign Language),
       ],
-   q(0213) => [
+   q(0214) => [
       q(Venezuelan Sign Language),
       ],
-   q(0214) => [
+   q(0215) => [
       q(Valencian Sign Language),
       q(Llengua de signes valenciana),
       ],
-   q(0215) => [
-      q(Wu Chinese),
-      ],
    q(0216) => [
-      q(Kenyan Sign Language),
+      q(Wu Chinese),
       ],
    q(0217) => [
-      q(Malaysian Sign Language),
+      q(Kenyan Sign Language),
       ],
    q(0218) => [
-      q(Manado Malay),
+      q(Malaysian Sign Language),
       ],
    q(0219) => [
-      q(Moroccan Sign Language),
+      q(Manado Malay),
       ],
    q(0220) => [
-      q(Yiddish Sign Language),
+      q(Moroccan Sign Language),
       ],
    q(0221) => [
       q(Yolnu Sign Language),
@@ -727,11 +727,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(al-sayyid bedouin sign language) => [
-      q(0194),
+      q(0195),
       q(0),
       ],
    q(albanian sign language) => [
-      q(0185),
+      q(0186),
       q(0),
       ],
    q(algerian arabic) => [
@@ -791,7 +791,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(bangka) => [
-      q(0136),
+      q(0137),
       q(0),
       ],
    q(banjar) => [
@@ -819,7 +819,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(brunei) => [
-      q(0117),
+      q(0118),
       q(0),
       ],
    q(bukit malay) => [
@@ -839,11 +839,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(central malay) => [
-      q(0167),
+      q(0168),
       q(0),
       ],
    q(chadian arabic) => [
-      q(0182),
+      q(0183),
       q(0),
       ],
    q(chadian sign language) => [
@@ -867,7 +867,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(col) => [
-      q(0121),
+      q(0122),
       q(0),
       ],
    q(colombian sign language) => [
@@ -875,7 +875,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(congo swahili) => [
-      q(0191),
+      q(0192),
       q(0),
       ],
    q(costa rican sign language) => [
@@ -955,11 +955,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(flemish sign language) => [
-      q(0209),
+      q(0210),
       q(1),
       ],
    q(french belgian sign language) => [
-      q(0178),
+      q(0179),
       q(1),
       ],
    q(french sign language) => [
@@ -1067,51 +1067,55 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(indian sign language) => [
-      q(0100),
+      q(0101),
       q(0),
       ],
    q(indonesian sign language) => [
-      q(0099),
+      q(0100),
       q(0),
       ],
    q(international sign) => [
+      q(0099),
+      q(0),
+      ],
+   q(inuit sign language) => [
       q(0098),
       q(0),
       ],
    q(irish sign language) => [
-      q(0102),
+      q(0103),
       q(0),
       ],
    q(israeli sign language) => [
-      q(0103),
+      q(0104),
       q(0),
       ],
    q(italian sign language) => [
-      q(0101),
+      q(0102),
       q(0),
       ],
    q(jakun) => [
-      q(0104),
+      q(0105),
       q(0),
       ],
    q(jamaican country sign language) => [
-      q(0106),
+      q(0107),
       q(0),
       ],
    q(jamaican sign language) => [
-      q(0108),
+      q(0109),
       q(0),
       ],
    q(jambi malay) => [
-      q(0105),
+      q(0106),
       q(0),
       ],
    q(japanese sign language) => [
-      q(0110),
+      q(0111),
       q(0),
       ],
    q(jhankot sign language) => [
-      q(0107),
+      q(0108),
       q(0),
       ],
    q(jinyu chinese) => [
@@ -1119,67 +1123,67 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(jordanian sign language) => [
-      q(0109),
+      q(0110),
       q(0),
       ],
    q(jumla sign language) => [
-      q(0111),
+      q(0112),
       q(0),
       ],
    q(kaapor sign language) => [
-      q(0205),
+      q(0206),
       q(1),
       ],
    q(kaur) => [
-      q(0210),
+      q(0211),
       q(0),
       ],
    q(kedah malay) => [
-      q(0134),
+      q(0135),
       q(0),
       ],
    q(kenyan sign language) => [
-      q(0216),
+      q(0217),
       q(0),
       ],
    q(kerinci) => [
-      q(0116),
+      q(0117),
       q(0),
       ],
    q(kiswahili) => [
-      q(0192),
+      q(0193),
       q(1),
       ],
    q(konkani (individual language)) => [
-      q(0113),
+      q(0114),
       q(0),
       ],
    q(korean sign language) => [
-      q(0115),
+      q(0116),
       q(0),
       ],
    q(kota bangun kutai malay) => [
-      q(0140),
+      q(0141),
       q(0),
       ],
    q(kubu) => [
-      q(0114),
+      q(0115),
       q(0),
       ],
    q(langue des signes de belgique francophone) => [
-      q(0178),
+      q(0179),
       q(0),
       ],
    q(laos sign language) => [
-      q(0125),
+      q(0126),
       q(0),
       ],
    q(latgalian) => [
-      q(0129),
+      q(0130),
       q(0),
       ],
    q(latvian sign language) => [
-      q(0124),
+      q(0125),
       q(0),
       ],
    q(lengua de senas catalana) => [
@@ -1187,11 +1191,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(1),
       ],
    q(lengua de senas del paraguay) => [
-      q(0173),
+      q(0174),
       q(1),
       ],
    q(lengua de senas panamenas) => [
-      q(0126),
+      q(0127),
       q(1),
       ],
    q(libyan arabic) => [
@@ -1199,15 +1203,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(libyan sign language) => [
-      q(0118),
+      q(0119),
       q(0),
       ],
    q(literary chinese) => [
-      q(0131),
+      q(0132),
       q(0),
       ],
    q(lithuanian sign language) => [
-      q(0122),
+      q(0123),
       q(0),
       ],
    q(llengua de signes catalana) => [
@@ -1215,23 +1219,23 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(2),
       ],
    q(llengua de signes valenciana) => [
-      q(0214),
+      q(0215),
       q(1),
       ],
    q(loncong) => [
-      q(0119),
+      q(0120),
       q(0),
       ],
    q(lubu) => [
-      q(0120),
+      q(0121),
       q(0),
       ],
    q(lyons sign language) => [
-      q(0123),
+      q(0124),
       q(0),
       ],
    q(madagascar sign language) => [
-      q(0146),
+      q(0147),
       q(0),
       ],
    q(malay (individual language)) => [
@@ -1239,15 +1243,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(malaysian sign language) => [
-      q(0217),
+      q(0218),
       q(0),
       ],
    q(maltese sign language) => [
-      q(0133),
+      q(0134),
       q(0),
       ],
    q(manado malay) => [
-      q(0218),
+      q(0219),
       q(0),
       ],
    q(mandarin chinese) => [
@@ -1255,15 +1259,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(maritime sign language) => [
-      q(0155),
+      q(0156),
       q(0),
       ],
    q(martha's vineyard sign language) => [
-      q(0141),
+      q(0142),
       q(0),
       ],
    q(mauritian sign language) => [
-      q(0128),
+      q(0129),
       q(0),
       ],
    q(mesopotamian arabic) => [
@@ -1271,11 +1275,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(mexican sign language) => [
-      q(0137),
+      q(0138),
       q(0),
       ],
    q(min bei chinese) => [
-      q(0139),
+      q(0140),
       q(0),
       ],
    q(min dong chinese) => [
@@ -1283,7 +1287,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(min nan chinese) => [
-      q(0149),
+      q(0150),
       q(0),
       ],
    q(min zhong chinese) => [
@@ -1291,19 +1295,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(minangkabau) => [
-      q(0138),
+      q(0139),
       q(0),
       ],
    q(moldova sign language) => [
-      q(0212),
+      q(0213),
       q(0),
       ],
    q(monastic sign language) => [
-      q(0147),
+      q(0148),
       q(0),
       ],
    q(mongolian sign language) => [
-      q(0144),
+      q(0145),
       q(0),
       ],
    q(moroccan arabic) => [
@@ -1311,15 +1315,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(moroccan sign language) => [
-      q(0219),
+      q(0220),
       q(0),
       ],
    q(mozambican sign language) => [
-      q(0148),
+      q(0149),
       q(0),
       ],
    q(musi) => [
-      q(0145),
+      q(0146),
       q(0),
       ],
    q(najdi arabic) => [
@@ -1327,7 +1331,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(namibian sign language) => [
-      q(0150),
+      q(0151),
       q(0),
       ],
    q(negeri sembilan malay) => [
@@ -1335,19 +1339,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(nepalese sign language) => [
-      q(0154),
+      q(0155),
       q(0),
       ],
    q(new zealand sign language) => [
-      q(0156),
+      q(0157),
       q(0),
       ],
    q(nicaraguan sign language) => [
-      q(0151),
+      q(0152),
       q(0),
       ],
    q(nigerian sign language) => [
-      q(0152),
+      q(0153),
       q(0),
       ],
    q(north levantine arabic) => [
@@ -1359,19 +1363,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(north moluccan malay) => [
-      q(0132),
+      q(0133),
       q(0),
       ],
    q(northern uzbek) => [
-      q(0207),
+      q(0208),
       q(0),
       ],
    q(norwegian sign language) => [
-      q(0153),
+      q(0154),
       q(0),
       ],
    q(old kentish sign language) => [
-      q(0157),
+      q(0158),
       q(0),
       ],
    q(omani arabic) => [
@@ -1379,63 +1383,63 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(orang kanaq) => [
-      q(0158),
+      q(0159),
       q(0),
       ],
    q(orang seletar) => [
-      q(0159),
+      q(0160),
       q(0),
       ],
    q(pakistan sign language) => [
-      q(0162),
+      q(0163),
       q(0),
       ],
    q(panamanian sign language) => [
-      q(0126),
+      q(0127),
       q(0),
       ],
    q(paraguayan sign language) => [
-      q(0173),
+      q(0174),
       q(0),
       ],
    q(pattani malay) => [
-      q(0135),
+      q(0136),
       q(0),
       ],
    q(pekal) => [
-      q(0160),
+      q(0161),
       q(0),
       ],
    q(penang sign language) => [
-      q(0168),
+      q(0169),
       q(0),
       ],
    q(persian sign language) => [
-      q(0165),
+      q(0166),
       q(0),
       ],
    q(peruvian sign language) => [
-      q(0163),
+      q(0164),
       q(0),
       ],
    q(philippine sign language) => [
-      q(0171),
+      q(0172),
       q(0),
       ],
    q(plains indian sign language) => [
-      q(0166),
+      q(0167),
       q(0),
       ],
    q(polish sign language) => [
-      q(0170),
+      q(0171),
       q(0),
       ],
    q(portuguese sign language) => [
-      q(0172),
+      q(0173),
       q(0),
       ],
    q(providencia sign language) => [
-      q(0164),
+      q(0165),
       q(0),
       ],
    q(pu-xian chinese) => [
@@ -1443,7 +1447,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(puerto rican sign language) => [
-      q(0169),
+      q(0170),
       q(0),
       ],
    q(quebec sign language) => [
@@ -1451,19 +1455,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(rennellese sign language) => [
-      q(0175),
+      q(0176),
       q(0),
       ],
    q(romanian sign language) => [
-      q(0174),
+      q(0175),
       q(0),
       ],
    q(russian sign language) => [
-      q(0176),
+      q(0177),
       q(0),
       ],
    q(sabah malay) => [
-      q(0143),
+      q(0144),
       q(0),
       ],
    q(saidi arabic) => [
@@ -1479,31 +1483,31 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(saudi arabian sign language) => [
-      q(0177),
+      q(0178),
       q(0),
       ],
    q(selangor sign language) => [
-      q(0112),
+      q(0113),
       q(0),
       ],
    q(shihhi arabic) => [
-      q(0187),
+      q(0188),
       q(0),
       ],
    q(sierra leone sign language) => [
-      q(0181),
+      q(0182),
       q(0),
       ],
    q(singapore sign language) => [
-      q(0184),
+      q(0185),
       q(0),
       ],
    q(slovakian sign language) => [
-      q(0190),
+      q(0191),
       q(0),
       ],
    q(south african sign language) => [
-      q(0179),
+      q(0180),
       q(0),
       ],
    q(south levantine arabic) => [
@@ -1511,15 +1515,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(southern uzbek) => [
-      q(0208),
+      q(0209),
       q(0),
       ],
    q(spanish sign language) => [
-      q(0188),
+      q(0189),
       q(0),
       ],
    q(sri lankan sign language) => [
-      q(0186),
+      q(0187),
       q(0),
       ],
    q(standard arabic) => [
@@ -1527,7 +1531,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(standard latvian) => [
-      q(0130),
+      q(0131),
       q(0),
       ],
    q(standard malay) => [
@@ -1539,7 +1543,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(sudanese creole arabic) => [
-      q(0161),
+      q(0162),
       q(0),
       ],
    q(suomenruotsalainen viittomakieli) => [
@@ -1547,23 +1551,23 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(2),
       ],
    q(swahili (individual language)) => [
-      q(0192),
+      q(0193),
       q(0),
       ],
    q(swedish sign language) => [
-      q(0193),
+      q(0194),
       q(0),
       ],
    q(swiss-french sign language) => [
-      q(0189),
+      q(0190),
       q(0),
       ],
    q(swiss-german sign language) => [
-      q(0180),
+      q(0181),
       q(0),
       ],
    q(swiss-italian sign language) => [
-      q(0183),
+      q(0184),
       q(0),
       ],
    q(ta'izzi-adeni arabic) => [
@@ -1571,7 +1575,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(taiwan sign language) => [
-      q(0199),
+      q(0200),
       q(0),
       ],
    q(tajiki arabic) => [
@@ -1579,27 +1583,27 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(tanzanian sign language) => [
-      q(0201),
+      q(0202),
       q(0),
       ],
    q(tebul sign language) => [
-      q(0200),
+      q(0201),
       q(0),
       ],
    q(temuan) => [
-      q(0195),
+      q(0196),
       q(0),
       ],
    q(tenggarong kutai malay) => [
-      q(0211),
+      q(0212),
       q(0),
       ],
    q(thai sign language) => [
-      q(0198),
+      q(0199),
       q(0),
       ],
    q(trinidad and tobago sign language) => [
-      q(0127),
+      q(0128),
       q(0),
       ],
    q(tunisian arabic) => [
@@ -1607,35 +1611,35 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(tunisian sign language) => [
-      q(0196),
+      q(0197),
       q(0),
       ],
    q(turk isaret dili) => [
-      q(0197),
+      q(0198),
       q(1),
       ],
    q(turkish sign language) => [
-      q(0197),
+      q(0198),
       q(0),
       ],
    q(ugandan sign language) => [
-      q(0202),
+      q(0203),
       q(0),
       ],
    q(ukrainian sign language) => [
-      q(0204),
+      q(0205),
       q(0),
       ],
    q(urak lawoi') => [
-      q(0206),
+      q(0207),
       q(0),
       ],
    q(urubu-kaapor sign language) => [
-      q(0205),
+      q(0206),
       q(0),
       ],
    q(uruguayan sign language) => [
-      q(0203),
+      q(0204),
       q(0),
       ],
    q(uzbeki arabic) => [
@@ -1643,35 +1647,31 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(valencian sign language) => [
-      q(0214),
+      q(0215),
       q(0),
       ],
    q(venezuelan sign language) => [
-      q(0213),
+      q(0214),
       q(0),
       ],
    q(vlaamse gebarentaal) => [
-      q(0209),
+      q(0210),
       q(0),
       ],
    q(wu chinese) => [
-      q(0215),
+      q(0216),
       q(0),
       ],
    q(xiang chinese) => [
       q(0096),
       q(0),
       ],
-   q(yiddish sign language) => [
-      q(0220),
-      q(0),
-      ],
    q(yolnu sign language) => [
       q(0221),
       q(0),
       ],
    q(yucatec maya sign language) => [
-      q(0142),
+      q(0143),
       q(0),
       ],
    q(yue chinese) => [
@@ -2082,495 +2082,495 @@ $Locale::Codes::Data{'langext'}{'code2id'} = {
          q(0097),
          q(0),
          ],
-      q(ils) => [
+      q(iks) => [
          q(0098),
          q(0),
          ],
-      q(inl) => [
+      q(ils) => [
          q(0099),
          q(0),
          ],
-      q(ins) => [
+      q(inl) => [
          q(0100),
          q(0),
          ],
-      q(ise) => [
+      q(ins) => [
          q(0101),
          q(0),
          ],
-      q(isg) => [
+      q(ise) => [
          q(0102),
          q(0),
          ],
-      q(isr) => [
+      q(isg) => [
          q(0103),
          q(0),
          ],
-      q(jak) => [
+      q(isr) => [
          q(0104),
          q(0),
          ],
-      q(jax) => [
+      q(jak) => [
          q(0105),
          q(0),
          ],
-      q(jcs) => [
+      q(jax) => [
          q(0106),
          q(0),
          ],
-      q(jhs) => [
+      q(jcs) => [
          q(0107),
          q(0),
          ],
-      q(jls) => [
+      q(jhs) => [
          q(0108),
          q(0),
          ],
-      q(jos) => [
+      q(jls) => [
          q(0109),
          q(0),
          ],
-      q(jsl) => [
+      q(jos) => [
          q(0110),
          q(0),
          ],
-      q(jus) => [
+      q(jsl) => [
          q(0111),
          q(0),
          ],
-      q(kgi) => [
+      q(jus) => [
          q(0112),
          q(0),
          ],
-      q(knn) => [
+      q(kgi) => [
          q(0113),
          q(0),
          ],
-      q(kvb) => [
+      q(knn) => [
          q(0114),
          q(0),
          ],
-      q(kvk) => [
+      q(kvb) => [
          q(0115),
          q(0),
          ],
-      q(kvr) => [
+      q(kvk) => [
          q(0116),
          q(0),
          ],
-      q(kxd) => [
+      q(kvr) => [
          q(0117),
          q(0),
          ],
-      q(lbs) => [
+      q(kxd) => [
          q(0118),
          q(0),
          ],
-      q(lce) => [
+      q(lbs) => [
          q(0119),
          q(0),
          ],
-      q(lcf) => [
+      q(lce) => [
          q(0120),
          q(0),
          ],
-      q(liw) => [
+      q(lcf) => [
          q(0121),
          q(0),
          ],
-      q(lls) => [
+      q(liw) => [
          q(0122),
          q(0),
          ],
-      q(lsg) => [
+      q(lls) => [
          q(0123),
          q(0),
          ],
-      q(lsl) => [
+      q(lsg) => [
          q(0124),
          q(0),
          ],
-      q(lso) => [
+      q(lsl) => [
          q(0125),
          q(0),
          ],
-      q(lsp) => [
+      q(lso) => [
          q(0126),
          q(0),
          ],
-      q(lst) => [
+      q(lsp) => [
          q(0127),
          q(0),
          ],
-      q(lsy) => [
+      q(lst) => [
          q(0128),
          q(0),
          ],
-      q(ltg) => [
+      q(lsy) => [
          q(0129),
          q(0),
          ],
-      q(lvs) => [
+      q(ltg) => [
          q(0130),
          q(0),
          ],
-      q(lzh) => [
+      q(lvs) => [
          q(0131),
          q(0),
          ],
-      q(max) => [
+      q(lzh) => [
          q(0132),
          q(0),
          ],
-      q(mdl) => [
+      q(max) => [
          q(0133),
          q(0),
          ],
-      q(meo) => [
+      q(mdl) => [
          q(0134),
          q(0),
          ],
-      q(mfa) => [
+      q(meo) => [
          q(0135),
          q(0),
          ],
-      q(mfb) => [
+      q(mfa) => [
          q(0136),
          q(0),
          ],
-      q(mfs) => [
+      q(mfb) => [
          q(0137),
          q(0),
          ],
-      q(min) => [
+      q(mfs) => [
          q(0138),
          q(0),
          ],
-      q(mnp) => [
+      q(min) => [
          q(0139),
          q(0),
          ],
-      q(mqg) => [
+      q(mnp) => [
          q(0140),
          q(0),
          ],
-      q(mre) => [
+      q(mqg) => [
          q(0141),
          q(0),
          ],
-      q(msd) => [
+      q(mre) => [
          q(0142),
          q(0),
          ],
-      q(msi) => [
+      q(msd) => [
          q(0143),
          q(0),
          ],
-      q(msr) => [
+      q(msi) => [
          q(0144),
          q(0),
          ],
-      q(mui) => [
+      q(msr) => [
          q(0145),
          q(0),
          ],
-      q(mzc) => [
+      q(mui) => [
          q(0146),
          q(0),
          ],
-      q(mzg) => [
+      q(mzc) => [
          q(0147),
          q(0),
          ],
-      q(mzy) => [
+      q(mzg) => [
          q(0148),
          q(0),
          ],
-      q(nan) => [
+      q(mzy) => [
          q(0149),
          q(0),
          ],
-      q(nbs) => [
+      q(nan) => [
          q(0150),
          q(0),
          ],
-      q(ncs) => [
+      q(nbs) => [
          q(0151),
          q(0),
          ],
-      q(nsi) => [
+      q(ncs) => [
          q(0152),
          q(0),
          ],
-      q(nsl) => [
+      q(nsi) => [
          q(0153),
          q(0),
          ],
-      q(nsp) => [
+      q(nsl) => [
          q(0154),
          q(0),
          ],
-      q(nsr) => [
+      q(nsp) => [
          q(0155),
          q(0),
          ],
-      q(nzs) => [
+      q(nsr) => [
          q(0156),
          q(0),
          ],
-      q(okl) => [
+      q(nzs) => [
          q(0157),
          q(0),
          ],
-      q(orn) => [
+      q(okl) => [
          q(0158),
          q(0),
          ],
-      q(ors) => [
+      q(orn) => [
          q(0159),
          q(0),
          ],
-      q(pel) => [
+      q(ors) => [
          q(0160),
          q(0),
          ],
-      q(pga) => [
+      q(pel) => [
          q(0161),
          q(0),
          ],
-      q(pks) => [
+      q(pga) => [
          q(0162),
          q(0),
          ],
-      q(prl) => [
+      q(pks) => [
          q(0163),
          q(0),
          ],
-      q(prz) => [
+      q(prl) => [
          q(0164),
          q(0),
          ],
-      q(psc) => [
+      q(prz) => [
          q(0165),
          q(0),
          ],
-      q(psd) => [
+      q(psc) => [
          q(0166),
          q(0),
          ],
-      q(pse) => [
+      q(psd) => [
          q(0167),
          q(0),
          ],
-      q(psg) => [
+      q(pse) => [
          q(0168),
          q(0),
          ],
-      q(psl) => [
+      q(psg) => [
          q(0169),
          q(0),
          ],
-      q(pso) => [
+      q(psl) => [
          q(0170),
          q(0),
          ],
-      q(psp) => [
+      q(pso) => [
          q(0171),
          q(0),
          ],
-      q(psr) => [
+      q(psp) => [
          q(0172),
          q(0),
          ],
-      q(pys) => [
+      q(psr) => [
          q(0173),
          q(0),
          ],
-      q(rms) => [
+      q(pys) => [
          q(0174),
          q(0),
          ],
-      q(rsi) => [
+      q(rms) => [
          q(0175),
          q(0),
          ],
-      q(rsl) => [
+      q(rsi) => [
          q(0176),
          q(0),
          ],
-      q(sdl) => [
+      q(rsl) => [
          q(0177),
          q(0),
          ],
-      q(sfb) => [
+      q(sdl) => [
          q(0178),
          q(0),
          ],
-      q(sfs) => [
+      q(sfb) => [
          q(0179),
          q(0),
          ],
-      q(sgg) => [
+      q(sfs) => [
          q(0180),
          q(0),
          ],
-      q(sgx) => [
+      q(sgg) => [
          q(0181),
          q(0),
          ],
-      q(shu) => [
+      q(sgx) => [
          q(0182),
          q(0),
          ],
-      q(slf) => [
+      q(shu) => [
          q(0183),
          q(0),
          ],
-      q(sls) => [
+      q(slf) => [
          q(0184),
          q(0),
          ],
-      q(sqk) => [
+      q(sls) => [
          q(0185),
          q(0),
          ],
-      q(sqs) => [
+      q(sqk) => [
          q(0186),
          q(0),
          ],
-      q(ssh) => [
+      q(sqs) => [
          q(0187),
          q(0),
          ],
-      q(ssp) => [
+      q(ssh) => [
          q(0188),
          q(0),
          ],
-      q(ssr) => [
+      q(ssp) => [
          q(0189),
          q(0),
          ],
-      q(svk) => [
+      q(ssr) => [
          q(0190),
          q(0),
          ],
-      q(swc) => [
+      q(svk) => [
          q(0191),
          q(0),
          ],
-      q(swh) => [
+      q(swc) => [
          q(0192),
          q(0),
          ],
-      q(swl) => [
+      q(swh) => [
          q(0193),
          q(0),
          ],
-      q(syy) => [
+      q(swl) => [
          q(0194),
          q(0),
          ],
-      q(tmw) => [
+      q(syy) => [
          q(0195),
          q(0),
          ],
-      q(tse) => [
+      q(tmw) => [
          q(0196),
          q(0),
          ],
-      q(tsm) => [
+      q(tse) => [
          q(0197),
          q(0),
          ],
-      q(tsq) => [
+      q(tsm) => [
          q(0198),
          q(0),
          ],
-      q(tss) => [
+      q(tsq) => [
          q(0199),
          q(0),
          ],
-      q(tsy) => [
+      q(tss) => [
          q(0200),
          q(0),
          ],
-      q(tza) => [
+      q(tsy) => [
          q(0201),
          q(0),
          ],
-      q(ugn) => [
+      q(tza) => [
          q(0202),
          q(0),
          ],
-      q(ugy) => [
+      q(ugn) => [
          q(0203),
          q(0),
          ],
-      q(ukl) => [
+      q(ugy) => [
          q(0204),
          q(0),
          ],
-      q(uks) => [
+      q(ukl) => [
          q(0205),
          q(0),
          ],
-      q(urk) => [
+      q(uks) => [
          q(0206),
          q(0),
          ],
-      q(uzn) => [
+      q(urk) => [
          q(0207),
          q(0),
          ],
-      q(uzs) => [
+      q(uzn) => [
          q(0208),
          q(0),
          ],
-      q(vgt) => [
+      q(uzs) => [
          q(0209),
          q(0),
          ],
-      q(vkk) => [
+      q(vgt) => [
          q(0210),
          q(0),
          ],
-      q(vkt) => [
+      q(vkk) => [
          q(0211),
          q(0),
          ],
-      q(vsi) => [
+      q(vkt) => [
          q(0212),
          q(0),
          ],
-      q(vsl) => [
+      q(vsi) => [
          q(0213),
          q(0),
          ],
-      q(vsv) => [
+      q(vsl) => [
          q(0214),
          q(0),
          ],
-      q(wuu) => [
+      q(vsv) => [
          q(0215),
          q(0),
          ],
-      q(xki) => [
+      q(wuu) => [
          q(0216),
          q(0),
          ],
-      q(xml) => [
+      q(xki) => [
          q(0217),
          q(0),
          ],
-      q(xmm) => [
+      q(xml) => [
          q(0218),
          q(0),
          ],
-      q(xms) => [
+      q(xmm) => [
          q(0219),
          q(0),
          ],
-      q(yds) => [
+      q(xms) => [
          q(0220),
          q(0),
          ],
@@ -2708,129 +2708,129 @@ $Locale::Codes::Data{'langext'}{'id2code'} = {
       q(0095) => q(hsl),
       q(0096) => q(hsn),
       q(0097) => q(icl),
-      q(0098) => q(ils),
-      q(0099) => q(inl),
-      q(0100) => q(ins),
-      q(0101) => q(ise),
-      q(0102) => q(isg),
-      q(0103) => q(isr),
-      q(0104) => q(jak),
-      q(0105) => q(jax),
-      q(0106) => q(jcs),
-      q(0107) => q(jhs),
-      q(0108) => q(jls),
-      q(0109) => q(jos),
-      q(0110) => q(jsl),
-      q(0111) => q(jus),
-      q(0112) => q(kgi),
-      q(0113) => q(knn),
-      q(0114) => q(kvb),
-      q(0115) => q(kvk),
-      q(0116) => q(kvr),
-      q(0117) => q(kxd),
-      q(0118) => q(lbs),
-      q(0119) => q(lce),
-      q(0120) => q(lcf),
-      q(0121) => q(liw),
-      q(0122) => q(lls),
-      q(0123) => q(lsg),
-      q(0124) => q(lsl),
-      q(0125) => q(lso),
-      q(0126) => q(lsp),
-      q(0127) => q(lst),
-      q(0128) => q(lsy),
-      q(0129) => q(ltg),
-      q(0130) => q(lvs),
-      q(0131) => q(lzh),
-      q(0132) => q(max),
-      q(0133) => q(mdl),
-      q(0134) => q(meo),
-      q(0135) => q(mfa),
-      q(0136) => q(mfb),
-      q(0137) => q(mfs),
-      q(0138) => q(min),
-      q(0139) => q(mnp),
-      q(0140) => q(mqg),
-      q(0141) => q(mre),
-      q(0142) => q(msd),
-      q(0143) => q(msi),
-      q(0144) => q(msr),
-      q(0145) => q(mui),
-      q(0146) => q(mzc),
-      q(0147) => q(mzg),
-      q(0148) => q(mzy),
-      q(0149) => q(nan),
-      q(0150) => q(nbs),
-      q(0151) => q(ncs),
-      q(0152) => q(nsi),
-      q(0153) => q(nsl),
-      q(0154) => q(nsp),
-      q(0155) => q(nsr),
-      q(0156) => q(nzs),
-      q(0157) => q(okl),
-      q(0158) => q(orn),
-      q(0159) => q(ors),
-      q(0160) => q(pel),
-      q(0161) => q(pga),
-      q(0162) => q(pks),
-      q(0163) => q(prl),
-      q(0164) => q(prz),
-      q(0165) => q(psc),
-      q(0166) => q(psd),
-      q(0167) => q(pse),
-      q(0168) => q(psg),
-      q(0169) => q(psl),
-      q(0170) => q(pso),
-      q(0171) => q(psp),
-      q(0172) => q(psr),
-      q(0173) => q(pys),
-      q(0174) => q(rms),
-      q(0175) => q(rsi),
-      q(0176) => q(rsl),
-      q(0177) => q(sdl),
-      q(0178) => q(sfb),
-      q(0179) => q(sfs),
-      q(0180) => q(sgg),
-      q(0181) => q(sgx),
-      q(0182) => q(shu),
-      q(0183) => q(slf),
-      q(0184) => q(sls),
-      q(0185) => q(sqk),
-      q(0186) => q(sqs),
-      q(0187) => q(ssh),
-      q(0188) => q(ssp),
-      q(0189) => q(ssr),
-      q(0190) => q(svk),
-      q(0191) => q(swc),
-      q(0192) => q(swh),
-      q(0193) => q(swl),
-      q(0194) => q(syy),
-      q(0195) => q(tmw),
-      q(0196) => q(tse),
-      q(0197) => q(tsm),
-      q(0198) => q(tsq),
-      q(0199) => q(tss),
-      q(0200) => q(tsy),
-      q(0201) => q(tza),
-      q(0202) => q(ugn),
-      q(0203) => q(ugy),
-      q(0204) => q(ukl),
-      q(0205) => q(uks),
-      q(0206) => q(urk),
-      q(0207) => q(uzn),
-      q(0208) => q(uzs),
-      q(0209) => q(vgt),
-      q(0210) => q(vkk),
-      q(0211) => q(vkt),
-      q(0212) => q(vsi),
-      q(0213) => q(vsl),
-      q(0214) => q(vsv),
-      q(0215) => q(wuu),
-      q(0216) => q(xki),
-      q(0217) => q(xml),
-      q(0218) => q(xmm),
-      q(0219) => q(xms),
-      q(0220) => q(yds),
+      q(0098) => q(iks),
+      q(0099) => q(ils),
+      q(0100) => q(inl),
+      q(0101) => q(ins),
+      q(0102) => q(ise),
+      q(0103) => q(isg),
+      q(0104) => q(isr),
+      q(0105) => q(jak),
+      q(0106) => q(jax),
+      q(0107) => q(jcs),
+      q(0108) => q(jhs),
+      q(0109) => q(jls),
+      q(0110) => q(jos),
+      q(0111) => q(jsl),
+      q(0112) => q(jus),
+      q(0113) => q(kgi),
+      q(0114) => q(knn),
+      q(0115) => q(kvb),
+      q(0116) => q(kvk),
+      q(0117) => q(kvr),
+      q(0118) => q(kxd),
+      q(0119) => q(lbs),
+      q(0120) => q(lce),
+      q(0121) => q(lcf),
+      q(0122) => q(liw),
+      q(0123) => q(lls),
+      q(0124) => q(lsg),
+      q(0125) => q(lsl),
+      q(0126) => q(lso),
+      q(0127) => q(lsp),
+      q(0128) => q(lst),
+      q(0129) => q(lsy),
+      q(0130) => q(ltg),
+      q(0131) => q(lvs),
+      q(0132) => q(lzh),
+      q(0133) => q(max),
+      q(0134) => q(mdl),
+      q(0135) => q(meo),
+      q(0136) => q(mfa),
+      q(0137) => q(mfb),
+      q(0138) => q(mfs),
+      q(0139) => q(min),
+      q(0140) => q(mnp),
+      q(0141) => q(mqg),
+      q(0142) => q(mre),
+      q(0143) => q(msd),
+      q(0144) => q(msi),
+      q(0145) => q(msr),
+      q(0146) => q(mui),
+      q(0147) => q(mzc),
+      q(0148) => q(mzg),
+      q(0149) => q(mzy),
+      q(0150) => q(nan),
+      q(0151) => q(nbs),
+      q(0152) => q(ncs),
+      q(0153) => q(nsi),
+      q(0154) => q(nsl),
+      q(0155) => q(nsp),
+      q(0156) => q(nsr),
+      q(0157) => q(nzs),
+      q(0158) => q(okl),
+      q(0159) => q(orn),
+      q(0160) => q(ors),
+      q(0161) => q(pel),
+      q(0162) => q(pga),
+      q(0163) => q(pks),
+      q(0164) => q(prl),
+      q(0165) => q(prz),
+      q(0166) => q(psc),
+      q(0167) => q(psd),
+      q(0168) => q(pse),
+      q(0169) => q(psg),
+      q(0170) => q(psl),
+      q(0171) => q(pso),
+      q(0172) => q(psp),
+      q(0173) => q(psr),
+      q(0174) => q(pys),
+      q(0175) => q(rms),
+      q(0176) => q(rsi),
+      q(0177) => q(rsl),
+      q(0178) => q(sdl),
+      q(0179) => q(sfb),
+      q(0180) => q(sfs),
+      q(0181) => q(sgg),
+      q(0182) => q(sgx),
+      q(0183) => q(shu),
+      q(0184) => q(slf),
+      q(0185) => q(sls),
+      q(0186) => q(sqk),
+      q(0187) => q(sqs),
+      q(0188) => q(ssh),
+      q(0189) => q(ssp),
+      q(0190) => q(ssr),
+      q(0191) => q(svk),
+      q(0192) => q(swc),
+      q(0193) => q(swh),
+      q(0194) => q(swl),
+      q(0195) => q(syy),
+      q(0196) => q(tmw),
+      q(0197) => q(tse),
+      q(0198) => q(tsm),
+      q(0199) => q(tsq),
+      q(0200) => q(tss),
+      q(0201) => q(tsy),
+      q(0202) => q(tza),
+      q(0203) => q(ugn),
+      q(0204) => q(ugy),
+      q(0205) => q(ukl),
+      q(0206) => q(uks),
+      q(0207) => q(urk),
+      q(0208) => q(uzn),
+      q(0209) => q(uzs),
+      q(0210) => q(vgt),
+      q(0211) => q(vkk),
+      q(0212) => q(vkt),
+      q(0213) => q(vsi),
+      q(0214) => q(vsl),
+      q(0215) => q(vsv),
+      q(0216) => q(wuu),
+      q(0217) => q(xki),
+      q(0218) => q(xml),
+      q(0219) => q(xmm),
+      q(0220) => q(xms),
       q(0221) => q(ygs),
       q(0222) => q(ysl),
       q(0223) => q(yue),
index ba7b5af..4fe85fa 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: Mon Nov 24 13:38:10 GMT 2014
+#    Generated on: Fri Feb 20 15:27:22 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,13 +11,15 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Retired{'langext'}{'alpha'}{'code'} = {
+   q(yds) => q(Yiddish Sign Language),
 };
 
 $Locale::Codes::Retired{'langext'}{'alpha'}{'name'} = {
    q(hawai'i pidgin sign language) => [ q(hps), q(Hawai'i Pidgin Sign Language) ],
+   q(yiddish sign language) => [ q(yds), q(Yiddish Sign Language) ],
 };
 
 
index 1ff2831..a83c82d 100644 (file)
@@ -1,5 +1,5 @@
 package Locale::Codes::LangFam;
-# Copyright (c) 2011-2014 Sullivan Beck
+# Copyright (c) 2011-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -20,7 +20,7 @@ use Locale::Codes::LangFam_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.33';
+$VERSION='3.34';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2langfam
                 langfam2code
index a67ccef..00d60a8 100644 (file)
@@ -108,7 +108,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
 =head1 COPYRIGHT
 
-   Copyright (c) 2011-2014 Sullivan Beck
+   Copyright (c) 2011-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index b1f7766..c1988a1 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: Mon Nov 24 13:36:50 GMT 2014
+#    Generated on: Thu Feb 19 20:50:47 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Data{'langfam'}{'id'} = '0116';
 
index 0d8da30..7fb4daf 100644 (file)
@@ -26,7 +26,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
@@ -38,7 +38,7 @@ use warnings;
 require 5.002;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Retired{'langfam'}{'alpha'}{'code'} = {
 };
index cd9e850..9d9fc39 100644 (file)
@@ -1,5 +1,5 @@
 package Locale::Codes::LangVar;
-# Copyright (c) 2011-2014 Sullivan Beck
+# Copyright (c) 2011-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -20,7 +20,7 @@ use Locale::Codes::LangVar_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.33';
+$VERSION='3.34';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2langvar
                 langvar2code
index 463251a..35d979b 100644 (file)
@@ -110,7 +110,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
 =head1 COPYRIGHT
 
-   Copyright (c) 2011-2014 Sullivan Beck
+   Copyright (c) 2011-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 6658420..49daafa 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: Mon Nov 24 13:36:47 GMT 2014
+#    Generated on: Thu Feb 19 20:50:44 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,9 +11,9 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
-$Locale::Codes::Data{'langvar'}{'id'} = '0067';
+$Locale::Codes::Data{'langvar'}{'id'} = '0068';
 
 $Locale::Codes::Data{'langvar'}{'id2names'} = {
    q(0001) => [
@@ -113,38 +113,41 @@ $Locale::Codes::Data{'langvar'}{'id2names'} = {
       q(Common Cornish orthography of Revived Cornish),
       ],
    q(0032) => [
+      q(The Kociewie dialect of Polish),
+      ],
+   q(0033) => [
       q(Standard Cornish orthography of Revived Cornish),
       q(Kernowek Standard),
       ],
-   q(0033) => [
+   q(0034) => [
       q(Classical Sanskrit),
       ],
-   q(0034) => [
+   q(0035) => [
       q(The Lipovaz dialect of Resian),
       q(The Lipovec dialect of Resian),
       ],
-   q(0035) => [
+   q(0036) => [
       q(Post-1917 Russian orthography),
       ],
-   q(0036) => [
+   q(0037) => [
       q(Slovene in Metelko alphabet),
       ],
-   q(0037) => [
+   q(0038) => [
       q(Monotonic Greek),
       ],
-   q(0038) => [
+   q(0039) => [
       q(Ndyuka dialect),
       q(Aukan dialect),
       ],
-   q(0039) => [
+   q(0040) => [
       q(Natisone dialect),
       q(Nadiza dialect),
       ],
-   q(0040) => [
+   q(0041) => [
       q(The Gniva dialect of Resian),
       q(The Njiva dialect of Resian),
       ],
-   q(0041) => [
+   q(0042) => [
       q(Volapuk nulik),
       q(Volapuk perevidol),
       q(Volapuk nuladik),
@@ -153,86 +156,86 @@ $Locale::Codes::Data{'langvar'}{'id2names'} = {
       q(Revised Volapuk),
       q(Modern Volapuk),
       ],
-   q(0042) => [
+   q(0043) => [
       q(The Oseacco dialect of Resian),
       q(The Osojane dialect of Resian),
       ],
-   q(0043) => [
+   q(0044) => [
       q(Pamaka dialect),
       ],
-   q(0044) => [
+   q(0045) => [
       q(Petrine orthography),
       ],
-   q(0045) => [
+   q(0046) => [
       q(Pinyin romanization),
       ],
-   q(0046) => [
+   q(0047) => [
       q(Polytonic Greek),
       ],
-   q(0047) => [
+   q(0048) => [
       q(Puter idiom of Romansh),
       ],
-   q(0048) => [
+   q(0049) => [
       q(Volapuk rigik),
       q(Schleyer's Volapuk),
       q(Original Volapuk),
       q(Classic Volapuk),
       ],
-   q(0049) => [
+   q(0050) => [
       q(Resian),
       q(Resianic),
       q(Rezijan),
       ],
-   q(0050) => [
+   q(0051) => [
       q(Rumantsch Grischun),
       ],
-   q(0051) => [
+   q(0052) => [
       q(Scottish Standard English),
       ],
-   q(0052) => [
+   q(0053) => [
       q(Scouse),
       ],
-   q(0053) => [
+   q(0054) => [
       q(The Stolvizza dialect of Resian),
       q(The Solbica dialect of Resian),
       ],
-   q(0054) => [
+   q(0055) => [
       q(The Sotavento dialect group of Kabuverdianu),
       ],
-   q(0055) => [
+   q(0056) => [
       q(Surmiran idiom of Romansh),
       ],
-   q(0056) => [
+   q(0057) => [
       q(Sursilvan idiom of Romansh),
       ],
-   q(0057) => [
+   q(0058) => [
       q(Sutsilvan idiom of Romansh),
       ],
-   q(0058) => [
+   q(0059) => [
       q(Belarusian in Taraskievica orthography),
       ],
-   q(0059) => [
+   q(0060) => [
       q(Unified Cornish orthography of Revived Cornish),
       ],
-   q(0060) => [
+   q(0061) => [
       q(Unified Cornish Revised orthography of Revived Cornish),
       ],
-   q(0061) => [
+   q(0062) => [
       q(Ulster dialect of Scots),
       ],
-   q(0062) => [
+   q(0063) => [
       q(Unifon phonetic alphabet),
       ],
-   q(0063) => [
+   q(0064) => [
       q(Vedic Sanskrit),
       ],
-   q(0064) => [
+   q(0065) => [
       q(Valencian),
       ],
-   q(0065) => [
+   q(0066) => [
       q(Vallader idiom of Romansh),
       ],
-   q(0066) => [
+   q(0067) => [
       q(Wade-Giles romanization),
       ],
 };
@@ -251,11 +254,11 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(aukan dialect) => [
-      q(0038),
+      q(0039),
       q(1),
       ],
    q(belarusian in taraskievica orthography) => [
-      q(0058),
+      q(0059),
       q(0),
       ],
    q(biscayan dialect of basque) => [
@@ -275,11 +278,11 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(classic volapuk) => [
-      q(0048),
+      q(0049),
       q(3),
       ],
    q(classical sanskrit) => [
-      q(0033),
+      q(0034),
       q(0),
       ],
    q(common cornish orthography of revived cornish) => [
@@ -287,7 +290,7 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(de jong's volapuk) => [
-      q(0041),
+      q(0042),
       q(3),
       ],
    q(early modern english (1500-1700)) => [
@@ -327,7 +330,7 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(kernowek standard) => [
-      q(0032),
+      q(0033),
       q(1),
       ],
    q(late middle french (to 1606)) => [
@@ -335,27 +338,27 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(modern volapuk) => [
-      q(0041),
+      q(0042),
       q(6),
       ],
    q(monotonic greek) => [
-      q(0037),
+      q(0038),
       q(0),
       ],
    q(nadiza dialect) => [
-      q(0039),
+      q(0040),
       q(1),
       ],
    q(natisone dialect) => [
-      q(0039),
+      q(0040),
       q(0),
       ],
    q(ndyuka dialect) => [
-      q(0038),
+      q(0039),
       q(0),
       ],
    q(new volapuk) => [
-      q(0041),
+      q(0042),
       q(4),
       ],
    q(norwegian in hognorsk (high norwegian) orthography) => [
@@ -363,63 +366,63 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(original volapuk) => [
-      q(0048),
+      q(0049),
       q(2),
       ],
    q(pamaka dialect) => [
-      q(0043),
+      q(0044),
       q(0),
       ],
    q(petrine orthography) => [
-      q(0044),
+      q(0045),
       q(0),
       ],
    q(pinyin romanization) => [
-      q(0045),
+      q(0046),
       q(0),
       ],
    q(polytonic greek) => [
-      q(0046),
+      q(0047),
       q(0),
       ],
    q(post-1917 russian orthography) => [
-      q(0035),
+      q(0036),
       q(0),
       ],
    q(puter idiom of romansh) => [
-      q(0047),
+      q(0048),
       q(0),
       ],
    q(resian) => [
-      q(0049),
+      q(0050),
       q(0),
       ],
    q(resianic) => [
-      q(0049),
+      q(0050),
       q(1),
       ],
    q(revised volapuk) => [
-      q(0041),
+      q(0042),
       q(5),
       ],
    q(rezijan) => [
-      q(0049),
+      q(0050),
       q(2),
       ],
    q(rumantsch grischun) => [
-      q(0050),
+      q(0051),
       q(0),
       ],
    q(schleyer's volapuk) => [
-      q(0048),
+      q(0049),
       q(1),
       ],
    q(scottish standard english) => [
-      q(0051),
+      q(0052),
       q(0),
       ],
    q(scouse) => [
-      q(0052),
+      q(0053),
       q(0),
       ],
    q(serbian with ekavian pronunciation) => [
@@ -439,11 +442,11 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(slovene in metelko alphabet) => [
-      q(0036),
+      q(0037),
       q(0),
       ],
    q(standard cornish orthography of revived cornish) => [
-      q(0032),
+      q(0033),
       q(0),
       ],
    q(standardized resian orthography) => [
@@ -451,15 +454,15 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(surmiran idiom of romansh) => [
-      q(0055),
+      q(0056),
       q(0),
       ],
    q(sursilvan idiom of romansh) => [
-      q(0056),
+      q(0057),
       q(0),
       ],
    q(sutsilvan idiom of romansh) => [
-      q(0057),
+      q(0058),
       q(0),
       ],
    q(the balanka dialect of anii) => [
@@ -475,27 +478,31 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(1),
       ],
    q(the gniva dialect of resian) => [
-      q(0040),
+      q(0041),
+      q(0),
+      ],
+   q(the kociewie dialect of polish) => [
+      q(0032),
       q(0),
       ],
    q(the lipovaz dialect of resian) => [
-      q(0034),
+      q(0035),
       q(0),
       ],
    q(the lipovec dialect of resian) => [
-      q(0034),
+      q(0035),
       q(1),
       ],
    q(the njiva dialect of resian) => [
-      q(0040),
+      q(0041),
       q(1),
       ],
    q(the oseacco dialect of resian) => [
-      q(0042),
+      q(0043),
       q(0),
       ],
    q(the osojane dialect of resian) => [
-      q(0042),
+      q(0043),
       q(1),
       ],
    q(the san giorgio dialect of resian) => [
@@ -503,15 +510,15 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(the solbica dialect of resian) => [
-      q(0053),
+      q(0054),
       q(1),
       ],
    q(the sotavento dialect group of kabuverdianu) => [
-      q(0054),
+      q(0055),
       q(0),
       ],
    q(the stolvizza dialect of resian) => [
-      q(0053),
+      q(0054),
       q(0),
       ],
    q(traditional german orthography) => [
@@ -519,15 +526,15 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(ulster dialect of scots) => [
-      q(0061),
+      q(0062),
       q(0),
       ],
    q(unified cornish orthography of revived cornish) => [
-      q(0059),
+      q(0060),
       q(0),
       ],
    q(unified cornish revised orthography of revived cornish) => [
-      q(0060),
+      q(0061),
       q(0),
       ],
    q(unified turkic latin alphabet (historical)) => [
@@ -535,7 +542,7 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(unifon phonetic alphabet) => [
-      q(0062),
+      q(0063),
       q(0),
       ],
    q(uralic phonetic alphabet) => [
@@ -543,35 +550,35 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
       q(0),
       ],
    q(valencian) => [
-      q(0064),
+      q(0065),
       q(0),
       ],
    q(vallader idiom of romansh) => [
-      q(0065),
+      q(0066),
       q(0),
       ],
    q(vedic sanskrit) => [
-      q(0063),
+      q(0064),
       q(0),
       ],
    q(volapuk nuladik) => [
-      q(0041),
+      q(0042),
       q(2),
       ],
    q(volapuk nulik) => [
-      q(0041),
+      q(0042),
       q(0),
       ],
    q(volapuk perevidol) => [
-      q(0041),
+      q(0042),
       q(1),
       ],
    q(volapuk rigik) => [
-      q(0048),
+      q(0049),
       q(0),
       ],
    q(wade-giles romanization) => [
-      q(0066),
+      q(0067),
       q(0),
       ],
    q(western armenian) => [
@@ -710,146 +717,150 @@ $Locale::Codes::Data{'langvar'}{'code2id'} = {
          q(0031),
          q(0),
          ],
-      q(kscor) => [
+      q(kociewie) => [
          q(0032),
          q(0),
          ],
-      q(laukika) => [
+      q(kscor) => [
          q(0033),
          q(0),
          ],
-      q(lipaw) => [
+      q(laukika) => [
          q(0034),
          q(0),
          ],
-      q(luna1918) => [
+      q(lipaw) => [
          q(0035),
          q(0),
          ],
-      q(metelko) => [
+      q(luna1918) => [
          q(0036),
          q(0),
          ],
-      q(monoton) => [
+      q(metelko) => [
          q(0037),
          q(0),
          ],
-      q(ndyuka) => [
+      q(monoton) => [
          q(0038),
          q(0),
          ],
-      q(nedis) => [
+      q(ndyuka) => [
          q(0039),
          q(0),
          ],
-      q(njiva) => [
+      q(nedis) => [
          q(0040),
          q(0),
          ],
-      q(nulik) => [
+      q(njiva) => [
          q(0041),
          q(0),
          ],
-      q(osojs) => [
+      q(nulik) => [
          q(0042),
          q(0),
          ],
-      q(pamaka) => [
+      q(osojs) => [
          q(0043),
          q(0),
          ],
-      q(petr1708) => [
+      q(pamaka) => [
          q(0044),
          q(0),
          ],
-      q(pinyin) => [
+      q(petr1708) => [
          q(0045),
          q(0),
          ],
-      q(polyton) => [
+      q(pinyin) => [
          q(0046),
          q(0),
          ],
-      q(puter) => [
+      q(polyton) => [
          q(0047),
          q(0),
          ],
-      q(rigik) => [
+      q(puter) => [
          q(0048),
          q(0),
          ],
-      q(rozaj) => [
+      q(rigik) => [
          q(0049),
          q(0),
          ],
-      q(rumgr) => [
+      q(rozaj) => [
          q(0050),
          q(0),
          ],
-      q(scotland) => [
+      q(rumgr) => [
          q(0051),
          q(0),
          ],
-      q(scouse) => [
+      q(scotland) => [
          q(0052),
          q(0),
          ],
-      q(solba) => [
+      q(scouse) => [
          q(0053),
          q(0),
          ],
-      q(sotav) => [
+      q(solba) => [
          q(0054),
          q(0),
          ],
-      q(surmiran) => [
+      q(sotav) => [
          q(0055),
          q(0),
          ],
-      q(sursilv) => [
+      q(surmiran) => [
          q(0056),
          q(0),
          ],
-      q(sutsilv) => [
+      q(sursilv) => [
          q(0057),
          q(0),
          ],
-      q(tarask) => [
+      q(sutsilv) => [
          q(0058),
          q(0),
          ],
-      q(uccor) => [
+      q(tarask) => [
          q(0059),
          q(0),
          ],
-      q(ucrcor) => [
+      q(uccor) => [
          q(0060),
          q(0),
          ],
-      q(ulster) => [
+      q(ucrcor) => [
          q(0061),
          q(0),
          ],
-      q(unifon) => [
+      q(ulster) => [
          q(0062),
          q(0),
          ],
-      q(vaidika) => [
+      q(unifon) => [
          q(0063),
          q(0),
          ],
-      q(valencia) => [
+      q(vaidika) => [
          q(0064),
          q(0),
          ],
-      q(vallader) => [
+      q(valencia) => [
          q(0065),
          q(0),
          ],
-      q(wadegile) => [
+      q(vallader) => [
          q(0066),
          q(0),
          ],
+      q(wadegile) => [
+         q(0067),
+         q(0),
+         ],
       },
 };
 
@@ -886,41 +897,42 @@ $Locale::Codes::Data{'langvar'}{'id2code'} = {
       q(0029) => q(jauer),
       q(0030) => q(jyutping),
       q(0031) => q(kkcor),
-      q(0032) => q(kscor),
-      q(0033) => q(laukika),
-      q(0034) => q(lipaw),
-      q(0035) => q(luna1918),
-      q(0036) => q(metelko),
-      q(0037) => q(monoton),
-      q(0038) => q(ndyuka),
-      q(0039) => q(nedis),
-      q(0040) => q(njiva),
-      q(0041) => q(nulik),
-      q(0042) => q(osojs),
-      q(0043) => q(pamaka),
-      q(0044) => q(petr1708),
-      q(0045) => q(pinyin),
-      q(0046) => q(polyton),
-      q(0047) => q(puter),
-      q(0048) => q(rigik),
-      q(0049) => q(rozaj),
-      q(0050) => q(rumgr),
-      q(0051) => q(scotland),
-      q(0052) => q(scouse),
-      q(0053) => q(solba),
-      q(0054) => q(sotav),
-      q(0055) => q(surmiran),
-      q(0056) => q(sursilv),
-      q(0057) => q(sutsilv),
-      q(0058) => q(tarask),
-      q(0059) => q(uccor),
-      q(0060) => q(ucrcor),
-      q(0061) => q(ulster),
-      q(0062) => q(unifon),
-      q(0063) => q(vaidika),
-      q(0064) => q(valencia),
-      q(0065) => q(vallader),
-      q(0066) => q(wadegile),
+      q(0032) => q(kociewie),
+      q(0033) => q(kscor),
+      q(0034) => q(laukika),
+      q(0035) => q(lipaw),
+      q(0036) => q(luna1918),
+      q(0037) => q(metelko),
+      q(0038) => q(monoton),
+      q(0039) => q(ndyuka),
+      q(0040) => q(nedis),
+      q(0041) => q(njiva),
+      q(0042) => q(nulik),
+      q(0043) => q(osojs),
+      q(0044) => q(pamaka),
+      q(0045) => q(petr1708),
+      q(0046) => q(pinyin),
+      q(0047) => q(polyton),
+      q(0048) => q(puter),
+      q(0049) => q(rigik),
+      q(0050) => q(rozaj),
+      q(0051) => q(rumgr),
+      q(0052) => q(scotland),
+      q(0053) => q(scouse),
+      q(0054) => q(solba),
+      q(0055) => q(sotav),
+      q(0056) => q(surmiran),
+      q(0057) => q(sursilv),
+      q(0058) => q(sutsilv),
+      q(0059) => q(tarask),
+      q(0060) => q(uccor),
+      q(0061) => q(ucrcor),
+      q(0062) => q(ulster),
+      q(0063) => q(unifon),
+      q(0064) => q(vaidika),
+      q(0065) => q(valencia),
+      q(0066) => q(vallader),
+      q(0067) => q(wadegile),
       },
 };
 
index 2d5c66d..67ce0e9 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: Mon Nov 24 13:38:10 GMT 2014
+#    Generated on: Fri Feb 20 15:27:22 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Retired{'langvar'}{'alpha'}{'code'} = {
 };
index 8c0e6f0..3daf645 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Codes::Language;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -22,7 +22,7 @@ use Locale::Codes::Language_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.33';
+$VERSION='3.34';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2language
                 language2code
index aefb693..a914566 100644 (file)
@@ -129,7 +129,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index fc47f4f..7c2fa83 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: Fri Nov 21 19:24:51 GMT 2014
+#    Generated on: Thu Feb 19 20:49:39 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,9 +11,9 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
-$Locale::Codes::Data{'language'}{'id'} = '7991';
+$Locale::Codes::Data{'language'}{'id'} = '7974';
 
 $Locale::Codes::Data{'language'}{'id2names'} = {
    q(0001) => [
@@ -1787,22644 +1787,22606 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
       q(Afade),
       ],
    q(0549) => [
-      q(Aramanik),
-      ],
-   q(0550) => [
       q(Anambe),
       ],
-   q(0551) => [
+   q(0550) => [
       q(Algerian Saharan Arabic),
       ],
-   q(0552) => [
+   q(0551) => [
       q(Para Arara),
       ],
-   q(0553) => [
+   q(0552) => [
       q(Eastern Abnaki),
       ],
-   q(0554) => [
+   q(0553) => [
       q(Aasax),
       ],
-   q(0555) => [
+   q(0554) => [
       q(Arvanitika Albanian),
       ],
-   q(0556) => [
+   q(0555) => [
       q(Abau),
       ],
-   q(0557) => [
+   q(0556) => [
       q(Solong),
       ],
-   q(0558) => [
+   q(0557) => [
       q(Mandobo Atas),
       ],
-   q(0559) => [
+   q(0558) => [
       q(Amarasi),
       ],
-   q(0560) => [
+   q(0559) => [
       q(Abe),
       ],
-   q(0561) => [
+   q(0560) => [
       q(Bankon),
       ],
-   q(0562) => [
+   q(0561) => [
       q(Ambala Ayta),
       ],
-   q(0563) => [
+   q(0562) => [
       q(Manide),
       ],
-   q(0564) => [
+   q(0563) => [
       q(Western Abnaki),
       ],
-   q(0565) => [
+   q(0564) => [
       q(Abai Sungai),
       ],
-   q(0566) => [
+   q(0565) => [
       q(Abaga),
       ],
-   q(0567) => [
+   q(0566) => [
       q(Tajiki Arabic),
       ],
-   q(0568) => [
+   q(0567) => [
       q(Abidji),
       ],
-   q(0569) => [
+   q(0568) => [
       q(Aka-Bea),
       ],
-   q(0570) => [
+   q(0569) => [
       q(Lampung Nyo),
       ],
-   q(0571) => [
+   q(0570) => [
       q(Abanyom),
       ],
-   q(0572) => [
+   q(0571) => [
       q(Abua),
       ],
-   q(0573) => [
+   q(0572) => [
       q(Abon),
       ],
-   q(0574) => [
+   q(0573) => [
       q(Abellen Ayta),
       ],
-   q(0575) => [
+   q(0574) => [
       q(Abaza),
       ],
-   q(0576) => [
+   q(0575) => [
       q(Abron),
       ],
-   q(0577) => [
+   q(0576) => [
       q(Ambonese Malay),
       ],
-   q(0578) => [
+   q(0577) => [
       q(Ambulas),
       ],
-   q(0579) => [
+   q(0578) => [
       q(Abure),
       ],
-   q(0580) => [
+   q(0579) => [
       q(Baharna Arabic),
       ],
-   q(0581) => [
+   q(0580) => [
       q(Pal),
       ],
-   q(0582) => [
+   q(0581) => [
       q(Inabaknon),
       ],
-   q(0583) => [
+   q(0582) => [
       q(Aneme Wake),
       ],
-   q(0584) => [
+   q(0583) => [
       q(Abui),
       ],
-   q(0585) => [
+   q(0584) => [
       q(Achagua),
       ],
-   q(0586) => [
+   q(0585) => [
       q(Anca),
       ],
-   q(0587) => [
+   q(0586) => [
       q(Gikyode),
       ],
-   q(0588) => [
+   q(0587) => [
       q(Saint Lucian Creole French),
       ],
-   q(0589) => [
+   q(0588) => [
       q(Aka-Cari),
       ],
-   q(0590) => [
+   q(0589) => [
       q(Aka-Kora),
       ],
-   q(0591) => [
+   q(0590) => [
       q(Akar-Bale),
       ],
-   q(0592) => [
+   q(0591) => [
       q(Mesopotamian Arabic),
       ],
-   q(0593) => [
+   q(0592) => [
       q(Achang),
       ],
-   q(0594) => [
+   q(0593) => [
       q(Eastern Acipa),
       ],
-   q(0595) => [
+   q(0594) => [
       q(Ta'izzi-Adeni Arabic),
       ],
-   q(0596) => [
+   q(0595) => [
       q(Achi),
       ],
-   q(0597) => [
+   q(0596) => [
       q(Acroa),
       ],
-   q(0598) => [
+   q(0597) => [
       q(Achterhoeks),
       ],
-   q(0599) => [
+   q(0598) => [
       q(Achuar-Shiwiar),
       ],
-   q(0600) => [
+   q(0599) => [
       q(Achumawi),
       ],
-   q(0601) => [
+   q(0600) => [
       q(Hijazi Arabic),
       ],
-   q(0602) => [
+   q(0601) => [
       q(Omani Arabic),
       ],
-   q(0603) => [
+   q(0602) => [
       q(Cypriot Arabic),
       ],
-   q(0604) => [
+   q(0603) => [
       q(Acheron),
       ],
-   q(0605) => [
+   q(0604) => [
       q(Adabe),
       ],
-   q(0606) => [
+   q(0605) => [
       q(Dzodinka),
       ],
-   q(0607) => [
+   q(0606) => [
       q(Adele),
       ],
-   q(0608) => [
+   q(0607) => [
       q(Dhofari Arabic),
       ],
-   q(0609) => [
+   q(0608) => [
       q(Andegerebinha),
       ],
-   q(0610) => [
+   q(0609) => [
       q(Adhola),
       ],
-   q(0611) => [
+   q(0610) => [
       q(Adi),
       ],
-   q(0612) => [
+   q(0611) => [
       q(Adioukrou),
       ],
-   q(0613) => [
+   q(0612) => [
       q(Galo),
       ],
-   q(0614) => [
+   q(0613) => [
       q(Adang),
       ],
-   q(0615) => [
+   q(0614) => [
       q(Abu),
       ],
-   q(0616) => [
-      q(Adap),
-      ],
-   q(0617) => [
+   q(0615) => [
       q(Adangbe),
       ],
-   q(0618) => [
+   q(0616) => [
       q(Adonara),
       ],
-   q(0619) => [
+   q(0617) => [
       q(Adamorobe Sign Language),
       ],
-   q(0620) => [
+   q(0618) => [
       q(Adnyamathanha),
       ],
-   q(0621) => [
+   q(0619) => [
       q(Aduge),
       ],
-   q(0622) => [
+   q(0620) => [
       q(Amundava),
       ],
-   q(0623) => [
+   q(0621) => [
       q(Amdo Tibetan),
       ],
-   q(0624) => [
+   q(0622) => [
       q(Adzera),
       ],
-   q(0625) => [
+   q(0623) => [
       q(Areba),
       ],
-   q(0626) => [
+   q(0624) => [
       q(Tunisian Arabic),
       ],
-   q(0627) => [
+   q(0625) => [
       q(Saidi Arabic),
       ],
-   q(0628) => [
+   q(0626) => [
       q(Argentine Sign Language),
       ],
-   q(0629) => [
+   q(0627) => [
+      q(Northeast Pashai),
       q(Northeast Pashayi),
       ],
-   q(0630) => [
+   q(0628) => [
       q(Haeke),
       ],
-   q(0631) => [
+   q(0629) => [
       q(Ambele),
       ],
-   q(0632) => [
+   q(0630) => [
       q(Arem),
       ],
-   q(0633) => [
+   q(0631) => [
       q(Armenian Sign Language),
       ],
-   q(0634) => [
+   q(0632) => [
       q(Aer),
       ],
-   q(0635) => [
+   q(0633) => [
       q(Eastern Arrernte),
       ],
-   q(0636) => [
+   q(0634) => [
       q(Alsea),
       ],
-   q(0637) => [
+   q(0635) => [
       q(Akeu),
       ],
-   q(0638) => [
+   q(0636) => [
       q(Ambakich),
       ],
-   q(0639) => [
+   q(0637) => [
       q(Amele),
       ],
-   q(0640) => [
+   q(0638) => [
       q(Aeka),
       ],
-   q(0641) => [
+   q(0639) => [
       q(Gulf Arabic),
       ],
-   q(0642) => [
+   q(0640) => [
       q(Andai),
       ],
-   q(0643) => [
+   q(0641) => [
       q(Putukwam),
       ],
-   q(0644) => [
+   q(0642) => [
       q(Afghan Sign Language),
       ],
-   q(0645) => [
+   q(0643) => [
       q(Akrukay),
       q(Chini),
       ],
-   q(0646) => [
+   q(0644) => [
       q(Nanubae),
       ],
-   q(0647) => [
+   q(0645) => [
       q(Defaka),
       ],
-   q(0648) => [
+   q(0646) => [
       q(Eloyi),
       ],
-   q(0649) => [
+   q(0647) => [
       q(Tapei),
       ],
-   q(0650) => [
+   q(0648) => [
       q(Afro-Seminole Creole),
       ],
-   q(0651) => [
+   q(0649) => [
       q(Afitti),
       ],
-   q(0652) => [
+   q(0650) => [
       q(Awutu),
       ],
-   q(0653) => [
+   q(0651) => [
       q(Obokuitai),
       ],
-   q(0654) => [
+   q(0652) => [
       q(Aguano),
       ],
-   q(0655) => [
+   q(0653) => [
       q(Legbo),
       ],
-   q(0656) => [
+   q(0654) => [
       q(Agatu),
       ],
-   q(0657) => [
+   q(0655) => [
       q(Agarabi),
       ],
-   q(0658) => [
+   q(0656) => [
       q(Angal),
       ],
-   q(0659) => [
+   q(0657) => [
       q(Arguni),
       ],
-   q(0660) => [
+   q(0658) => [
       q(Angor),
       ],
-   q(0661) => [
+   q(0659) => [
       q(Ngelima),
       ],
-   q(0662) => [
+   q(0660) => [
       q(Agariya),
       ],
-   q(0663) => [
+   q(0661) => [
       q(Argobba),
       ],
-   q(0664) => [
+   q(0662) => [
       q(Isarog Agta),
       ],
-   q(0665) => [
+   q(0663) => [
       q(Fembe),
       ],
-   q(0666) => [
+   q(0664) => [
       q(Angaataha),
       ],
-   q(0667) => [
+   q(0665) => [
       q(Agutaynen),
       ],
-   q(0668) => [
+   q(0666) => [
       q(Tainae),
       ],
-   q(0669) => [
+   q(0667) => [
       q(Aghem),
       ],
-   q(0670) => [
+   q(0668) => [
       q(Aguaruna),
       ],
-   q(0671) => [
+   q(0669) => [
       q(Esimbi),
       ],
-   q(0672) => [
+   q(0670) => [
       q(Central Cagayan Agta),
       ],
-   q(0673) => [
+   q(0671) => [
       q(Aguacateco),
       ],
-   q(0674) => [
+   q(0672) => [
       q(Remontado Dumagat),
       ],
-   q(0675) => [
+   q(0673) => [
       q(Kahua),
       ],
-   q(0676) => [
+   q(0674) => [
       q(Aghul),
       ],
-   q(0677) => [
+   q(0675) => [
       q(Southern Alta),
       ],
-   q(0678) => [
+   q(0676) => [
       q(Mt. Iriga Agta),
       ],
-   q(0679) => [
+   q(0677) => [
       q(Ahanta),
       ],
-   q(0680) => [
+   q(0678) => [
       q(Axamb),
       ],
-   q(0681) => [
+   q(0679) => [
       q(Qimant),
       ],
-   q(0682) => [
+   q(0680) => [
       q(Aghu),
       ],
-   q(0683) => [
+   q(0681) => [
       q(Tiagbamrin Aizi),
       ],
-   q(0684) => [
+   q(0682) => [
       q(Akha),
       ],
-   q(0685) => [
+   q(0683) => [
       q(Igo),
       ],
-   q(0686) => [
+   q(0684) => [
       q(Mobumrin Aizi),
       ],
-   q(0687) => [
+   q(0685) => [
       q(Ahan),
       ],
-   q(0688) => [
+   q(0686) => [
       q(Ahom),
       ],
-   q(0689) => [
+   q(0687) => [
       q(Aproumu Aizi),
       ],
-   q(0690) => [
+   q(0688) => [
       q(Ahirani),
       ],
-   q(0691) => [
+   q(0689) => [
       q(Ashe),
       ],
-   q(0692) => [
+   q(0690) => [
       q(Ahtena),
       ],
-   q(0693) => [
+   q(0691) => [
       q(Arosi),
       ],
-   q(0694) => [
+   q(0692) => [
       q(Ainu (China)),
       ],
-   q(0695) => [
+   q(0693) => [
       q(Ainbai),
       ],
-   q(0696) => [
+   q(0694) => [
       q(Alngith),
       ],
-   q(0697) => [
+   q(0695) => [
       q(Amara),
       ],
-   q(0698) => [
+   q(0696) => [
       q(Agi),
       ],
-   q(0699) => [
+   q(0697) => [
       q(Antigua and Barbuda Creole English),
       ],
-   q(0700) => [
+   q(0698) => [
       q(Ai-Cham),
       ],
-   q(0701) => [
+   q(0699) => [
       q(Assyrian Neo-Aramaic),
       ],
-   q(0702) => [
+   q(0700) => [
       q(Lishanid Noshan),
       ],
-   q(0703) => [
+   q(0701) => [
       q(Ake),
       ],
-   q(0704) => [
+   q(0702) => [
       q(Aimele),
       ],
-   q(0705) => [
+   q(0703) => [
       q(Aimol),
       ],
-   q(0706) => [
+   q(0704) => [
       q(Aiton),
       ],
-   q(0707) => [
+   q(0705) => [
       q(Burumakok),
       ],
-   q(0708) => [
+   q(0706) => [
       q(Aimaq),
       ],
-   q(0709) => [
+   q(0707) => [
       q(Airoran),
       ],
-   q(0710) => [
+   q(0708) => [
       q(Nataoran Amis),
       ],
-   q(0711) => [
+   q(0709) => [
       q(Arikem),
       ],
-   q(0712) => [
+   q(0710) => [
       q(Aari),
       ],
-   q(0713) => [
+   q(0711) => [
       q(Aighon),
       ],
-   q(0714) => [
+   q(0712) => [
       q(Ali),
       ],
-   q(0715) => [
+   q(0713) => [
       q(Aja (Sudan)),
       ],
-   q(0716) => [
+   q(0714) => [
       q(Aja (Benin)),
       ],
-   q(0717) => [
+   q(0715) => [
       q(Ajie),
       ],
-   q(0718) => [
+   q(0716) => [
       q(Andajin),
       ],
-   q(0719) => [
+   q(0717) => [
       q(South Levantine Arabic),
       ],
-   q(0720) => [
+   q(0718) => [
       q(Judeo-Tunisian Arabic),
       ],
-   q(0721) => [
+   q(0719) => [
       q(Judeo-Moroccan Arabic),
       ],
-   q(0722) => [
+   q(0720) => [
       q(Ajawa),
       ],
-   q(0723) => [
+   q(0721) => [
       q(Amri Karbi),
       ],
-   q(0724) => [
+   q(0722) => [
       q(Batak Angkola),
       ],
-   q(0725) => [
+   q(0723) => [
       q(Mpur),
       ],
-   q(0726) => [
+   q(0724) => [
       q(Ukpet-Ehom),
       ],
-   q(0727) => [
+   q(0725) => [
       q(Akawaio),
       ],
-   q(0728) => [
+   q(0726) => [
       q(Akpa),
       ],
-   q(0729) => [
+   q(0727) => [
       q(Anakalangu),
       ],
-   q(0730) => [
+   q(0728) => [
       q(Angal Heneng),
       ],
-   q(0731) => [
+   q(0729) => [
       q(Aiome),
       ],
-   q(0732) => [
+   q(0730) => [
       q(Aka-Jeru),
       ],
-   q(0733) => [
+   q(0731) => [
       q(Aklanon),
       ],
-   q(0734) => [
+   q(0732) => [
       q(Aka-Bo),
       ],
-   q(0735) => [
+   q(0733) => [
       q(Akurio),
       ],
-   q(0736) => [
+   q(0734) => [
       q(Siwu),
       ],
-   q(0737) => [
+   q(0735) => [
       q(Ak),
       ],
-   q(0738) => [
+   q(0736) => [
       q(Araki),
       ],
-   q(0739) => [
+   q(0737) => [
       q(Akaselem),
       ],
-   q(0740) => [
+   q(0738) => [
       q(Akolet),
       ],
-   q(0741) => [
+   q(0739) => [
       q(Akum),
       ],
-   q(0742) => [
+   q(0740) => [
       q(Akhvakh),
       ],
-   q(0743) => [
+   q(0741) => [
       q(Akwa),
       ],
-   q(0744) => [
+   q(0742) => [
       q(Aka-Kede),
       ],
-   q(0745) => [
+   q(0743) => [
       q(Aka-Kol),
       ],
-   q(0746) => [
+   q(0744) => [
       q(Alabama),
       ],
-   q(0747) => [
+   q(0745) => [
       q(Alago),
       ],
-   q(0748) => [
+   q(0746) => [
       q(Qawasqar),
       ],
-   q(0749) => [
+   q(0747) => [
       q(Alladian),
       ],
-   q(0750) => [
+   q(0748) => [
       q(Alege),
       ],
-   q(0751) => [
+   q(0749) => [
       q(Alawa),
       ],
-   q(0752) => [
+   q(0750) => [
       q(Amaimon),
       ],
-   q(0753) => [
+   q(0751) => [
       q(Alangan),
       ],
-   q(0754) => [
+   q(0752) => [
       q(Alak),
       ],
-   q(0755) => [
+   q(0753) => [
       q(Allar),
       ],
-   q(0756) => [
+   q(0754) => [
       q(Amblong),
       ],
-   q(0757) => [
+   q(0755) => [
       q(Gheg Albanian),
       ],
-   q(0758) => [
+   q(0756) => [
       q(Larike-Wakasihu),
       ],
-   q(0759) => [
+   q(0757) => [
       q(Alune),
       ],
-   q(0760) => [
+   q(0758) => [
       q(Algonquin),
       ],
-   q(0761) => [
+   q(0759) => [
       q(Alutor),
       ],
-   q(0762) => [
+   q(0760) => [
       q(Tosk Albanian),
       ],
-   q(0763) => [
+   q(0761) => [
       q('Are'are),
       ],
-   q(0764) => [
+   q(0762) => [
       q(Alaba-K'abeena),
       q(Wanbasana),
       ],
-   q(0765) => [
+   q(0763) => [
       q(Amol),
       ],
-   q(0766) => [
+   q(0764) => [
       q(Alyawarr),
       ],
-   q(0767) => [
+   q(0765) => [
       q(Alur),
       ],
-   q(0768) => [
+   q(0766) => [
       q(Amanaye),
       ],
-   q(0769) => [
+   q(0767) => [
       q(Ambo),
       ],
-   q(0770) => [
+   q(0768) => [
       q(Amahuaca),
       ],
-   q(0771) => [
+   q(0769) => [
       q(Yanesha'),
       ],
-   q(0772) => [
+   q(0770) => [
       q(Hamer-Banna),
       ],
-   q(0773) => [
+   q(0771) => [
       q(Amurdak),
       ],
-   q(0774) => [
+   q(0772) => [
       q(Amis),
       ],
-   q(0775) => [
+   q(0773) => [
       q(Amdang),
       ],
-   q(0776) => [
+   q(0774) => [
       q(Ambai),
       ],
-   q(0777) => [
+   q(0775) => [
       q(War-Jaintia),
       ],
-   q(0778) => [
+   q(0776) => [
       q(Ama (Papua New Guinea)),
       ],
-   q(0779) => [
+   q(0777) => [
       q(Amanab),
       ],
-   q(0780) => [
+   q(0778) => [
       q(Amo),
       ],
-   q(0781) => [
+   q(0779) => [
       q(Alamblak),
       ],
-   q(0782) => [
+   q(0780) => [
       q(Amahai),
       ],
-   q(0783) => [
+   q(0781) => [
       q(Amarakaeri),
       ],
-   q(0784) => [
+   q(0782) => [
       q(Southern Amami-Oshima),
       ],
-   q(0785) => [
+   q(0783) => [
       q(Amto),
       ],
-   q(0786) => [
+   q(0784) => [
       q(Guerrero Amuzgo),
       ],
-   q(0787) => [
+   q(0785) => [
       q(Ambelau),
       ],
-   q(0788) => [
+   q(0786) => [
       q(Western Neo-Aramaic),
       ],
-   q(0789) => [
+   q(0787) => [
       q(Anmatyerre),
       ],
-   q(0790) => [
+   q(0788) => [
       q(Ami),
       ],
-   q(0791) => [
+   q(0789) => [
       q(Atampaya),
       ],
-   q(0792) => [
+   q(0790) => [
       q(Andaqui),
       ],
-   q(0793) => [
+   q(0791) => [
       q(Andoa),
       ],
-   q(0794) => [
+   q(0792) => [
       q(Ngas),
       ],
-   q(0795) => [
+   q(0793) => [
       q(Ansus),
       ],
-   q(0796) => [
+   q(0794) => [
       q(Xaracuu),
       ],
-   q(0797) => [
+   q(0795) => [
       q(Animere),
       ],
-   q(0798) => [
+   q(0796) => [
       q(Nend),
       ],
-   q(0799) => [
+   q(0797) => [
       q(Andi),
       ],
-   q(0800) => [
+   q(0798) => [
       q(Anor),
       ],
-   q(0801) => [
+   q(0799) => [
       q(Goemai),
       ],
-   q(0802) => [
+   q(0800) => [
       q(Anu-Hkongso Chin),
       ],
-   q(0803) => [
+   q(0801) => [
       q(Anal),
       ],
-   q(0804) => [
+   q(0802) => [
       q(Obolo),
       ],
-   q(0805) => [
+   q(0803) => [
       q(Andoque),
       ],
-   q(0806) => [
+   q(0804) => [
       q(Jarawa (India)),
       ],
-   q(0807) => [
+   q(0805) => [
       q(Andh),
       ],
-   q(0808) => [
+   q(0806) => [
       q(Anserma),
       ],
-   q(0809) => [
+   q(0807) => [
       q(Antakarinya),
       ],
-   q(0810) => [
+   q(0808) => [
       q(Anuak),
       ],
-   q(0811) => [
+   q(0809) => [
       q(Denya),
       ],
-   q(0812) => [
+   q(0810) => [
       q(Anaang),
       ],
-   q(0813) => [
+   q(0811) => [
       q(Andra-Hus),
       ],
-   q(0814) => [
+   q(0812) => [
       q(Anyin),
       ],
-   q(0815) => [
+   q(0813) => [
       q(Anem),
       ],
-   q(0816) => [
+   q(0814) => [
       q(Angolar),
       ],
-   q(0817) => [
+   q(0815) => [
       q(Abom),
       ],
-   q(0818) => [
+   q(0816) => [
       q(Pemon),
       ],
-   q(0819) => [
+   q(0817) => [
       q(Andarum),
       ],
-   q(0820) => [
+   q(0818) => [
       q(Angal Enen),
       ],
-   q(0821) => [
+   q(0819) => [
       q(Bragat),
       ],
-   q(0822) => [
+   q(0820) => [
       q(Angoram),
       ],
-   q(0823) => [
+   q(0821) => [
       q(Arma),
       ],
-   q(0824) => [
+   q(0822) => [
       q(Anindilyakwa),
       ],
-   q(0825) => [
+   q(0823) => [
       q(Mufian),
       ],
-   q(0826) => [
+   q(0824) => [
       q(Arho),
       ],
-   q(0827) => [
+   q(0825) => [
       q(Alor),
       ],
-   q(0828) => [
+   q(0826) => [
       q(Omie),
       ],
-   q(0829) => [
+   q(0827) => [
       q(Bumbita Arapesh),
       ],
-   q(0830) => [
+   q(0828) => [
       q(Aore),
       ],
-   q(0831) => [
+   q(0829) => [
       q(Taikat),
       ],
-   q(0832) => [
+   q(0830) => [
+      q(Atong),
       q(A'tong),
       ],
-   q(0833) => [
+   q(0831) => [
       q(A'ou),
       ],
-   q(0834) => [
+   q(0832) => [
       q(Atorada),
       ],
-   q(0835) => [
+   q(0833) => [
       q(Uab Meto),
       ],
-   q(0836) => [
+   q(0834) => [
       q(Sa'a),
       ],
-   q(0837) => [
+   q(0835) => [
       q(North Levantine Arabic),
       ],
-   q(0838) => [
+   q(0836) => [
       q(Sudanese Arabic),
       ],
-   q(0839) => [
+   q(0837) => [
       q(Bukiyip),
       ],
-   q(0840) => [
+   q(0838) => [
       q(Pahanan Agta),
       ],
-   q(0841) => [
+   q(0839) => [
       q(Ampanang),
       ],
-   q(0842) => [
+   q(0840) => [
       q(Athpariya),
       ],
-   q(0843) => [
+   q(0841) => [
       q(Apiaka),
       ],
-   q(0844) => [
+   q(0842) => [
       q(Jicarilla Apache),
       ],
-   q(0845) => [
+   q(0843) => [
       q(Kiowa Apache),
       ],
-   q(0846) => [
+   q(0844) => [
       q(Lipan Apache),
       ],
-   q(0847) => [
+   q(0845) => [
       q(Mescalero-Chiricahua Apache),
       ],
-   q(0848) => [
+   q(0846) => [
       q(Apinaye),
       ],
-   q(0849) => [
+   q(0847) => [
       q(Ambul),
       ],
-   q(0850) => [
+   q(0848) => [
       q(Apma),
       ],
-   q(0851) => [
+   q(0849) => [
       q(A-Pucikwar),
       ],
-   q(0852) => [
+   q(0850) => [
       q(Arop-Lokep),
       ],
-   q(0853) => [
+   q(0851) => [
       q(Arop-Sissano),
       ],
-   q(0854) => [
+   q(0852) => [
       q(Apatani),
       ],
-   q(0855) => [
+   q(0853) => [
       q(Apurina),
       ],
-   q(0856) => [
+   q(0854) => [
       q(Alapmunte),
       ],
-   q(0857) => [
+   q(0855) => [
       q(Western Apache),
       ],
-   q(0858) => [
+   q(0856) => [
       q(Aputai),
       ],
-   q(0859) => [
+   q(0857) => [
       q(Apalai),
       ],
-   q(0860) => [
+   q(0858) => [
       q(Safeyoka),
       ],
-   q(0861) => [
+   q(0859) => [
       q(Archi),
       ],
-   q(0862) => [
+   q(0860) => [
       q(Ampari Dogon),
       ],
-   q(0863) => [
+   q(0861) => [
       q(Arigidi),
       ],
-   q(0864) => [
+   q(0862) => [
       q(Atohwaim),
       ],
-   q(0865) => [
+   q(0863) => [
       q(Northern Alta),
       ],
-   q(0866) => [
+   q(0864) => [
       q(Atakapa),
       ],
-   q(0867) => [
+   q(0865) => [
       q(Arha),
       ],
-   q(0868) => [
+   q(0866) => [
       q(Angaite),
       ],
-   q(0869) => [
+   q(0867) => [
       q(Akuntsu),
       ],
-   q(0870) => [
+   q(0868) => [
       q(Standard Arabic),
       ],
-   q(0871) => [
+   q(0869) => [
       q(Arabana),
       ],
-   q(0872) => [
+   q(0870) => [
       q(Western Arrarnta),
       ],
-   q(0873) => [
+   q(0871) => [
       q(Arhuaco),
       ],
-   q(0874) => [
+   q(0872) => [
       q(Arikara),
       ],
-   q(0875) => [
+   q(0873) => [
       q(Arapaso),
       ],
-   q(0876) => [
+   q(0874) => [
       q(Arikapu),
       ],
-   q(0877) => [
+   q(0875) => [
       q(Arabela),
       ],
-   q(0878) => [
+   q(0876) => [
       q(Araona),
       ],
-   q(0879) => [
+   q(0877) => [
       q(Algerian Arabic),
       ],
-   q(0880) => [
+   q(0878) => [
       q(Karo (Brazil)),
       ],
-   q(0881) => [
+   q(0879) => [
       q(Najdi Arabic),
       ],
-   q(0882) => [
+   q(0880) => [
       q(Arua (Amazonas State)),
       q(Arawa),
       ],
-   q(0883) => [
+   q(0881) => [
       q(Arbore),
       ],
-   q(0884) => [
+   q(0882) => [
       q(Arua (Rodonia State)),
       ],
-   q(0885) => [
+   q(0883) => [
       q(Moroccan Arabic),
       ],
-   q(0886) => [
+   q(0884) => [
       q(Egyptian Arabic),
       ],
-   q(0887) => [
+   q(0885) => [
       q(Asu (Tanzania)),
       ],
-   q(0888) => [
+   q(0886) => [
       q(Assiniboine),
       ],
-   q(0889) => [
+   q(0887) => [
       q(Casuarina Coast Asmat),
       ],
-   q(0890) => [
+   q(0888) => [
       q(Asas),
       ],
-   q(0891) => [
+   q(0889) => [
       q(American Sign Language),
       ],
-   q(0892) => [
+   q(0890) => [
       q(Australian Sign Language),
       ],
-   q(0893) => [
+   q(0891) => [
       q(Cishingini),
       ],
-   q(0894) => [
+   q(0892) => [
       q(Abishira),
       ],
-   q(0895) => [
+   q(0893) => [
       q(Buruwai),
       ],
-   q(0896) => [
+   q(0894) => [
       q(Sari),
       ],
-   q(0897) => [
+   q(0895) => [
       q(Ashkun),
       ],
-   q(0898) => [
+   q(0896) => [
       q(Asilulu),
       ],
-   q(0899) => [
+   q(0897) => [
       q(Xingu Asurini),
       ],
-   q(0900) => [
+   q(0898) => [
       q(Dano),
       ],
-   q(0901) => [
+   q(0899) => [
       q(Algerian Sign Language),
       ],
-   q(0902) => [
+   q(0900) => [
       q(Austrian Sign Language),
       ],
-   q(0903) => [
+   q(0901) => [
       q(Asuri),
       ],
-   q(0904) => [
+   q(0902) => [
       q(Ipulo),
       ],
-   q(0905) => [
+   q(0903) => [
       q(Tocantins Asurini),
       ],
-   q(0906) => [
+   q(0904) => [
       q(Asoa),
       ],
-   q(0907) => [
+   q(0905) => [
       q(Australian Aborigines Sign Language),
       ],
-   q(0908) => [
+   q(0906) => [
       q(Muratayak),
       ],
-   q(0909) => [
+   q(0907) => [
       q(Yaosakor Asmat),
       ],
-   q(0910) => [
+   q(0908) => [
       q(As),
       ],
-   q(0911) => [
+   q(0909) => [
       q(Pele-Ata),
       ],
-   q(0912) => [
+   q(0910) => [
       q(Zaiwa),
       ],
-   q(0913) => [
+   q(0911) => [
       q(Atsahuaca),
       ],
-   q(0914) => [
+   q(0912) => [
       q(Ata Manobo),
       ],
-   q(0915) => [
+   q(0913) => [
       q(Atemble),
       ],
-   q(0916) => [
+   q(0914) => [
       q(Ivbie North-Okpela-Arhe),
       ],
-   q(0917) => [
+   q(0915) => [
       q(Attie),
       ],
-   q(0918) => [
+   q(0916) => [
       q(Atikamekw),
       ],
-   q(0919) => [
+   q(0917) => [
       q(Ati),
       ],
-   q(0920) => [
+   q(0918) => [
       q(Mt. Iraya Agta),
       ],
-   q(0921) => [
+   q(0919) => [
       q(Ata),
       ],
-   q(0922) => [
+   q(0920) => [
       q(Ashtiani),
       ],
-   q(0923) => [
-      q(Atong),
-      ],
-   q(0924) => [
+   q(0921) => [
       q(Pudtol Atta),
       ],
-   q(0925) => [
+   q(0922) => [
       q(Aralle-Tabulahan),
       ],
-   q(0926) => [
+   q(0923) => [
       q(Waimiri-Atroari),
       ],
-   q(0927) => [
+   q(0924) => [
       q(Gros Ventre),
       ],
-   q(0928) => [
+   q(0925) => [
       q(Pamplona Atta),
       ],
-   q(0929) => [
+   q(0926) => [
       q(Reel),
       ],
-   q(0930) => [
+   q(0927) => [
       q(Northern Altai),
       ],
-   q(0931) => [
+   q(0928) => [
       q(Atsugewi),
       ],
-   q(0932) => [
+   q(0929) => [
       q(Arutani),
       ],
-   q(0933) => [
+   q(0930) => [
       q(Aneityum),
       ],
-   q(0934) => [
+   q(0931) => [
       q(Arta),
       ],
-   q(0935) => [
+   q(0932) => [
       q(Asumboa),
       ],
-   q(0936) => [
+   q(0933) => [
       q(Alugu),
       ],
-   q(0937) => [
+   q(0934) => [
       q(Waorani),
       ],
-   q(0938) => [
+   q(0935) => [
       q(Anuta),
       ],
-   q(0939) => [
-      q(=/Kx'au//'ein),
-      ],
-   q(0940) => [
+   q(0936) => [
       q(Aguna),
       ],
-   q(0941) => [
+   q(0937) => [
       q(Aushi),
       ],
-   q(0942) => [
+   q(0938) => [
       q(Anuki),
       ],
-   q(0943) => [
+   q(0939) => [
       q(Awjilah),
       ],
-   q(0944) => [
+   q(0940) => [
       q(Heyo),
       ],
-   q(0945) => [
+   q(0941) => [
       q(Aulua),
       ],
-   q(0946) => [
+   q(0942) => [
       q(Asu (Nigeria)),
       ],
-   q(0947) => [
+   q(0943) => [
       q(Molmo One),
       ],
-   q(0948) => [
+   q(0944) => [
       q(Auyokawa),
       ],
-   q(0949) => [
+   q(0945) => [
       q(Makayam),
       ],
-   q(0950) => [
+   q(0946) => [
       q(Anus),
       q(Korur),
       ],
-   q(0951) => [
+   q(0947) => [
       q(Aruek),
       ],
-   q(0952) => [
+   q(0948) => [
       q(Austral),
       ],
-   q(0953) => [
+   q(0949) => [
       q(Auye),
       ],
-   q(0954) => [
+   q(0950) => [
       q(Awyi),
       ],
-   q(0955) => [
+   q(0951) => [
       q(Aura),
       ],
-   q(0956) => [
+   q(0952) => [
       q(Awiyaana),
       ],
-   q(0957) => [
+   q(0953) => [
       q(Uzbeki Arabic),
       ],
-   q(0958) => [
+   q(0954) => [
       q(Avau),
       ],
-   q(0959) => [
+   q(0955) => [
       q(Alviri-Vidari),
       ],
-   q(0960) => [
+   q(0956) => [
       q(Avikam),
       ],
-   q(0961) => [
+   q(0957) => [
       q(Kotava),
       ],
-   q(0962) => [
+   q(0958) => [
       q(Eastern Egyptian Bedawi Arabic),
       ],
-   q(0963) => [
+   q(0959) => [
       q(Angkamuthi),
       ],
-   q(0964) => [
+   q(0960) => [
       q(Avatime),
       ],
-   q(0965) => [
+   q(0961) => [
       q(Agavotaguerra),
       ],
-   q(0966) => [
+   q(0962) => [
       q(Aushiri),
       ],
-   q(0967) => [
+   q(0963) => [
       q(Au),
       ],
-   q(0968) => [
+   q(0964) => [
       q(Avokaya),
       ],
-   q(0969) => [
+   q(0965) => [
       q(Ava-Canoeiro),
       ],
-   q(0970) => [
+   q(0966) => [
       q(Awa (Papua New Guinea)),
       ],
-   q(0971) => [
+   q(0967) => [
       q(Cicipu),
       ],
-   q(0972) => [
+   q(0968) => [
       q(Aweti),
       ],
-   q(0973) => [
+   q(0969) => [
       q(Anguthimri),
       ],
-   q(0974) => [
+   q(0970) => [
       q(Awbono),
       ],
-   q(0975) => [
+   q(0971) => [
       q(Aekyom),
       ],
-   q(0976) => [
+   q(0972) => [
       q(Awabakal),
       ],
-   q(0977) => [
+   q(0973) => [
       q(Arawum),
       ],
-   q(0978) => [
+   q(0974) => [
       q(Awngi),
       ],
-   q(0979) => [
+   q(0975) => [
       q(Awak),
       ],
-   q(0980) => [
+   q(0976) => [
       q(Awera),
       ],
-   q(0981) => [
+   q(0977) => [
       q(South Awyu),
       ],
-   q(0982) => [
+   q(0978) => [
       q(Arawete),
       ],
-   q(0983) => [
+   q(0979) => [
       q(Central Awyu),
       ],
-   q(0984) => [
+   q(0980) => [
       q(Jair Awyu),
       ],
-   q(0985) => [
+   q(0981) => [
       q(Awun),
       ],
-   q(0986) => [
+   q(0982) => [
       q(Awara),
       ],
-   q(0987) => [
+   q(0983) => [
       q(Edera Awyu),
       ],
-   q(0988) => [
+   q(0984) => [
       q(Abipon),
       ],
-   q(0989) => [
+   q(0985) => [
       q(Ayerrerenge),
       ],
-   q(0990) => [
+   q(0986) => [
       q(Mato Grosso Arara),
       ],
-   q(0991) => [
+   q(0987) => [
       q(Yaka (Central African Republic)),
       ],
-   q(0992) => [
+   q(0988) => [
       q(Lower Southern Aranda),
       ],
-   q(0993) => [
+   q(0989) => [
       q(Middle Armenian),
       ],
-   q(0994) => [
+   q(0990) => [
       q(Xaragure),
       ],
-   q(0995) => [
+   q(0991) => [
       q(Awar),
       ],
-   q(0996) => [
+   q(0992) => [
       q(Ayizo Gbe),
       ],
-   q(0997) => [
+   q(0993) => [
       q(Southern Aymara),
       ],
-   q(0998) => [
+   q(0994) => [
       q(Ayabadhu),
       ],
-   q(0999) => [
+   q(0995) => [
       q(Ayere),
       ],
-   q(1000) => [
+   q(0996) => [
       q(Ginyanga),
       ],
-   q(1001) => [
+   q(0997) => [
       q(Hadrami Arabic),
       ],
-   q(1002) => [
+   q(0998) => [
       q(Leyigha),
       ],
-   q(1003) => [
+   q(0999) => [
       q(Akuku),
       ],
-   q(1004) => [
+   q(1000) => [
       q(Libyan Arabic),
       ],
-   q(1005) => [
+   q(1001) => [
       q(Sanaani Arabic),
       ],
-   q(1006) => [
+   q(1002) => [
       q(Ayoreo),
       ],
-   q(1007) => [
+   q(1003) => [
       q(North Mesopotamian Arabic),
       ],
-   q(1008) => [
+   q(1004) => [
       q(Ayi (Papua New Guinea)),
       ],
-   q(1009) => [
+   q(1005) => [
       q(Central Aymara),
       ],
-   q(1010) => [
+   q(1006) => [
       q(Sorsogon Ayta),
       ],
-   q(1011) => [
+   q(1007) => [
       q(Magbukun Ayta),
       ],
-   q(1012) => [
+   q(1008) => [
       q(Ayu),
       ],
-   q(1013) => [
+   q(1009) => [
       q(Tayabas Ayta),
       ],
-   q(1014) => [
+   q(1010) => [
       q(Mai Brat),
       ],
-   q(1015) => [
+   q(1011) => [
       q(Azha),
       ],
-   q(1016) => [
+   q(1012) => [
       q(South Azerbaijani),
       ],
-   q(1017) => [
+   q(1013) => [
       q(Eastern Durango Nahuatl),
       ],
-   q(1018) => [
+   q(1014) => [
       q(San Pedro Amuzgos Amuzgo),
       ],
-   q(1019) => [
+   q(1015) => [
       q(North Azerbaijani),
       ],
-   q(1020) => [
+   q(1016) => [
       q(Ipalapa Amuzgo),
       ],
-   q(1021) => [
+   q(1017) => [
       q(Western Durango Nahuatl),
       ],
-   q(1022) => [
+   q(1018) => [
       q(Awing),
       ],
-   q(1023) => [
+   q(1019) => [
       q(Faire Atta),
       ],
-   q(1024) => [
+   q(1020) => [
       q(Highland Puebla Nahuatl),
       ],
-   q(1025) => [
+   q(1021) => [
       q(Babatana),
       ],
-   q(1026) => [
+   q(1022) => [
       q(Bainouk-Gunyuno),
       ],
-   q(1027) => [
+   q(1023) => [
       q(Badui),
       ],
-   q(1028) => [
+   q(1024) => [
       q(Bare),
       ],
-   q(1029) => [
+   q(1025) => [
       q(Nubaca),
       ],
-   q(1030) => [
+   q(1026) => [
       q(Tuki),
       ],
-   q(1031) => [
+   q(1027) => [
       q(Bahamas Creole English),
       ],
-   q(1032) => [
+   q(1028) => [
       q(Barakai),
       ],
-   q(1033) => [
+   q(1029) => [
       q(Waimaha),
       ],
-   q(1034) => [
+   q(1030) => [
       q(Bantawa),
       ],
-   q(1035) => [
+   q(1031) => [
       q(Bavarian),
       ],
-   q(1036) => [
+   q(1032) => [
       q(Bada (Nigeria)),
       ],
-   q(1037) => [
+   q(1033) => [
       q(Vengo),
       ],
-   q(1038) => [
+   q(1034) => [
       q(Bambili-Bambui),
       ],
-   q(1039) => [
+   q(1035) => [
       q(Bamun),
       ],
-   q(1040) => [
+   q(1036) => [
       q(Batuley),
       ],
-   q(1041) => [
+   q(1037) => [
       q(Baatonum),
       ],
-   q(1042) => [
+   q(1038) => [
       q(Barai),
       ],
-   q(1043) => [
+   q(1039) => [
       q(Batak Toba),
       ],
-   q(1044) => [
+   q(1040) => [
       q(Bau),
       ],
-   q(1045) => [
+   q(1041) => [
       q(Bangba),
       ],
-   q(1046) => [
+   q(1042) => [
       q(Baibai),
       ],
-   q(1047) => [
+   q(1043) => [
       q(Barama),
       ],
-   q(1048) => [
+   q(1044) => [
       q(Bugan),
       ],
-   q(1049) => [
+   q(1045) => [
       q(Barombi),
       ],
-   q(1050) => [
+   q(1046) => [
       q(Ghomala'),
       ],
-   q(1051) => [
+   q(1047) => [
       q(Babanki),
       ],
-   q(1052) => [
+   q(1048) => [
       q(Bats),
       ],
-   q(1053) => [
+   q(1049) => [
       q(Babango),
       ],
-   q(1054) => [
+   q(1050) => [
       q(Uneapa),
       ],
-   q(1055) => [
+   q(1051) => [
       q(Northern Bobo Madare),
       q(Konabere),
       ],
-   q(1056) => [
+   q(1052) => [
       q(West Central Banda),
       ],
-   q(1057) => [
+   q(1053) => [
       q(Bamali),
       ],
-   q(1058) => [
+   q(1054) => [
       q(Girawa),
       ],
-   q(1059) => [
+   q(1055) => [
       q(Bakpinka),
       ],
-   q(1060) => [
+   q(1056) => [
       q(Mburku),
       ],
-   q(1061) => [
+   q(1057) => [
       q(Kulung (Nigeria)),
       ],
-   q(1062) => [
+   q(1058) => [
       q(Karnai),
       ],
-   q(1063) => [
+   q(1059) => [
       q(Baba),
       ],
-   q(1064) => [
+   q(1060) => [
       q(Bubia),
       ],
-   q(1065) => [
+   q(1061) => [
       q(Befang),
       ],
-   q(1066) => [
+   q(1062) => [
       q(Babalia Creole Arabic),
       ],
-   q(1067) => [
+   q(1063) => [
       q(Central Bai),
       ],
-   q(1068) => [
+   q(1064) => [
       q(Bainouk-Samik),
       ],
-   q(1069) => [
+   q(1065) => [
       q(Southern Balochi),
       ],
-   q(1070) => [
+   q(1066) => [
       q(North Babar),
       ],
-   q(1071) => [
+   q(1067) => [
       q(Bamenyam),
       ],
-   q(1072) => [
+   q(1068) => [
       q(Bamu),
       ],
-   q(1073) => [
+   q(1069) => [
       q(Baga Binari),
       ],
-   q(1074) => [
+   q(1070) => [
       q(Bariai),
       ],
-   q(1075) => [
+   q(1071) => [
       q(Baoule),
       ],
-   q(1076) => [
+   q(1072) => [
       q(Bardi),
       ],
-   q(1077) => [
+   q(1073) => [
       q(Bunaba),
       ],
-   q(1078) => [
+   q(1074) => [
       q(Central Bikol),
       ],
-   q(1079) => [
+   q(1075) => [
       q(Bannoni),
       ],
-   q(1080) => [
+   q(1076) => [
       q(Bali (Nigeria)),
       ],
-   q(1081) => [
+   q(1077) => [
       q(Kaluli),
       ],
-   q(1082) => [
+   q(1078) => [
       q(Bali (Democratic Republic of Congo)),
       ],
-   q(1083) => [
+   q(1079) => [
       q(Bench),
       ],
-   q(1084) => [
+   q(1080) => [
       q(Babine),
       ],
-   q(1085) => [
+   q(1081) => [
       q(Kohumono),
       ],
-   q(1086) => [
+   q(1082) => [
       q(Bendi),
       ],
-   q(1087) => [
+   q(1083) => [
       q(Awad Bing),
       ],
-   q(1088) => [
+   q(1084) => [
       q(Shoo-Minda-Nye),
       ],
-   q(1089) => [
+   q(1085) => [
       q(Bana),
       ],
-   q(1090) => [
+   q(1086) => [
       q(Bacama),
       ],
-   q(1091) => [
+   q(1087) => [
       q(Bainouk-Gunyaamolo),
       ],
-   q(1092) => [
+   q(1088) => [
       q(Bayot),
       ],
-   q(1093) => [
+   q(1089) => [
       q(Basap),
       ],
-   q(1094) => [
+   q(1090) => [
       q(Embera-Baudo),
       ],
-   q(1095) => [
+   q(1091) => [
       q(Bunama),
       ],
-   q(1096) => [
+   q(1092) => [
       q(Bade),
       ],
-   q(1097) => [
+   q(1093) => [
       q(Biage),
       ],
-   q(1098) => [
+   q(1094) => [
       q(Bonggi),
       ],
-   q(1099) => [
+   q(1095) => [
       q(Baka (Sudan)),
       ],
-   q(1100) => [
+   q(1096) => [
       q(Burun),
       ],
-   q(1101) => [
+   q(1097) => [
       q(Bai),
       ],
-   q(1102) => [
+   q(1098) => [
       q(Budukh),
       ],
-   q(1103) => [
+   q(1099) => [
       q(Indonesian Bajau),
       ],
-   q(1104) => [
+   q(1100) => [
       q(Buduma),
       ],
-   q(1105) => [
+   q(1101) => [
       q(Baldemu),
       ],
-   q(1106) => [
+   q(1102) => [
       q(Morom),
       ],
-   q(1107) => [
+   q(1103) => [
       q(Bende),
       ],
-   q(1108) => [
+   q(1104) => [
       q(Bahnar),
       ],
-   q(1109) => [
+   q(1105) => [
       q(West Coast Bajau),
       ],
-   q(1110) => [
+   q(1106) => [
       q(Burunge),
       ],
-   q(1111) => [
+   q(1107) => [
       q(Bokoto),
       ],
-   q(1112) => [
+   q(1108) => [
       q(Oroko),
       ],
-   q(1113) => [
+   q(1109) => [
       q(Bodo Parja),
       ],
-   q(1114) => [
+   q(1110) => [
       q(Baham),
       ],
-   q(1115) => [
+   q(1111) => [
       q(Budong-Budong),
       ],
-   q(1116) => [
+   q(1112) => [
       q(Bandjalang),
       ],
-   q(1117) => [
+   q(1113) => [
       q(Badeshi),
       ],
-   q(1118) => [
+   q(1114) => [
       q(Beaver),
       ],
-   q(1119) => [
+   q(1115) => [
       q(Bebele),
       ],
-   q(1120) => [
+   q(1116) => [
       q(Iceve-Maci),
       ],
-   q(1121) => [
+   q(1117) => [
       q(Bedoanas),
       ],
-   q(1122) => [
+   q(1118) => [
       q(Byangsi),
       ],
-   q(1123) => [
+   q(1119) => [
       q(Benabena),
       ],
-   q(1124) => [
+   q(1120) => [
       q(Belait),
       ],
-   q(1125) => [
+   q(1121) => [
       q(Biali),
       ],
-   q(1126) => [
+   q(1122) => [
       q(Bekati'),
       ],
-   q(1127) => [
+   q(1123) => [
       q(Bebeli),
       ],
-   q(1128) => [
+   q(1124) => [
       q(Beami),
       ],
-   q(1129) => [
+   q(1125) => [
       q(Besoa),
       ],
-   q(1130) => [
+   q(1126) => [
       q(Beembe),
       ],
-   q(1131) => [
+   q(1127) => [
       q(Besme),
       ],
-   q(1132) => [
+   q(1128) => [
       q(Guiberoua Bete),
       ],
-   q(1133) => [
+   q(1129) => [
       q(Blagar),
       ],
-   q(1134) => [
+   q(1130) => [
       q(Daloa Bete),
       ],
-   q(1135) => [
+   q(1131) => [
       q(Betawi),
       ],
-   q(1136) => [
+   q(1132) => [
       q(Jur Modo),
       ],
-   q(1137) => [
+   q(1133) => [
       q(Beli (Papua New Guinea)),
       ],
-   q(1138) => [
+   q(1134) => [
       q(Bena (Tanzania)),
       ],
-   q(1139) => [
+   q(1135) => [
       q(Bari),
       ],
-   q(1140) => [
+   q(1136) => [
       q(Pauri Bareli),
       ],
-   q(1141) => [
+   q(1137) => [
       q(Panyi Bai),
       q(Northern Bai),
       ],
-   q(1142) => [
+   q(1138) => [
       q(Bafut),
       ],
-   q(1143) => [
+   q(1139) => [
       q(Betaf),
       q(Tena),
       ],
-   q(1144) => [
+   q(1140) => [
       q(Bofi),
       ],
-   q(1145) => [
+   q(1141) => [
       q(Busang Kayan),
       ],
-   q(1146) => [
+   q(1142) => [
       q(Blafe),
       ],
-   q(1147) => [
+   q(1143) => [
       q(British Sign Language),
       ],
-   q(1148) => [
+   q(1144) => [
       q(Bafanji),
       ],
-   q(1149) => [
+   q(1145) => [
       q(Ban Khor Sign Language),
       ],
-   q(1150) => [
+   q(1146) => [
       q(Banda-Ndele),
       ],
-   q(1151) => [
+   q(1147) => [
       q(Mmen),
       ],
-   q(1152) => [
+   q(1148) => [
       q(Bunak),
       ],
-   q(1153) => [
+   q(1149) => [
       q(Malba Birifor),
       ],
-   q(1154) => [
+   q(1150) => [
       q(Beba),
       ],
-   q(1155) => [
+   q(1151) => [
       q(Badaga),
       ],
-   q(1156) => [
+   q(1152) => [
       q(Bazigar),
       ],
-   q(1157) => [
+   q(1153) => [
       q(Southern Bai),
       ],
-   q(1158) => [
+   q(1154) => [
       q(Balti),
       ],
-   q(1159) => [
+   q(1155) => [
       q(Gahri),
       ],
-   q(1160) => [
+   q(1156) => [
       q(Bondo),
       ],
-   q(1161) => [
+   q(1157) => [
       q(Bantayanon),
       ],
-   q(1162) => [
+   q(1158) => [
       q(Bagheli),
       ],
-   q(1163) => [
+   q(1159) => [
       q(Mahasu Pahari),
       ],
-   q(1164) => [
+   q(1160) => [
       q(Gwamhi-Wuri),
       ],
-   q(1165) => [
+   q(1161) => [
       q(Bobongko),
       ],
-   q(1166) => [
+   q(1162) => [
       q(Haryanvi),
       ],
-   q(1167) => [
+   q(1163) => [
       q(Rathwi Bareli),
       ],
-   q(1168) => [
+   q(1164) => [
       q(Bauria),
       ],
-   q(1169) => [
+   q(1165) => [
       q(Bangandu),
       ],
-   q(1170) => [
+   q(1166) => [
       q(Bugun),
       ],
-   q(1171) => [
+   q(1167) => [
       q(Giangan),
       ],
-   q(1172) => [
+   q(1168) => [
       q(Bangolan),
       ],
-   q(1173) => [
+   q(1169) => [
       q(Bit),
       q(Buxinhua),
       ],
-   q(1174) => [
+   q(1170) => [
       q(Bo (Laos)),
       ],
-   q(1175) => [
+   q(1171) => [
       q(Baga Mboteni),
       ],
-   q(1176) => [
+   q(1172) => [
       q(Western Balochi),
       ],
-   q(1177) => [
+   q(1173) => [
       q(Baga Koga),
       ],
-   q(1178) => [
+   q(1174) => [
       q(Eastern Balochi),
       ],
-   q(1179) => [
+   q(1175) => [
       q(Bagri),
       ],
-   q(1180) => [
+   q(1176) => [
       q(Bawm Chin),
       ],
-   q(1181) => [
+   q(1177) => [
       q(Tagabawa),
       ],
-   q(1182) => [
+   q(1178) => [
       q(Bughotu),
       ],
-   q(1183) => [
+   q(1179) => [
       q(Mbongno),
       ],
-   q(1184) => [
+   q(1180) => [
       q(Warkay-Bipim),
       ],
-   q(1185) => [
+   q(1181) => [
       q(Bhatri),
       ],
-   q(1186) => [
+   q(1182) => [
       q(Balkan Gagauz Turkish),
       ],
-   q(1187) => [
+   q(1183) => [
       q(Benggoi),
       ],
-   q(1188) => [
+   q(1184) => [
       q(Banggai),
       ],
-   q(1189) => [
+   q(1185) => [
       q(Bharia),
       ],
-   q(1190) => [
+   q(1186) => [
       q(Bhili),
       ],
-   q(1191) => [
+   q(1187) => [
       q(Biga),
       ],
-   q(1192) => [
+   q(1188) => [
       q(Bhadrawahi),
       ],
-   q(1193) => [
+   q(1189) => [
       q(Bhaya),
       ],
-   q(1194) => [
+   q(1190) => [
       q(Odiai),
       ],
-   q(1195) => [
+   q(1191) => [
       q(Binandere),
       ],
-   q(1196) => [
+   q(1192) => [
       q(Bukharic),
       ],
-   q(1197) => [
+   q(1193) => [
       q(Bhilali),
       ],
-   q(1198) => [
+   q(1194) => [
       q(Bahing),
       ],
-   q(1199) => [
+   q(1195) => [
       q(Bimin),
       ],
-   q(1200) => [
+   q(1196) => [
       q(Bathari),
       ],
-   q(1201) => [
+   q(1197) => [
       q(Bohtan Neo-Aramaic),
       ],
-   q(1202) => [
+   q(1198) => [
       q(Bima),
       ],
-   q(1203) => [
+   q(1199) => [
       q(Tukang Besi South),
       ],
-   q(1204) => [
+   q(1200) => [
       q(Bara Malagasy),
       ],
-   q(1205) => [
+   q(1201) => [
       q(Buwal),
       ],
-   q(1206) => [
+   q(1202) => [
       q(Bhattiyali),
       ],
-   q(1207) => [
+   q(1203) => [
       q(Bhunjia),
       ],
-   q(1208) => [
+   q(1204) => [
       q(Bahau),
       ],
-   q(1209) => [
+   q(1205) => [
       q(Biak),
       ],
-   q(1210) => [
+   q(1206) => [
       q(Bhalay),
       ],
-   q(1211) => [
+   q(1207) => [
       q(Bhele),
       ],
-   q(1212) => [
+   q(1208) => [
       q(Bada (Indonesia)),
       ],
-   q(1213) => [
+   q(1209) => [
       q(Badimaya),
       ],
-   q(1214) => [
+   q(1210) => [
       q(Bissa),
       q(Bisa),
       ],
-   q(1215) => [
+   q(1211) => [
       q(Bikaru),
       ],
-   q(1216) => [
+   q(1212) => [
       q(Bidiyo),
       ],
-   q(1217) => [
+   q(1213) => [
       q(Bepour),
       ],
-   q(1218) => [
+   q(1214) => [
       q(Biafada),
       ],
-   q(1219) => [
+   q(1215) => [
       q(Biangai),
       ],
-   q(1220) => [
+   q(1216) => [
       q(Vaghat-Ya-Bijim-Legeri),
       ],
-   q(1221) => [
+   q(1217) => [
       q(Bile),
       ],
-   q(1222) => [
+   q(1218) => [
       q(Bimoba),
       ],
-   q(1223) => [
+   q(1219) => [
       q(Nai),
       ],
-   q(1224) => [
+   q(1220) => [
       q(Bila),
       ],
-   q(1225) => [
+   q(1221) => [
       q(Bipi),
       ],
-   q(1226) => [
+   q(1222) => [
       q(Bisorio),
       ],
-   q(1227) => [
+   q(1223) => [
       q(Berinomo),
       ],
-   q(1228) => [
+   q(1224) => [
       q(Biete),
       ],
-   q(1229) => [
+   q(1225) => [
       q(Southern Birifor),
       ],
-   q(1230) => [
+   q(1226) => [
       q(Kol (Cameroon)),
       ],
-   q(1231) => [
+   q(1227) => [
       q(Bijori),
       ],
-   q(1232) => [
+   q(1228) => [
       q(Birhor),
       ],
-   q(1233) => [
+   q(1229) => [
       q(Baloi),
       ],
-   q(1234) => [
+   q(1230) => [
       q(Budza),
       ],
-   q(1235) => [
+   q(1231) => [
       q(Banggarla),
       ],
-   q(1236) => [
+   q(1232) => [
       q(Bariji),
       ],
-   q(1237) => [
+   q(1233) => [
       q(Biao-Jiao Mien),
       ],
-   q(1238) => [
+   q(1234) => [
       q(Barzani Jewish Neo-Aramaic),
       ],
-   q(1239) => [
+   q(1235) => [
       q(Bidyogo),
       ],
-   q(1240) => [
+   q(1236) => [
       q(Bahinemo),
       ],
-   q(1241) => [
+   q(1237) => [
       q(Burji),
       ],
-   q(1242) => [
+   q(1238) => [
       q(Kanauji),
       ],
-   q(1243) => [
+   q(1239) => [
       q(Barok),
       ],
-   q(1244) => [
+   q(1240) => [
       q(Bulu (Papua New Guinea)),
       ],
-   q(1245) => [
+   q(1241) => [
       q(Bajelani),
       ],
-   q(1246) => [
+   q(1242) => [
       q(Banjar),
       ],
-   q(1247) => [
+   q(1243) => [
       q(Mid-Southern Banda),
       ],
-   q(1248) => [
+   q(1244) => [
       q(Fanamaket),
       ],
-   q(1249) => [
+   q(1245) => [
       q(Binumarien),
       ],
-   q(1250) => [
+   q(1246) => [
       q(Bajan),
       ],
-   q(1251) => [
+   q(1247) => [
       q(Balanta-Ganja),
       ],
-   q(1252) => [
+   q(1248) => [
       q(Busuu),
       ],
-   q(1253) => [
+   q(1249) => [
       q(Bedjond),
       ],
-   q(1254) => [
+   q(1250) => [
       q(Bakwe),
       ],
-   q(1255) => [
+   q(1251) => [
       q(Banao Itneg),
       ],
-   q(1256) => [
+   q(1252) => [
       q(Bayali),
       ],
-   q(1257) => [
+   q(1253) => [
       q(Baruga),
       ],
-   q(1258) => [
+   q(1254) => [
       q(Kyak),
       ],
-   q(1259) => [
+   q(1255) => [
       q(Baka (Cameroon)),
       ],
-   q(1260) => [
+   q(1256) => [
       q(Binukid),
       q(Talaandig),
       ],
-   q(1261) => [
+   q(1257) => [
       q(Beeke),
       ],
-   q(1262) => [
+   q(1258) => [
       q(Buraka),
       ],
-   q(1263) => [
+   q(1259) => [
       q(Bakoko),
       ],
-   q(1264) => [
+   q(1260) => [
       q(Baki),
       ],
-   q(1265) => [
+   q(1261) => [
       q(Pande),
       ],
-   q(1266) => [
+   q(1262) => [
       q(Brokskat),
       ],
-   q(1267) => [
+   q(1263) => [
       q(Berik),
       ],
-   q(1268) => [
+   q(1264) => [
       q(Kom (Cameroon)),
       ],
-   q(1269) => [
+   q(1265) => [
       q(Bukitan),
       ],
-   q(1270) => [
+   q(1266) => [
       q(Kwa'),
       ],
-   q(1271) => [
+   q(1267) => [
       q(Boko (Democratic Republic of Congo)),
       ],
-   q(1272) => [
+   q(1268) => [
       q(Bakairi),
       ],
-   q(1273) => [
+   q(1269) => [
       q(Bakumpai),
       ],
-   q(1274) => [
+   q(1270) => [
       q(Northern Sorsoganon),
       ],
-   q(1275) => [
+   q(1271) => [
       q(Boloki),
       ],
-   q(1276) => [
+   q(1272) => [
       q(Buhid),
       ],
-   q(1277) => [
+   q(1273) => [
       q(Bekwarra),
       ],
-   q(1278) => [
+   q(1274) => [
       q(Bekwel),
       ],
-   q(1279) => [
+   q(1275) => [
       q(Baikeno),
       ],
-   q(1280) => [
+   q(1276) => [
       q(Bokyi),
       ],
-   q(1281) => [
+   q(1277) => [
       q(Bungku),
       ],
-   q(1282) => [
+   q(1278) => [
       q(Bilua),
       ],
-   q(1283) => [
+   q(1279) => [
       q(Bella Coola),
       ],
-   q(1284) => [
+   q(1280) => [
       q(Bolango),
       ],
-   q(1285) => [
+   q(1281) => [
       q(Balanta-Kentohe),
       ],
-   q(1286) => [
+   q(1282) => [
       q(Buol),
       ],
-   q(1287) => [
+   q(1283) => [
       q(Balau),
       ],
-   q(1288) => [
+   q(1284) => [
       q(Kuwaa),
       ],
-   q(1289) => [
+   q(1285) => [
       q(Bolia),
       ],
-   q(1290) => [
+   q(1286) => [
       q(Bolongan),
       ],
-   q(1291) => [
+   q(1287) => [
       q(Pa'o Karen),
       q(Pa'O),
       ],
-   q(1292) => [
+   q(1288) => [
       q(Biloxi),
       ],
-   q(1293) => [
+   q(1289) => [
       q(Beli (Sudan)),
       ],
-   q(1294) => [
+   q(1290) => [
       q(Southern Catanduanes Bikol),
       ],
-   q(1295) => [
+   q(1291) => [
       q(Anii),
       ],
-   q(1296) => [
+   q(1292) => [
       q(Blablanga),
       ],
-   q(1297) => [
+   q(1293) => [
       q(Baluan-Pam),
       ],
-   q(1298) => [
+   q(1294) => [
       q(Blang),
       ],
-   q(1299) => [
+   q(1295) => [
       q(Balaesang),
       ],
-   q(1300) => [
+   q(1296) => [
       q(Tai Dam),
       ],
-   q(1301) => [
+   q(1297) => [
       q(Bolo),
       ],
-   q(1302) => [
+   q(1298) => [
       q(Balangao),
       ],
-   q(1303) => [
+   q(1299) => [
       q(Mag-Indi Ayta),
       ],
-   q(1304) => [
+   q(1300) => [
       q(Notre),
       ],
-   q(1305) => [
+   q(1301) => [
       q(Balantak),
       ],
-   q(1306) => [
+   q(1302) => [
       q(Lame),
       ],
-   q(1307) => [
+   q(1303) => [
       q(Bembe),
       ],
-   q(1308) => [
+   q(1304) => [
       q(Biem),
       ],
-   q(1309) => [
+   q(1305) => [
       q(Baga Manduri),
       ],
-   q(1310) => [
+   q(1306) => [
       q(Limassa),
       ],
-   q(1311) => [
+   q(1307) => [
       q(Bom),
       ],
-   q(1312) => [
+   q(1308) => [
       q(Bamwe),
       ],
-   q(1313) => [
+   q(1309) => [
       q(Kein),
       ],
-   q(1314) => [
+   q(1310) => [
       q(Bagirmi),
       ],
-   q(1315) => [
+   q(1311) => [
       q(Bote-Majhi),
       ],
-   q(1316) => [
+   q(1312) => [
       q(Ghayavi),
       ],
-   q(1317) => [
+   q(1313) => [
       q(Bomboli),
       ],
-   q(1318) => [
+   q(1314) => [
       q(Northern Betsimisaraka Malagasy),
       ],
-   q(1319) => [
+   q(1315) => [
       q(Bina (Papua New Guinea)),
       ],
-   q(1320) => [
+   q(1316) => [
       q(Bambalang),
       ],
-   q(1321) => [
+   q(1317) => [
       q(Bulgebi),
       ],
-   q(1322) => [
+   q(1318) => [
       q(Bomu),
       ],
-   q(1323) => [
+   q(1319) => [
       q(Muinane),
       ],
-   q(1324) => [
+   q(1320) => [
       q(Bilma Kanuri),
       ],
-   q(1325) => [
+   q(1321) => [
       q(Biao Mon),
       ],
-   q(1326) => [
+   q(1322) => [
       q(Somba-Siawari),
       ],
-   q(1327) => [
+   q(1323) => [
       q(Bum),
       ],
-   q(1328) => [
+   q(1324) => [
       q(Bomwali),
       ],
-   q(1329) => [
+   q(1325) => [
       q(Baimak),
       ],
-   q(1330) => [
-      q(Bemba (Democratic Republic of Congo)),
-      ],
-   q(1331) => [
+   q(1326) => [
       q(Baramu),
       ],
-   q(1332) => [
+   q(1327) => [
       q(Bonerate),
       ],
-   q(1333) => [
+   q(1328) => [
       q(Bookan),
       ],
-   q(1334) => [
+   q(1329) => [
       q(Bontok),
       ],
-   q(1335) => [
+   q(1330) => [
       q(Banda (Indonesia)),
       ],
-   q(1336) => [
+   q(1331) => [
       q(Bintauna),
       ],
-   q(1337) => [
+   q(1332) => [
       q(Masiwang),
       ],
-   q(1338) => [
+   q(1333) => [
       q(Benga),
       ],
-   q(1339) => [
+   q(1334) => [
       q(Bangi),
       ],
-   q(1340) => [
+   q(1335) => [
       q(Eastern Tawbuid),
       ],
-   q(1341) => [
+   q(1336) => [
       q(Bierebo),
       ],
-   q(1342) => [
+   q(1337) => [
       q(Boon),
       ],
-   q(1343) => [
+   q(1338) => [
       q(Batanga),
       ],
-   q(1344) => [
+   q(1339) => [
       q(Bunun),
       ],
-   q(1345) => [
+   q(1340) => [
       q(Bantoanon),
       ],
-   q(1346) => [
+   q(1341) => [
       q(Bola),
       ],
-   q(1347) => [
+   q(1342) => [
       q(Bantik),
       ],
-   q(1348) => [
+   q(1343) => [
       q(Butmas-Tur),
       ],
-   q(1349) => [
+   q(1344) => [
       q(Bundeli),
       ],
-   q(1350) => [
+   q(1345) => [
       q(Bentong),
       ],
-   q(1351) => [
+   q(1346) => [
       q(Bonerif),
       q(Beneraf),
       q(Edwas),
       ],
-   q(1352) => [
+   q(1347) => [
       q(Bisis),
       ],
-   q(1353) => [
+   q(1348) => [
       q(Bangubangu),
       ],
-   q(1354) => [
+   q(1349) => [
       q(Bintulu),
       ],
-   q(1355) => [
+   q(1350) => [
       q(Beezen),
       ],
-   q(1356) => [
+   q(1351) => [
       q(Bora),
       ],
-   q(1357) => [
+   q(1352) => [
       q(Aweer),
       ],
-   q(1358) => [
+   q(1353) => [
       q(Mundabli),
       ],
-   q(1359) => [
+   q(1354) => [
       q(Bolon),
       ],
-   q(1360) => [
+   q(1355) => [
       q(Bamako Sign Language),
       ],
-   q(1361) => [
+   q(1356) => [
       q(Boma),
       ],
-   q(1362) => [
+   q(1357) => [
       q(Barbareno),
       ],
-   q(1363) => [
+   q(1358) => [
       q(Anjam),
       ],
-   q(1364) => [
+   q(1359) => [
       q(Bonjo),
       ],
-   q(1365) => [
+   q(1360) => [
       q(Bole),
       ],
-   q(1366) => [
+   q(1361) => [
       q(Berom),
       ],
-   q(1367) => [
+   q(1362) => [
       q(Bine),
       ],
-   q(1368) => [
+   q(1363) => [
       q(Tiemacewe Bozo),
       ],
-   q(1369) => [
+   q(1364) => [
       q(Bonkiman),
       ],
-   q(1370) => [
+   q(1365) => [
       q(Bogaya),
       ],
-   q(1371) => [
+   q(1366) => [
       q(Bororo),
       ],
-   q(1372) => [
+   q(1367) => [
       q(Bongo),
       ],
-   q(1373) => [
+   q(1368) => [
       q(Bondei),
       ],
-   q(1374) => [
+   q(1369) => [
       q(Tuwuli),
       ],
-   q(1375) => [
+   q(1370) => [
       q(Rema),
       ],
-   q(1376) => [
+   q(1371) => [
       q(Buamu),
       ],
-   q(1377) => [
+   q(1372) => [
       q(Bodo (Central African Republic)),
       ],
-   q(1378) => [
+   q(1373) => [
       q(Tieyaxo Bozo),
       ],
-   q(1379) => [
+   q(1374) => [
       q(Daakaka),
       ],
-   q(1380) => [
+   q(1375) => [
       q(Barbacoas),
       ],
-   q(1381) => [
+   q(1376) => [
       q(Banda-Banda),
       ],
-   q(1382) => [
+   q(1377) => [
       q(Bonggo),
       ],
-   q(1383) => [
+   q(1378) => [
       q(Botlikh),
       ],
-   q(1384) => [
+   q(1379) => [
       q(Bagupi),
       ],
-   q(1385) => [
+   q(1380) => [
       q(Binji),
       ],
-   q(1386) => [
+   q(1381) => [
       q(Orowe),
       q('Oroe),
       ],
-   q(1387) => [
+   q(1382) => [
       q(Broome Pearling Lugger Pidgin),
       ],
-   q(1388) => [
+   q(1383) => [
       q(Biyom),
       ],
-   q(1389) => [
+   q(1384) => [
       q(Dzao Min),
       ],
-   q(1390) => [
+   q(1385) => [
       q(Anasi),
       ],
-   q(1391) => [
+   q(1386) => [
       q(Kaure),
       ],
-   q(1392) => [
+   q(1387) => [
       q(Banda Malay),
       ],
-   q(1393) => [
+   q(1388) => [
       q(Koronadal Blaan),
       ],
-   q(1394) => [
+   q(1389) => [
       q(Sarangani Blaan),
       ],
-   q(1395) => [
+   q(1390) => [
       q(Barrow Point),
       ],
-   q(1396) => [
+   q(1391) => [
       q(Bongu),
       ],
-   q(1397) => [
+   q(1392) => [
       q(Bian Marind),
       ],
-   q(1398) => [
+   q(1393) => [
       q(Bo (Papua New Guinea)),
       ],
-   q(1399) => [
+   q(1394) => [
       q(Palya Bareli),
       ],
-   q(1400) => [
+   q(1395) => [
       q(Bishnupriya),
       ],
-   q(1401) => [
+   q(1396) => [
       q(Bilba),
       ],
-   q(1402) => [
+   q(1397) => [
       q(Tchumbuli),
       ],
-   q(1403) => [
+   q(1398) => [
       q(Bagusa),
       ],
-   q(1404) => [
+   q(1399) => [
       q(Boko (Benin)),
       q(Boo),
       ],
-   q(1405) => [
+   q(1400) => [
       q(Bung),
       ],
-   q(1406) => [
+   q(1401) => [
       q(Baga Kaloum),
       ],
-   q(1407) => [
+   q(1402) => [
       q(Bago-Kusuntu),
       ],
-   q(1408) => [
+   q(1403) => [
       q(Baima),
       ],
-   q(1409) => [
+   q(1404) => [
       q(Bakhtiari),
       ],
-   q(1410) => [
+   q(1405) => [
       q(Bandial),
       ],
-   q(1411) => [
+   q(1406) => [
       q(Banda-Mbres),
       ],
-   q(1412) => [
+   q(1407) => [
       q(Bilakura),
       ],
-   q(1413) => [
+   q(1408) => [
       q(Wumboko),
       ],
-   q(1414) => [
+   q(1409) => [
       q(Bulgarian Sign Language),
       ],
-   q(1415) => [
+   q(1410) => [
       q(Balo),
       ],
-   q(1416) => [
+   q(1411) => [
       q(Busa),
       ],
-   q(1417) => [
+   q(1412) => [
       q(Biritai),
       ],
-   q(1418) => [
+   q(1413) => [
       q(Burusu),
       ],
-   q(1419) => [
+   q(1414) => [
       q(Bosngun),
       ],
-   q(1420) => [
+   q(1415) => [
       q(Bamukumbit),
       ],
-   q(1421) => [
+   q(1416) => [
       q(Boguru),
       ],
-   q(1422) => [
+   q(1417) => [
       q(Koro Wachi),
       q(Begbere-Ejar),
       ],
-   q(1423) => [
+   q(1418) => [
       q(Buru (Nigeria)),
       ],
-   q(1424) => [
+   q(1419) => [
       q(Baangi),
       ],
-   q(1425) => [
+   q(1420) => [
       q(Bengkala Sign Language),
       ],
-   q(1426) => [
+   q(1421) => [
       q(Bakaka),
       ],
-   q(1427) => [
+   q(1422) => [
       q(Lave),
       ],
-   q(1428) => [
+   q(1423) => [
       q(Berbice Creole Dutch),
       ],
-   q(1429) => [
+   q(1424) => [
       q(Baraamu),
       ],
-   q(1430) => [
+   q(1425) => [
       q(Bera),
       ],
-   q(1431) => [
+   q(1426) => [
       q(Baure),
       ],
-   q(1432) => [
+   q(1427) => [
       q(Brahui),
       ],
-   q(1433) => [
+   q(1428) => [
       q(Mokpwe),
       ],
-   q(1434) => [
+   q(1429) => [
       q(Bieria),
       ],
-   q(1435) => [
+   q(1430) => [
       q(Birked),
       ],
-   q(1436) => [
+   q(1431) => [
       q(Birwa),
       ],
-   q(1437) => [
+   q(1432) => [
       q(Barambu),
       ],
-   q(1438) => [
+   q(1433) => [
       q(Boruca),
       ],
-   q(1439) => [
+   q(1434) => [
       q(Brokkat),
       ],
-   q(1440) => [
+   q(1435) => [
       q(Barapasi),
       ],
-   q(1441) => [
+   q(1436) => [
       q(Breri),
       ],
-   q(1442) => [
+   q(1437) => [
       q(Birao),
       ],
-   q(1443) => [
+   q(1438) => [
       q(Baras),
       ],
-   q(1444) => [
+   q(1439) => [
       q(Bitare),
       ],
-   q(1445) => [
+   q(1440) => [
       q(Eastern Bru),
       ],
-   q(1446) => [
+   q(1441) => [
       q(Western Bru),
       ],
-   q(1447) => [
+   q(1442) => [
       q(Bellari),
       ],
-   q(1448) => [
+   q(1443) => [
       q(Bodo (India)),
       ],
-   q(1449) => [
+   q(1444) => [
       q(Burui),
       ],
-   q(1450) => [
+   q(1445) => [
       q(Bilbil),
       ],
-   q(1451) => [
+   q(1446) => [
       q(Abinomn),
       ],
-   q(1452) => [
+   q(1447) => [
       q(Brunei Bisaya),
       ],
-   q(1453) => [
+   q(1448) => [
       q(Bassari),
       q(Oniyan),
       ],
-   q(1454) => [
+   q(1449) => [
       q(Wushi),
       ],
-   q(1455) => [
+   q(1450) => [
       q(Bauchi),
       ],
-   q(1456) => [
+   q(1451) => [
       q(Bashkardi),
       ],
-   q(1457) => [
+   q(1452) => [
       q(Kati),
       ],
-   q(1458) => [
+   q(1453) => [
       q(Bassossi),
       ],
-   q(1459) => [
+   q(1454) => [
       q(Bangwinji),
       ],
-   q(1460) => [
+   q(1455) => [
       q(Burushaski),
       ],
-   q(1461) => [
+   q(1456) => [
       q(Basa-Gumna),
       ],
-   q(1462) => [
+   q(1457) => [
       q(Busami),
       ],
-   q(1463) => [
+   q(1458) => [
       q(Barasana-Eduria),
       ],
-   q(1464) => [
+   q(1459) => [
       q(Buso),
       ],
-   q(1465) => [
+   q(1460) => [
       q(Baga Sitemu),
       ],
-   q(1466) => [
+   q(1461) => [
       q(Bassa),
       ],
-   q(1467) => [
+   q(1462) => [
       q(Bassa-Kontagora),
       ],
-   q(1468) => [
+   q(1463) => [
       q(Akoose),
       ],
-   q(1469) => [
+   q(1464) => [
       q(Basketo),
       ],
-   q(1470) => [
+   q(1465) => [
       q(Bahonsuai),
       ],
-   q(1471) => [
+   q(1466) => [
       q(Baga Sobane),
       ],
-   q(1472) => [
+   q(1467) => [
       q(Baiso),
       ],
-   q(1473) => [
+   q(1468) => [
       q(Yangkam),
       ],
-   q(1474) => [
+   q(1469) => [
       q(Sabah Bisaya),
       ],
-   q(1475) => [
+   q(1470) => [
       q(Bata),
       ],
-   q(1476) => [
+   q(1471) => [
       q(Bati (Cameroon)),
       ],
-   q(1477) => [
+   q(1472) => [
       q(Batak Dairi),
       ],
-   q(1478) => [
+   q(1473) => [
       q(Gamo-Ningi),
       ],
-   q(1479) => [
+   q(1474) => [
       q(Birgit),
       ],
-   q(1480) => [
+   q(1475) => [
       q(Gagnoa Bete),
       ],
-   q(1481) => [
+   q(1476) => [
       q(Biatah Bidayuh),
       ],
-   q(1482) => [
+   q(1477) => [
       q(Burate),
       ],
-   q(1483) => [
+   q(1478) => [
       q(Bacanese Malay),
       ],
-   q(1484) => [
+   q(1479) => [
       q(Bhatola),
       ],
-   q(1485) => [
+   q(1480) => [
       q(Batak Mandailing),
       ],
-   q(1486) => [
+   q(1481) => [
       q(Ratagnon),
       ],
-   q(1487) => [
+   q(1482) => [
       q(Rinconada Bikol),
       ],
-   q(1488) => [
+   q(1483) => [
       q(Budibud),
       ],
-   q(1489) => [
+   q(1484) => [
       q(Batek),
       ],
-   q(1490) => [
+   q(1485) => [
       q(Baetora),
       ],
-   q(1491) => [
+   q(1486) => [
       q(Batak Simalungun),
       ],
-   q(1492) => [
+   q(1487) => [
       q(Bete-Bendi),
       ],
-   q(1493) => [
+   q(1488) => [
       q(Batu),
       ],
-   q(1494) => [
+   q(1489) => [
       q(Bateri),
       ],
-   q(1495) => [
+   q(1490) => [
       q(Butuanon),
       ],
-   q(1496) => [
+   q(1491) => [
       q(Batak Karo),
       ],
-   q(1497) => [
+   q(1492) => [
       q(Bobot),
       ],
-   q(1498) => [
+   q(1493) => [
       q(Batak Alas-Kluet),
       ],
-   q(1499) => [
+   q(1494) => [
       q(Bua),
       ],
-   q(1500) => [
+   q(1495) => [
       q(Bushi),
       ],
-   q(1501) => [
+   q(1496) => [
       q(Ntcham),
       ],
-   q(1502) => [
+   q(1497) => [
       q(Beothuk),
       ],
-   q(1503) => [
+   q(1498) => [
       q(Bushoong),
       ],
-   q(1504) => [
+   q(1499) => [
       q(Younuo Bunu),
       ],
-   q(1505) => [
+   q(1500) => [
       q(Bongili),
       ],
-   q(1506) => [
+   q(1501) => [
       q(Basa-Gurmana),
       ],
-   q(1507) => [
+   q(1502) => [
       q(Bugawac),
       ],
-   q(1508) => [
+   q(1503) => [
       q(Bulu (Cameroon)),
       ],
-   q(1509) => [
+   q(1504) => [
       q(Sherbro),
       ],
-   q(1510) => [
+   q(1505) => [
       q(Terei),
       ],
-   q(1511) => [
+   q(1506) => [
       q(Busoa),
       ],
-   q(1512) => [
+   q(1507) => [
       q(Brem),
       ],
-   q(1513) => [
+   q(1508) => [
       q(Bokobaru),
       ],
-   q(1514) => [
+   q(1509) => [
       q(Bungain),
       ],
-   q(1515) => [
+   q(1510) => [
       q(Budu),
       ],
-   q(1516) => [
+   q(1511) => [
       q(Bun),
       ],
-   q(1517) => [
+   q(1512) => [
       q(Bubi),
       ],
-   q(1518) => [
+   q(1513) => [
       q(Boghom),
       ],
-   q(1519) => [
+   q(1514) => [
       q(Bullom So),
       ],
-   q(1520) => [
+   q(1515) => [
       q(Bukwen),
       ],
-   q(1521) => [
+   q(1516) => [
       q(Barein),
       ],
-   q(1522) => [
+   q(1517) => [
       q(Bube),
       ],
-   q(1523) => [
+   q(1518) => [
       q(Baelelea),
       ],
-   q(1524) => [
+   q(1519) => [
       q(Baeggu),
       ],
-   q(1525) => [
+   q(1520) => [
       q(Berau Malay),
       ],
-   q(1526) => [
+   q(1521) => [
       q(Boor),
       ],
-   q(1527) => [
+   q(1522) => [
       q(Bonkeng),
       ],
-   q(1528) => [
+   q(1523) => [
       q(Bure),
       ],
-   q(1529) => [
+   q(1524) => [
       q(Belanda Viri),
       ],
-   q(1530) => [
+   q(1525) => [
       q(Baan),
       ],
-   q(1531) => [
+   q(1526) => [
       q(Bukat),
       ],
-   q(1532) => [
+   q(1527) => [
       q(Bolivian Sign Language),
       ],
-   q(1533) => [
+   q(1528) => [
       q(Bamunka),
       ],
-   q(1534) => [
+   q(1529) => [
       q(Buna),
       ],
-   q(1535) => [
+   q(1530) => [
       q(Bolgo),
       ],
-   q(1536) => [
+   q(1531) => [
       q(Bumang),
       ],
-   q(1537) => [
+   q(1532) => [
       q(Birri),
       ],
-   q(1538) => [
+   q(1533) => [
       q(Burarra),
       ],
-   q(1539) => [
+   q(1534) => [
       q(Bati (Indonesia)),
       ],
-   q(1540) => [
+   q(1535) => [
       q(Bukit Malay),
       ],
-   q(1541) => [
+   q(1536) => [
       q(Baniva),
       ],
-   q(1542) => [
+   q(1537) => [
       q(Boga),
       ],
-   q(1543) => [
+   q(1538) => [
       q(Dibole),
       ],
-   q(1544) => [
+   q(1539) => [
       q(Baybayanon),
       ],
-   q(1545) => [
+   q(1540) => [
       q(Bauzi),
       ],
-   q(1546) => [
+   q(1541) => [
       q(Bwatoo),
       ],
-   q(1547) => [
+   q(1542) => [
       q(Namosi-Naitasiri-Serua),
       ],
-   q(1548) => [
+   q(1543) => [
       q(Bwile),
       ],
-   q(1549) => [
+   q(1544) => [
       q(Bwaidoka),
       ],
-   q(1550) => [
+   q(1545) => [
       q(Bwe Karen),
       ],
-   q(1551) => [
+   q(1546) => [
       q(Boselewa),
       ],
-   q(1552) => [
+   q(1547) => [
       q(Barwe),
       ],
-   q(1553) => [
+   q(1548) => [
       q(Bishuo),
       ],
-   q(1554) => [
+   q(1549) => [
       q(Baniwa),
       ],
-   q(1555) => [
+   q(1550) => [
       q(Laa Laa Bwamu),
       ],
-   q(1556) => [
+   q(1551) => [
       q(Bauwaki),
       ],
-   q(1557) => [
+   q(1552) => [
       q(Bwela),
       ],
-   q(1558) => [
+   q(1553) => [
       q(Biwat),
       ],
-   q(1559) => [
+   q(1554) => [
       q(Wunai Bunu),
       ],
-   q(1560) => [
+   q(1555) => [
       q(Boro (Ethiopia)),
       q(Borna (Ethiopia)),
       ],
-   q(1561) => [
+   q(1556) => [
       q(Mandobo Bawah),
       ],
-   q(1562) => [
+   q(1557) => [
       q(Southern Bobo Madare),
       ],
-   q(1563) => [
+   q(1558) => [
       q(Bura-Pabir),
       ],
-   q(1564) => [
+   q(1559) => [
       q(Bomboma),
       ],
-   q(1565) => [
+   q(1560) => [
       q(Bafaw-Balong),
       ],
-   q(1566) => [
+   q(1561) => [
       q(Buli (Ghana)),
       ],
-   q(1567) => [
+   q(1562) => [
       q(Bwa),
       ],
-   q(1568) => [
+   q(1563) => [
       q(Bu-Nao Bunu),
       ],
-   q(1569) => [
+   q(1564) => [
       q(Cwi Bwamu),
       ],
-   q(1570) => [
+   q(1565) => [
       q(Bwisi),
       ],
-   q(1571) => [
+   q(1566) => [
       q(Tairaha),
       ],
-   q(1572) => [
+   q(1567) => [
       q(Belanda Bor),
       ],
-   q(1573) => [
+   q(1568) => [
       q(Molengue),
       ],
-   q(1574) => [
+   q(1569) => [
       q(Pela),
       ],
-   q(1575) => [
+   q(1570) => [
       q(Birale),
       ],
-   q(1576) => [
+   q(1571) => [
       q(Bilur),
       q(Minigir),
       ],
-   q(1577) => [
+   q(1572) => [
       q(Bangala),
       ],
-   q(1578) => [
+   q(1573) => [
       q(Buhutu),
       ],
-   q(1579) => [
+   q(1574) => [
       q(Pirlatapa),
       ],
-   q(1580) => [
+   q(1575) => [
       q(Bayungu),
       ],
-   q(1581) => [
+   q(1576) => [
       q(Bukusu),
       q(Lubukusu),
       ],
-   q(1582) => [
+   q(1577) => [
       q(Jalkunan),
       ],
-   q(1583) => [
+   q(1578) => [
       q(Mongolia Buriat),
       ],
-   q(1584) => [
+   q(1579) => [
       q(Burduna),
       ],
-   q(1585) => [
+   q(1580) => [
       q(Barikanchi),
       ],
-   q(1586) => [
+   q(1581) => [
       q(Bebil),
       ],
-   q(1587) => [
+   q(1582) => [
       q(Beele),
       ],
-   q(1588) => [
+   q(1583) => [
       q(Russia Buriat),
       ],
-   q(1589) => [
+   q(1584) => [
       q(Busam),
       ],
-   q(1590) => [
+   q(1585) => [
       q(China Buriat),
       ],
-   q(1591) => [
+   q(1586) => [
       q(Berakou),
       ],
-   q(1592) => [
+   q(1587) => [
       q(Bankagooma),
       ],
-   q(1593) => [
-      q(Borna (Democratic Republic of Congo)),
-      ],
-   q(1594) => [
+   q(1588) => [
       q(Binahari),
       ],
-   q(1595) => [
+   q(1589) => [
       q(Batak),
       ],
-   q(1596) => [
+   q(1590) => [
       q(Bikya),
       ],
-   q(1597) => [
+   q(1591) => [
       q(Ubaghara),
       ],
-   q(1598) => [
+   q(1592) => [
       q(Benyadu'),
       ],
-   q(1599) => [
+   q(1593) => [
       q(Pouye),
       ],
-   q(1600) => [
+   q(1594) => [
       q(Bete),
       ],
-   q(1601) => [
+   q(1595) => [
       q(Baygo),
       ],
-   q(1602) => [
+   q(1596) => [
       q(Bhujel),
       ],
-   q(1603) => [
+   q(1597) => [
       q(Buyu),
       ],
-   q(1604) => [
+   q(1598) => [
       q(Bina (Nigeria)),
       ],
-   q(1605) => [
+   q(1599) => [
       q(Biao),
       ],
-   q(1606) => [
+   q(1600) => [
       q(Bayono),
       ],
-   q(1607) => [
+   q(1601) => [
       q(Bidyara),
       ],
-   q(1608) => [
+   q(1602) => [
       q(Biyo),
       ],
-   q(1609) => [
+   q(1603) => [
       q(Bumaji),
       ],
-   q(1610) => [
+   q(1604) => [
       q(Basay),
       ],
-   q(1611) => [
+   q(1605) => [
       q(Baruya),
       q(Yipma),
       ],
-   q(1612) => [
+   q(1606) => [
       q(Burak),
       ],
-   q(1613) => [
+   q(1607) => [
       q(Berti),
       ],
-   q(1614) => [
+   q(1608) => [
       q(Medumba),
       ],
-   q(1615) => [
+   q(1609) => [
       q(Belhariya),
       ],
-   q(1616) => [
+   q(1610) => [
       q(Qaqet),
       ],
-   q(1617) => [
-      q(Buya),
-      ],
-   q(1618) => [
+   q(1611) => [
       q(Banaro),
       ],
-   q(1619) => [
+   q(1612) => [
       q(Bandi),
       ],
-   q(1620) => [
+   q(1613) => [
       q(Andio),
       ],
-   q(1621) => [
+   q(1614) => [
       q(Southern Betsimisaraka Malagasy),
       ],
-   q(1622) => [
+   q(1615) => [
       q(Bribri),
       ],
-   q(1623) => [
+   q(1616) => [
       q(Jenaama Bozo),
       ],
-   q(1624) => [
+   q(1617) => [
       q(Boikin),
       ],
-   q(1625) => [
+   q(1618) => [
       q(Babuza),
       ],
-   q(1626) => [
+   q(1619) => [
       q(Mapos Buang),
       ],
-   q(1627) => [
+   q(1620) => [
       q(Bisu),
       ],
-   q(1628) => [
+   q(1621) => [
       q(Belize Kriol English),
       ],
-   q(1629) => [
+   q(1622) => [
       q(Nicaragua Creole English),
       ],
-   q(1630) => [
+   q(1623) => [
       q(Boano (Sulawesi)),
       ],
-   q(1631) => [
+   q(1624) => [
       q(Bolondo),
       ],
-   q(1632) => [
+   q(1625) => [
       q(Boano (Maluku)),
       ],
-   q(1633) => [
+   q(1626) => [
       q(Bozaba),
       ],
-   q(1634) => [
+   q(1627) => [
       q(Kemberano),
       ],
-   q(1635) => [
+   q(1628) => [
       q(Buli (Indonesia)),
       ],
-   q(1636) => [
+   q(1629) => [
       q(Biri),
       ],
-   q(1637) => [
+   q(1630) => [
       q(Brazilian Sign Language),
       ],
-   q(1638) => [
+   q(1631) => [
       q(Brithenig),
       ],
-   q(1639) => [
+   q(1632) => [
       q(Burmeso),
       ],
-   q(1640) => [
+   q(1633) => [
       q(Naami),
       ],
-   q(1641) => [
+   q(1634) => [
       q(Basa (Nigeria)),
       ],
-   q(1642) => [
+   q(1635) => [
       q(Kelengazxo Bozo),
       ],
-   q(1643) => [
+   q(1636) => [
       q(Obanliku),
       ],
-   q(1644) => [
+   q(1637) => [
       q(Evant),
       ],
-   q(1645) => [
+   q(1638) => [
       q(Chorti),
       ],
-   q(1646) => [
+   q(1639) => [
       q(Garifuna),
       ],
-   q(1647) => [
+   q(1640) => [
       q(Chuj),
       ],
-   q(1648) => [
+   q(1641) => [
       q(Lehar),
       q(Laalaa),
       ],
-   q(1649) => [
+   q(1642) => [
       q(Southern Carrier),
       ],
-   q(1650) => [
+   q(1643) => [
       q(Nivacle),
       ],
-   q(1651) => [
+   q(1644) => [
       q(Cahuarano),
       ],
-   q(1652) => [
+   q(1645) => [
       q(Chane),
       ],
-   q(1653) => [
+   q(1646) => [
       q(Kaqchikel),
       q(Cakchiquel),
       ],
-   q(1654) => [
+   q(1647) => [
       q(Carolinian),
       ],
-   q(1655) => [
+   q(1648) => [
       q(Cemuhi),
       ],
-   q(1656) => [
+   q(1649) => [
       q(Chambri),
       ],
-   q(1657) => [
+   q(1650) => [
       q(Chacobo),
       ],
-   q(1658) => [
+   q(1651) => [
       q(Chipaya),
       ],
-   q(1659) => [
+   q(1652) => [
       q(Car Nicobarese),
       ],
-   q(1660) => [
+   q(1653) => [
       q(Tsimane),
       ],
-   q(1661) => [
+   q(1654) => [
       q(Cavinena),
       ],
-   q(1662) => [
+   q(1655) => [
       q(Callawalla),
       ],
-   q(1663) => [
+   q(1656) => [
       q(Chiquitano),
       ],
-   q(1664) => [
+   q(1657) => [
       q(Cayuga),
       ],
-   q(1665) => [
+   q(1658) => [
       q(Canichana),
       ],
-   q(1666) => [
+   q(1659) => [
       q(Cabiyari),
       ],
-   q(1667) => [
+   q(1660) => [
       q(Carapana),
       ],
-   q(1668) => [
+   q(1661) => [
       q(Carijona),
       ],
-   q(1669) => [
+   q(1662) => [
       q(Chipiajes),
       ],
-   q(1670) => [
+   q(1663) => [
       q(Chimila),
       ],
-   q(1671) => [
+   q(1664) => [
       q(Cagua),
       ],
-   q(1672) => [
+   q(1665) => [
       q(Chachi),
       ],
-   q(1673) => [
+   q(1666) => [
       q(Ede Cabe),
       ],
-   q(1674) => [
+   q(1667) => [
       q(Chavacano),
       ],
-   q(1675) => [
+   q(1668) => [
       q(Bualkhaw Chin),
       ],
-   q(1676) => [
+   q(1669) => [
       q(Nyahkur),
       ],
-   q(1677) => [
+   q(1670) => [
       q(Izora),
       ],
-   q(1678) => [
+   q(1671) => [
+      q(Tsucuba),
+      q(Cuba),
+      ],
+   q(1672) => [
       q(Cashibo-Cacataibo),
       ],
-   q(1679) => [
+   q(1673) => [
       q(Cashinahua),
       ],
-   q(1680) => [
+   q(1674) => [
       q(Chayahuita),
       ],
-   q(1681) => [
+   q(1675) => [
       q(Candoshi-Shapra),
       ],
-   q(1682) => [
+   q(1676) => [
       q(Cacua),
       ],
-   q(1683) => [
+   q(1677) => [
       q(Kinabalian),
       ],
-   q(1684) => [
+   q(1678) => [
       q(Carabayo),
       ],
-   q(1685) => [
+   q(1679) => [
       q(Cauca),
       ],
-   q(1686) => [
+   q(1680) => [
       q(Chamicuro),
       ],
-   q(1687) => [
+   q(1681) => [
       q(Cafundo Creole),
       ],
-   q(1688) => [
+   q(1682) => [
       q(Chopi),
       ],
-   q(1689) => [
+   q(1683) => [
       q(Samba Daka),
       ],
-   q(1690) => [
+   q(1684) => [
       q(Atsam),
       ],
-   q(1691) => [
+   q(1685) => [
       q(Kasanga),
       ],
-   q(1692) => [
+   q(1686) => [
       q(Cutchi-Swahili),
       ],
-   q(1693) => [
+   q(1687) => [
       q(Malaccan Creole Malay),
       ],
-   q(1694) => [
+   q(1688) => [
       q(Comaltepec Chinantec),
       ],
-   q(1695) => [
+   q(1689) => [
       q(Chakma),
       ],
-   q(1696) => [
+   q(1690) => [
       q(Cacaopera),
       ],
-   q(1697) => [
+   q(1691) => [
       q(Choni),
       ],
-   q(1698) => [
+   q(1692) => [
       q(Chenchu),
       ],
-   q(1699) => [
+   q(1693) => [
       q(Chiru),
       ],
-   q(1700) => [
+   q(1694) => [
       q(Chamari),
       ],
-   q(1701) => [
+   q(1695) => [
       q(Chambeali),
       ],
-   q(1702) => [
+   q(1696) => [
       q(Chodri),
       ],
-   q(1703) => [
+   q(1697) => [
       q(Churahi),
       ],
-   q(1704) => [
+   q(1698) => [
       q(Chepang),
       ],
-   q(1705) => [
+   q(1699) => [
       q(Chaudangsi),
       ],
-   q(1706) => [
+   q(1700) => [
       q(Min Dong Chinese),
       ],
-   q(1707) => [
+   q(1701) => [
       q(Cinda-Regi-Tiyal),
       ],
-   q(1708) => [
+   q(1702) => [
       q(Chadian Sign Language),
       ],
-   q(1709) => [
+   q(1703) => [
       q(Chadong),
       ],
-   q(1710) => [
+   q(1704) => [
       q(Koda),
       ],
-   q(1711) => [
+   q(1705) => [
       q(Lower Chehalis),
       ],
-   q(1712) => [
+   q(1706) => [
       q(Chamacoco),
       ],
-   q(1713) => [
+   q(1707) => [
       q(Eastern Khumi Chin),
       ],
-   q(1714) => [
+   q(1708) => [
       q(Cen),
       ],
-   q(1715) => [
+   q(1709) => [
       q(Centuum),
       ],
-   q(1716) => [
+   q(1710) => [
       q(Dijim-Bwilim),
       ],
-   q(1717) => [
+   q(1711) => [
       q(Cara),
       ],
-   q(1718) => [
+   q(1712) => [
       q(Como Karim),
       ],
-   q(1719) => [
+   q(1713) => [
       q(Falam Chin),
       ],
-   q(1720) => [
+   q(1714) => [
       q(Changriwa),
       ],
-   q(1721) => [
+   q(1715) => [
       q(Kagayanen),
       ],
-   q(1722) => [
+   q(1716) => [
       q(Chiga),
       ],
-   q(1723) => [
+   q(1717) => [
       q(Chocangacakha),
       ],
-   q(1724) => [
+   q(1718) => [
       q(Catawba),
       ],
-   q(1725) => [
+   q(1719) => [
       q(Highland Oaxaca Chontal),
       ],
-   q(1726) => [
+   q(1720) => [
       q(Tabasco Chontal),
       ],
-   q(1727) => [
+   q(1721) => [
       q(Chinook),
       ],
-   q(1728) => [
+   q(1722) => [
       q(Ojitlan Chinantec),
       ],
-   q(1729) => [
+   q(1723) => [
       q(Cahuilla),
       ],
-   q(1730) => [
+   q(1724) => [
       q(Quiotepec Chinantec),
       ],
-   q(1731) => [
+   q(1725) => [
       q(Cholon),
       ],
-   q(1732) => [
+   q(1726) => [
       q(Chuwabu),
       ],
-   q(1733) => [
+   q(1727) => [
       q(Chantyal),
       ],
-   q(1734) => [
+   q(1728) => [
       q(Ozumacin Chinantec),
       ],
-   q(1735) => [
+   q(1729) => [
       q(Cia-Cia),
       ],
-   q(1736) => [
+   q(1730) => [
       q(Ci Gbe),
       ],
-   q(1737) => [
+   q(1731) => [
       q(Chickasaw),
       ],
-   q(1738) => [
+   q(1732) => [
       q(Chimariko),
       ],
-   q(1739) => [
+   q(1733) => [
       q(Cineni),
       ],
-   q(1740) => [
+   q(1734) => [
       q(Chinali),
       ],
-   q(1741) => [
+   q(1735) => [
       q(Chitkuli Kinnauri),
       ],
-   q(1742) => [
+   q(1736) => [
       q(Cimbrian),
       ],
-   q(1743) => [
+   q(1737) => [
       q(Cinta Larga),
       ],
-   q(1744) => [
+   q(1738) => [
       q(Chiapanec),
       ],
-   q(1745) => [
+   q(1739) => [
       q(Tiri),
       q(Hamea),
       q(Mea),
       ],
-   q(1746) => [
+   q(1740) => [
       q(Chippewa),
       ],
-   q(1747) => [
+   q(1741) => [
       q(Chaima),
       ],
-   q(1748) => [
+   q(1742) => [
       q(Western Cham),
       ],
-   q(1749) => [
+   q(1743) => [
       q(Chru),
       ],
-   q(1750) => [
+   q(1744) => [
       q(Upper Chehalis),
       ],
-   q(1751) => [
+   q(1745) => [
       q(Chamalal),
       ],
-   q(1752) => [
+   q(1746) => [
       q(Chokwe),
       ],
-   q(1753) => [
+   q(1747) => [
       q(Eastern Cham),
       ],
-   q(1754) => [
+   q(1748) => [
       q(Chenapian),
       ],
-   q(1755) => [
+   q(1749) => [
       q(Asheninka Pajonal),
       ],
-   q(1756) => [
+   q(1750) => [
       q(Cabecar),
       ],
-   q(1757) => [
+   q(1751) => [
       q(Shor),
       ],
-   q(1758) => [
+   q(1752) => [
       q(Chuave),
       ],
-   q(1759) => [
+   q(1753) => [
       q(Jinyu Chinese),
       ],
-   q(1760) => [
+   q(1754) => [
       q(Central Kurdish),
       ],
-   q(1761) => [
+   q(1755) => [
       q(Chak),
       ],
-   q(1762) => [
+   q(1756) => [
       q(Cibak),
       ],
-   q(1763) => [
+   q(1757) => [
       q(Kaang Chin),
       ],
-   q(1764) => [
+   q(1758) => [
       q(Anufo),
       ],
-   q(1765) => [
+   q(1759) => [
       q(Kajakse),
       ],
-   q(1766) => [
+   q(1760) => [
       q(Kairak),
       ],
-   q(1767) => [
+   q(1761) => [
       q(Tayo),
       ],
-   q(1768) => [
+   q(1762) => [
       q(Chukot),
       ],
-   q(1769) => [
+   q(1763) => [
       q(Koasati),
       ],
-   q(1770) => [
+   q(1764) => [
       q(Kavalan),
       ],
-   q(1771) => [
+   q(1765) => [
       q(Caka),
       ],
-   q(1772) => [
+   q(1766) => [
       q(Cakfem-Mushere),
       ],
-   q(1773) => [
+   q(1767) => [
       q(Cakchiquel-Quiche Mixed Language),
       ],
-   q(1774) => [
+   q(1768) => [
       q(Ron),
       ],
-   q(1775) => [
+   q(1769) => [
       q(Chilcotin),
       ],
-   q(1776) => [
+   q(1770) => [
       q(Chaldean Neo-Aramaic),
       ],
-   q(1777) => [
+   q(1771) => [
       q(Lealao Chinantec),
       ],
-   q(1778) => [
+   q(1772) => [
       q(Chilisso),
       ],
-   q(1779) => [
+   q(1773) => [
       q(Chakali),
       ],
-   q(1780) => [
+   q(1774) => [
       q(Laitu Chin),
       ],
-   q(1781) => [
+   q(1775) => [
       q(Idu-Mishmi),
       ],
-   q(1782) => [
+   q(1776) => [
       q(Chala),
       ],
-   q(1783) => [
+   q(1777) => [
       q(Clallam),
       ],
-   q(1784) => [
+   q(1778) => [
       q(Lowland Oaxaca Chontal),
       ],
-   q(1785) => [
+   q(1779) => [
       q(Lautu Chin),
       ],
-   q(1786) => [
+   q(1780) => [
       q(Caluyanun),
       ],
-   q(1787) => [
+   q(1781) => [
       q(Chulym),
       ],
-   q(1788) => [
+   q(1782) => [
       q(Eastern Highland Chatino),
       ],
-   q(1789) => [
+   q(1783) => [
       q(Maa),
       ],
-   q(1790) => [
+   q(1784) => [
       q(Cerma),
       ],
-   q(1791) => [
+   q(1785) => [
       q(Classical Mongolian),
       ],
-   q(1792) => [
+   q(1786) => [
       q(Embera-Chami),
       ],
-   q(1793) => [
+   q(1787) => [
       q(Campalagian),
       ],
-   q(1794) => [
+   q(1788) => [
       q(Michigamea),
       ],
-   q(1795) => [
+   q(1789) => [
       q(Mandarin Chinese),
       ],
-   q(1796) => [
+   q(1790) => [
       q(Central Mnong),
       ],
-   q(1797) => [
+   q(1791) => [
       q(Mro-Khimi Chin),
       ],
-   q(1798) => [
+   q(1792) => [
       q(Messapic),
       ],
-   q(1799) => [
+   q(1793) => [
       q(Camtho),
       ],
-   q(1800) => [
+   q(1794) => [
       q(Changthang),
       ],
-   q(1801) => [
+   q(1795) => [
       q(Chinbon Chin),
       ],
-   q(1802) => [
+   q(1796) => [
       q(Coong),
       ],
-   q(1803) => [
+   q(1797) => [
       q(Northern Qiang),
       ],
-   q(1804) => [
+   q(1798) => [
       q(Haka Chin),
       ],
-   q(1805) => [
+   q(1799) => [
       q(Ashaninka),
       ],
-   q(1806) => [
+   q(1800) => [
       q(Khumi Chin),
       ],
-   q(1807) => [
+   q(1801) => [
       q(Lalana Chinantec),
       ],
-   q(1808) => [
+   q(1802) => [
       q(Con),
       ],
-   q(1809) => [
+   q(1803) => [
       q(Central Asmat),
       ],
-   q(1810) => [
+   q(1804) => [
       q(Tepetotutla Chinantec),
       ],
-   q(1811) => [
+   q(1805) => [
       q(Chenoua),
       ],
-   q(1812) => [
+   q(1806) => [
       q(Ngawn Chin),
       ],
-   q(1813) => [
+   q(1807) => [
       q(Middle Cornish),
       ],
-   q(1814) => [
+   q(1808) => [
       q(Cocos Islands Malay),
       ],
-   q(1815) => [
+   q(1809) => [
       q(Chicomuceltec),
       ],
-   q(1816) => [
+   q(1810) => [
       q(Cocopa),
       ],
-   q(1817) => [
+   q(1811) => [
       q(Cocama-Cocamilla),
       ],
-   q(1818) => [
+   q(1812) => [
       q(Koreguaje),
       ],
-   q(1819) => [
+   q(1813) => [
       q(Colorado),
       ],
-   q(1820) => [
+   q(1814) => [
       q(Chong),
       ],
-   q(1821) => [
+   q(1815) => [
       q(Chonyi-Dzihana-Kauma),
       q(Chichonyi-Chidzihana-Chikauma),
       ],
-   q(1822) => [
+   q(1816) => [
       q(Cochimi),
       ],
-   q(1823) => [
+   q(1817) => [
       q(Santa Teresa Cora),
       ],
-   q(1824) => [
+   q(1818) => [
       q(Columbia-Wenatchi),
       ],
-   q(1825) => [
+   q(1819) => [
       q(Comanche),
       ],
-   q(1826) => [
+   q(1820) => [
       q(Cofan),
       ],
-   q(1827) => [
+   q(1821) => [
       q(Comox),
       ],
-   q(1828) => [
+   q(1822) => [
       q(Coquille),
       ],
-   q(1829) => [
+   q(1823) => [
       q(Caquinte),
       ],
-   q(1830) => [
+   q(1824) => [
       q(Wamey),
       ],
-   q(1831) => [
+   q(1825) => [
       q(Cao Miao),
       ],
-   q(1832) => [
+   q(1826) => [
       q(Cowlitz),
       ],
-   q(1833) => [
+   q(1827) => [
       q(Nanti),
       ],
-   q(1834) => [
+   q(1828) => [
       q(Coyaima),
       ],
-   q(1835) => [
+   q(1829) => [
       q(Chochotec),
       ],
-   q(1836) => [
+   q(1830) => [
       q(Palantla Chinantec),
       ],
-   q(1837) => [
+   q(1831) => [
       q(Ucayali-Yurua Asheninka),
       ],
-   q(1838) => [
+   q(1832) => [
       q(Ajyininka Apurucayali),
       ],
-   q(1839) => [
+   q(1833) => [
       q(Cappadocian Greek),
       ],
-   q(1840) => [
+   q(1834) => [
       q(Chinese Pidgin English),
       ],
-   q(1841) => [
+   q(1835) => [
       q(Cherepon),
       ],
-   q(1842) => [
+   q(1836) => [
       q(Kpeego),
       ],
-   q(1843) => [
+   q(1837) => [
       q(Capiznon),
       ],
-   q(1844) => [
+   q(1838) => [
       q(Pichis Asheninka),
       ],
-   q(1845) => [
+   q(1839) => [
       q(Pu-Xian Chinese),
       ],
-   q(1846) => [
+   q(1840) => [
       q(South Ucayali Asheninka),
       ],
-   q(1847) => [
+   q(1841) => [
       q(Chuanqiandian Cluster Miao),
       ],
-   q(1848) => [
+   q(1842) => [
       q(Chilean Quechua),
       ],
-   q(1849) => [
+   q(1843) => [
       q(Chara),
       ],
-   q(1850) => [
+   q(1844) => [
       q(Island Carib),
       ],
-   q(1851) => [
+   q(1845) => [
       q(Lonwolwol),
       ],
-   q(1852) => [
+   q(1846) => [
       q(Coeur d'Alene),
       ],
-   q(1853) => [
+   q(1847) => [
       q(Caramanta),
       ],
-   q(1854) => [
+   q(1848) => [
       q(Michif),
       ],
-   q(1855) => [
+   q(1849) => [
       q(Saotomense),
       ],
-   q(1856) => [
+   q(1850) => [
       q(Southern East Cree),
       ],
-   q(1857) => [
+   q(1851) => [
       q(Plains Cree),
       ],
-   q(1858) => [
+   q(1852) => [
       q(Northern East Cree),
       ],
-   q(1859) => [
+   q(1853) => [
       q(Moose Cree),
       ],
-   q(1860) => [
+   q(1854) => [
       q(El Nayar Cora),
       ],
-   q(1861) => [
+   q(1855) => [
       q(Crow),
       ],
-   q(1862) => [
+   q(1856) => [
       q(Iyo'wujwa Chorote),
       ],
-   q(1863) => [
+   q(1857) => [
       q(Carolina Algonquian),
       ],
-   q(1864) => [
+   q(1858) => [
       q(Seselwa Creole French),
       ],
-   q(1865) => [
+   q(1859) => [
       q(Iyojwa'ja Chorote),
       ],
-   q(1866) => [
+   q(1860) => [
       q(Chaura),
       ],
-   q(1867) => [
+   q(1861) => [
       q(Chrau),
       ],
-   q(1868) => [
+   q(1862) => [
       q(Carrier),
       ],
-   q(1869) => [
+   q(1863) => [
       q(Cori),
       ],
-   q(1870) => [
+   q(1864) => [
       q(Cruzeno),
       ],
-   q(1871) => [
+   q(1865) => [
       q(Chiltepec Chinantec),
       ],
-   q(1872) => [
+   q(1866) => [
       q(Catalan Sign Language),
       q(Lengua de senas catalana),
       q(Llengua de Signes Catalana),
       ],
-   q(1873) => [
+   q(1867) => [
       q(Chiangmai Sign Language),
       ],
-   q(1874) => [
+   q(1868) => [
       q(Czech Sign Language),
       ],
-   q(1875) => [
+   q(1869) => [
       q(Cuba Sign Language),
       ],
-   q(1876) => [
+   q(1870) => [
       q(Chilean Sign Language),
       ],
-   q(1877) => [
+   q(1871) => [
       q(Asho Chin),
       ],
-   q(1878) => [
+   q(1872) => [
       q(Coast Miwok),
       ],
-   q(1879) => [
+   q(1873) => [
       q(Songlai Chin),
       ],
-   q(1880) => [
+   q(1874) => [
       q(Jola-Kasa),
       ],
-   q(1881) => [
+   q(1875) => [
       q(Chinese Sign Language),
       ],
-   q(1882) => [
+   q(1876) => [
       q(Central Sierra Miwok),
       ],
-   q(1883) => [
+   q(1877) => [
       q(Colombian Sign Language),
       ],
-   q(1884) => [
+   q(1878) => [
       q(Sochiapam Chinantec),
       q(Sochiapan Chinantec),
       ],
-   q(1885) => [
+   q(1879) => [
       q(Croatia Sign Language),
       ],
-   q(1886) => [
+   q(1880) => [
       q(Costa Rican Sign Language),
       ],
-   q(1887) => [
+   q(1881) => [
       q(Southern Ohlone),
       ],
-   q(1888) => [
+   q(1882) => [
       q(Northern Ohlone),
       ],
-   q(1889) => [
+   q(1883) => [
       q(Sumtu Chin),
       ],
-   q(1890) => [
+   q(1884) => [
       q(Swampy Cree),
       ],
-   q(1891) => [
+   q(1885) => [
       q(Siyin Chin),
       ],
-   q(1892) => [
+   q(1886) => [
       q(Coos),
       ],
-   q(1893) => [
+   q(1887) => [
       q(Tataltepec Chatino),
       ],
-   q(1894) => [
+   q(1888) => [
       q(Chetco),
       ],
-   q(1895) => [
+   q(1889) => [
       q(Tedim Chin),
       ],
-   q(1896) => [
+   q(1890) => [
       q(Tepinapa Chinantec),
       ],
-   q(1897) => [
+   q(1891) => [
       q(Chittagonian),
       ],
-   q(1898) => [
+   q(1892) => [
       q(Thaiphum Chin),
       ],
-   q(1899) => [
+   q(1893) => [
       q(Tlacoatzintepec Chinantec),
       ],
-   q(1900) => [
+   q(1894) => [
       q(Chitimacha),
       ],
-   q(1901) => [
+   q(1895) => [
       q(Chhintange),
       ],
-   q(1902) => [
+   q(1896) => [
       q(Embera-Catio),
       ],
-   q(1903) => [
+   q(1897) => [
       q(Western Highland Chatino),
       ],
-   q(1904) => [
+   q(1898) => [
       q(Northern Catanduanes Bikol),
       ],
-   q(1905) => [
+   q(1899) => [
       q(Wayanad Chetti),
       ],
-   q(1906) => [
+   q(1900) => [
       q(Chol),
       ],
-   q(1907) => [
+   q(1901) => [
       q(Zacatepec Chatino),
       ],
-   q(1908) => [
+   q(1902) => [
       q(Cua),
       ],
-   q(1909) => [
+   q(1903) => [
       q(Cubeo),
       ],
-   q(1910) => [
+   q(1904) => [
       q(Usila Chinantec),
       ],
-   q(1911) => [
+   q(1905) => [
       q(Cung),
       ],
-   q(1912) => [
+   q(1906) => [
       q(Chuka),
       q(Gichuka),
       ],
-   q(1913) => [
+   q(1907) => [
       q(Cuiba),
       ],
-   q(1914) => [
+   q(1908) => [
       q(Mashco Piro),
       ],
-   q(1915) => [
+   q(1909) => [
       q(San Blas Kuna),
       ],
-   q(1916) => [
+   q(1910) => [
       q(Culina),
       q(Kulina),
       ],
-   q(1917) => [
+   q(1911) => [
       q(Cumeral),
       ],
-   q(1918) => [
+   q(1912) => [
       q(Cumanagoto),
       ],
-   q(1919) => [
+   q(1913) => [
       q(Cupeno),
       ],
-   q(1920) => [
+   q(1914) => [
       q(Cun),
       ],
-   q(1921) => [
+   q(1915) => [
       q(Chhulung),
       ],
-   q(1922) => [
+   q(1916) => [
       q(Teutila Cuicatec),
       ],
-   q(1923) => [
+   q(1917) => [
       q(Tai Ya),
       ],
-   q(1924) => [
+   q(1918) => [
       q(Cuvok),
       ],
-   q(1925) => [
+   q(1919) => [
       q(Chukwa),
       ],
-   q(1926) => [
+   q(1920) => [
       q(Tepeuxila Cuicatec),
       ],
-   q(1927) => [
+   q(1921) => [
       q(Chug),
       ],
-   q(1928) => [
+   q(1922) => [
       q(Valle Nacional Chinantec),
       ],
-   q(1929) => [
+   q(1923) => [
       q(Kabwa),
       ],
-   q(1930) => [
+   q(1924) => [
       q(Maindo),
       ],
-   q(1931) => [
+   q(1925) => [
       q(Woods Cree),
       ],
-   q(1932) => [
+   q(1926) => [
       q(Kwere),
       ],
-   q(1933) => [
+   q(1927) => [
       q(Chewong),
       q(Cheq Wong),
       ],
-   q(1934) => [
+   q(1928) => [
       q(Kuwaataay),
       ],
-   q(1935) => [
+   q(1929) => [
       q(Nopala Chatino),
       ],
-   q(1936) => [
+   q(1930) => [
       q(Cayubaba),
       ],
-   q(1937) => [
+   q(1931) => [
       q(Cuyonon),
       ],
-   q(1938) => [
+   q(1932) => [
       q(Huizhou Chinese),
       ],
-   q(1939) => [
+   q(1933) => [
       q(Knaanic),
       ],
-   q(1940) => [
+   q(1934) => [
       q(Zenzontepec Chatino),
       ],
-   q(1941) => [
+   q(1935) => [
       q(Min Zhong Chinese),
       ],
-   q(1942) => [
+   q(1936) => [
       q(Zotung Chin),
       ],
-   q(1943) => [
+   q(1937) => [
       q(Dangaleat),
       ],
-   q(1944) => [
+   q(1938) => [
       q(Dambi),
       ],
-   q(1945) => [
+   q(1939) => [
       q(Marik),
       ],
-   q(1946) => [
+   q(1940) => [
       q(Duupa),
       ],
-   q(1947) => [
+   q(1941) => [
       q(Dagbani),
       ],
-   q(1948) => [
+   q(1942) => [
       q(Gwahatike),
       ],
-   q(1949) => [
+   q(1943) => [
       q(Day),
       ],
-   q(1950) => [
+   q(1944) => [
       q(Dar Fur Daju),
       ],
-   q(1951) => [
+   q(1945) => [
       q(Dahalo),
       ],
-   q(1952) => [
+   q(1946) => [
       q(Damakawa),
       ],
-   q(1953) => [
+   q(1947) => [
       q(Daai Chin),
       ],
-   q(1954) => [
+   q(1948) => [
       q(Dandami Maria),
       ],
-   q(1955) => [
+   q(1949) => [
       q(Daho-Doo),
       ],
-   q(1956) => [
+   q(1950) => [
       q(Dar Sila Daju),
       ],
-   q(1957) => [
+   q(1951) => [
       q(Taita),
       q(Dawida),
       ],
-   q(1958) => [
+   q(1952) => [
       q(Davawenyo),
       ],
-   q(1959) => [
+   q(1953) => [
       q(Dayi),
       ],
-   q(1960) => [
+   q(1954) => [
       q(Dao),
       ],
-   q(1961) => [
+   q(1955) => [
       q(Bangime),
       ],
-   q(1962) => [
+   q(1956) => [
       q(Deno),
       ],
-   q(1963) => [
+   q(1957) => [
       q(Dadiya),
       ],
-   q(1964) => [
+   q(1958) => [
       q(Dabe),
       ],
-   q(1965) => [
+   q(1959) => [
       q(Edopi),
       ],
-   q(1966) => [
+   q(1960) => [
       q(Dogul Dom Dogon),
       ],
-   q(1967) => [
+   q(1961) => [
       q(Doka),
       ],
-   q(1968) => [
+   q(1962) => [
       q(Ida'an),
       ],
-   q(1969) => [
+   q(1963) => [
       q(Dyirbal),
       ],
-   q(1970) => [
+   q(1964) => [
       q(Duguri),
       ],
-   q(1971) => [
+   q(1965) => [
       q(Duriankere),
       ],
-   q(1972) => [
+   q(1966) => [
       q(Dulbu),
       ],
-   q(1973) => [
+   q(1967) => [
       q(Duwai),
       ],
-   q(1974) => [
+   q(1968) => [
       q(Daba),
       ],
-   q(1975) => [
+   q(1969) => [
       q(Dabarre),
       ],
-   q(1976) => [
+   q(1970) => [
       q(Ben Tey Dogon),
       ],
-   q(1977) => [
+   q(1971) => [
       q(Bondum Dom Dogon),
       ],
-   q(1978) => [
+   q(1972) => [
       q(Dungu),
       ],
-   q(1979) => [
+   q(1973) => [
       q(Bankan Tey Dogon),
       ],
-   q(1980) => [
+   q(1974) => [
       q(Dibiyaso),
       ],
-   q(1981) => [
+   q(1975) => [
       q(Deccan),
       ],
-   q(1982) => [
+   q(1976) => [
       q(Negerhollands),
       ],
-   q(1983) => [
+   q(1977) => [
       q(Dadi Dadi),
       ],
-   q(1984) => [
+   q(1978) => [
       q(Dongotono),
       ],
-   q(1985) => [
+   q(1979) => [
       q(Doondo),
       ],
-   q(1986) => [
+   q(1980) => [
       q(Fataluku),
       ],
-   q(1987) => [
+   q(1981) => [
       q(West Goodenough),
       ],
-   q(1988) => [
+   q(1982) => [
       q(Jaru),
       ],
-   q(1989) => [
+   q(1983) => [
       q(Dendi (Benin)),
       ],
-   q(1990) => [
+   q(1984) => [
       q(Dido),
       ],
-   q(1991) => [
+   q(1985) => [
       q(Dhudhuroa),
       ],
-   q(1992) => [
+   q(1986) => [
       q(Donno So Dogon),
       ],
-   q(1993) => [
+   q(1987) => [
       q(Dawera-Daweloor),
       ],
-   q(1994) => [
+   q(1988) => [
       q(Dagik),
       ],
-   q(1995) => [
+   q(1989) => [
       q(Dedua),
       ],
-   q(1996) => [
+   q(1990) => [
       q(Dewoin),
       ],
-   q(1997) => [
+   q(1991) => [
       q(Dezfuli),
       ],
-   q(1998) => [
+   q(1992) => [
       q(Degema),
       ],
-   q(1999) => [
+   q(1993) => [
       q(Dehwari),
       ],
-   q(2000) => [
+   q(1994) => [
       q(Demisa),
       ],
-   q(2001) => [
+   q(1995) => [
       q(Dek),
       ],
-   q(2002) => [
+   q(1996) => [
       q(Dem),
       ],
-   q(2003) => [
+   q(1997) => [
       q(Pidgin Delaware),
       ],
-   q(2004) => [
+   q(1998) => [
       q(Dendi (Central African Republic)),
       ],
-   q(2005) => [
+   q(1999) => [
       q(Deori),
       ],
-   q(2006) => [
+   q(2000) => [
       q(Desano),
       ],
-   q(2007) => [
+   q(2001) => [
       q(Domung),
       ],
-   q(2008) => [
+   q(2002) => [
       q(Dengese),
       ],
-   q(2009) => [
+   q(2003) => [
       q(Southern Dagaare),
       ],
-   q(2010) => [
+   q(2004) => [
       q(Bunoge Dogon),
       ],
-   q(2011) => [
+   q(2005) => [
       q(Casiguran Dumagat Agta),
       ],
-   q(2012) => [
+   q(2006) => [
       q(Dagaari Dioula),
       ],
-   q(2013) => [
+   q(2007) => [
       q(Degenan),
       ],
-   q(2014) => [
+   q(2008) => [
       q(Doga),
       ],
-   q(2015) => [
+   q(2009) => [
       q(Dghwede),
       ],
-   q(2016) => [
+   q(2010) => [
       q(Northern Dagara),
       ],
-   q(2017) => [
+   q(2011) => [
       q(Dagba),
       ],
-   q(2018) => [
+   q(2012) => [
       q(Andaandi),
       q(Dongolawi),
       ],
-   q(2019) => [
+   q(2013) => [
       q(Dagoman),
       ],
-   q(2020) => [
+   q(2014) => [
       q(Dogri (individual language)),
       ],
-   q(2021) => [
+   q(2015) => [
       q(Dogoso),
       ],
-   q(2022) => [
+   q(2016) => [
       q(Ndra'ngith),
       ],
-   q(2023) => [
+   q(2017) => [
       q(Degaru),
       ],
-   q(2024) => [
+   q(2018) => [
       q(Daungwurrung),
       ],
-   q(2025) => [
+   q(2019) => [
       q(Doghoro),
       ],
-   q(2026) => [
+   q(2020) => [
       q(Daga),
       ],
-   q(2027) => [
+   q(2021) => [
       q(Dhundari),
       ],
-   q(2028) => [
+   q(2022) => [
       q(Dhangu),
       q(Djangu),
       ],
-   q(2029) => [
+   q(2023) => [
       q(Dhimal),
       ],
-   q(2030) => [
+   q(2024) => [
       q(Dhalandji),
       ],
-   q(2031) => [
+   q(2025) => [
       q(Zemba),
       ],
-   q(2032) => [
+   q(2026) => [
       q(Dhanki),
       ],
-   q(2033) => [
+   q(2027) => [
       q(Dhodia),
       ],
-   q(2034) => [
+   q(2028) => [
       q(Dhargari),
       ],
-   q(2035) => [
+   q(2029) => [
       q(Dhaiso),
       ],
-   q(2036) => [
+   q(2030) => [
       q(Dhurga),
       ],
-   q(2037) => [
+   q(2031) => [
       q(Dehu),
       q(Drehu),
       ],
-   q(2038) => [
+   q(2032) => [
       q(Dhanwar (Nepal)),
       ],
-   q(2039) => [
+   q(2033) => [
       q(Dhungaloo),
       ],
-   q(2040) => [
+   q(2034) => [
       q(Dia),
       ],
-   q(2041) => [
+   q(2035) => [
       q(South Central Dinka),
       ],
-   q(2042) => [
+   q(2036) => [
       q(Lakota Dida),
       ],
-   q(2043) => [
+   q(2037) => [
       q(Didinga),
       ],
-   q(2044) => [
+   q(2038) => [
       q(Dieri),
       ],
-   q(2045) => [
+   q(2039) => [
       q(Digo),
       q(Chidigo),
       ],
-   q(2046) => [
+   q(2040) => [
       q(Kumiai),
       ],
-   q(2047) => [
+   q(2041) => [
       q(Dimbong),
       ],
-   q(2048) => [
+   q(2042) => [
       q(Dai),
       ],
-   q(2049) => [
+   q(2043) => [
       q(Southwestern Dinka),
       ],
-   q(2050) => [
+   q(2044) => [
       q(Dilling),
       ],
-   q(2051) => [
+   q(2045) => [
       q(Dime),
       ],
-   q(2052) => [
+   q(2046) => [
       q(Dibo),
       ],
-   q(2053) => [
+   q(2047) => [
       q(Northeastern Dinka),
       ],
-   q(2054) => [
+   q(2048) => [
       q(Dimli (individual language)),
       ],
-   q(2055) => [
+   q(2049) => [
       q(Dirim),
       ],
-   q(2056) => [
+   q(2050) => [
       q(Dimasa),
       ],
-   q(2057) => [
+   q(2051) => [
       q(Dirari),
       ],
-   q(2058) => [
+   q(2052) => [
       q(Diriku),
       ],
-   q(2059) => [
+   q(2053) => [
       q(Northwestern Dinka),
       ],
-   q(2060) => [
+   q(2054) => [
       q(Dixon Reef),
       ],
-   q(2061) => [
+   q(2055) => [
       q(Diuwe),
       ],
-   q(2062) => [
+   q(2056) => [
       q(Ding),
       ],
-   q(2063) => [
+   q(2057) => [
       q(Djadjawurrung),
       ],
-   q(2064) => [
+   q(2058) => [
       q(Djinba),
       ],
-   q(2065) => [
+   q(2059) => [
       q(Dar Daju Daju),
       ],
-   q(2066) => [
+   q(2060) => [
       q(Djamindjung),
       ],
-   q(2067) => [
+   q(2061) => [
       q(Zarma),
       ],
-   q(2068) => [
+   q(2062) => [
       q(Djangun),
       ],
-   q(2069) => [
+   q(2063) => [
       q(Djinang),
       ],
-   q(2070) => [
+   q(2064) => [
       q(Djeebbana),
       ],
-   q(2071) => [
+   q(2065) => [
       q(Eastern Maroon Creole),
       q(Businenge Tongo),
       q(Nenge),
       ],
-   q(2072) => [
+   q(2066) => [
       q(Jamsay Dogon),
       ],
-   q(2073) => [
+   q(2067) => [
       q(Djauan),
       ],
-   q(2074) => [
+   q(2068) => [
       q(Jangkang),
       ],
-   q(2075) => [
+   q(2069) => [
       q(Djambarrpuyngu),
       ],
-   q(2076) => [
+   q(2070) => [
       q(Kapriman),
       ],
-   q(2077) => [
+   q(2071) => [
       q(Djawi),
       ],
-   q(2078) => [
+   q(2072) => [
       q(Dakpakha),
       ],
-   q(2079) => [
+   q(2073) => [
       q(Dakka),
       ],
-   q(2080) => [
+   q(2074) => [
       q(Kuijau),
       ],
-   q(2081) => [
+   q(2075) => [
       q(Southeastern Dinka),
       ],
-   q(2082) => [
+   q(2076) => [
       q(Mazagway),
       ],
-   q(2083) => [
+   q(2077) => [
       q(Dolgan),
       ],
-   q(2084) => [
+   q(2078) => [
       q(Dahalik),
       ],
-   q(2085) => [
+   q(2079) => [
       q(Dalmatian),
       ],
-   q(2086) => [
+   q(2080) => [
       q(Darlong),
       ],
-   q(2087) => [
+   q(2081) => [
       q(Duma),
       ],
-   q(2088) => [
+   q(2082) => [
       q(Mombo Dogon),
       ],
-   q(2089) => [
+   q(2083) => [
       q(Gavak),
       ],
-   q(2090) => [
+   q(2084) => [
       q(Madhi Madhi),
       ],
-   q(2091) => [
+   q(2085) => [
       q(Dugwor),
       ],
-   q(2092) => [
+   q(2086) => [
       q(Upper Kinabatangan),
       ],
-   q(2093) => [
+   q(2087) => [
       q(Domaaki),
       ],
-   q(2094) => [
+   q(2088) => [
       q(Dameli),
       ],
-   q(2095) => [
+   q(2089) => [
       q(Dama),
       ],
-   q(2096) => [
+   q(2090) => [
       q(Kemedzung),
       ],
-   q(2097) => [
+   q(2091) => [
       q(East Damar),
       ],
-   q(2098) => [
+   q(2092) => [
       q(Dampelas),
       ],
-   q(2099) => [
+   q(2093) => [
       q(Dubu),
       q(Tebi),
       ],
-   q(2100) => [
+   q(2094) => [
       q(Dumpas),
       ],
-   q(2101) => [
+   q(2095) => [
       q(Mudburra),
       ],
-   q(2102) => [
+   q(2096) => [
       q(Dema),
       ],
-   q(2103) => [
+   q(2097) => [
       q(Demta),
       q(Sowari),
       ],
-   q(2104) => [
+   q(2098) => [
       q(Upper Grand Valley Dani),
       ],
-   q(2105) => [
+   q(2099) => [
       q(Daonda),
       ],
-   q(2106) => [
+   q(2100) => [
       q(Ndendeule),
       ],
-   q(2107) => [
+   q(2101) => [
       q(Dungan),
       ],
-   q(2108) => [
+   q(2102) => [
       q(Lower Grand Valley Dani),
       ],
-   q(2109) => [
+   q(2103) => [
       q(Dan),
       ],
-   q(2110) => [
+   q(2104) => [
       q(Dengka),
       ],
-   q(2111) => [
+   q(2105) => [
       q(Dzuungoo),
       ],
-   q(2112) => [
+   q(2106) => [
       q(Danaru),
       ],
-   q(2113) => [
+   q(2107) => [
       q(Mid Grand Valley Dani),
       ],
-   q(2114) => [
+   q(2108) => [
       q(Danau),
       ],
-   q(2115) => [
+   q(2109) => [
       q(Danu),
       ],
-   q(2116) => [
+   q(2110) => [
       q(Western Dani),
       ],
-   q(2117) => [
+   q(2111) => [
       q(Deni),
       ],
-   q(2118) => [
+   q(2112) => [
       q(Dom),
       ],
-   q(2119) => [
+   q(2113) => [
       q(Dobu),
       ],
-   q(2120) => [
+   q(2114) => [
       q(Northern Dong),
       ],
-   q(2121) => [
+   q(2115) => [
       q(Doe),
       ],
-   q(2122) => [
+   q(2116) => [
       q(Domu),
       ],
-   q(2123) => [
+   q(2117) => [
       q(Dong),
       ],
-   q(2124) => [
+   q(2118) => [
       q(Dondo),
       ],
-   q(2125) => [
+   q(2119) => [
       q(Doso),
       ],
-   q(2126) => [
+   q(2120) => [
       q(Toura (Papua New Guinea)),
       ],
-   q(2127) => [
+   q(2121) => [
       q(Dongo),
       ],
-   q(2128) => [
+   q(2122) => [
       q(Lukpa),
       ],
-   q(2129) => [
+   q(2123) => [
       q(Dominican Sign Language),
       ],
-   q(2130) => [
+   q(2124) => [
       q(Dori'o),
       ],
-   q(2131) => [
+   q(2125) => [
       q(Dogose),
       ],
-   q(2132) => [
+   q(2126) => [
       q(Dass),
       ],
-   q(2133) => [
+   q(2127) => [
       q(Dombe),
       ],
-   q(2134) => [
+   q(2128) => [
       q(Doyayo),
       ],
-   q(2135) => [
+   q(2129) => [
       q(Bussa),
       ],
-   q(2136) => [
+   q(2130) => [
       q(Dompo),
       ],
-   q(2137) => [
+   q(2131) => [
       q(Dorze),
       ],
-   q(2138) => [
+   q(2132) => [
       q(Papar),
       ],
-   q(2139) => [
+   q(2133) => [
       q(Dair),
       ],
-   q(2140) => [
+   q(2134) => [
       q(Minderico),
       ],
-   q(2141) => [
+   q(2135) => [
       q(Darmiya),
       ],
-   q(2142) => [
+   q(2136) => [
       q(Dolpo),
       ],
-   q(2143) => [
+   q(2137) => [
       q(Rungus),
       ],
-   q(2144) => [
+   q(2138) => [
       q(C'lela),
       ],
-   q(2145) => [
+   q(2139) => [
       q(Paakantyi),
       ],
-   q(2146) => [
+   q(2140) => [
       q(West Damar),
       ],
-   q(2147) => [
+   q(2141) => [
       q(Daro-Matu Melanau),
       ],
-   q(2148) => [
+   q(2142) => [
       q(Dura),
       ],
-   q(2149) => [
+   q(2143) => [
       q(Dororo),
       ],
-   q(2150) => [
+   q(2144) => [
       q(Gedeo),
       ],
-   q(2151) => [
+   q(2145) => [
       q(Drents),
       ],
-   q(2152) => [
+   q(2146) => [
       q(Rukai),
       ],
-   q(2153) => [
+   q(2147) => [
       q(Darai),
       ],
-   q(2154) => [
+   q(2148) => [
       q(Dutch Sign Language),
       ],
-   q(2155) => [
+   q(2149) => [
       q(Daasanach),
       ],
-   q(2156) => [
+   q(2150) => [
       q(Disa),
       ],
-   q(2157) => [
+   q(2151) => [
       q(Danish Sign Language),
       ],
-   q(2158) => [
+   q(2152) => [
       q(Dusner),
       ],
-   q(2159) => [
+   q(2153) => [
       q(Desiya),
       ],
-   q(2160) => [
+   q(2154) => [
       q(Tadaksahak),
       ],
-   q(2161) => [
+   q(2155) => [
       q(Daur),
       ],
-   q(2162) => [
+   q(2156) => [
       q(Labuk-Kinabatangan Kadazan),
       ],
-   q(2163) => [
+   q(2157) => [
       q(Ditidaht),
       ],
-   q(2164) => [
+   q(2158) => [
       q(Adithinngithigh),
       ],
-   q(2165) => [
+   q(2159) => [
       q(Ana Tinga Dogon),
       ],
-   q(2166) => [
+   q(2160) => [
       q(Tene Kan Dogon),
       ],
-   q(2167) => [
+   q(2161) => [
       q(Tomo Kan Dogon),
       ],
-   q(2168) => [
+   q(2162) => [
       q(Tommo So Dogon),
       ],
-   q(2169) => [
+   q(2163) => [
       q(Central Dusun),
       ],
-   q(2170) => [
+   q(2164) => [
       q(Lotud),
       ],
-   q(2171) => [
+   q(2165) => [
       q(Toro So Dogon),
       ],
-   q(2172) => [
+   q(2166) => [
       q(Toro Tegu Dogon),
       ],
-   q(2173) => [
+   q(2167) => [
       q(Tebul Ure Dogon),
       ],
-   q(2174) => [
+   q(2168) => [
       q(Dotyali),
       ],
-   q(2175) => [
+   q(2169) => [
       q(Dubli),
       ],
-   q(2176) => [
+   q(2170) => [
       q(Duna),
       ],
-   q(2177) => [
+   q(2171) => [
       q(Hun-Saare),
       ],
-   q(2178) => [
+   q(2172) => [
       q(Umiray Dumaget Agta),
       ],
-   q(2179) => [
+   q(2173) => [
       q(Dumbea),
       q(Drubea),
       ],
-   q(2180) => [
+   q(2174) => [
       q(Duruma),
       q(Chiduruma),
       ],
-   q(2181) => [
+   q(2175) => [
       q(Dungra Bhil),
       ],
-   q(2182) => [
+   q(2176) => [
       q(Dumun),
       ],
-   q(2183) => [
+   q(2177) => [
       q(Dhuwal),
       ],
-   q(2184) => [
+   q(2178) => [
       q(Uyajitaya),
       ],
-   q(2185) => [
+   q(2179) => [
       q(Alabat Island Agta),
       ],
-   q(2186) => [
+   q(2180) => [
       q(Dusun Deyah),
       ],
-   q(2187) => [
+   q(2181) => [
       q(Dupaninan Agta),
       ],
-   q(2188) => [
+   q(2182) => [
       q(Duano),
       ],
-   q(2189) => [
+   q(2183) => [
       q(Dusun Malang),
       ],
-   q(2190) => [
+   q(2184) => [
       q(Dii),
       ],
-   q(2191) => [
+   q(2185) => [
       q(Dumi),
       ],
-   q(2192) => [
+   q(2186) => [
       q(Drung),
       ],
-   q(2193) => [
+   q(2187) => [
       q(Duvle),
       ],
-   q(2194) => [
+   q(2188) => [
       q(Dusun Witu),
       ],
-   q(2195) => [
+   q(2189) => [
       q(Duungooma),
       ],
-   q(2196) => [
+   q(2190) => [
       q(Dicamay Agta),
       ],
-   q(2197) => [
+   q(2191) => [
       q(Duli),
       ],
-   q(2198) => [
+   q(2192) => [
       q(Duau),
       ],
-   q(2199) => [
+   q(2193) => [
       q(Diri),
       ],
-   q(2200) => [
+   q(2194) => [
       q(Dawro),
       ],
-   q(2201) => [
+   q(2195) => [
       q(Dutton World Speedwords),
       ],
-   q(2202) => [
+   q(2196) => [
       q(Dawawa),
       ],
-   q(2203) => [
+   q(2197) => [
       q(Dyan),
       ],
-   q(2204) => [
+   q(2198) => [
       q(Dyaberdyaber),
       ],
-   q(2205) => [
+   q(2199) => [
       q(Dyugun),
       ],
-   q(2206) => [
+   q(2200) => [
       q(Villa Viciosa Agta),
       ],
-   q(2207) => [
+   q(2201) => [
       q(Djimini Senoufo),
       ],
-   q(2208) => [
+   q(2202) => [
       q(Yanda Dom Dogon),
       ],
-   q(2209) => [
+   q(2203) => [
       q(Dyangadi),
       ],
-   q(2210) => [
+   q(2204) => [
       q(Jola-Fonyi),
       ],
-   q(2211) => [
+   q(2205) => [
       q(Dyaabugay),
       ],
-   q(2212) => [
+   q(2206) => [
       q(Tunzu),
       ],
-   q(2213) => [
-      q(Daza),
-      ],
-   q(2214) => [
+   q(2207) => [
       q(Djiwarli),
       ],
-   q(2215) => [
+   q(2208) => [
       q(Dazaga),
       ],
-   q(2216) => [
+   q(2209) => [
       q(Dzalakha),
       ],
-   q(2217) => [
+   q(2210) => [
       q(Dzando),
       ],
-   q(2218) => [
+   q(2211) => [
       q(Karenggapa),
       ],
-   q(2219) => [
+   q(2212) => [
       q(Ebughu),
       ],
-   q(2220) => [
+   q(2213) => [
       q(Eastern Bontok),
       ],
-   q(2221) => [
+   q(2214) => [
       q(Teke-Ebo),
       ],
-   q(2222) => [
+   q(2215) => [
       q(Ebrie),
       ],
-   q(2223) => [
+   q(2216) => [
       q(Embu),
       q(Kiembu),
       ],
-   q(2224) => [
+   q(2217) => [
       q(Eteocretan),
       ],
-   q(2225) => [
+   q(2218) => [
       q(Ecuadorian Sign Language),
       ],
-   q(2226) => [
+   q(2219) => [
       q(Eteocypriot),
       ],
-   q(2227) => [
+   q(2220) => [
       q(E),
       ],
-   q(2228) => [
+   q(2221) => [
       q(Efai),
       ],
-   q(2229) => [
+   q(2222) => [
       q(Efe),
       ],
-   q(2230) => [
+   q(2223) => [
       q(Ega),
       ],
-   q(2231) => [
+   q(2224) => [
       q(Emilian),
       ],
-   q(2232) => [
+   q(2225) => [
       q(Eggon),
       ],
-   q(2233) => [
+   q(2226) => [
       q(Ehueun),
       ],
-   q(2234) => [
+   q(2227) => [
       q(Eipomek),
       ],
-   q(2235) => [
+   q(2228) => [
       q(Eitiep),
       ],
-   q(2236) => [
+   q(2229) => [
       q(Askopan),
       ],
-   q(2237) => [
+   q(2230) => [
       q(Ejamat),
       ],
-   q(2238) => [
+   q(2231) => [
       q(Eastern Karnic),
       ],
-   q(2239) => [
+   q(2232) => [
       q(Ekit),
       ],
-   q(2240) => [
+   q(2233) => [
       q(Ekari),
       ],
-   q(2241) => [
+   q(2234) => [
       q(Eki),
       ],
-   q(2242) => [
+   q(2235) => [
       q(Standard Estonian),
       ],
-   q(2243) => [
+   q(2236) => [
       q(Kol (Bangladesh)),
       q(Kol),
       ],
-   q(2244) => [
+   q(2237) => [
       q(Elip),
       ],
-   q(2245) => [
+   q(2238) => [
       q(Koti),
       ],
-   q(2246) => [
+   q(2239) => [
       q(Ekpeye),
       ],
-   q(2247) => [
+   q(2240) => [
       q(Yace),
       ],
-   q(2248) => [
+   q(2241) => [
       q(Eastern Kayah),
       ],
-   q(2249) => [
+   q(2242) => [
       q(Elepi),
       ],
-   q(2250) => [
+   q(2243) => [
       q(El Hugeirat),
       ],
-   q(2251) => [
+   q(2244) => [
       q(Nding),
       ],
-   q(2252) => [
+   q(2245) => [
       q(Elkei),
       ],
-   q(2253) => [
+   q(2246) => [
       q(Eleme),
       ],
-   q(2254) => [
+   q(2247) => [
       q(El Molo),
       ],
-   q(2255) => [
+   q(2248) => [
       q(Elu),
       ],
-   q(2256) => [
+   q(2249) => [
       q(Emai-Iuleha-Ora),
       ],
-   q(2257) => [
+   q(2250) => [
       q(Embaloh),
       ],
-   q(2258) => [
+   q(2251) => [
       q(Emerillon),
       ],
-   q(2259) => [
+   q(2252) => [
       q(Eastern Meohang),
       ],
-   q(2260) => [
+   q(2253) => [
       q(Mussau-Emira),
       ],
-   q(2261) => [
+   q(2254) => [
       q(Eastern Maninkakan),
       ],
-   q(2262) => [
+   q(2255) => [
       q(Mamulique),
       ],
-   q(2263) => [
+   q(2256) => [
       q(Eman),
       ],
-   q(2264) => [
+   q(2257) => [
       q(Northern Embera),
       ],
-   q(2265) => [
+   q(2258) => [
       q(Pacific Gulf Yupik),
       ],
-   q(2266) => [
+   q(2259) => [
       q(Eastern Muria),
       ],
-   q(2267) => [
+   q(2260) => [
       q(Emplawas),
       ],
-   q(2268) => [
+   q(2261) => [
       q(Erromintxela),
       ],
-   q(2269) => [
+   q(2262) => [
       q(Epigraphic Mayan),
       ],
-   q(2270) => [
+   q(2263) => [
       q(Apali),
       ],
-   q(2271) => [
+   q(2264) => [
       q(Markweeta),
       ],
-   q(2272) => [
+   q(2265) => [
       q(En),
       ],
-   q(2273) => [
+   q(2266) => [
       q(Ende),
       ],
-   q(2274) => [
+   q(2267) => [
       q(Forest Enets),
       ],
-   q(2275) => [
+   q(2268) => [
       q(Tundra Enets),
       ],
-   q(2276) => [
+   q(2269) => [
       q(Enlhet),
       ],
-   q(2277) => [
+   q(2270) => [
       q(Engenni),
       ],
-   q(2278) => [
+   q(2271) => [
       q(Enggano),
       ],
-   q(2279) => [
+   q(2272) => [
       q(Enga),
       ],
-   q(2280) => [
+   q(2273) => [
       q(Emumu),
       q(Emem),
       ],
-   q(2281) => [
+   q(2274) => [
       q(Enu),
       ],
-   q(2282) => [
+   q(2275) => [
       q(Enwan (Edu State)),
       ],
-   q(2283) => [
+   q(2276) => [
       q(Enwan (Akwa Ibom State)),
       ],
-   q(2284) => [
+   q(2277) => [
       q(Enxet),
       ],
-   q(2285) => [
+   q(2278) => [
       q(Beti (Cote d'Ivoire)),
       ],
-   q(2286) => [
+   q(2279) => [
       q(Epie),
       ],
-   q(2287) => [
+   q(2280) => [
       q(Eravallan),
       ],
-   q(2288) => [
+   q(2281) => [
       q(Sie),
       ],
-   q(2289) => [
+   q(2282) => [
       q(Eruwa),
       ],
-   q(2290) => [
+   q(2283) => [
       q(Ogea),
       ],
-   q(2291) => [
+   q(2284) => [
       q(South Efate),
       ],
-   q(2292) => [
+   q(2285) => [
       q(Horpa),
       ],
-   q(2293) => [
+   q(2286) => [
       q(Erre),
       ],
-   q(2294) => [
+   q(2287) => [
       q(Ersu),
       ],
-   q(2295) => [
+   q(2288) => [
       q(Eritai),
       ],
-   q(2296) => [
+   q(2289) => [
       q(Erokwanas),
       ],
-   q(2297) => [
+   q(2290) => [
       q(Ese Ejja),
       ],
-   q(2298) => [
+   q(2291) => [
       q(Eshtehardi),
       ],
-   q(2299) => [
+   q(2292) => [
       q(North Alaskan Inupiatun),
       ],
-   q(2300) => [
+   q(2293) => [
       q(Northwest Alaska Inupiatun),
       ],
-   q(2301) => [
+   q(2294) => [
       q(Egypt Sign Language),
       ],
-   q(2302) => [
+   q(2295) => [
       q(Esuma),
       ],
-   q(2303) => [
+   q(2296) => [
       q(Salvadoran Sign Language),
       ],
-   q(2304) => [
+   q(2297) => [
       q(Estonian Sign Language),
       ],
-   q(2305) => [
+   q(2298) => [
       q(Esselen),
       ],
-   q(2306) => [
+   q(2299) => [
       q(Central Siberian Yupik),
       ],
-   q(2307) => [
+   q(2300) => [
       q(Central Yupik),
       ],
-   q(2308) => [
+   q(2301) => [
       q(Eskayan),
       ],
-   q(2309) => [
+   q(2302) => [
       q(Etebi),
       ],
-   q(2310) => [
+   q(2303) => [
       q(Etchemin),
       ],
-   q(2311) => [
+   q(2304) => [
       q(Ethiopian Sign Language),
       ],
-   q(2312) => [
+   q(2305) => [
       q(Eton (Vanuatu)),
       ],
-   q(2313) => [
+   q(2306) => [
       q(Eton (Cameroon)),
       ],
-   q(2314) => [
+   q(2307) => [
       q(Edolo),
       ],
-   q(2315) => [
+   q(2308) => [
       q(Yekhee),
       ],
-   q(2316) => [
+   q(2309) => [
       q(Etruscan),
       ],
-   q(2317) => [
+   q(2310) => [
       q(Ejagham),
       ],
-   q(2318) => [
+   q(2311) => [
       q(Eten),
       ],
-   q(2319) => [
+   q(2312) => [
       q(Semimi),
       ],
-   q(2320) => [
+   q(2313) => [
       q(Even),
       ],
-   q(2321) => [
+   q(2314) => [
       q(Uvbie),
       ],
-   q(2322) => [
+   q(2315) => [
       q(Evenki),
       ],
-   q(2323) => [
+   q(2316) => [
       q(Extremaduran),
       ],
-   q(2324) => [
+   q(2317) => [
       q(Eyak),
       ],
-   q(2325) => [
+   q(2318) => [
       q(Keiyo),
       ],
-   q(2326) => [
+   q(2319) => [
       q(Ezaa),
       ],
-   q(2327) => [
+   q(2320) => [
       q(Uzekwe),
       ],
-   q(2328) => [
+   q(2321) => [
       q(Fasu),
       ],
-   q(2329) => [
+   q(2322) => [
       q(Fa d'Ambu),
       ],
-   q(2330) => [
+   q(2323) => [
       q(Wagi),
       ],
-   q(2331) => [
+   q(2324) => [
       q(Fagani),
       ],
-   q(2332) => [
+   q(2325) => [
       q(Finongan),
       ],
-   q(2333) => [
+   q(2326) => [
       q(Baissa Fali),
       ],
-   q(2334) => [
+   q(2327) => [
       q(Faiwol),
       ],
-   q(2335) => [
+   q(2328) => [
       q(Faita),
       ],
-   q(2336) => [
+   q(2329) => [
       q(Fang (Cameroon)),
       ],
-   q(2337) => [
+   q(2330) => [
       q(South Fali),
       ],
-   q(2338) => [
+   q(2331) => [
       q(Fam),
       ],
-   q(2339) => [
+   q(2332) => [
       q(Palor),
       ],
-   q(2340) => [
+   q(2333) => [
       q(Fataleka),
       ],
-   q(2341) => [
+   q(2334) => [
       q(Fayu),
       ],
-   q(2342) => [
+   q(2335) => [
       q(Fala),
       ],
-   q(2343) => [
+   q(2336) => [
       q(Southwestern Fars),
       ],
-   q(2344) => [
+   q(2337) => [
       q(Northwestern Fars),
       ],
-   q(2345) => [
+   q(2338) => [
       q(West Albay Bikol),
       ],
-   q(2346) => [
+   q(2339) => [
       q(Quebec Sign Language),
       ],
-   q(2347) => [
+   q(2340) => [
       q(Feroge),
       ],
-   q(2348) => [
+   q(2341) => [
       q(Foia Foia),
       ],
-   q(2349) => [
+   q(2342) => [
       q(Maasina Fulfulde),
       ],
-   q(2350) => [
+   q(2343) => [
       q(Fongoro),
       ],
-   q(2351) => [
+   q(2344) => [
       q(Nobiin),
       ],
-   q(2352) => [
+   q(2345) => [
       q(Fyer),
       ],
-   q(2353) => [
+   q(2346) => [
       q(Fipa),
       ],
-   q(2354) => [
+   q(2347) => [
       q(Firan),
       ],
-   q(2355) => [
+   q(2348) => [
       q(Tornedalen Finnish),
       ],
-   q(2356) => [
+   q(2349) => [
       q(Fiwaga),
       ],
-   q(2357) => [
+   q(2350) => [
       q(Kirya-Konzel),
       ],
-   q(2358) => [
+   q(2351) => [
       q(Kven Finnish),
       ],
-   q(2359) => [
+   q(2352) => [
       q(Kalispel-Pend d'Oreille),
       ],
-   q(2360) => [
+   q(2353) => [
       q(Foau),
       ],
-   q(2361) => [
+   q(2354) => [
       q(Fali),
       ],
-   q(2362) => [
+   q(2355) => [
       q(North Fali),
       ],
-   q(2363) => [
+   q(2356) => [
       q(Flinders Island),
       ],
-   q(2364) => [
+   q(2357) => [
       q(Fuliiru),
       ],
-   q(2365) => [
+   q(2358) => [
       q(Flaaitaal),
       q(Tsotsitaal),
       ],
-   q(2366) => [
+   q(2359) => [
       q(Fe'fe'),
       ],
-   q(2367) => [
+   q(2360) => [
       q(Far Western Muria),
       ],
-   q(2368) => [
+   q(2361) => [
       q(Fanagalo),
       ],
-   q(2369) => [
+   q(2362) => [
       q(Fania),
       ],
-   q(2370) => [
+   q(2363) => [
       q(Foodo),
       ],
-   q(2371) => [
+   q(2364) => [
       q(Foi),
       ],
-   q(2372) => [
+   q(2365) => [
       q(Foma),
       ],
-   q(2373) => [
+   q(2366) => [
       q(Fore),
       ],
-   q(2374) => [
+   q(2367) => [
       q(Siraya),
       ],
-   q(2375) => [
+   q(2368) => [
       q(Fernando Po Creole English),
       ],
-   q(2376) => [
+   q(2369) => [
       q(Fas),
       ],
-   q(2377) => [
+   q(2370) => [
       q(Cajun French),
       ],
-   q(2378) => [
+   q(2371) => [
       q(Fordata),
       ],
-   q(2379) => [
+   q(2372) => [
       q(Frankish),
       ],
-   q(2380) => [
+   q(2373) => [
       q(Arpitan),
       q(Francoprovencal),
       ],
-   q(2381) => [
+   q(2374) => [
       q(Forak),
       ],
-   q(2382) => [
+   q(2375) => [
       q(Fortsenal),
       ],
-   q(2383) => [
+   q(2376) => [
       q(Finnish Sign Language),
       ],
-   q(2384) => [
+   q(2377) => [
       q(French Sign Language),
       ],
-   q(2385) => [
+   q(2378) => [
       q(Finland-Swedish Sign Language),
       q(finlandssvenskt teckensprak),
       q(suomenruotsalainen viittomakieli),
       ],
-   q(2386) => [
+   q(2379) => [
       q(Adamawa Fulfulde),
       ],
-   q(2387) => [
+   q(2380) => [
       q(Pulaar),
       ],
-   q(2388) => [
+   q(2381) => [
       q(East Futuna),
       ],
-   q(2389) => [
+   q(2382) => [
       q(Borgu Fulfulde),
       ],
-   q(2390) => [
+   q(2383) => [
       q(Pular),
       ],
-   q(2391) => [
+   q(2384) => [
       q(Western Niger Fulfulde),
       ],
-   q(2392) => [
+   q(2385) => [
       q(Bagirmi Fulfulde),
       ],
-   q(2393) => [
+   q(2386) => [
       q(Ko),
       ],
-   q(2394) => [
+   q(2387) => [
       q(Fum),
       ],
-   q(2395) => [
+   q(2388) => [
       q(Fulnio),
       ],
-   q(2396) => [
+   q(2389) => [
       q(Central-Eastern Niger Fulfulde),
       ],
-   q(2397) => [
+   q(2390) => [
       q(Futuna-Aniwa),
       ],
-   q(2398) => [
+   q(2391) => [
       q(Furu),
       ],
-   q(2399) => [
+   q(2392) => [
       q(Nigerian Fulfulde),
       ],
-   q(2400) => [
+   q(2393) => [
       q(Fuyug),
       ],
-   q(2401) => [
+   q(2394) => [
       q(Fur),
       ],
-   q(2402) => [
+   q(2395) => [
       q(Fwai),
       ],
-   q(2403) => [
+   q(2396) => [
       q(Fwe),
       ],
-   q(2404) => [
+   q(2397) => [
       q(Gabri),
       ],
-   q(2405) => [
+   q(2398) => [
       q(Mixed Great Andamanese),
       ],
-   q(2406) => [
+   q(2399) => [
       q(Gaddang),
       ],
-   q(2407) => [
+   q(2400) => [
       q(Guarequena),
       ],
-   q(2408) => [
+   q(2401) => [
       q(Gende),
       ],
-   q(2409) => [
+   q(2402) => [
       q(Gagauz),
       ],
-   q(2410) => [
+   q(2403) => [
       q(Alekano),
       ],
-   q(2411) => [
+   q(2404) => [
       q(Borei),
       ],
-   q(2412) => [
+   q(2405) => [
       q(Gadsup),
       ],
-   q(2413) => [
+   q(2406) => [
       q(Gamkonora),
       ],
-   q(2414) => [
+   q(2407) => [
       q(Galolen),
       ],
-   q(2415) => [
+   q(2408) => [
       q(Kandawo),
       ],
-   q(2416) => [
+   q(2409) => [
       q(Gan Chinese),
       ],
-   q(2417) => [
+   q(2410) => [
       q(Gants),
       ],
-   q(2418) => [
+   q(2411) => [
       q(Gal),
       ],
-   q(2419) => [
+   q(2412) => [
       q(Gata'),
       ],
-   q(2420) => [
+   q(2413) => [
       q(Galeya),
       ],
-   q(2421) => [
+   q(2414) => [
       q(Adiwasi Garasia),
       ],
-   q(2422) => [
+   q(2415) => [
       q(Kenati),
       ],
-   q(2423) => [
+   q(2416) => [
       q(Mudhili Gadaba),
       ],
-   q(2424) => [
+   q(2417) => [
       q(Nobonob),
       ],
-   q(2425) => [
+   q(2418) => [
       q(Borana-Arsi-Guji Oromo),
       ],
-   q(2426) => [
+   q(2419) => [
       q(West Central Oromo),
       ],
-   q(2427) => [
+   q(2420) => [
       q(Kaytetye),
       ],
-   q(2428) => [
+   q(2421) => [
       q(Karadjeri),
       ],
-   q(2429) => [
+   q(2422) => [
       q(Niksek),
       ],
-   q(2430) => [
+   q(2423) => [
       q(Gaikundi),
       ],
-   q(2431) => [
+   q(2424) => [
       q(Gbanziri),
       ],
-   q(2432) => [
+   q(2425) => [
       q(Defi Gbe),
       ],
-   q(2433) => [
+   q(2426) => [
       q(Galela),
       ],
-   q(2434) => [
+   q(2427) => [
       q(Bodo Gadaba),
       ],
-   q(2435) => [
+   q(2428) => [
       q(Gaddi),
       ],
-   q(2436) => [
+   q(2429) => [
       q(Gamit),
       ],
-   q(2437) => [
+   q(2430) => [
       q(Garhwali),
       ],
-   q(2438) => [
+   q(2431) => [
       q(Mo'da),
       ],
-   q(2439) => [
+   q(2432) => [
       q(Northern Grebo),
       ],
-   q(2440) => [
+   q(2433) => [
       q(Gbaya-Bossangoa),
       ],
-   q(2441) => [
+   q(2434) => [
       q(Gbaya-Bozoum),
       ],
-   q(2442) => [
+   q(2435) => [
       q(Gbagyi),
       ],
-   q(2443) => [
+   q(2436) => [
       q(Gbesi Gbe),
       ],
-   q(2444) => [
+   q(2437) => [
       q(Gagadu),
       ],
-   q(2445) => [
+   q(2438) => [
       q(Gbanu),
       ],
-   q(2446) => [
+   q(2439) => [
       q(Gabi-Gabi),
       ],
-   q(2447) => [
+   q(2440) => [
       q(Eastern Xwla Gbe),
       ],
-   q(2448) => [
+   q(2441) => [
       q(Gbari),
       ],
-   q(2449) => [
+   q(2442) => [
       q(Zoroastrian Dari),
       ],
-   q(2450) => [
+   q(2443) => [
       q(Mali),
       ],
-   q(2451) => [
+   q(2444) => [
       q(Ganggalida),
       ],
-   q(2452) => [
+   q(2445) => [
       q(Galice),
       ],
-   q(2453) => [
+   q(2446) => [
       q(Guadeloupean Creole French),
       ],
-   q(2454) => [
+   q(2447) => [
       q(Grenadian Creole English),
       ],
-   q(2455) => [
+   q(2448) => [
       q(Gaina),
       ],
-   q(2456) => [
+   q(2449) => [
       q(Guianese Creole French),
       ],
-   q(2457) => [
+   q(2450) => [
       q(Colonia Tovar German),
       ],
-   q(2458) => [
+   q(2451) => [
       q(Gade Lohar),
       ],
-   q(2459) => [
+   q(2452) => [
       q(Pottangi Ollar Gadaba),
       ],
-   q(2460) => [
+   q(2453) => [
       q(Gugu Badhun),
       ],
-   q(2461) => [
+   q(2454) => [
       q(Gedaged),
       ],
-   q(2462) => [
+   q(2455) => [
       q(Gude),
       ],
-   q(2463) => [
+   q(2456) => [
       q(Guduf-Gava),
       ],
-   q(2464) => [
+   q(2457) => [
       q(Ga'dang),
       ],
-   q(2465) => [
+   q(2458) => [
       q(Gadjerawang),
       ],
-   q(2466) => [
+   q(2459) => [
       q(Gundi),
       ],
-   q(2467) => [
+   q(2460) => [
       q(Gurdjar),
       ],
-   q(2468) => [
+   q(2461) => [
       q(Gadang),
       ],
-   q(2469) => [
+   q(2462) => [
       q(Dirasha),
       ],
-   q(2470) => [
+   q(2463) => [
       q(Laal),
       ],
-   q(2471) => [
+   q(2464) => [
       q(Umanakaina),
       ],
-   q(2472) => [
+   q(2465) => [
       q(Ghodoberi),
       ],
-   q(2473) => [
+   q(2466) => [
       q(Mehri),
       ],
-   q(2474) => [
+   q(2467) => [
       q(Wipi),
       ],
-   q(2475) => [
+   q(2468) => [
       q(Ghandruk Sign Language),
       ],
-   q(2476) => [
+   q(2469) => [
       q(Kungardutyi),
       ],
-   q(2477) => [
+   q(2470) => [
       q(Gudu),
       ],
-   q(2478) => [
+   q(2471) => [
       q(Godwari),
       ],
-   q(2479) => [
+   q(2472) => [
       q(Geruma),
       ],
-   q(2480) => [
+   q(2473) => [
       q(Kire),
       ],
-   q(2481) => [
+   q(2474) => [
       q(Gboloo Grebo),
       ],
-   q(2482) => [
+   q(2475) => [
       q(Gade),
       ],
-   q(2483) => [
+   q(2476) => [
       q(Gengle),
       ],
-   q(2484) => [
+   q(2477) => [
       q(Hutterite German),
       q(Hutterisch),
       ],
-   q(2485) => [
+   q(2478) => [
       q(Gebe),
       ],
-   q(2486) => [
+   q(2479) => [
       q(Gen),
       ],
-   q(2487) => [
+   q(2480) => [
       q(Yiwom),
       ],
-   q(2488) => [
+   q(2481) => [
       q(ut-Ma'in),
       ],
-   q(2489) => [
+   q(2482) => [
       q(Geme),
       ],
-   q(2490) => [
+   q(2483) => [
       q(Geser-Gorom),
       ],
-   q(2491) => [
+   q(2484) => [
       q(Eviya),
       ],
-   q(2492) => [
+   q(2485) => [
       q(Gera),
       ],
-   q(2493) => [
+   q(2486) => [
       q(Garre),
       ],
-   q(2494) => [
+   q(2487) => [
       q(Enya),
       ],
-   q(2495) => [
+   q(2488) => [
       q(Patpatar),
       ],
-   q(2496) => [
+   q(2489) => [
       q(Gafat),
       ],
-   q(2497) => [
-      q(Mangetti Dune !Xung),
-      ],
-   q(2498) => [
+   q(2490) => [
       q(Gao),
       ],
-   q(2499) => [
+   q(2491) => [
       q(Gbii),
       ],
-   q(2500) => [
+   q(2492) => [
       q(Gugadj),
       ],
-   q(2501) => [
+   q(2493) => [
       q(Guragone),
       ],
-   q(2502) => [
+   q(2494) => [
       q(Gurgula),
       ],
-   q(2503) => [
+   q(2495) => [
       q(Kungarakany),
       ],
-   q(2504) => [
+   q(2496) => [
       q(Ganglau),
       ],
-   q(2505) => [
+   q(2497) => [
       q(Eastern Gurung),
       ],
-   q(2506) => [
+   q(2498) => [
       q(Southern Gondi),
       ],
-   q(2507) => [
+   q(2499) => [
       q(Gitua),
       ],
-   q(2508) => [
+   q(2500) => [
       q(Gagu),
       q(Gban),
       ],
-   q(2509) => [
+   q(2501) => [
       q(Gogodala),
       ],
-   q(2510) => [
+   q(2502) => [
       q(Ghadames),
       ],
-   q(2511) => [
+   q(2503) => [
       q(Hiberno-Scottish Gaelic),
       ],
-   q(2512) => [
+   q(2504) => [
       q(Southern Ghale),
       ],
-   q(2513) => [
+   q(2505) => [
       q(Northern Ghale),
       ],
-   q(2514) => [
+   q(2506) => [
       q(Geko Karen),
       ],
-   q(2515) => [
+   q(2507) => [
       q(Ghulfan),
       ],
-   q(2516) => [
+   q(2508) => [
       q(Ghanongga),
       ],
-   q(2517) => [
+   q(2509) => [
       q(Ghomara),
       ],
-   q(2518) => [
+   q(2510) => [
       q(Ghera),
       ],
-   q(2519) => [
+   q(2511) => [
       q(Guhu-Samane),
       ],
-   q(2520) => [
+   q(2512) => [
       q(Kuke),
       q(Kutang Ghale),
       ],
-   q(2521) => [
+   q(2513) => [
       q(Kitja),
       ],
-   q(2522) => [
+   q(2514) => [
       q(Gibanawa),
       ],
-   q(2523) => [
+   q(2515) => [
       q(Gail),
       ],
-   q(2524) => [
+   q(2516) => [
       q(Gidar),
       ],
-   q(2525) => [
+   q(2517) => [
       q(Goaria),
       ],
-   q(2526) => [
+   q(2518) => [
       q(Githabul),
       ],
-   q(2527) => [
+   q(2519) => [
       q(Gimi (Eastern Highlands)),
       ],
-   q(2528) => [
+   q(2520) => [
       q(Hinukh),
       ],
-   q(2529) => [
+   q(2521) => [
       q(Gimi (West New Britain)),
       ],
-   q(2530) => [
+   q(2522) => [
       q(Green Gelao),
       ],
-   q(2531) => [
+   q(2523) => [
       q(Red Gelao),
       ],
-   q(2532) => [
+   q(2524) => [
       q(North Giziga),
       ],
-   q(2533) => [
+   q(2525) => [
       q(Gitxsan),
       ],
-   q(2534) => [
+   q(2526) => [
       q(Mulao),
       ],
-   q(2535) => [
+   q(2527) => [
       q(White Gelao),
       ],
-   q(2536) => [
+   q(2528) => [
       q(Gilima),
       ],
-   q(2537) => [
+   q(2529) => [
       q(Giyug),
       ],
-   q(2538) => [
+   q(2530) => [
       q(South Giziga),
       ],
-   q(2539) => [
+   q(2531) => [
       q(Geji),
       ],
-   q(2540) => [
+   q(2532) => [
       q(Kachi Koli),
       ],
-   q(2541) => [
+   q(2533) => [
       q(Gunditjmara),
       ],
-   q(2542) => [
+   q(2534) => [
       q(Gonja),
       ],
-   q(2543) => [
+   q(2535) => [
       q(Gujari),
       ],
-   q(2544) => [
+   q(2536) => [
       q(Guya),
       ],
-   q(2545) => [
+   q(2537) => [
       q(Ndai),
       ],
-   q(2546) => [
+   q(2538) => [
       q(Gokana),
       ],
-   q(2547) => [
+   q(2539) => [
       q(Kok-Nar),
       ],
-   q(2548) => [
+   q(2540) => [
       q(Guinea Kpelle),
       ],
-   q(2549) => [
+   q(2541) => [
+      q(Ungkue),
+      q(=/Ungkue),
+      ],
+   q(2542) => [
       q(Bon Gula),
       ],
-   q(2550) => [
+   q(2543) => [
       q(Nanai),
       ],
-   q(2551) => [
+   q(2544) => [
+      q(Northwest Pashai),
       q(Northwest Pashayi),
       ],
-   q(2552) => [
+   q(2545) => [
       q(Guliguli),
       ],
-   q(2553) => [
+   q(2546) => [
       q(Gula Iro),
       ],
-   q(2554) => [
+   q(2547) => [
       q(Gilaki),
       ],
-   q(2555) => [
+   q(2548) => [
       q(Garlali),
       ],
-   q(2556) => [
+   q(2549) => [
       q(Galambu),
       ],
-   q(2557) => [
+   q(2550) => [
       q(Glaro-Twabo),
       ],
-   q(2558) => [
+   q(2551) => [
       q(Gula (Chad)),
       ],
-   q(2559) => [
+   q(2552) => [
       q(Glavda),
       ],
-   q(2560) => [
+   q(2553) => [
       q(Gule),
       ],
-   q(2561) => [
+   q(2554) => [
       q(Gambera),
       ],
-   q(2562) => [
+   q(2555) => [
       q(Gula'alaa),
       ],
-   q(2563) => [
+   q(2556) => [
       q(Maghdi),
       ],
-   q(2564) => [
+   q(2557) => [
       q(Magyi),
       ],
-   q(2565) => [
+   q(2558) => [
       q(Middle Low German),
       ],
-   q(2566) => [
+   q(2559) => [
       q(Gbaya-Mbodomo),
       ],
-   q(2567) => [
+   q(2560) => [
       q(Gimnime),
       ],
-   q(2568) => [
+   q(2561) => [
       q(Gumalu),
       ],
-   q(2569) => [
+   q(2562) => [
       q(Gamo),
       ],
-   q(2570) => [
+   q(2563) => [
       q(Magoma),
       ],
-   q(2571) => [
+   q(2564) => [
       q(Mycenaean Greek),
       ],
-   q(2572) => [
+   q(2565) => [
       q(Mgbolizhia),
       ],
-   q(2573) => [
+   q(2566) => [
       q(Kaansa),
       ],
-   q(2574) => [
+   q(2567) => [
       q(Gangte),
       ],
-   q(2575) => [
+   q(2568) => [
       q(Guanche),
       ],
-   q(2576) => [
+   q(2569) => [
       q(Zulgo-Gemzek),
       ],
-   q(2577) => [
+   q(2570) => [
       q(Ganang),
       ],
-   q(2578) => [
+   q(2571) => [
       q(Ngangam),
       ],
-   q(2579) => [
+   q(2572) => [
       q(Lere),
       ],
-   q(2580) => [
+   q(2573) => [
       q(Gooniyandi),
       ],
-   q(2581) => [
+   q(2574) => [
       q(//Gana),
       ],
-   q(2582) => [
+   q(2575) => [
       q(Gangulu),
       ],
-   q(2583) => [
+   q(2576) => [
       q(Ginuman),
       ],
-   q(2584) => [
+   q(2577) => [
       q(Gumatj),
       ],
-   q(2585) => [
+   q(2578) => [
       q(Northern Gondi),
       ],
-   q(2586) => [
+   q(2579) => [
       q(Gana),
       ],
-   q(2587) => [
+   q(2580) => [
       q(Gureng Gureng),
       ],
-   q(2588) => [
+   q(2581) => [
       q(Guntai),
       ],
-   q(2589) => [
+   q(2582) => [
       q(Gnau),
       ],
-   q(2590) => [
+   q(2583) => [
       q(Western Bolivian Guarani),
       ],
-   q(2591) => [
+   q(2584) => [
       q(Ganzi),
       ],
-   q(2592) => [
+   q(2585) => [
       q(Guro),
       ],
-   q(2593) => [
+   q(2586) => [
       q(Playero),
       ],
-   q(2594) => [
+   q(2587) => [
       q(Gorakor),
       ],
-   q(2595) => [
+   q(2588) => [
       q(Godie),
       ],
-   q(2596) => [
+   q(2589) => [
       q(Gongduk),
       ],
-   q(2597) => [
+   q(2590) => [
       q(Gofa),
       ],
-   q(2598) => [
+   q(2591) => [
       q(Gogo),
       ],
-   q(2599) => [
+   q(2592) => [
       q(Gobasi),
       ],
-   q(2600) => [
+   q(2593) => [
       q(Gowlan),
       ],
-   q(2601) => [
+   q(2594) => [
       q(Gowli),
       ],
-   q(2602) => [
+   q(2595) => [
       q(Gola),
       ],
-   q(2603) => [
+   q(2596) => [
       q(Goan Konkani),
       ],
-   q(2604) => [
+   q(2597) => [
       q(Gone Dau),
       ],
-   q(2605) => [
+   q(2598) => [
       q(Yeretuar),
       ],
-   q(2606) => [
+   q(2599) => [
       q(Gorap),
       ],
-   q(2607) => [
+   q(2600) => [
       q(Gronings),
       ],
-   q(2608) => [
+   q(2601) => [
       q(Gavar),
       ],
-   q(2609) => [
+   q(2602) => [
       q(Gorowa),
       ],
-   q(2610) => [
+   q(2603) => [
       q(Gobu),
       ],
-   q(2611) => [
+   q(2604) => [
       q(Goundo),
       ],
-   q(2612) => [
+   q(2605) => [
       q(Gozarkhani),
       ],
-   q(2613) => [
+   q(2606) => [
       q(Gupa-Abawa),
       ],
-   q(2614) => [
+   q(2607) => [
       q(Ghanaian Pidgin English),
       ],
-   q(2615) => [
+   q(2608) => [
       q(Taiap),
       ],
-   q(2616) => [
+   q(2609) => [
       q(Ga'anda),
       ],
-   q(2617) => [
+   q(2610) => [
       q(Guiqiong),
       ],
-   q(2618) => [
+   q(2611) => [
       q(Guana (Brazil)),
       ],
-   q(2619) => [
+   q(2612) => [
       q(Gor),
       ],
-   q(2620) => [
+   q(2613) => [
       q(Qau),
       ],
-   q(2621) => [
+   q(2614) => [
       q(Rajput Garasia),
       ],
-   q(2622) => [
+   q(2615) => [
       q(Guruntum-Mbaaru),
       ],
-   q(2623) => [
+   q(2616) => [
       q(Madi),
       ],
-   q(2624) => [
+   q(2617) => [
       q(Gbiri-Niragu),
       ],
-   q(2625) => [
+   q(2618) => [
       q(Ghari),
       ],
-   q(2626) => [
+   q(2619) => [
       q(Southern Grebo),
       ],
-   q(2627) => [
+   q(2620) => [
       q(Kota Marudu Talantang),
       ],
-   q(2628) => [
+   q(2621) => [
       q(Groma),
       ],
-   q(2629) => [
+   q(2622) => [
       q(Gorovu),
       ],
-   q(2630) => [
+   q(2623) => [
       q(Taznatit),
       ],
-   q(2631) => [
+   q(2624) => [
       q(Gresi),
       ],
-   q(2632) => [
+   q(2625) => [
       q(Garo),
       ],
-   q(2633) => [
+   q(2626) => [
       q(Kistane),
       ],
-   q(2634) => [
+   q(2627) => [
       q(Central Grebo),
       ],
-   q(2635) => [
+   q(2628) => [
       q(Gweda),
       ],
-   q(2636) => [
+   q(2629) => [
       q(Guriaso),
       ],
-   q(2637) => [
+   q(2630) => [
       q(Barclayville Grebo),
       ],
-   q(2638) => [
+   q(2631) => [
       q(Guramalum),
       ],
-   q(2639) => [
+   q(2632) => [
       q(Ghanaian Sign Language),
       ],
-   q(2640) => [
+   q(2633) => [
       q(German Sign Language),
       ],
-   q(2641) => [
+   q(2634) => [
       q(Gusilay),
       ],
-   q(2642) => [
+   q(2635) => [
       q(Guatemalan Sign Language),
       ],
-   q(2643) => [
+   q(2636) => [
       q(Gusan),
       ],
-   q(2644) => [
+   q(2637) => [
       q(Southwest Gbaya),
       ],
-   q(2645) => [
+   q(2638) => [
       q(Wasembo),
       ],
-   q(2646) => [
+   q(2639) => [
       q(Greek Sign Language),
       ],
-   q(2647) => [
+   q(2640) => [
       q(Guato),
       ],
-   q(2648) => [
-      q(Gbati-ri),
-      ],
-   q(2649) => [
+   q(2641) => [
       q(Aghu-Tharnggala),
       ],
-   q(2650) => [
+   q(2642) => [
       q(Shiki),
       ],
-   q(2651) => [
+   q(2643) => [
       q(Guajajara),
       ],
-   q(2652) => [
+   q(2644) => [
       q(Wayuu),
       ],
-   q(2653) => [
+   q(2645) => [
       q(Yocoboue Dida),
       ],
-   q(2654) => [
+   q(2646) => [
       q(Gurinji),
       ],
-   q(2655) => [
+   q(2647) => [
       q(Gupapuyngu),
       ],
-   q(2656) => [
+   q(2648) => [
       q(Paraguayan Guarani),
       ],
-   q(2657) => [
+   q(2649) => [
       q(Guahibo),
       ],
-   q(2658) => [
+   q(2650) => [
       q(Eastern Bolivian Guarani),
       ],
-   q(2659) => [
+   q(2651) => [
       q(Gumuz),
       ],
-   q(2660) => [
+   q(2652) => [
       q(Sea Island Creole English),
       ],
-   q(2661) => [
+   q(2653) => [
       q(Guambiano),
       ],
-   q(2662) => [
+   q(2654) => [
       q(Mbya Guarani),
       ],
-   q(2663) => [
+   q(2655) => [
       q(Guayabero),
       ],
-   q(2664) => [
+   q(2656) => [
       q(Gunwinggu),
       ],
-   q(2665) => [
+   q(2657) => [
       q(Ache),
       ],
-   q(2666) => [
+   q(2658) => [
       q(Farefare),
       ],
-   q(2667) => [
+   q(2659) => [
       q(Guinean Sign Language),
       ],
-   q(2668) => [
+   q(2660) => [
       q(Maleku Jaika),
       ],
-   q(2669) => [
+   q(2661) => [
       q(Yanomamo),
       ],
-   q(2670) => [
+   q(2662) => [
       q(Gey),
       ],
-   q(2671) => [
+   q(2663) => [
       q(Gun),
       ],
-   q(2672) => [
+   q(2664) => [
       q(Gourmanchema),
       ],
-   q(2673) => [
+   q(2665) => [
       q(Gusii),
       q(Ekegusii),
       ],
-   q(2674) => [
+   q(2666) => [
       q(Guana (Paraguay)),
       ],
-   q(2675) => [
+   q(2667) => [
       q(Guanano),
       ],
-   q(2676) => [
+   q(2668) => [
       q(Duwet),
       ],
-   q(2677) => [
+   q(2669) => [
       q(Golin),
       ],
-   q(2678) => [
+   q(2670) => [
       q(Guaja),
       ],
-   q(2679) => [
+   q(2671) => [
       q(Gulay),
       ],
-   q(2680) => [
+   q(2672) => [
       q(Gurmana),
       ],
-   q(2681) => [
+   q(2673) => [
       q(Kuku-Yalanji),
       ],
-   q(2682) => [
+   q(2674) => [
       q(Gaviao Do Jiparana),
       ],
-   q(2683) => [
+   q(2675) => [
       q(Para Gaviao),
       ],
-   q(2684) => [
+   q(2676) => [
       q(Western Gurung),
       ],
-   q(2685) => [
+   q(2677) => [
       q(Gumawana),
       ],
-   q(2686) => [
+   q(2678) => [
       q(Guyani),
       ],
-   q(2687) => [
+   q(2679) => [
       q(Mbato),
       ],
-   q(2688) => [
+   q(2680) => [
       q(Gwa),
       ],
-   q(2689) => [
+   q(2681) => [
       q(Kalami),
       ],
-   q(2690) => [
+   q(2682) => [
       q(Gawwada),
       ],
-   q(2691) => [
+   q(2683) => [
       q(Gweno),
       ],
-   q(2692) => [
+   q(2684) => [
       q(Gowro),
       ],
-   q(2693) => [
+   q(2685) => [
       q(Moo),
       ],
-   q(2694) => [
+   q(2686) => [
       q(/Gwi),
       ],
-   q(2695) => [
+   q(2687) => [
       q(Awngthim),
       ],
-   q(2696) => [
+   q(2688) => [
       q(Gwandara),
       ],
-   q(2697) => [
+   q(2689) => [
       q(Gwere),
       ],
-   q(2698) => [
+   q(2690) => [
       q(Gawar-Bati),
       ],
-   q(2699) => [
+   q(2691) => [
       q(Guwamu),
       ],
-   q(2700) => [
+   q(2692) => [
       q(Kwini),
       ],
-   q(2701) => [
+   q(2693) => [
       q(Gua),
       ],
-   q(2702) => [
+   q(2694) => [
       q(We Southern),
       ],
-   q(2703) => [
+   q(2695) => [
       q(Northwest Gbaya),
       ],
-   q(2704) => [
+   q(2696) => [
       q(Garus),
       ],
-   q(2705) => [
+   q(2697) => [
       q(Kayardild),
       ],
-   q(2706) => [
+   q(2698) => [
       q(Gyem),
       ],
-   q(2707) => [
+   q(2699) => [
       q(Gungabula),
       ],
-   q(2708) => [
+   q(2700) => [
       q(Gbayi),
       ],
-   q(2709) => [
+   q(2701) => [
       q(Gyele),
       ],
-   q(2710) => [
+   q(2702) => [
       q(Gayil),
       ],
-   q(2711) => [
+   q(2703) => [
       q(Ngabere),
       ],
-   q(2712) => [
+   q(2704) => [
       q(Guyanese Creole English),
       ],
-   q(2713) => [
+   q(2705) => [
       q(Guarayu),
       ],
-   q(2714) => [
+   q(2706) => [
       q(Gunya),
       ],
-   q(2715) => [
+   q(2707) => [
       q(Ganza),
       ],
-   q(2716) => [
+   q(2708) => [
       q(Gazi),
       ],
-   q(2717) => [
+   q(2709) => [
       q(Gane),
       ],
-   q(2718) => [
+   q(2710) => [
       q(Han),
       ],
-   q(2719) => [
+   q(2711) => [
       q(Hanoi Sign Language),
       ],
-   q(2720) => [
+   q(2712) => [
       q(Gurani),
       ],
-   q(2721) => [
+   q(2713) => [
       q(Hatam),
       ],
-   q(2722) => [
+   q(2714) => [
       q(Eastern Oromo),
       ],
-   q(2723) => [
+   q(2715) => [
       q(Haiphong Sign Language),
       ],
-   q(2724) => [
+   q(2716) => [
       q(Hanga),
       ],
-   q(2725) => [
+   q(2717) => [
       q(Hahon),
       ],
-   q(2726) => [
+   q(2718) => [
       q(Hajong),
       ],
-   q(2727) => [
+   q(2719) => [
       q(Hakka Chinese),
       ],
-   q(2728) => [
+   q(2720) => [
       q(Halang),
       ],
-   q(2729) => [
+   q(2721) => [
       q(Hewa),
       ],
-   q(2730) => [
+   q(2722) => [
       q(Hangaza),
       ],
-   q(2731) => [
+   q(2723) => [
       q(Hako),
       ],
-   q(2732) => [
+   q(2724) => [
       q(Hupla),
       ],
-   q(2733) => [
+   q(2725) => [
       q(Ha),
       ],
-   q(2734) => [
+   q(2726) => [
       q(Harari),
       ],
-   q(2735) => [
+   q(2727) => [
       q(Haisla),
       ],
-   q(2736) => [
+   q(2728) => [
       q(Havu),
       ],
-   q(2737) => [
+   q(2729) => [
       q(Southern Haida),
       ],
-   q(2738) => [
+   q(2730) => [
       q(Haya),
       ],
-   q(2739) => [
+   q(2731) => [
       q(Hazaragi),
       ],
-   q(2740) => [
+   q(2732) => [
       q(Hamba),
       ],
-   q(2741) => [
+   q(2733) => [
       q(Huba),
       ],
-   q(2742) => [
+   q(2734) => [
       q(Heiban),
       ],
-   q(2743) => [
+   q(2735) => [
       q(Ancient Hebrew),
       ],
-   q(2744) => [
+   q(2736) => [
       q(Habu),
       ],
-   q(2745) => [
+   q(2737) => [
       q(Andaman Creole Hindi),
       ],
-   q(2746) => [
+   q(2738) => [
       q(Huichol),
       ],
-   q(2747) => [
+   q(2739) => [
       q(Northern Haida),
       ],
-   q(2748) => [
+   q(2740) => [
       q(Honduras Sign Language),
       ],
-   q(2749) => [
+   q(2741) => [
       q(Hadiyya),
       ],
-   q(2750) => [
+   q(2742) => [
       q(Northern Qiandong Miao),
       ],
-   q(2751) => [
+   q(2743) => [
       q(Herde),
       ],
-   q(2752) => [
+   q(2744) => [
       q(Helong),
       ],
-   q(2753) => [
+   q(2745) => [
       q(Hehe),
       ],
-   q(2754) => [
+   q(2746) => [
       q(Heiltsuk),
       ],
-   q(2755) => [
+   q(2747) => [
       q(Hemba),
       ],
-   q(2756) => [
+   q(2748) => [
       q(Hai//om),
       ],
-   q(2757) => [
+   q(2749) => [
       q(Haigwai),
       ],
-   q(2758) => [
+   q(2750) => [
       q(Hoia Hoia),
       ],
-   q(2759) => [
+   q(2751) => [
       q(Kerak),
       ],
-   q(2760) => [
+   q(2752) => [
       q(Hoyahoya),
       ],
-   q(2761) => [
+   q(2753) => [
       q(Lamang),
       ],
-   q(2762) => [
+   q(2754) => [
       q(Hibito),
       ],
-   q(2763) => [
+   q(2755) => [
       q(Hidatsa),
       ],
-   q(2764) => [
+   q(2756) => [
       q(Fiji Hindi),
       ],
-   q(2765) => [
+   q(2757) => [
       q(Kamwe),
       ],
-   q(2766) => [
+   q(2758) => [
       q(Pamosu),
       ],
-   q(2767) => [
+   q(2759) => [
       q(Hinduri),
       ],
-   q(2768) => [
+   q(2760) => [
       q(Hijuk),
       ],
-   q(2769) => [
+   q(2761) => [
       q(Seit-Kaitetu),
       ],
-   q(2770) => [
+   q(2762) => [
       q(Tsoa),
       ],
-   q(2771) => [
+   q(2763) => [
       q(Himarima),
       ],
-   q(2772) => [
+   q(2764) => [
       q(Hiw),
       ],
-   q(2773) => [
+   q(2765) => [
       q(Hixkaryana),
       ],
-   q(2774) => [
+   q(2766) => [
       q(Haji),
       ],
-   q(2775) => [
+   q(2767) => [
       q(Kahe),
       ],
-   q(2776) => [
+   q(2768) => [
       q(Hunde),
       ],
-   q(2777) => [
+   q(2769) => [
       q(Hunjara-Kaina Ke),
       ],
-   q(2778) => [
+   q(2770) => [
       q(Hong Kong Sign Language),
       q(Heung Kong Sau Yue),
       ],
-   q(2779) => [
+   q(2771) => [
       q(Halia),
       ],
-   q(2780) => [
+   q(2772) => [
       q(Halbi),
       ],
-   q(2781) => [
+   q(2773) => [
       q(Halang Doan),
       ],
-   q(2782) => [
+   q(2774) => [
       q(Hlersu),
       ],
-   q(2783) => [
+   q(2775) => [
       q(Matu Chin),
       ],
-   q(2784) => [
+   q(2776) => [
       q(Hieroglyphic Luwian),
       ],
-   q(2785) => [
+   q(2777) => [
       q(Southern Mashan Hmong),
       q(Southern Mashan Miao),
       ],
-   q(2786) => [
+   q(2778) => [
       q(Humburi Senni Songhay),
       ],
-   q(2787) => [
+   q(2779) => [
       q(Central Huishui Hmong),
       q(Central Huishui Miao),
       ],
-   q(2788) => [
+   q(2780) => [
       q(Large Flowery Miao),
       q(A-hmaos),
       q(Da-Hua Miao),
       ],
-   q(2789) => [
+   q(2781) => [
       q(Eastern Huishui Hmong),
       q(Eastern Huishui Miao),
       ],
-   q(2790) => [
+   q(2782) => [
       q(Hmong Don),
       ],
-   q(2791) => [
+   q(2783) => [
       q(Southwestern Guiyang Hmong),
       ],
-   q(2792) => [
+   q(2784) => [
       q(Southwestern Huishui Hmong),
       q(Southwestern Huishui Miao),
       ],
-   q(2793) => [
+   q(2785) => [
       q(Northern Huishui Hmong),
       q(Northern Huishui Miao),
       ],
-   q(2794) => [
+   q(2786) => [
       q(Ge),
       q(Gejia),
       ],
-   q(2795) => [
+   q(2787) => [
       q(Maek),
       ],
-   q(2796) => [
+   q(2788) => [
       q(Luopohe Hmong),
       q(Luopohe Miao),
       ],
-   q(2797) => [
+   q(2789) => [
       q(Central Mashan Hmong),
       q(Central Mashan Miao),
       ],
-   q(2798) => [
+   q(2790) => [
       q(Northern Mashan Hmong),
       q(Northern Mashan Miao),
       ],
-   q(2799) => [
+   q(2791) => [
       q(Eastern Qiandong Miao),
       ],
-   q(2800) => [
+   q(2792) => [
       q(Hmar),
       ],
-   q(2801) => [
+   q(2793) => [
       q(Southern Qiandong Miao),
       ],
-   q(2802) => [
+   q(2794) => [
       q(Hamtai),
       ],
-   q(2803) => [
+   q(2795) => [
       q(Hamap),
       ],
-   q(2804) => [
+   q(2796) => [
       q(Hmong Do),
       ],
-   q(2805) => [
+   q(2797) => [
       q(Western Mashan Hmong),
       q(Western Mashan Miao),
       ],
-   q(2806) => [
+   q(2798) => [
       q(Southern Guiyang Hmong),
       q(Southern Guiyang Miao),
       ],
-   q(2807) => [
+   q(2799) => [
       q(Hmong Shua),
       q(Sinicized Miao),
       ],
-   q(2808) => [
+   q(2800) => [
       q(Mina (Cameroon)),
       ],
-   q(2809) => [
+   q(2801) => [
       q(Southern Hindko),
       ],
-   q(2810) => [
+   q(2802) => [
       q(Chhattisgarhi),
       ],
-   q(2811) => [
+   q(2803) => [
       q(//Ani),
       ],
-   q(2812) => [
+   q(2804) => [
       q(Hani),
       ],
-   q(2813) => [
+   q(2805) => [
       q(Hmong Njua),
       q(Mong Leng),
       q(Mong Njua),
       ],
-   q(2814) => [
+   q(2806) => [
       q(Hanunoo),
       ],
-   q(2815) => [
+   q(2807) => [
       q(Northern Hindko),
       ],
-   q(2816) => [
+   q(2808) => [
       q(Caribbean Hindustani),
       ],
-   q(2817) => [
+   q(2809) => [
       q(Hung),
       ],
-   q(2818) => [
+   q(2810) => [
       q(Hoava),
       ],
-   q(2819) => [
+   q(2811) => [
       q(Mari (Madang Province)),
       ],
-   q(2820) => [
+   q(2812) => [
       q(Ho),
       ],
-   q(2821) => [
+   q(2813) => [
       q(Holma),
       ],
-   q(2822) => [
+   q(2814) => [
       q(Horom),
       ],
-   q(2823) => [
+   q(2815) => [
       q(Hobyot),
       ],
-   q(2824) => [
+   q(2816) => [
       q(Holikachuk),
       ],
-   q(2825) => [
+   q(2817) => [
       q(Hadothi),
       q(Haroti),
       ],
-   q(2826) => [
+   q(2818) => [
       q(Holu),
       ],
-   q(2827) => [
+   q(2819) => [
       q(Homa),
       ],
-   q(2828) => [
+   q(2820) => [
       q(Holoholo),
       ],
-   q(2829) => [
+   q(2821) => [
       q(Hopi),
       ],
-   q(2830) => [
+   q(2822) => [
       q(Horo),
       ],
-   q(2831) => [
+   q(2823) => [
       q(Ho Chi Minh City Sign Language),
       ],
-   q(2832) => [
+   q(2824) => [
       q(Hote),
       q(Male),
       ],
-   q(2833) => [
+   q(2825) => [
       q(Hovongan),
       ],
-   q(2834) => [
+   q(2826) => [
       q(Honi),
       ],
-   q(2835) => [
+   q(2827) => [
       q(Holiya),
       ],
-   q(2836) => [
+   q(2828) => [
       q(Hozo),
       ],
-   q(2837) => [
+   q(2829) => [
       q(Hpon),
       ],
-   q(2838) => [
+   q(2830) => [
       q(Hawai'i Sign Language (HSL)),
       q(Hawai'i Pidgin Sign Language),
       ],
-   q(2839) => [
+   q(2831) => [
       q(Hrangkhol),
       ],
-   q(2840) => [
+   q(2832) => [
       q(Niwer Mil),
       ],
-   q(2841) => [
+   q(2833) => [
       q(Hre),
       ],
-   q(2842) => [
+   q(2834) => [
       q(Haruku),
       ],
-   q(2843) => [
+   q(2835) => [
       q(Horned Miao),
       ],
-   q(2844) => [
+   q(2836) => [
       q(Haroi),
       ],
-   q(2845) => [
+   q(2837) => [
       q(Nhirrpi),
       ],
-   q(2846) => [
+   q(2838) => [
       q(Hertevin),
       ],
-   q(2847) => [
+   q(2839) => [
       q(Hruso),
       ],
-   q(2848) => [
+   q(2840) => [
       q(Warwar Feni),
       ],
-   q(2849) => [
+   q(2841) => [
       q(Hunsrik),
       ],
-   q(2850) => [
+   q(2842) => [
       q(Harzani),
       ],
-   q(2851) => [
+   q(2843) => [
       q(Hungarian Sign Language),
       ],
-   q(2852) => [
+   q(2844) => [
       q(Hausa Sign Language),
       ],
-   q(2853) => [
+   q(2845) => [
       q(Xiang Chinese),
       ],
-   q(2854) => [
+   q(2846) => [
       q(Harsusi),
       ],
-   q(2855) => [
+   q(2847) => [
       q(Hoti),
       ],
-   q(2856) => [
+   q(2848) => [
       q(Minica Huitoto),
       ],
-   q(2857) => [
+   q(2849) => [
       q(Hadza),
       ],
-   q(2858) => [
+   q(2850) => [
       q(Hitu),
       ],
-   q(2859) => [
+   q(2851) => [
       q(Middle Hittite),
       ],
-   q(2860) => [
+   q(2852) => [
       q(Huambisa),
       ],
-   q(2861) => [
+   q(2853) => [
       q(=/Hua),
       ],
-   q(2862) => [
+   q(2854) => [
       q(Huaulu),
       ],
-   q(2863) => [
+   q(2855) => [
       q(San Francisco Del Mar Huave),
       ],
-   q(2864) => [
+   q(2856) => [
       q(Humene),
       ],
-   q(2865) => [
+   q(2857) => [
       q(Huachipaeri),
       ],
-   q(2866) => [
+   q(2858) => [
       q(Huilliche),
       ],
-   q(2867) => [
+   q(2859) => [
       q(Huli),
       ],
-   q(2868) => [
+   q(2860) => [
       q(Northern Guiyang Hmong),
       q(Northern Guiyang Miao),
       ],
-   q(2869) => [
+   q(2861) => [
       q(Hulung),
       ],
-   q(2870) => [
+   q(2862) => [
       q(Hula),
       ],
-   q(2871) => [
+   q(2863) => [
       q(Hungana),
       ],
-   q(2872) => [
+   q(2864) => [
       q(Hu),
       ],
-   q(2873) => [
+   q(2865) => [
       q(Tsat),
       ],
-   q(2874) => [
+   q(2866) => [
       q(Halkomelem),
       ],
-   q(2875) => [
+   q(2867) => [
       q(Huastec),
       ],
-   q(2876) => [
+   q(2868) => [
       q(Humla),
       ],
-   q(2877) => [
+   q(2869) => [
       q(Murui Huitoto),
       ],
-   q(2878) => [
+   q(2870) => [
       q(San Mateo Del Mar Huave),
       ],
-   q(2879) => [
+   q(2871) => [
       q(Hukumina),
       ],
-   q(2880) => [
+   q(2872) => [
       q(Nupode Huitoto),
       ],
-   q(2881) => [
+   q(2873) => [
       q(Hulaula),
       ],
-   q(2882) => [
+   q(2874) => [
       q(Hunzib),
       ],
-   q(2883) => [
+   q(2875) => [
       q(Haitian Vodoun Culture Language),
       ],
-   q(2884) => [
+   q(2876) => [
       q(San Dionisio Del Mar Huave),
       ],
-   q(2885) => [
+   q(2877) => [
       q(Haveke),
       ],
-   q(2886) => [
+   q(2878) => [
       q(Sabu),
       ],
-   q(2887) => [
+   q(2879) => [
       q(Santa Maria Del Mar Huave),
       ],
-   q(2888) => [
+   q(2880) => [
       q(Wane),
       ],
-   q(2889) => [
+   q(2881) => [
       q(Hawai'i Creole English),
       q(Hawai'i Pidgin),
       ],
-   q(2890) => [
+   q(2882) => [
       q(Hwana),
       ],
-   q(2891) => [
+   q(2883) => [
       q(Hya),
       ],
-   q(2892) => [
+   q(2884) => [
       q(Iaai),
       ],
-   q(2893) => [
+   q(2885) => [
       q(Iatmul),
       ],
-   q(2894) => [
+   q(2886) => [
       q(Iapama),
       ],
-   q(2895) => [
+   q(2887) => [
       q(Purari),
       ],
-   q(2896) => [
+   q(2888) => [
       q(Ibibio),
       ],
-   q(2897) => [
+   q(2889) => [
       q(Iwaidja),
       ],
-   q(2898) => [
+   q(2890) => [
       q(Akpes),
       ],
-   q(2899) => [
+   q(2891) => [
       q(Ibanag),
       ],
-   q(2900) => [
+   q(2892) => [
       q(Ibaloi),
       ],
-   q(2901) => [
+   q(2893) => [
       q(Agoi),
       ],
-   q(2902) => [
+   q(2894) => [
       q(Ibino),
       ],
-   q(2903) => [
+   q(2895) => [
       q(Ibuoro),
       ],
-   q(2904) => [
+   q(2896) => [
       q(Ibu),
       ],
-   q(2905) => [
+   q(2897) => [
       q(Ibani),
       ],
-   q(2906) => [
+   q(2898) => [
       q(Ede Ica),
       ],
-   q(2907) => [
+   q(2899) => [
       q(Etkywan),
       ],
-   q(2908) => [
+   q(2900) => [
       q(Icelandic Sign Language),
       ],
-   q(2909) => [
+   q(2901) => [
       q(Islander Creole English),
       ],
-   q(2910) => [
+   q(2902) => [
       q(Idakho-Isukha-Tiriki),
       q(Luidakho-Luisukha-Lutirichi),
       ],
-   q(2911) => [
+   q(2903) => [
       q(Indo-Portuguese),
       ],
-   q(2912) => [
+   q(2904) => [
       q(Idon),
       q(Ajiya),
       ],
-   q(2913) => [
+   q(2905) => [
       q(Ede Idaca),
       ],
-   q(2914) => [
+   q(2906) => [
       q(Idere),
       ],
-   q(2915) => [
+   q(2907) => [
       q(Idi),
       ],
-   q(2916) => [
+   q(2908) => [
       q(Indri),
       ],
-   q(2917) => [
+   q(2909) => [
       q(Idesa),
       ],
-   q(2918) => [
+   q(2910) => [
       q(Idate),
       ],
-   q(2919) => [
+   q(2911) => [
       q(Idoma),
       ],
-   q(2920) => [
+   q(2912) => [
       q(Amganad Ifugao),
       ],
-   q(2921) => [
+   q(2913) => [
       q(Batad Ifugao),
       q(Ayangan Ifugao),
       ],
-   q(2922) => [
+   q(2914) => [
       q(Ife),
       ],
-   q(2923) => [
+   q(2915) => [
       q(Ifo),
       ],
-   q(2924) => [
+   q(2916) => [
       q(Tuwali Ifugao),
       ],
-   q(2925) => [
+   q(2917) => [
       q(Teke-Fuumu),
       ],
-   q(2926) => [
+   q(2918) => [
       q(Mayoyao Ifugao),
       ],
-   q(2927) => [
+   q(2919) => [
       q(Keley-I Kallahan),
       ],
-   q(2928) => [
+   q(2920) => [
       q(Ebira),
       ],
-   q(2929) => [
+   q(2921) => [
       q(Igede),
       ],
-   q(2930) => [
+   q(2922) => [
       q(Igana),
       ],
-   q(2931) => [
+   q(2923) => [
       q(Igala),
       ],
-   q(2932) => [
+   q(2924) => [
       q(Kanggape),
       ],
-   q(2933) => [
+   q(2925) => [
       q(Ignaciano),
       ],
-   q(2934) => [
+   q(2926) => [
       q(Isebe),
       ],
-   q(2935) => [
+   q(2927) => [
       q(Interglossa),
       ],
-   q(2936) => [
+   q(2928) => [
       q(Igwe),
       ],
-   q(2937) => [
+   q(2929) => [
       q(Iha Based Pidgin),
       ],
-   q(2938) => [
+   q(2930) => [
       q(Ihievbe),
       ],
-   q(2939) => [
+   q(2931) => [
       q(Iha),
       ],
-   q(2940) => [
+   q(2932) => [
       q(Bidhawal),
       ],
-   q(2941) => [
+   q(2933) => [
       q(Thiin),
       ],
-   q(2942) => [
+   q(2934) => [
       q(Izon),
       ],
-   q(2943) => [
+   q(2935) => [
       q(Biseni),
       ],
-   q(2944) => [
+   q(2936) => [
       q(Ede Ije),
       ],
-   q(2945) => [
+   q(2937) => [
       q(Kalabari),
       ],
-   q(2946) => [
+   q(2938) => [
       q(Southeast Ijo),
       ],
-   q(2947) => [
+   q(2939) => [
       q(Eastern Canadian Inuktitut),
       ],
-   q(2948) => [
+   q(2940) => [
       q(Iko),
       ],
-   q(2949) => [
+   q(2941) => [
       q(Ika),
       ],
-   q(2950) => [
+   q(2942) => [
       q(Ikulu),
       ],
-   q(2951) => [
+   q(2943) => [
       q(Olulumo-Ikom),
       ],
-   q(2952) => [
+   q(2944) => [
       q(Ikpeshi),
       ],
-   q(2953) => [
+   q(2945) => [
       q(Ikaranggal),
       ],
-   q(2954) => [
+   q(2946) => [
+      q(Inuit Sign Language),
+      ],
+   q(2947) => [
       q(Inuinnaqtun),
       q(Western Canadian Inuktitut),
       ],
-   q(2955) => [
+   q(2948) => [
       q(Iku-Gora-Ankwa),
       ],
-   q(2956) => [
+   q(2949) => [
       q(Ikwere),
       ],
-   q(2957) => [
+   q(2950) => [
       q(Ik),
       ],
-   q(2958) => [
+   q(2951) => [
       q(Ikizu),
       ],
-   q(2959) => [
+   q(2952) => [
       q(Ile Ape),
       ],
-   q(2960) => [
+   q(2953) => [
       q(Ila),
       ],
-   q(2961) => [
+   q(2954) => [
       q(Garig-Ilgar),
       ],
-   q(2962) => [
+   q(2955) => [
       q(Ili Turki),
       ],
-   q(2963) => [
+   q(2956) => [
       q(Ilongot),
       ],
-   q(2964) => [
+   q(2957) => [
       q(Iranun),
       ],
-   q(2965) => [
+   q(2958) => [
       q(International Sign),
       ],
-   q(2966) => [
+   q(2959) => [
       q(Ili'uun),
       ],
-   q(2967) => [
+   q(2960) => [
       q(Ilue),
       ],
-   q(2968) => [
+   q(2961) => [
       q(Mala Malasar),
       ],
-   q(2969) => [
-      q(Imeraguen),
-      ],
-   q(2970) => [
+   q(2962) => [
       q(Anamgura),
       ],
-   q(2971) => [
+   q(2963) => [
       q(Miluk),
       ],
-   q(2972) => [
+   q(2964) => [
       q(Imonda),
       ],
-   q(2973) => [
+   q(2965) => [
       q(Imbongu),
       ],
-   q(2974) => [
+   q(2966) => [
       q(Imroing),
       ],
-   q(2975) => [
+   q(2967) => [
       q(Marsian),
       ],
-   q(2976) => [
+   q(2968) => [
       q(Milyan),
       ],
-   q(2977) => [
+   q(2969) => [
       q(Inga),
       ],
-   q(2978) => [
+   q(2970) => [
       q(Degexit'an),
       ],
-   q(2979) => [
+   q(2971) => [
       q(Jungle Inga),
       ],
-   q(2980) => [
+   q(2972) => [
       q(Indonesian Sign Language),
       ],
-   q(2981) => [
+   q(2973) => [
       q(Minaean),
       ],
-   q(2982) => [
+   q(2974) => [
       q(Isinai),
       ],
-   q(2983) => [
+   q(2975) => [
       q(Inoke-Yate),
       ],
-   q(2984) => [
+   q(2976) => [
       q(Inapari),
       ],
-   q(2985) => [
+   q(2977) => [
       q(Indian Sign Language),
       ],
-   q(2986) => [
+   q(2978) => [
       q(Intha),
       ],
-   q(2987) => [
+   q(2979) => [
       q(Ineseno),
       ],
-   q(2988) => [
+   q(2980) => [
       q(Inor),
       ],
-   q(2989) => [
+   q(2981) => [
       q(Tuma-Irumu),
       ],
-   q(2990) => [
+   q(2982) => [
       q(Iowa-Oto),
       ],
-   q(2991) => [
+   q(2983) => [
       q(Ipili),
       ],
-   q(2992) => [
+   q(2984) => [
       q(Ipiko),
       ],
-   q(2993) => [
+   q(2985) => [
       q(Iquito),
       ],
-   q(2994) => [
+   q(2986) => [
       q(Ikwo),
       ],
-   q(2995) => [
+   q(2987) => [
       q(Iresim),
       ],
-   q(2996) => [
+   q(2988) => [
       q(Irarutu),
       ],
-   q(2997) => [
+   q(2989) => [
       q(Irigwe),
       ],
-   q(2998) => [
+   q(2990) => [
       q(Iraqw),
       ],
-   q(2999) => [
+   q(2991) => [
       q(Irantxe),
       ],
-   q(3000) => [
+   q(2992) => [
       q(Ir),
       ],
-   q(3001) => [
+   q(2993) => [
       q(Irula),
       ],
-   q(3002) => [
+   q(2994) => [
       q(Kamberau),
       ],
-   q(3003) => [
+   q(2995) => [
       q(Iraya),
       ],
-   q(3004) => [
+   q(2996) => [
       q(Isabi),
       ],
-   q(3005) => [
+   q(2997) => [
       q(Isconahua),
       ],
-   q(3006) => [
+   q(2998) => [
       q(Isnag),
       ],
-   q(3007) => [
+   q(2999) => [
       q(Italian Sign Language),
       ],
-   q(3008) => [
+   q(3000) => [
       q(Irish Sign Language),
       ],
-   q(3009) => [
+   q(3001) => [
       q(Esan),
       ],
-   q(3010) => [
+   q(3002) => [
       q(Nkem-Nkum),
       ],
-   q(3011) => [
+   q(3003) => [
       q(Ishkashimi),
       ],
-   q(3012) => [
+   q(3004) => [
       q(Masimasi),
       ],
-   q(3013) => [
+   q(3005) => [
       q(Isanzu),
       ],
-   q(3014) => [
+   q(3006) => [
       q(Isoko),
       ],
-   q(3015) => [
+   q(3007) => [
       q(Israeli Sign Language),
       ],
-   q(3016) => [
+   q(3008) => [
       q(Istriot),
       ],
-   q(3017) => [
+   q(3009) => [
       q(Isu (Menchum Division)),
       ],
-   q(3018) => [
+   q(3010) => [
       q(Binongan Itneg),
       ],
-   q(3019) => [
+   q(3011) => [
       q(Itene),
       ],
-   q(3020) => [
+   q(3012) => [
       q(Inlaod Itneg),
       ],
-   q(3021) => [
+   q(3013) => [
       q(Judeo-Italian),
       ],
-   q(3022) => [
+   q(3014) => [
       q(Itelmen),
       ],
-   q(3023) => [
+   q(3015) => [
       q(Itu Mbon Uzo),
       ],
-   q(3024) => [
+   q(3016) => [
       q(Itonama),
       ],
-   q(3025) => [
+   q(3017) => [
       q(Iteri),
       ],
-   q(3026) => [
+   q(3018) => [
       q(Isekiri),
       ],
-   q(3027) => [
+   q(3019) => [
       q(Maeng Itneg),
       ],
-   q(3028) => [
+   q(3020) => [
       q(Itawit),
       ],
-   q(3029) => [
+   q(3021) => [
       q(Ito),
       ],
-   q(3030) => [
+   q(3022) => [
       q(Itik),
       ],
-   q(3031) => [
+   q(3023) => [
       q(Moyadan Itneg),
       ],
-   q(3032) => [
+   q(3024) => [
       q(Itza),
       ],
-   q(3033) => [
+   q(3025) => [
       q(Iu Mien),
       ],
-   q(3034) => [
+   q(3026) => [
       q(Ibatan),
       ],
-   q(3035) => [
+   q(3027) => [
       q(Ivatan),
       ],
-   q(3036) => [
+   q(3028) => [
       q(I-Wak),
       ],
-   q(3037) => [
+   q(3029) => [
       q(Iwam),
       ],
-   q(3038) => [
+   q(3030) => [
       q(Iwur),
       ],
-   q(3039) => [
+   q(3031) => [
       q(Sepik Iwam),
       ],
-   q(3040) => [
+   q(3032) => [
       q(Ixcatec),
       ],
-   q(3041) => [
+   q(3033) => [
       q(Ixil),
       ],
-   q(3042) => [
+   q(3034) => [
       q(Iyayu),
       ],
-   q(3043) => [
+   q(3035) => [
       q(Mesaka),
       ],
-   q(3044) => [
+   q(3036) => [
       q(Yaka (Congo)),
       ],
-   q(3045) => [
+   q(3037) => [
       q(Ingrian),
       ],
-   q(3046) => [
+   q(3038) => [
       q(Izere),
       ],
-   q(3047) => [
+   q(3039) => [
       q(Izii),
       ],
-   q(3048) => [
+   q(3040) => [
       q(Jamamadi),
       ],
-   q(3049) => [
+   q(3041) => [
       q(Hyam),
       ],
-   q(3050) => [
+   q(3042) => [
       q(Popti'),
       q(Jakalteko),
       ],
-   q(3051) => [
+   q(3043) => [
       q(Jahanka),
       ],
-   q(3052) => [
+   q(3044) => [
       q(Yabem),
       ],
-   q(3053) => [
+   q(3045) => [
       q(Jara),
       ],
-   q(3054) => [
+   q(3046) => [
       q(Jah Hut),
       ],
-   q(3055) => [
+   q(3047) => [
       q(Zazao),
       ],
-   q(3056) => [
+   q(3048) => [
       q(Jakun),
       ],
-   q(3057) => [
+   q(3049) => [
       q(Yalahatan),
       ],
-   q(3058) => [
+   q(3050) => [
       q(Jamaican Creole English),
       ],
-   q(3059) => [
+   q(3051) => [
       q(Jandai),
       ],
-   q(3060) => [
+   q(3052) => [
       q(Yanyuwa),
       ],
-   q(3061) => [
+   q(3053) => [
       q(Yaqay),
       ],
-   q(3062) => [
+   q(3054) => [
       q(New Caledonian Javanese),
       ],
-   q(3063) => [
+   q(3055) => [
       q(Jakati),
       ],
-   q(3064) => [
+   q(3056) => [
       q(Yaur),
       ],
-   q(3065) => [
+   q(3057) => [
       q(Jambi Malay),
       ],
-   q(3066) => [
+   q(3058) => [
       q(Yan-nhangu),
       ],
-   q(3067) => [
+   q(3059) => [
       q(Jawe),
       ],
-   q(3068) => [
+   q(3060) => [
       q(Judeo-Berber),
       ],
-   q(3069) => [
+   q(3061) => [
       q(Badjiri),
       ],
-   q(3070) => [
+   q(3062) => [
       q(Arandai),
       ],
-   q(3071) => [
+   q(3063) => [
       q(Barikewa),
       ],
-   q(3072) => [
+   q(3064) => [
       q(Nafusi),
       ],
-   q(3073) => [
+   q(3065) => [
       q(Jofotek-Bromnya),
       ],
-   q(3074) => [
+   q(3066) => [
       q(Jabuti),
       ],
-   q(3075) => [
+   q(3067) => [
       q(Jukun Takum),
       ],
-   q(3076) => [
+   q(3068) => [
       q(Yawijibaya),
       ],
-   q(3077) => [
+   q(3069) => [
       q(Jamaican Country Sign Language),
       ],
-   q(3078) => [
+   q(3070) => [
       q(Krymchak),
       ],
-   q(3079) => [
+   q(3071) => [
       q(Jad),
       ],
-   q(3080) => [
+   q(3072) => [
       q(Jadgali),
       ],
-   q(3081) => [
+   q(3073) => [
       q(Judeo-Tat),
       ],
-   q(3082) => [
+   q(3074) => [
       q(Jebero),
       ],
-   q(3083) => [
+   q(3075) => [
       q(Jerung),
       ],
-   q(3084) => [
+   q(3076) => [
       q(Jeng),
       ],
-   q(3085) => [
+   q(3077) => [
       q(Jeh),
       ],
-   q(3086) => [
+   q(3078) => [
       q(Yei),
       ],
-   q(3087) => [
+   q(3079) => [
       q(Jeri Kuo),
       ],
-   q(3088) => [
+   q(3080) => [
       q(Yelmek),
       ],
-   q(3089) => [
+   q(3081) => [
       q(Dza),
       ],
-   q(3090) => [
+   q(3082) => [
       q(Jere),
       ],
-   q(3091) => [
+   q(3083) => [
       q(Manem),
       ],
-   q(3092) => [
+   q(3084) => [
       q(Jonkor Bourmataguil),
       ],
-   q(3093) => [
+   q(3085) => [
       q(Ngbee),
       ],
-   q(3094) => [
+   q(3086) => [
       q(Judeo-Georgian),
       ],
-   q(3095) => [
+   q(3087) => [
       q(Gwak),
       ],
-   q(3096) => [
+   q(3088) => [
       q(Ngomba),
       ],
-   q(3097) => [
+   q(3089) => [
       q(Jehai),
       ],
-   q(3098) => [
+   q(3090) => [
       q(Jhankot Sign Language),
       ],
-   q(3099) => [
+   q(3091) => [
       q(Jina),
       ],
-   q(3100) => [
+   q(3092) => [
       q(Jibu),
       ],
-   q(3101) => [
+   q(3093) => [
       q(Tol),
       ],
-   q(3102) => [
+   q(3094) => [
       q(Bu),
       ],
-   q(3103) => [
+   q(3095) => [
       q(Jilbe),
       ],
-   q(3104) => [
+   q(3096) => [
       q(Djingili),
       ],
-   q(3105) => [
+   q(3097) => [
       q(sTodsde),
       q(Shangzhai),
       ],
-   q(3106) => [
+   q(3098) => [
       q(Jiiddu),
       ],
-   q(3107) => [
+   q(3099) => [
       q(Jilim),
       ],
-   q(3108) => [
+   q(3100) => [
       q(Jimi (Cameroon)),
       ],
-   q(3109) => [
+   q(3101) => [
       q(Jiamao),
       ],
-   q(3110) => [
+   q(3102) => [
       q(Guanyinqiao),
       q(Lavrung),
       ],
-   q(3111) => [
+   q(3103) => [
       q(Jita),
       ],
-   q(3112) => [
+   q(3104) => [
       q(Youle Jinuo),
       ],
-   q(3113) => [
+   q(3105) => [
       q(Shuar),
       ],
-   q(3114) => [
+   q(3106) => [
       q(Buyuan Jinuo),
       ],
-   q(3115) => [
+   q(3107) => [
+      q(Jejueo),
+      ],
+   q(3108) => [
       q(Bankal),
       ],
-   q(3116) => [
+   q(3109) => [
       q(Mobwa Karen),
       ],
-   q(3117) => [
+   q(3110) => [
       q(Kubo),
       ],
-   q(3118) => [
+   q(3111) => [
       q(Paku Karen),
       ],
-   q(3119) => [
+   q(3112) => [
       q(Koro (India)),
       ],
-   q(3120) => [
+   q(3113) => [
       q(Labir),
       ],
-   q(3121) => [
+   q(3114) => [
       q(Ngile),
       ],
-   q(3122) => [
+   q(3115) => [
       q(Jamaican Sign Language),
       ],
-   q(3123) => [
+   q(3116) => [
       q(Dima),
       ],
-   q(3124) => [
+   q(3117) => [
       q(Zumbun),
       ],
-   q(3125) => [
+   q(3118) => [
       q(Machame),
       ],
-   q(3126) => [
+   q(3119) => [
       q(Yamdena),
       ],
-   q(3127) => [
+   q(3120) => [
       q(Jimi (Nigeria)),
       ],
-   q(3128) => [
+   q(3121) => [
       q(Jumli),
       ],
-   q(3129) => [
+   q(3122) => [
       q(Makuri Naga),
       ],
-   q(3130) => [
+   q(3123) => [
       q(Kamara),
       ],
-   q(3131) => [
+   q(3124) => [
       q(Mashi (Nigeria)),
       ],
-   q(3132) => [
+   q(3125) => [
       q(Mouwase),
       ],
-   q(3133) => [
+   q(3126) => [
       q(Western Juxtlahuaca Mixtec),
       ],
-   q(3134) => [
+   q(3127) => [
       q(Jangshung),
       ],
-   q(3135) => [
+   q(3128) => [
       q(Jandavra),
       ],
-   q(3136) => [
+   q(3129) => [
       q(Yangman),
       ],
-   q(3137) => [
+   q(3130) => [
       q(Janji),
       ],
-   q(3138) => [
+   q(3131) => [
       q(Yemsa),
       ],
-   q(3139) => [
+   q(3132) => [
       q(Rawat),
       ],
-   q(3140) => [
+   q(3133) => [
       q(Jaunsari),
       ],
-   q(3141) => [
+   q(3134) => [
       q(Joba),
       ],
-   q(3142) => [
+   q(3135) => [
       q(Wojenaka),
       ],
-   q(3143) => [
+   q(3136) => [
       q(Jora),
       ],
-   q(3144) => [
+   q(3137) => [
       q(Jordanian Sign Language),
       ],
-   q(3145) => [
+   q(3138) => [
       q(Jowulu),
       ],
-   q(3146) => [
+   q(3139) => [
       q(Jewish Palestinian Aramaic),
       ],
-   q(3147) => [
+   q(3140) => [
       q(Jaqaru),
       ],
-   q(3148) => [
+   q(3141) => [
       q(Jarai),
       ],
-   q(3149) => [
+   q(3142) => [
       q(Jiru),
       ],
-   q(3150) => [
+   q(3143) => [
       q(Jorto),
       ],
-   q(3151) => [
+   q(3144) => [
       q(Japreria),
       ],
-   q(3152) => [
+   q(3145) => [
       q(Japanese Sign Language),
       ],
-   q(3153) => [
+   q(3146) => [
       q(Juma),
       ],
-   q(3154) => [
+   q(3147) => [
       q(Wannu),
       ],
-   q(3155) => [
+   q(3148) => [
       q(Jurchen),
       ],
-   q(3156) => [
+   q(3149) => [
       q(Worodougou),
       ],
-   q(3157) => [
+   q(3150) => [
       q(Hone),
       ],
-   q(3158) => [
+   q(3151) => [
       q(Ngadjuri),
       ],
-   q(3159) => [
+   q(3152) => [
       q(Wapan),
       ],
-   q(3160) => [
+   q(3153) => [
       q(Jirel),
       ],
-   q(3161) => [
+   q(3154) => [
       q(Jumjum),
       ],
-   q(3162) => [
+   q(3155) => [
       q(Juang),
       ],
-   q(3163) => [
+   q(3156) => [
       q(Jiba),
       ],
-   q(3164) => [
+   q(3157) => [
       q(Hupde),
       ],
-   q(3165) => [
+   q(3158) => [
       q(Juruna),
       ],
-   q(3166) => [
+   q(3159) => [
       q(Jumla Sign Language),
       ],
-   q(3167) => [
+   q(3160) => [
       q(Jutish),
       ],
-   q(3168) => [
+   q(3161) => [
       q(Ju),
       ],
-   q(3169) => [
+   q(3162) => [
       q(Wapha),
       ],
-   q(3170) => [
+   q(3163) => [
       q(Juray),
       ],
-   q(3171) => [
+   q(3164) => [
       q(Javindo),
       ],
-   q(3172) => [
+   q(3165) => [
       q(Caribbean Javanese),
       ],
-   q(3173) => [
+   q(3166) => [
       q(Jwira-Pepesa),
       ],
-   q(3174) => [
+   q(3167) => [
       q(Jiarong),
       ],
-   q(3175) => [
+   q(3168) => [
       q(Judeo-Yemeni Arabic),
       ],
-   q(3176) => [
+   q(3169) => [
       q(Jaya),
       ],
-   q(3177) => [
+   q(3170) => [
       q(Adara),
       ],
-   q(3178) => [
+   q(3171) => [
       q(Ketangalan),
       ],
-   q(3179) => [
+   q(3172) => [
       q(Katso),
       ],
-   q(3180) => [
+   q(3173) => [
       q(Kajaman),
       ],
-   q(3181) => [
+   q(3174) => [
       q(Kara (Central African Republic)),
       ],
-   q(3182) => [
+   q(3175) => [
       q(Karekare),
       ],
-   q(3183) => [
+   q(3176) => [
       q(Jju),
       ],
-   q(3184) => [
+   q(3177) => [
       q(Kayapa Kallahan),
       ],
-   q(3185) => [
+   q(3178) => [
       q(Xaasongaxango),
       ],
-   q(3186) => [
+   q(3179) => [
       q(Bezhta),
       ],
-   q(3187) => [
+   q(3180) => [
       q(Capanahua),
       ],
-   q(3188) => [
+   q(3181) => [
       q(Katukina),
       ],
-   q(3189) => [
+   q(3182) => [
       q(Kao),
       ],
-   q(3190) => [
+   q(3183) => [
       q(Kamayura),
       ],
-   q(3191) => [
+   q(3184) => [
       q(Kalarko),
       ],
-   q(3192) => [
+   q(3185) => [
       q(Kaxuiana),
       ],
-   q(3193) => [
+   q(3186) => [
       q(Kadiweu),
       ],
-   q(3194) => [
+   q(3187) => [
       q(Kanju),
       ],
-   q(3195) => [
-      q(Kakauhua),
-      ],
-   q(3196) => [
+   q(3188) => [
       q(Khamba),
       ],
-   q(3197) => [
+   q(3189) => [
       q(Camsa),
       ],
-   q(3198) => [
+   q(3190) => [
       q(Kaptiau),
       ],
-   q(3199) => [
+   q(3191) => [
       q(Kari),
       ],
-   q(3200) => [
+   q(3192) => [
       q(Grass Koiari),
       ],
-   q(3201) => [
+   q(3193) => [
       q(Kanembu),
       ],
-   q(3202) => [
+   q(3194) => [
       q(Iwal),
       ],
-   q(3203) => [
+   q(3195) => [
       q(Kare (Central African Republic)),
       ],
-   q(3204) => [
+   q(3196) => [
       q(Keliko),
       ],
-   q(3205) => [
+   q(3197) => [
       q(Kabiye),
       ],
-   q(3206) => [
+   q(3198) => [
       q(Kamano),
       ],
-   q(3207) => [
+   q(3199) => [
       q(Kafa),
       ],
-   q(3208) => [
+   q(3200) => [
       q(Kande),
       ],
-   q(3209) => [
+   q(3201) => [
       q(Abadi),
       ],
-   q(3210) => [
+   q(3202) => [
       q(Kabutra),
       ],
-   q(3211) => [
+   q(3203) => [
       q(Dera (Indonesia)),
       ],
-   q(3212) => [
+   q(3204) => [
       q(Kaiep),
       ],
-   q(3213) => [
+   q(3205) => [
       q(Ap Ma),
       ],
-   q(3214) => [
+   q(3206) => [
       q(Manga Kanuri),
       ],
-   q(3215) => [
+   q(3207) => [
       q(Duhwa),
       ],
-   q(3216) => [
+   q(3208) => [
       q(Khanty),
       ],
-   q(3217) => [
+   q(3209) => [
       q(Kawacha),
       ],
-   q(3218) => [
+   q(3210) => [
       q(Lubila),
       ],
-   q(3219) => [
+   q(3211) => [
       q(Ngkalmpw Kanum),
       ],
-   q(3220) => [
+   q(3212) => [
       q(Kaivi),
       ],
-   q(3221) => [
+   q(3213) => [
       q(Ukaan),
       ],
-   q(3222) => [
+   q(3214) => [
       q(Tyap),
       ],
-   q(3223) => [
+   q(3215) => [
       q(Vono),
       ],
-   q(3224) => [
+   q(3216) => [
       q(Kamantan),
       ],
-   q(3225) => [
+   q(3217) => [
       q(Kobiana),
       ],
-   q(3226) => [
+   q(3218) => [
       q(Kalanga),
       ],
-   q(3227) => [
+   q(3219) => [
       q(Kela (Papua New Guinea)),
       q(Kala),
       ],
-   q(3228) => [
+   q(3220) => [
       q(Gula (Central African Republic)),
       ],
-   q(3229) => [
+   q(3221) => [
       q(Nubi),
       ],
-   q(3230) => [
+   q(3222) => [
       q(Kinalakna),
       ],
-   q(3231) => [
+   q(3223) => [
       q(Kanga),
       ],
-   q(3232) => [
+   q(3224) => [
       q(Kamo),
       ],
-   q(3233) => [
+   q(3225) => [
       q(Katla),
       ],
-   q(3234) => [
+   q(3226) => [
       q(Koenoem),
       ],
-   q(3235) => [
+   q(3227) => [
       q(Kaian),
       ],
-   q(3236) => [
+   q(3228) => [
       q(Kami (Tanzania)),
       ],
-   q(3237) => [
+   q(3229) => [
       q(Kete),
       ],
-   q(3238) => [
+   q(3230) => [
       q(Kabwari),
       ],
-   q(3239) => [
+   q(3231) => [
       q(Kachama-Ganjule),
       ],
-   q(3240) => [
+   q(3232) => [
       q(Korandje),
       ],
-   q(3241) => [
+   q(3233) => [
       q(Konongo),
       ],
-   q(3242) => [
+   q(3234) => [
       q(Worimi),
       ],
-   q(3243) => [
+   q(3235) => [
       q(Kutu),
       ],
-   q(3244) => [
+   q(3236) => [
       q(Yankunytjatjara),
       ],
-   q(3245) => [
+   q(3237) => [
       q(Makonde),
       ],
-   q(3246) => [
+   q(3238) => [
       q(Mamusi),
       ],
-   q(3247) => [
+   q(3239) => [
       q(Seba),
       ],
-   q(3248) => [
+   q(3240) => [
       q(Tem),
       ],
-   q(3249) => [
+   q(3241) => [
       q(Kumam),
       ],
-   q(3250) => [
+   q(3242) => [
       q(Karamojong),
       ],
-   q(3251) => [
+   q(3243) => [
       q(Numee),
       q(Kwenyi),
       ],
-   q(3252) => [
+   q(3244) => [
       q(Tsikimba),
       ],
-   q(3253) => [
+   q(3245) => [
       q(Kagoma),
       ],
-   q(3254) => [
+   q(3246) => [
       q(Kunda),
       ],
-   q(3255) => [
+   q(3247) => [
       q(Kaningdon-Nindem),
       ],
-   q(3256) => [
+   q(3248) => [
       q(Koch),
       ],
-   q(3257) => [
+   q(3249) => [
       q(Karaim),
       ],
-   q(3258) => [
+   q(3250) => [
       q(Kuy),
       ],
-   q(3259) => [
+   q(3251) => [
       q(Kadaru),
       ],
-   q(3260) => [
+   q(3252) => [
       q(Koneraw),
       ],
-   q(3261) => [
+   q(3253) => [
       q(Kam),
       ],
-   q(3262) => [
+   q(3254) => [
       q(Keder),
       q(Keijar),
       ],
-   q(3263) => [
+   q(3255) => [
       q(Kwaja),
       ],
-   q(3264) => [
+   q(3256) => [
       q(Kabuverdianu),
       ],
-   q(3265) => [
+   q(3257) => [
       q(Kele),
       ],
-   q(3266) => [
+   q(3258) => [
       q(Keiga),
       ],
-   q(3267) => [
+   q(3259) => [
       q(Kerewe),
       ],
-   q(3268) => [
+   q(3260) => [
       q(Eastern Keres),
       ],
-   q(3269) => [
+   q(3261) => [
       q(Kpessi),
       ],
-   q(3270) => [
+   q(3262) => [
       q(Tese),
       ],
-   q(3271) => [
+   q(3263) => [
       q(Keak),
       ],
-   q(3272) => [
+   q(3264) => [
       q(Kei),
       ],
-   q(3273) => [
+   q(3265) => [
       q(Kadar),
       ],
-   q(3274) => [
+   q(3266) => [
       q(Kekchi),
       ],
-   q(3275) => [
+   q(3267) => [
       q(Kela (Democratic Republic of Congo)),
       ],
-   q(3276) => [
+   q(3268) => [
       q(Kemak),
       ],
-   q(3277) => [
+   q(3269) => [
       q(Kenyang),
       ],
-   q(3278) => [
+   q(3270) => [
       q(Kakwa),
       ],
-   q(3279) => [
+   q(3271) => [
       q(Kaikadi),
       ],
-   q(3280) => [
+   q(3272) => [
       q(Kamar),
       ],
-   q(3281) => [
+   q(3273) => [
       q(Kera),
       ],
-   q(3282) => [
+   q(3274) => [
       q(Kugbo),
       ],
-   q(3283) => [
+   q(3275) => [
       q(Ket),
       ],
-   q(3284) => [
+   q(3276) => [
       q(Akebu),
       ],
-   q(3285) => [
+   q(3277) => [
       q(Kanikkaran),
       ],
-   q(3286) => [
+   q(3278) => [
       q(West Kewa),
       ],
-   q(3287) => [
+   q(3279) => [
       q(Kukna),
       ],
-   q(3288) => [
+   q(3280) => [
       q(Kupia),
       ],
-   q(3289) => [
+   q(3281) => [
       q(Kukele),
       ],
-   q(3290) => [
+   q(3282) => [
       q(Kodava),
       ],
-   q(3291) => [
+   q(3283) => [
       q(Northwestern Kolami),
       ],
-   q(3292) => [
+   q(3284) => [
       q(Konda-Dora),
       ],
-   q(3293) => [
+   q(3285) => [
       q(Korra Koraga),
       ],
-   q(3294) => [
+   q(3286) => [
       q(Kota (India)),
       ],
-   q(3295) => [
+   q(3287) => [
       q(Koya),
       ],
-   q(3296) => [
+   q(3288) => [
       q(Kudiya),
       ],
-   q(3297) => [
+   q(3289) => [
       q(Kurichiya),
       ],
-   q(3298) => [
+   q(3290) => [
       q(Kannada Kurumba),
       ],
-   q(3299) => [
+   q(3291) => [
       q(Kemiehua),
       ],
-   q(3300) => [
+   q(3292) => [
       q(Kinnauri),
       ],
-   q(3301) => [
+   q(3293) => [
       q(Kung),
       ],
-   q(3302) => [
+   q(3294) => [
       q(Khunsari),
       ],
-   q(3303) => [
+   q(3295) => [
       q(Kuk),
       ],
-   q(3304) => [
+   q(3296) => [
       q(Koro (Cote d'Ivoire)),
       ],
-   q(3305) => [
+   q(3297) => [
       q(Korwa),
       ],
-   q(3306) => [
+   q(3298) => [
       q(Korku),
       ],
-   q(3307) => [
+   q(3299) => [
       q(Kachchi),
       ],
-   q(3308) => [
+   q(3300) => [
       q(Bilaspuri),
       ],
-   q(3309) => [
+   q(3301) => [
       q(Kanjari),
       ],
-   q(3310) => [
+   q(3302) => [
       q(Katkari),
       ],
-   q(3311) => [
+   q(3303) => [
       q(Kurmukar),
       ],
-   q(3312) => [
+   q(3304) => [
       q(Kharam Naga),
       ],
-   q(3313) => [
+   q(3305) => [
       q(Kullu Pahari),
       ],
-   q(3314) => [
+   q(3306) => [
       q(Kumaoni),
       ],
-   q(3315) => [
+   q(3307) => [
       q(Koromfe),
       ],
-   q(3316) => [
+   q(3308) => [
       q(Koyaga),
       ],
-   q(3317) => [
+   q(3309) => [
       q(Kawe),
       ],
-   q(3318) => [
+   q(3310) => [
       q(Kasseng),
       ],
-   q(3319) => [
+   q(3311) => [
       q(Kataang),
       ],
-   q(3320) => [
+   q(3312) => [
       q(Komering),
       ],
-   q(3321) => [
+   q(3313) => [
       q(Kube),
       ],
-   q(3322) => [
+   q(3314) => [
       q(Kusunda),
       ],
-   q(3323) => [
+   q(3315) => [
       q(Selangor Sign Language),
       ],
-   q(3324) => [
+   q(3316) => [
       q(Gamale Kham),
       ],
-   q(3325) => [
+   q(3317) => [
       q(Kaiwa),
       ],
-   q(3326) => [
+   q(3318) => [
       q(Kunggari),
       ],
-   q(3327) => [
+   q(3319) => [
       q(Karipuna),
       ],
-   q(3328) => [
+   q(3320) => [
       q(Karingani),
       ],
-   q(3329) => [
+   q(3321) => [
       q(Krongo),
       ],
-   q(3330) => [
+   q(3322) => [
       q(Kaingang),
       ],
-   q(3331) => [
+   q(3323) => [
       q(Kamoro),
       ],
-   q(3332) => [
+   q(3324) => [
       q(Abun),
       ],
-   q(3333) => [
+   q(3325) => [
       q(Kumbainggar),
       ],
-   q(3334) => [
+   q(3326) => [
       q(Somyev),
       ],
-   q(3335) => [
+   q(3327) => [
       q(Kobol),
       ],
-   q(3336) => [
+   q(3328) => [
       q(Karas),
       ],
-   q(3337) => [
+   q(3329) => [
       q(Karon Dori),
       ],
-   q(3338) => [
+   q(3330) => [
       q(Kamaru),
       ],
-   q(3339) => [
+   q(3331) => [
       q(Kyerung),
       ],
-   q(3340) => [
+   q(3332) => [
       q(Lu),
       ],
-   q(3341) => [
+   q(3333) => [
       q(Tukang Besi North),
       ],
-   q(3342) => [
+   q(3334) => [
       q(Badi Kanum),
       ],
-   q(3343) => [
+   q(3335) => [
       q(Korowai),
       ],
-   q(3344) => [
+   q(3336) => [
       q(Khuen),
       ],
-   q(3345) => [
+   q(3337) => [
       q(Khams Tibetan),
       ],
-   q(3346) => [
+   q(3338) => [
       q(Kehu),
       ],
-   q(3347) => [
+   q(3339) => [
       q(Kuturmi),
       ],
-   q(3348) => [
+   q(3340) => [
       q(Halh Mongolian),
       ],
-   q(3349) => [
+   q(3341) => [
       q(Lusi),
       ],
-   q(3350) => [
+   q(3342) => [
       q(Khandesi),
       ],
-   q(3351) => [
+   q(3343) => [
       q(Kapori),
       q(Kapauri),
       ],
-   q(3352) => [
+   q(3344) => [
       q(Koyra Chiini Songhay),
       ],
-   q(3353) => [
+   q(3345) => [
       q(Kharia),
       ],
-   q(3354) => [
+   q(3346) => [
       q(Kasua),
       ],
-   q(3355) => [
+   q(3347) => [
       q(Khamti),
       ],
-   q(3356) => [
+   q(3348) => [
       q(Nkhumbi),
       ],
-   q(3357) => [
+   q(3349) => [
       q(Khvarshi),
       ],
-   q(3358) => [
+   q(3350) => [
       q(Khowar),
       ],
-   q(3359) => [
+   q(3351) => [
       q(Kanu),
       ],
-   q(3360) => [
+   q(3352) => [
       q(Kele (Democratic Republic of Congo)),
       ],
-   q(3361) => [
+   q(3353) => [
       q(Keapara),
       ],
-   q(3362) => [
+   q(3354) => [
       q(Kim),
       ],
-   q(3363) => [
+   q(3355) => [
       q(Koalib),
       ],
-   q(3364) => [
+   q(3356) => [
       q(Kickapoo),
       ],
-   q(3365) => [
+   q(3357) => [
       q(Koshin),
       ],
-   q(3366) => [
+   q(3358) => [
       q(Kibet),
       ],
-   q(3367) => [
+   q(3359) => [
       q(Eastern Parbate Kham),
       ],
-   q(3368) => [
+   q(3360) => [
       q(Kimaama),
       q(Kimaghima),
       ],
-   q(3369) => [
+   q(3361) => [
       q(Kilmeri),
       ],
-   q(3370) => [
+   q(3362) => [
       q(Kitsai),
       ],
-   q(3371) => [
+   q(3363) => [
       q(Kilivila),
       ],
-   q(3372) => [
+   q(3364) => [
       q(Kariya),
       ],
-   q(3373) => [
+   q(3365) => [
       q(Karagas),
       ],
-   q(3374) => [
+   q(3366) => [
       q(Kiowa),
       ],
-   q(3375) => [
+   q(3367) => [
       q(Sheshi Kham),
       ],
-   q(3376) => [
+   q(3368) => [
       q(Kosadle),
       q(Kosare),
       ],
-   q(3377) => [
+   q(3369) => [
       q(Kis),
       ],
-   q(3378) => [
+   q(3370) => [
       q(Agob),
       ],
-   q(3379) => [
+   q(3371) => [
       q(Kirmanjki (individual language)),
       ],
-   q(3380) => [
+   q(3372) => [
       q(Kimbu),
       ],
-   q(3381) => [
+   q(3373) => [
       q(Northeast Kiwai),
       ],
-   q(3382) => [
+   q(3374) => [
       q(Khiamniungan Naga),
       ],
-   q(3383) => [
+   q(3375) => [
       q(Kirikiri),
       ],
-   q(3384) => [
+   q(3376) => [
       q(Kisi),
       ],
-   q(3385) => [
+   q(3377) => [
       q(Mlap),
       ],
-   q(3386) => [
+   q(3378) => [
       q(Q'anjob'al),
       q(Kanjobal),
       ],
-   q(3387) => [
+   q(3379) => [
       q(Coastal Konjo),
       ],
-   q(3388) => [
+   q(3380) => [
       q(Southern Kiwai),
       ],
-   q(3389) => [
+   q(3381) => [
       q(Kisar),
       ],
-   q(3390) => [
+   q(3382) => [
       q(Khalaj),
       ],
-   q(3391) => [
+   q(3383) => [
       q(Khmu),
       ],
-   q(3392) => [
+   q(3384) => [
       q(Khakas),
       ],
-   q(3393) => [
+   q(3385) => [
       q(Zabana),
       ],
-   q(3394) => [
+   q(3386) => [
       q(Khinalugh),
       ],
-   q(3395) => [
+   q(3387) => [
       q(Highland Konjo),
       ],
-   q(3396) => [
+   q(3388) => [
       q(Western Parbate Kham),
       ],
-   q(3397) => [
+   q(3389) => [
       q(Khang),
       ],
-   q(3398) => [
+   q(3390) => [
       q(Kunjen),
       ],
-   q(3399) => [
+   q(3391) => [
       q(Harijan Kinnauri),
       ],
-   q(3400) => [
+   q(3392) => [
       q(Pwo Eastern Karen),
       ],
-   q(3401) => [
+   q(3393) => [
       q(Western Keres),
       ],
-   q(3402) => [
+   q(3394) => [
       q(Kurudu),
       ],
-   q(3403) => [
+   q(3395) => [
       q(East Kewa),
       ],
-   q(3404) => [
+   q(3396) => [
       q(Phrae Pwo Karen),
       ],
-   q(3405) => [
+   q(3397) => [
       q(Kashaya),
       ],
-   q(3406) => [
+   q(3398) => [
+      q(Kaikavian Literary Language),
+      ],
+   q(3399) => [
       q(Ramopa),
       ],
-   q(3407) => [
+   q(3400) => [
       q(Erave),
       ],
-   q(3408) => [
+   q(3401) => [
       q(Bumthangkha),
       ],
-   q(3409) => [
+   q(3402) => [
       q(Kakanda),
       ],
-   q(3410) => [
+   q(3403) => [
       q(Kwerisa),
       ],
-   q(3411) => [
+   q(3404) => [
       q(Odoodee),
       ],
-   q(3412) => [
+   q(3405) => [
       q(Kinuku),
       ],
-   q(3413) => [
+   q(3406) => [
       q(Kakabe),
       ],
-   q(3414) => [
+   q(3407) => [
       q(Kalaktang Monpa),
       ],
-   q(3415) => [
+   q(3408) => [
       q(Mabaka Valley Kalinga),
       ],
-   q(3416) => [
+   q(3409) => [
       q(Khun),
       ],
-   q(3417) => [
+   q(3410) => [
       q(Kagulu),
       ],
-   q(3418) => [
+   q(3411) => [
       q(Kako),
       ],
-   q(3419) => [
+   q(3412) => [
       q(Kokota),
       ],
-   q(3420) => [
+   q(3413) => [
       q(Kosarek Yale),
       ],
-   q(3421) => [
+   q(3414) => [
       q(Kiong),
       ],
-   q(3422) => [
+   q(3415) => [
       q(Kon Keu),
       ],
-   q(3423) => [
+   q(3416) => [
       q(Karko),
       ],
-   q(3424) => [
+   q(3417) => [
       q(Gugubera),
       ],
-   q(3425) => [
+   q(3418) => [
       q(Kaiku),
       ],
-   q(3426) => [
+   q(3419) => [
       q(Kir-Balar),
       ],
-   q(3427) => [
+   q(3420) => [
       q(Giiwo),
       ],
-   q(3428) => [
+   q(3421) => [
       q(Koi),
       ],
-   q(3429) => [
+   q(3422) => [
       q(Tumi),
       ],
-   q(3430) => [
+   q(3423) => [
       q(Kangean),
       ],
-   q(3431) => [
+   q(3424) => [
       q(Teke-Kukuya),
       ],
-   q(3432) => [
+   q(3425) => [
       q(Kohin),
       ],
-   q(3433) => [
+   q(3426) => [
       q(Guguyimidjir),
       ],
-   q(3434) => [
+   q(3427) => [
       q(Kaska),
       ],
-   q(3435) => [
+   q(3428) => [
       q(Klamath-Modoc),
       ],
-   q(3436) => [
+   q(3429) => [
       q(Kiliwa),
       ],
-   q(3437) => [
+   q(3430) => [
       q(Kolbila),
       ],
-   q(3438) => [
+   q(3431) => [
       q(Gamilaraay),
       ],
-   q(3439) => [
+   q(3432) => [
       q(Kulung (Nepal)),
       ],
-   q(3440) => [
+   q(3433) => [
       q(Kendeje),
       ],
-   q(3441) => [
+   q(3434) => [
       q(Tagakaulo),
       ],
-   q(3442) => [
+   q(3435) => [
       q(Weliki),
       ],
-   q(3443) => [
+   q(3436) => [
       q(Kalumpang),
       ],
-   q(3444) => [
+   q(3437) => [
       q(Turkic Khalaj),
       ],
-   q(3445) => [
+   q(3438) => [
       q(Kono (Nigeria)),
       ],
-   q(3446) => [
+   q(3439) => [
       q(Kagan Kalagan),
       ],
-   q(3447) => [
+   q(3440) => [
       q(Migum),
       ],
-   q(3448) => [
+   q(3441) => [
       q(Kalenjin),
       ],
-   q(3449) => [
+   q(3442) => [
       q(Kapya),
       ],
-   q(3450) => [
+   q(3443) => [
       q(Kamasa),
       ],
-   q(3451) => [
+   q(3444) => [
       q(Rumu),
       ],
-   q(3452) => [
+   q(3445) => [
       q(Khaling),
       ],
-   q(3453) => [
+   q(3446) => [
       q(Kalasha),
       ],
-   q(3454) => [
+   q(3447) => [
       q(Nukna),
       ],
-   q(3455) => [
+   q(3448) => [
       q(Klao),
       ],
-   q(3456) => [
+   q(3449) => [
       q(Maskelynes),
       ],
-   q(3457) => [
+   q(3450) => [
       q(Lindu),
       ],
-   q(3458) => [
+   q(3451) => [
       q(Koluwawa),
       ],
-   q(3459) => [
+   q(3452) => [
       q(Kalao),
       ],
-   q(3460) => [
+   q(3453) => [
       q(Kabola),
       ],
-   q(3461) => [
+   q(3454) => [
       q(Konni),
       ],
-   q(3462) => [
+   q(3455) => [
       q(Southern Dong),
       ],
-   q(3463) => [
+   q(3456) => [
       q(Majukayang Kalinga),
       ],
-   q(3464) => [
+   q(3457) => [
       q(Bakole),
       ],
-   q(3465) => [
+   q(3458) => [
       q(Kare (Papua New Guinea)),
       ],
-   q(3466) => [
+   q(3459) => [
       q(Kate),
       ],
-   q(3467) => [
+   q(3460) => [
       q(Kalam),
       ],
-   q(3468) => [
+   q(3461) => [
       q(Kami (Nigeria)),
       ],
-   q(3469) => [
+   q(3462) => [
       q(Kumarbhag Paharia),
       ],
-   q(3470) => [
+   q(3463) => [
       q(Limos Kalinga),
       ],
-   q(3471) => [
+   q(3464) => [
       q(Tanudan Kalinga),
       ],
-   q(3472) => [
+   q(3465) => [
       q(Kom (India)),
       ],
-   q(3473) => [
+   q(3466) => [
       q(Awtuw),
       ],
-   q(3474) => [
+   q(3467) => [
       q(Kwoma),
       ],
-   q(3475) => [
+   q(3468) => [
       q(Gimme),
       ],
-   q(3476) => [
+   q(3469) => [
       q(Kwama),
       ],
-   q(3477) => [
+   q(3470) => [
       q(Northern Kurdish),
       ],
-   q(3478) => [
+   q(3471) => [
       q(Kamasau),
       ],
-   q(3479) => [
+   q(3472) => [
       q(Kemtuik),
       ],
-   q(3480) => [
+   q(3473) => [
       q(Kanite),
       ],
-   q(3481) => [
+   q(3474) => [
       q(Karipuna Creole French),
       ],
-   q(3482) => [
+   q(3475) => [
       q(Komo (Democratic Republic of Congo)),
       ],
-   q(3483) => [
+   q(3476) => [
       q(Waboda),
       ],
-   q(3484) => [
+   q(3477) => [
       q(Koma),
       ],
-   q(3485) => [
+   q(3478) => [
       q(Khorasani Turkish),
       ],
-   q(3486) => [
+   q(3479) => [
       q(Dera (Nigeria)),
       ],
-   q(3487) => [
+   q(3480) => [
       q(Lubuagan Kalinga),
       ],
-   q(3488) => [
+   q(3481) => [
       q(Central Kanuri),
       ],
-   q(3489) => [
+   q(3482) => [
       q(Konda),
       ],
-   q(3490) => [
+   q(3483) => [
       q(Kankanaey),
       ],
-   q(3491) => [
+   q(3484) => [
       q(Mankanya),
       ],
-   q(3492) => [
+   q(3485) => [
       q(Koongo),
       ],
-   q(3493) => [
+   q(3486) => [
       q(Kanufi),
       ],
-   q(3494) => [
+   q(3487) => [
       q(Western Kanjobal),
       ],
-   q(3495) => [
+   q(3488) => [
       q(Kuranko),
       ],
-   q(3496) => [
+   q(3489) => [
       q(Keninjal),
       ],
-   q(3497) => [
+   q(3490) => [
       q(Kanamari),
       ],
-   q(3498) => [
+   q(3491) => [
       q(Konkani (individual language)),
       ],
-   q(3499) => [
+   q(3492) => [
       q(Kono (Sierra Leone)),
       ],
-   q(3500) => [
+   q(3493) => [
       q(Kwanja),
       ],
-   q(3501) => [
+   q(3494) => [
       q(Kintaq),
       ],
-   q(3502) => [
+   q(3495) => [
       q(Kaningra),
       ],
-   q(3503) => [
+   q(3496) => [
       q(Kensiu),
       ],
-   q(3504) => [
+   q(3497) => [
       q(Panoan Katukina),
       ],
-   q(3505) => [
+   q(3498) => [
       q(Kono (Guinea)),
       ],
-   q(3506) => [
+   q(3499) => [
       q(Tabo),
       ],
-   q(3507) => [
+   q(3500) => [
       q(Kung-Ekoka),
       ],
-   q(3508) => [
+   q(3501) => [
       q(Kendayan),
       q(Salako),
       ],
-   q(3509) => [
+   q(3502) => [
       q(Kanyok),
       ],
-   q(3510) => [
+   q(3503) => [
       q(Kalamse),
       ],
-   q(3511) => [
+   q(3504) => [
       q(Konomala),
       ],
-   q(3512) => [
+   q(3505) => [
       q(Kpati),
       ],
-   q(3513) => [
+   q(3506) => [
       q(Kodi),
       ],
-   q(3514) => [
+   q(3507) => [
       q(Kacipo-Balesi),
       ],
-   q(3515) => [
+   q(3508) => [
       q(Kubi),
       ],
-   q(3516) => [
+   q(3509) => [
       q(Cogui),
       q(Kogi),
       ],
-   q(3517) => [
+   q(3510) => [
       q(Koyo),
       ],
-   q(3518) => [
+   q(3511) => [
       q(Komi-Permyak),
       ],
-   q(3519) => [
-      q(Sara Dunjo),
-      ],
-   q(3520) => [
+   q(3512) => [
       q(Kol (Papua New Guinea)),
       ],
-   q(3521) => [
+   q(3513) => [
       q(Konzo),
       ],
-   q(3522) => [
+   q(3514) => [
       q(Waube),
       ],
-   q(3523) => [
+   q(3515) => [
       q(Kota (Gabon)),
       ],
-   q(3524) => [
+   q(3516) => [
       q(Lagwan),
       ],
-   q(3525) => [
+   q(3517) => [
       q(Koke),
       ],
-   q(3526) => [
+   q(3518) => [
       q(Kudu-Camo),
       ],
-   q(3527) => [
+   q(3519) => [
       q(Kugama),
       ],
-   q(3528) => [
+   q(3520) => [
       q(Coxima),
       ],
-   q(3529) => [
+   q(3521) => [
       q(Koyukon),
       ],
-   q(3530) => [
+   q(3522) => [
       q(Korak),
       ],
-   q(3531) => [
+   q(3523) => [
       q(Kutto),
       ],
-   q(3532) => [
+   q(3524) => [
       q(Mullu Kurumba),
       ],
-   q(3533) => [
+   q(3525) => [
       q(Curripaco),
       ],
-   q(3534) => [
+   q(3526) => [
       q(Koba),
       ],
-   q(3535) => [
+   q(3527) => [
       q(Komba),
       ],
-   q(3536) => [
+   q(3528) => [
       q(Kapingamarangi),
       ],
-   q(3537) => [
+   q(3529) => [
       q(Kplang),
       ],
-   q(3538) => [
+   q(3530) => [
       q(Kofei),
       ],
-   q(3539) => [
+   q(3531) => [
       q(Karaja),
       ],
-   q(3540) => [
+   q(3532) => [
       q(Kpan),
       ],
-   q(3541) => [
+   q(3533) => [
       q(Kpala),
       ],
-   q(3542) => [
+   q(3534) => [
       q(Koho),
       ],
-   q(3543) => [
+   q(3535) => [
       q(Kepkiriwat),
       ],
-   q(3544) => [
+   q(3536) => [
       q(Ikposo),
       ],
-   q(3545) => [
+   q(3537) => [
       q(Korupun-Sela),
       ],
-   q(3546) => [
+   q(3538) => [
       q(Korafe-Yegha),
       ],
-   q(3547) => [
+   q(3539) => [
       q(Tehit),
       ],
-   q(3548) => [
+   q(3540) => [
       q(Karata),
       ],
-   q(3549) => [
+   q(3541) => [
       q(Kafoa),
       ],
-   q(3550) => [
+   q(3542) => [
       q(Komi-Zyrian),
       ],
-   q(3551) => [
+   q(3543) => [
       q(Kobon),
       ],
-   q(3552) => [
+   q(3544) => [
       q(Mountain Koiali),
       ],
-   q(3553) => [
+   q(3545) => [
       q(Koryak),
       ],
-   q(3554) => [
+   q(3546) => [
       q(Kupsabiny),
       ],
-   q(3555) => [
+   q(3547) => [
       q(Mum),
       ],
-   q(3556) => [
+   q(3548) => [
       q(Kovai),
       ],
-   q(3557) => [
+   q(3549) => [
       q(Doromu-Koki),
       ],
-   q(3558) => [
+   q(3550) => [
       q(Koy Sanjaq Surat),
       ],
-   q(3559) => [
+   q(3551) => [
       q(Kalagan),
       ],
-   q(3560) => [
+   q(3552) => [
       q(Kakabai),
       ],
-   q(3561) => [
+   q(3553) => [
       q(Khe),
       ],
-   q(3562) => [
+   q(3554) => [
       q(Kisankasa),
       ],
-   q(3563) => [
+   q(3555) => [
       q(Koitabu),
       ],
-   q(3564) => [
+   q(3556) => [
       q(Koromira),
       ],
-   q(3565) => [
+   q(3557) => [
       q(Kotafon Gbe),
       ],
-   q(3566) => [
+   q(3558) => [
       q(Kyenele),
       ],
-   q(3567) => [
+   q(3559) => [
       q(Khisa),
       ],
-   q(3568) => [
+   q(3560) => [
       q(Kaonde),
       ],
-   q(3569) => [
+   q(3561) => [
       q(Eastern Krahn),
       ],
-   q(3570) => [
+   q(3562) => [
       q(Kimre),
       ],
-   q(3571) => [
+   q(3563) => [
       q(Krenak),
       ],
-   q(3572) => [
+   q(3564) => [
       q(Kimaragang),
       ],
-   q(3573) => [
+   q(3565) => [
       q(Northern Kissi),
       ],
-   q(3574) => [
+   q(3566) => [
       q(Klias River Kadazan),
       ],
-   q(3575) => [
+   q(3567) => [
       q(Seroa),
       ],
-   q(3576) => [
+   q(3568) => [
       q(Okolod),
       ],
-   q(3577) => [
+   q(3569) => [
       q(Kandas),
       ],
-   q(3578) => [
+   q(3570) => [
       q(Mser),
       ],
-   q(3579) => [
+   q(3571) => [
       q(Koorete),
       ],
-   q(3580) => [
+   q(3572) => [
       q(Korana),
       ],
-   q(3581) => [
+   q(3573) => [
       q(Kumhali),
       ],
-   q(3582) => [
+   q(3574) => [
       q(Karkin),
       ],
-   q(3583) => [
+   q(3575) => [
       q(Kairui-Midiki),
       ],
-   q(3584) => [
+   q(3576) => [
       q(Panara),
       ],
-   q(3585) => [
+   q(3577) => [
       q(Koro (Vanuatu)),
       ],
-   q(3586) => [
+   q(3578) => [
       q(Kurama),
       ],
-   q(3587) => [
+   q(3579) => [
       q(Krio),
       ],
-   q(3588) => [
+   q(3580) => [
       q(Kinaray-A),
       ],
-   q(3589) => [
+   q(3581) => [
       q(Kerek),
       ],
-   q(3590) => [
+   q(3582) => [
       q(Krim),
       ],
-   q(3591) => [
+   q(3583) => [
       q(Sapo),
       ],
-   q(3592) => [
+   q(3584) => [
       q(Korop),
       ],
-   q(3593) => [
+   q(3585) => [
       q(Kru'ng 2),
       ],
-   q(3594) => [
+   q(3586) => [
       q(Gbaya (Sudan)),
       ],
-   q(3595) => [
+   q(3587) => [
       q(Tumari Kanuri),
       ],
-   q(3596) => [
+   q(3588) => [
       q(Kavet),
       ],
-   q(3597) => [
+   q(3589) => [
       q(Western Krahn),
       ],
-   q(3598) => [
+   q(3590) => [
       q(Karon),
       ],
-   q(3599) => [
+   q(3591) => [
       q(Kryts),
       ],
-   q(3600) => [
+   q(3592) => [
       q(Sota Kanum),
       ],
-   q(3601) => [
+   q(3593) => [
       q(Shuwa-Zamani),
       ],
-   q(3602) => [
+   q(3594) => [
       q(Shambala),
       ],
-   q(3603) => [
+   q(3595) => [
       q(Southern Kalinga),
       ],
-   q(3604) => [
+   q(3596) => [
       q(Kuanua),
       ],
-   q(3605) => [
+   q(3597) => [
       q(Kuni),
       ],
-   q(3606) => [
+   q(3598) => [
       q(Bafia),
       ],
-   q(3607) => [
+   q(3599) => [
       q(Kusaghe),
       ],
-   q(3608) => [
+   q(3600) => [
       q(Kolsch),
       ],
-   q(3609) => [
+   q(3601) => [
       q(Krisa),
       q(I'saka),
       ],
-   q(3610) => [
+   q(3602) => [
       q(Uare),
       ],
-   q(3611) => [
+   q(3603) => [
       q(Kansa),
       ],
-   q(3612) => [
+   q(3604) => [
       q(Kumalu),
       ],
-   q(3613) => [
+   q(3605) => [
       q(Kumba),
       ],
-   q(3614) => [
+   q(3606) => [
       q(Kasiguranin),
       ],
-   q(3615) => [
+   q(3607) => [
       q(Kofa),
       ],
-   q(3616) => [
+   q(3608) => [
       q(Kaba),
       ],
-   q(3617) => [
+   q(3609) => [
       q(Kwaami),
       ],
-   q(3618) => [
+   q(3610) => [
       q(Borong),
       ],
-   q(3619) => [
+   q(3611) => [
       q(Southern Kisi),
       ],
-   q(3620) => [
+   q(3612) => [
       q(Winye),
       ],
-   q(3621) => [
+   q(3613) => [
       q(Khamyang),
       ],
-   q(3622) => [
+   q(3614) => [
       q(Kusu),
       ],
-   q(3623) => [
+   q(3615) => [
       q(S'gaw Karen),
       ],
-   q(3624) => [
+   q(3616) => [
       q(Kedang),
       ],
-   q(3625) => [
+   q(3617) => [
       q(Kharia Thar),
       ],
-   q(3626) => [
+   q(3618) => [
       q(Kodaku),
       ],
-   q(3627) => [
+   q(3619) => [
       q(Katua),
       ],
-   q(3628) => [
+   q(3620) => [
       q(Kambaata),
       ],
-   q(3629) => [
+   q(3621) => [
       q(Kholok),
       ],
-   q(3630) => [
+   q(3622) => [
       q(Kokata),
       ],
-   q(3631) => [
+   q(3623) => [
       q(Nubri),
       ],
-   q(3632) => [
+   q(3624) => [
       q(Kwami),
       ],
-   q(3633) => [
+   q(3625) => [
       q(Kalkutung),
       ],
-   q(3634) => [
+   q(3626) => [
       q(Karanga),
       ],
-   q(3635) => [
+   q(3627) => [
       q(North Muyu),
       ],
-   q(3636) => [
+   q(3628) => [
       q(Plapo Krumen),
       ],
-   q(3637) => [
+   q(3629) => [
       q(Kaniet),
       ],
-   q(3638) => [
+   q(3630) => [
       q(Koroshi),
       ],
-   q(3639) => [
+   q(3631) => [
       q(Kurti),
       ],
-   q(3640) => [
+   q(3632) => [
       q(Karitiana),
       ],
-   q(3641) => [
+   q(3633) => [
       q(Kuot),
       ],
-   q(3642) => [
+   q(3634) => [
       q(Kaduo),
       ],
-   q(3643) => [
+   q(3635) => [
       q(Katabaga),
       ],
-   q(3644) => [
+   q(3636) => [
       q(Kota Marudu Tinagas),
       ],
-   q(3645) => [
+   q(3637) => [
       q(South Muyu),
       ],
-   q(3646) => [
+   q(3638) => [
       q(Ketum),
       ],
-   q(3647) => [
+   q(3639) => [
       q(Kituba (Democratic Republic of Congo)),
       ],
-   q(3648) => [
+   q(3640) => [
       q(Eastern Katu),
       ],
-   q(3649) => [
+   q(3641) => [
       q(Kato),
       ],
-   q(3650) => [
+   q(3642) => [
       q(Kaxarari),
       ],
-   q(3651) => [
+   q(3643) => [
       q(Kango (Bas-Uele District)),
       ],
-   q(3652) => [
+   q(3644) => [
       q(Ju/'hoan),
       ],
-   q(3653) => [
+   q(3645) => [
       q(Kutep),
       ],
-   q(3654) => [
+   q(3646) => [
       q(Kwinsu),
       ],
-   q(3655) => [
+   q(3647) => [
       q('Auhelawa),
       ],
-   q(3656) => [
-      q(Kuman),
+   q(3648) => [
+      q(Kuman (Papua New Guinea)),
       ],
-   q(3657) => [
+   q(3649) => [
       q(Western Katu),
       ],
-   q(3658) => [
+   q(3650) => [
       q(Kupa),
       ],
-   q(3659) => [
+   q(3651) => [
       q(Kushi),
       ],
-   q(3660) => [
+   q(3652) => [
       q(Kuikuro-Kalapalo),
       ],
-   q(3661) => [
+   q(3653) => [
       q(Kuria),
       ],
-   q(3662) => [
+   q(3654) => [
       q(Kepo'),
       ],
-   q(3663) => [
+   q(3655) => [
       q(Kulere),
       ],
-   q(3664) => [
+   q(3656) => [
       q(Kunama),
       ],
-   q(3665) => [
+   q(3657) => [
       q(Kumukio),
       ],
-   q(3666) => [
+   q(3658) => [
       q(Kunimaipa),
       ],
-   q(3667) => [
+   q(3659) => [
       q(Kusaal),
       ],
-   q(3668) => [
+   q(3660) => [
       q(Upper Kuskokwim),
       ],
-   q(3669) => [
+   q(3661) => [
       q(Kur),
       ],
-   q(3670) => [
+   q(3662) => [
       q(Kpagua),
       ],
-   q(3671) => [
+   q(3663) => [
       q(Kukatja),
       ],
-   q(3672) => [
+   q(3664) => [
       q(Kuuku-Ya'u),
       ],
-   q(3673) => [
+   q(3665) => [
       q(Kunza),
       ],
-   q(3674) => [
+   q(3666) => [
       q(Bagvalal),
       ],
-   q(3675) => [
+   q(3667) => [
       q(Kubu),
       ],
-   q(3676) => [
+   q(3668) => [
       q(Kove),
       ],
-   q(3677) => [
+   q(3669) => [
       q(Kui (Indonesia)),
       ],
-   q(3678) => [
+   q(3670) => [
       q(Kalabakan),
       ],
-   q(3679) => [
+   q(3671) => [
       q(Kabalai),
       ],
-   q(3680) => [
+   q(3672) => [
       q(Kuni-Boazi),
       ],
-   q(3681) => [
+   q(3673) => [
       q(Komodo),
       ],
-   q(3682) => [
+   q(3674) => [
       q(Kwang),
       ],
-   q(3683) => [
+   q(3675) => [
       q(Psikye),
       ],
-   q(3684) => [
+   q(3676) => [
       q(Korean Sign Language),
       ],
-   q(3685) => [
+   q(3677) => [
       q(Kayaw),
       ],
-   q(3686) => [
+   q(3678) => [
       q(Kendem),
       ],
-   q(3687) => [
+   q(3679) => [
       q(Border Kuna),
       ],
-   q(3688) => [
+   q(3680) => [
       q(Dobel),
       ],
-   q(3689) => [
+   q(3681) => [
       q(Kompane),
       ],
-   q(3690) => [
+   q(3682) => [
       q(Geba Karen),
       ],
-   q(3691) => [
+   q(3683) => [
       q(Kerinci),
       ],
-   q(3692) => [
+   q(3684) => [
       q(Kunggara),
       ],
-   q(3693) => [
+   q(3685) => [
       q(Lahta Karen),
       q(Lahta),
       ],
-   q(3694) => [
+   q(3686) => [
       q(Yinbaw Karen),
       ],
-   q(3695) => [
+   q(3687) => [
       q(Kola),
       ],
-   q(3696) => [
+   q(3688) => [
       q(Wersing),
       ],
-   q(3697) => [
+   q(3689) => [
       q(Parkari Koli),
       ],
-   q(3698) => [
+   q(3690) => [
       q(Yintale Karen),
       q(Yintale),
       ],
-   q(3699) => [
+   q(3691) => [
       q(Tsakwambo),
       q(Tsaukambo),
       ],
-   q(3700) => [
+   q(3692) => [
       q(Daw),
       ],
-   q(3701) => [
+   q(3693) => [
       q(Kwa),
       ],
-   q(3702) => [
+   q(3694) => [
       q(Likwala),
       ],
-   q(3703) => [
+   q(3695) => [
       q(Kwaio),
       ],
-   q(3704) => [
+   q(3696) => [
       q(Kwerba),
       ],
-   q(3705) => [
+   q(3697) => [
       q(Kwara'ae),
       ],
-   q(3706) => [
+   q(3698) => [
       q(Sara Kaba Deme),
       ],
-   q(3707) => [
+   q(3699) => [
       q(Kowiai),
       ],
-   q(3708) => [
+   q(3700) => [
       q(Awa-Cuaiquer),
       ],
-   q(3709) => [
+   q(3701) => [
       q(Kwanga),
       ],
-   q(3710) => [
+   q(3702) => [
       q(Kwakiutl),
       ],
-   q(3711) => [
+   q(3703) => [
       q(Kofyar),
       ],
-   q(3712) => [
+   q(3704) => [
       q(Kwambi),
       ],
-   q(3713) => [
+   q(3705) => [
       q(Kwangali),
       ],
-   q(3714) => [
+   q(3706) => [
       q(Kwomtari),
       ],
-   q(3715) => [
+   q(3707) => [
       q(Kodia),
       ],
-   q(3716) => [
-      q(Kwak),
-      ],
-   q(3717) => [
+   q(3708) => [
       q(Kwer),
       ],
-   q(3718) => [
+   q(3709) => [
       q(Kwese),
       ],
-   q(3719) => [
+   q(3710) => [
       q(Kwesten),
       ],
-   q(3720) => [
+   q(3711) => [
       q(Kwakum),
       ],
-   q(3721) => [
+   q(3712) => [
       q(Sara Kaba Naa),
       ],
-   q(3722) => [
+   q(3713) => [
       q(Kwinti),
       ],
-   q(3723) => [
+   q(3714) => [
       q(Khirwar),
       ],
-   q(3724) => [
+   q(3715) => [
       q(San Salvador Kongo),
       ],
-   q(3725) => [
+   q(3716) => [
       q(Kwadi),
       ],
-   q(3726) => [
+   q(3717) => [
       q(Kairiru),
       ],
-   q(3727) => [
+   q(3718) => [
       q(Krobu),
       ],
-   q(3728) => [
+   q(3719) => [
       q(Konso),
       q(Khonso),
       ],
-   q(3729) => [
+   q(3720) => [
       q(Brunei),
       ],
-   q(3730) => [
-      q(Kakihum),
-      ],
-   q(3731) => [
+   q(3721) => [
       q(Manumanaw Karen),
       q(Manumanaw),
       ],
-   q(3732) => [
+   q(3722) => [
       q(Karo (Ethiopia)),
       ],
-   q(3733) => [
+   q(3723) => [
       q(Keningau Murut),
       ],
-   q(3734) => [
+   q(3724) => [
       q(Kulfa),
       ],
-   q(3735) => [
+   q(3725) => [
       q(Zayein Karen),
       ],
-   q(3736) => [
+   q(3726) => [
       q(Nepali Kurux),
       ],
-   q(3737) => [
+   q(3727) => [
       q(Northern Khmer),
       ],
-   q(3738) => [
+   q(3728) => [
       q(Kanowit-Tanjong Melanau),
       ],
-   q(3739) => [
+   q(3729) => [
       q(Kanoe),
       ],
-   q(3740) => [
+   q(3730) => [
       q(Wadiyara Koli),
       ],
-   q(3741) => [
+   q(3731) => [
       q(Smarky Kanum),
       ],
-   q(3742) => [
+   q(3732) => [
       q(Koro (Papua New Guinea)),
       ],
-   q(3743) => [
+   q(3733) => [
       q(Kangjia),
       ],
-   q(3744) => [
+   q(3734) => [
       q(Koiwat),
       ],
-   q(3745) => [
+   q(3735) => [
       q(Kui (India)),
       ],
-   q(3746) => [
+   q(3736) => [
       q(Kuvi),
       ],
-   q(3747) => [
+   q(3737) => [
       q(Konai),
       ],
-   q(3748) => [
+   q(3738) => [
       q(Likuba),
       ],
-   q(3749) => [
+   q(3739) => [
       q(Kayong),
       ],
-   q(3750) => [
+   q(3740) => [
       q(Kerewo),
       ],
-   q(3751) => [
+   q(3741) => [
       q(Kwaya),
       ],
-   q(3752) => [
+   q(3742) => [
       q(Butbut Kalinga),
       ],
-   q(3753) => [
+   q(3743) => [
       q(Kyaka),
       ],
-   q(3754) => [
+   q(3744) => [
       q(Karey),
       ],
-   q(3755) => [
+   q(3745) => [
       q(Krache),
       ],
-   q(3756) => [
+   q(3746) => [
       q(Kouya),
       ],
-   q(3757) => [
+   q(3747) => [
       q(Keyagana),
       ],
-   q(3758) => [
+   q(3748) => [
       q(Karok),
       ],
-   q(3759) => [
+   q(3749) => [
       q(Kiput),
       ],
-   q(3760) => [
+   q(3750) => [
       q(Karao),
       ],
-   q(3761) => [
+   q(3751) => [
       q(Kamayo),
       ],
-   q(3762) => [
+   q(3752) => [
       q(Kalapuya),
       ],
-   q(3763) => [
+   q(3753) => [
       q(Kpatili),
       ],
-   q(3764) => [
+   q(3754) => [
       q(Northern Binukidnon),
       ],
-   q(3765) => [
+   q(3755) => [
       q(Kelon),
       ],
-   q(3766) => [
+   q(3756) => [
       q(Kang),
       ],
-   q(3767) => [
+   q(3757) => [
       q(Kenga),
       ],
-   q(3768) => [
+   q(3758) => [
       q(Kuruaya),
       ],
-   q(3769) => [
+   q(3759) => [
       q(Baram Kayan),
       ],
-   q(3770) => [
+   q(3760) => [
       q(Kayagar),
       ],
-   q(3771) => [
+   q(3761) => [
       q(Western Kayah),
       ],
-   q(3772) => [
+   q(3762) => [
       q(Kayort),
       ],
-   q(3773) => [
+   q(3763) => [
       q(Kudmali),
       ],
-   q(3774) => [
+   q(3764) => [
       q(Rapoisi),
       ],
-   q(3775) => [
+   q(3765) => [
       q(Kambaira),
       ],
-   q(3776) => [
+   q(3766) => [
       q(Kayabi),
       ],
-   q(3777) => [
+   q(3767) => [
       q(Western Karaboro),
       ],
-   q(3778) => [
+   q(3768) => [
       q(Kaibobo),
       ],
-   q(3779) => [
+   q(3769) => [
       q(Bondoukou Kulango),
       ],
-   q(3780) => [
+   q(3770) => [
       q(Kadai),
       ],
-   q(3781) => [
+   q(3771) => [
       q(Kosena),
       ],
-   q(3782) => [
+   q(3772) => [
       q(Da'a Kaili),
       ],
-   q(3783) => [
+   q(3773) => [
       q(Kikai),
       ],
-   q(3784) => [
+   q(3774) => [
       q(Kelabit),
       ],
-   q(3785) => [
+   q(3775) => [
       q(Coastal Kadazan),
       ],
-   q(3786) => [
+   q(3776) => [
       q(Kazukuru),
       ],
-   q(3787) => [
+   q(3777) => [
       q(Kayeli),
       ],
-   q(3788) => [
+   q(3778) => [
       q(Kais),
       ],
-   q(3789) => [
+   q(3779) => [
       q(Kokola),
       ],
-   q(3790) => [
+   q(3780) => [
       q(Kaningi),
       ],
-   q(3791) => [
+   q(3781) => [
       q(Kaidipang),
       ],
-   q(3792) => [
+   q(3782) => [
       q(Kaike),
       ],
-   q(3793) => [
+   q(3783) => [
       q(Karang),
       ],
-   q(3794) => [
+   q(3784) => [
       q(Sugut Dusun),
       ],
-   q(3795) => [
+   q(3785) => [
       q(Tambunan Dusun),
       ],
-   q(3796) => [
+   q(3786) => [
       q(Kayupulau),
       ],
-   q(3797) => [
+   q(3787) => [
       q(Komyandaret),
       ],
-   q(3798) => [
+   q(3788) => [
       q(Kariri-Xoco),
       ],
-   q(3799) => [
+   q(3789) => [
       q(Kamarian),
       ],
-   q(3800) => [
+   q(3790) => [
       q(Kango (Tshopo District)),
       ],
-   q(3801) => [
+   q(3791) => [
       q(Kalabra),
       ],
-   q(3802) => [
+   q(3792) => [
       q(Southern Subanen),
       ],
-   q(3803) => [
+   q(3793) => [
       q(Linear A),
       ],
-   q(3804) => [
+   q(3794) => [
       q(Lacandon),
       ],
-   q(3805) => [
+   q(3795) => [
       q(Pattani),
       ],
-   q(3806) => [
+   q(3796) => [
       q(Lafofa),
       ],
-   q(3807) => [
+   q(3797) => [
       q(Langi),
       ],
-   q(3808) => [
+   q(3798) => [
       q(Lambya),
       ],
-   q(3809) => [
+   q(3799) => [
       q(Lango (Uganda)),
       ],
-   q(3810) => [
+   q(3800) => [
       q(Laka (Nigeria)),
       ],
-   q(3811) => [
+   q(3801) => [
       q(Lalia),
       ],
-   q(3812) => [
+   q(3802) => [
       q(Laru),
       ],
-   q(3813) => [
+   q(3803) => [
       q(Laka (Chad)),
       ],
-   q(3814) => [
+   q(3804) => [
       q(Qabiao),
       ],
-   q(3815) => [
+   q(3805) => [
       q(Larteh),
       ],
-   q(3816) => [
+   q(3806) => [
       q(Lama (Togo)),
       ],
-   q(3817) => [
+   q(3807) => [
       q(Laba),
       ],
-   q(3818) => [
+   q(3808) => [
       q(Lauje),
       ],
-   q(3819) => [
+   q(3809) => [
       q(Tiwa),
       ],
-   q(3820) => [
+   q(3810) => [
       q(Lama Bai),
       ],
-   q(3821) => [
+   q(3811) => [
       q(Aribwatsa),
       ],
-   q(3822) => [
+   q(3812) => [
       q(Lui),
       ],
-   q(3823) => [
+   q(3813) => [
       q(Label),
       ],
-   q(3824) => [
+   q(3814) => [
       q(Lakkia),
       ],
-   q(3825) => [
+   q(3815) => [
       q(Lak),
       ],
-   q(3826) => [
+   q(3816) => [
       q(Tinani),
       ],
-   q(3827) => [
+   q(3817) => [
       q(Laopang),
       ],
-   q(3828) => [
+   q(3818) => [
       q(La'bi),
       ],
-   q(3829) => [
+   q(3819) => [
       q(Ladakhi),
       ],
-   q(3830) => [
+   q(3820) => [
       q(Central Bontok),
       ],
-   q(3831) => [
+   q(3821) => [
       q(Libon Bikol),
       ],
-   q(3832) => [
+   q(3822) => [
       q(Lodhi),
       ],
-   q(3833) => [
+   q(3823) => [
       q(Lamet),
       ],
-   q(3834) => [
+   q(3824) => [
       q(Laven),
       ],
-   q(3835) => [
+   q(3825) => [
       q(Wampar),
       ],
-   q(3836) => [
+   q(3826) => [
       q(Lohorung),
       ],
-   q(3837) => [
+   q(3827) => [
       q(Libyan Sign Language),
       ],
-   q(3838) => [
+   q(3828) => [
       q(Lachi),
       ],
-   q(3839) => [
+   q(3829) => [
       q(Labu),
       ],
-   q(3840) => [
+   q(3830) => [
       q(Lavatbura-Lamusong),
       ],
-   q(3841) => [
+   q(3831) => [
       q(Tolaki),
       ],
-   q(3842) => [
+   q(3832) => [
       q(Lawangan),
       ],
-   q(3843) => [
+   q(3833) => [
       q(Lamu-Lamu),
       ],
-   q(3844) => [
+   q(3834) => [
       q(Lardil),
       ],
-   q(3845) => [
+   q(3835) => [
       q(Legenyem),
       ],
-   q(3846) => [
+   q(3836) => [
       q(Lola),
       ],
-   q(3847) => [
+   q(3837) => [
       q(Loncong),
       ],
-   q(3848) => [
+   q(3838) => [
       q(Lubu),
       ],
-   q(3849) => [
+   q(3839) => [
       q(Luchazi),
       ],
-   q(3850) => [
+   q(3840) => [
       q(Lisela),
       ],
-   q(3851) => [
+   q(3841) => [
       q(Tungag),
       ],
-   q(3852) => [
+   q(3842) => [
       q(Western Lawa),
       ],
-   q(3853) => [
+   q(3843) => [
       q(Luhu),
       ],
-   q(3854) => [
+   q(3844) => [
       q(Lisabata-Nuniali),
       ],
-   q(3855) => [
+   q(3845) => [
       q(Kla-Dan),
       ],
-   q(3856) => [
+   q(3846) => [
       q(Duya),
       ],
-   q(3857) => [
+   q(3847) => [
       q(Luri),
       ],
-   q(3858) => [
+   q(3848) => [
       q(Lenyima),
       ],
-   q(3859) => [
+   q(3849) => [
       q(Lamja-Dengsa-Tola),
       ],
-   q(3860) => [
+   q(3850) => [
       q(Laari),
       ],
-   q(3861) => [
+   q(3851) => [
       q(Lemoro),
       ],
-   q(3862) => [
+   q(3852) => [
       q(Leelau),
       ],
-   q(3863) => [
+   q(3853) => [
       q(Kaan),
       ],
-   q(3864) => [
+   q(3854) => [
       q(Landoma),
       ],
-   q(3865) => [
+   q(3855) => [
       q(Laadan),
       ],
-   q(3866) => [
+   q(3856) => [
       q(Loo),
       ],
-   q(3867) => [
+   q(3857) => [
       q(Tso),
       ],
-   q(3868) => [
+   q(3858) => [
       q(Lufu),
       ],
-   q(3869) => [
+   q(3859) => [
       q(Lega-Shabunda),
       ],
-   q(3870) => [
+   q(3860) => [
       q(Lala-Bisa),
       ],
-   q(3871) => [
+   q(3861) => [
       q(Leco),
       ],
-   q(3872) => [
+   q(3862) => [
       q(Lendu),
       ],
-   q(3873) => [
+   q(3863) => [
       q(Lyele),
       ],
-   q(3874) => [
+   q(3864) => [
       q(Lelemi),
       ],
-   q(3875) => [
+   q(3865) => [
       q(Lenje),
       ],
-   q(3876) => [
+   q(3866) => [
       q(Lemio),
       ],
-   q(3877) => [
+   q(3867) => [
       q(Lengola),
       ],
-   q(3878) => [
+   q(3868) => [
       q(Leipon),
       ],
-   q(3879) => [
+   q(3869) => [
       q(Lele (Democratic Republic of Congo)),
       ],
-   q(3880) => [
+   q(3870) => [
       q(Nomaande),
       ],
-   q(3881) => [
+   q(3871) => [
       q(Lenca),
       ],
-   q(3882) => [
+   q(3872) => [
       q(Leti (Cameroon)),
       ],
-   q(3883) => [
+   q(3873) => [
       q(Lepcha),
       ],
-   q(3884) => [
+   q(3874) => [
       q(Lembena),
       ],
-   q(3885) => [
+   q(3875) => [
       q(Lenkau),
       ],
-   q(3886) => [
+   q(3876) => [
       q(Lese),
       ],
-   q(3887) => [
+   q(3877) => [
       q(Lesing-Gelimi),
       q(Amio-Gelimi),
       ],
-   q(3888) => [
+   q(3878) => [
       q(Kara (Papua New Guinea)),
       ],
-   q(3889) => [
+   q(3879) => [
       q(Lamma),
       ],
-   q(3890) => [
+   q(3880) => [
       q(Ledo Kaili),
       ],
-   q(3891) => [
+   q(3881) => [
       q(Luang),
       ],
-   q(3892) => [
+   q(3882) => [
       q(Lemolang),
       ],
-   q(3893) => [
+   q(3883) => [
       q(Lefa),
       ],
-   q(3894) => [
+   q(3884) => [
       q(Lingua Franca Nova),
       ],
-   q(3895) => [
+   q(3885) => [
       q(Lungga),
       ],
-   q(3896) => [
+   q(3886) => [
       q(Laghu),
       ],
-   q(3897) => [
+   q(3887) => [
       q(Lugbara),
       ],
-   q(3898) => [
+   q(3888) => [
       q(Laghuu),
       ],
-   q(3899) => [
+   q(3889) => [
       q(Lengilu),
       ],
-   q(3900) => [
+   q(3890) => [
       q(Lingarak),
       q(Neverver),
       ],
-   q(3901) => [
+   q(3891) => [
       q(Wala),
       ],
-   q(3902) => [
+   q(3892) => [
       q(Lega-Mwenga),
       ],
-   q(3903) => [
+   q(3893) => [
       q(Opuuo),
       ],
-   q(3904) => [
+   q(3894) => [
       q(Logba),
       ],
-   q(3905) => [
+   q(3895) => [
       q(Lengo),
       ],
-   q(3906) => [
+   q(3896) => [
       q(Pahi),
       ],
-   q(3907) => [
+   q(3897) => [
       q(Longgu),
       ],
-   q(3908) => [
+   q(3898) => [
       q(Ligenza),
       ],
-   q(3909) => [
+   q(3899) => [
       q(Laha (Viet Nam)),
       ],
-   q(3910) => [
+   q(3900) => [
       q(Laha (Indonesia)),
       ],
-   q(3911) => [
+   q(3901) => [
       q(Lahu Shi),
       ],
-   q(3912) => [
+   q(3902) => [
       q(Lahul Lohar),
       ],
-   q(3913) => [
+   q(3903) => [
       q(Lhomi),
       ],
-   q(3914) => [
+   q(3904) => [
       q(Lahanan),
       ],
-   q(3915) => [
+   q(3905) => [
       q(Lhokpu),
       ],
-   q(3916) => [
+   q(3906) => [
       q(Mlahso),
       ],
-   q(3917) => [
+   q(3907) => [
       q(Lo-Toga),
       ],
-   q(3918) => [
+   q(3908) => [
       q(Lahu),
       ],
-   q(3919) => [
+   q(3909) => [
       q(West-Central Limba),
       ],
-   q(3920) => [
+   q(3910) => [
       q(Likum),
       ],
-   q(3921) => [
+   q(3911) => [
       q(Hlai),
       ],
-   q(3922) => [
+   q(3912) => [
       q(Nyindrou),
       ],
-   q(3923) => [
+   q(3913) => [
       q(Likila),
       ],
-   q(3924) => [
+   q(3914) => [
       q(Limbu),
       ],
-   q(3925) => [
+   q(3915) => [
       q(Ligbi),
       ],
-   q(3926) => [
+   q(3916) => [
       q(Lihir),
       ],
-   q(3927) => [
-      q(Lingkhim),
-      ],
-   q(3928) => [
+   q(3917) => [
       q(Ligurian),
       ],
-   q(3929) => [
+   q(3918) => [
       q(Lika),
       ],
-   q(3930) => [
+   q(3919) => [
       q(Lillooet),
       ],
-   q(3931) => [
+   q(3920) => [
       q(Liki),
       ],
-   q(3932) => [
+   q(3921) => [
       q(Sekpele),
       ],
-   q(3933) => [
+   q(3922) => [
       q(Libido),
       ],
-   q(3934) => [
+   q(3923) => [
       q(Liberian English),
       ],
-   q(3935) => [
+   q(3924) => [
       q(Lisu),
       ],
-   q(3936) => [
+   q(3925) => [
       q(Logorik),
       ],
-   q(3937) => [
+   q(3926) => [
       q(Liv),
       ],
-   q(3938) => [
+   q(3927) => [
       q(Col),
       ],
-   q(3939) => [
+   q(3928) => [
       q(Liabuku),
       ],
-   q(3940) => [
+   q(3929) => [
       q(Banda-Bambari),
       ],
-   q(3941) => [
+   q(3930) => [
       q(Libinza),
       ],
-   q(3942) => [
+   q(3931) => [
       q(Golpa),
       ],
-   q(3943) => [
+   q(3932) => [
       q(Rampi),
       ],
-   q(3944) => [
+   q(3933) => [
       q(Laiyolo),
       ],
-   q(3945) => [
+   q(3934) => [
       q(Li'o),
       ],
-   q(3946) => [
+   q(3935) => [
       q(Lampung Api),
       ],
-   q(3947) => [
+   q(3936) => [
       q(Yirandali),
       ],
-   q(3948) => [
+   q(3937) => [
       q(Yuru),
       ],
-   q(3949) => [
+   q(3938) => [
       q(Lakalei),
       ],
-   q(3950) => [
+   q(3939) => [
       q(Kabras),
       q(Lukabaras),
       ],
-   q(3951) => [
+   q(3940) => [
       q(Kucong),
       ],
-   q(3952) => [
+   q(3941) => [
       q(Lakonde),
       ],
-   q(3953) => [
+   q(3942) => [
       q(Kenyi),
       ],
-   q(3954) => [
+   q(3943) => [
       q(Lakha),
       ],
-   q(3955) => [
+   q(3944) => [
       q(Laki),
       ],
-   q(3956) => [
+   q(3945) => [
       q(Remun),
       ],
-   q(3957) => [
+   q(3946) => [
       q(Laeko-Libuat),
       ],
-   q(3958) => [
+   q(3947) => [
       q(Kalaamaya),
       ],
-   q(3959) => [
+   q(3948) => [
       q(Lakon),
       q(Vure),
       ],
-   q(3960) => [
+   q(3949) => [
       q(Khayo),
       q(Olukhayo),
       ],
-   q(3961) => [
+   q(3950) => [
       q(Pari),
       ],
-   q(3962) => [
+   q(3951) => [
       q(Kisa),
       q(Olushisa),
       ],
-   q(3963) => [
+   q(3952) => [
       q(Lakota),
       ],
-   q(3964) => [
+   q(3953) => [
       q(Kungkari),
       ],
-   q(3965) => [
+   q(3954) => [
       q(Lokoya),
       ],
-   q(3966) => [
+   q(3955) => [
       q(Lala-Roba),
       ],
-   q(3967) => [
+   q(3956) => [
       q(Lolo),
       ],
-   q(3968) => [
+   q(3957) => [
       q(Lele (Guinea)),
       ],
-   q(3969) => [
+   q(3958) => [
       q(Ladin),
       ],
-   q(3970) => [
+   q(3959) => [
       q(Lele (Papua New Guinea)),
       ],
-   q(3971) => [
+   q(3960) => [
       q(Hermit),
       ],
-   q(3972) => [
+   q(3961) => [
       q(Lole),
       ],
-   q(3973) => [
+   q(3962) => [
       q(Lamu),
       ],
-   q(3974) => [
+   q(3963) => [
       q(Teke-Laali),
       ],
-   q(3975) => [
+   q(3964) => [
       q(Ladji Ladji),
       ],
-   q(3976) => [
+   q(3965) => [
       q(Lelak),
       ],
-   q(3977) => [
+   q(3966) => [
       q(Lilau),
       ],
-   q(3978) => [
+   q(3967) => [
       q(Lasalimu),
       ],
-   q(3979) => [
+   q(3968) => [
       q(Lele (Chad)),
       ],
-   q(3980) => [
+   q(3969) => [
       q(Khlor),
       ],
-   q(3981) => [
+   q(3970) => [
       q(North Efate),
       ],
-   q(3982) => [
+   q(3971) => [
       q(Lolak),
       ],
-   q(3983) => [
+   q(3972) => [
       q(Lithuanian Sign Language),
       ],
-   q(3984) => [
+   q(3973) => [
       q(Lau),
       ],
-   q(3985) => [
+   q(3974) => [
       q(Lauan),
       ],
-   q(3986) => [
+   q(3975) => [
       q(East Limba),
       ],
-   q(3987) => [
+   q(3976) => [
       q(Merei),
       ],
-   q(3988) => [
+   q(3977) => [
       q(Limilngan),
       ],
-   q(3989) => [
+   q(3978) => [
       q(Lumun),
       ],
-   q(3990) => [
+   q(3979) => [
       q(Peve),
       ],
-   q(3991) => [
+   q(3980) => [
       q(South Lembata),
       ],
-   q(3992) => [
+   q(3981) => [
       q(Lamogai),
       ],
-   q(3993) => [
+   q(3982) => [
       q(Lambichhong),
       ],
-   q(3994) => [
+   q(3983) => [
       q(Lombi),
       ],
-   q(3995) => [
+   q(3984) => [
       q(West Lembata),
       ],
-   q(3996) => [
+   q(3985) => [
       q(Lamkang),
       ],
-   q(3997) => [
+   q(3986) => [
       q(Hano),
       ],
-   q(3998) => [
+   q(3987) => [
       q(Lambadi),
       ],
-   q(3999) => [
+   q(3988) => [
       q(Lombard),
       ],
-   q(4000) => [
+   q(3989) => [
       q(Limbum),
       ],
-   q(4001) => [
+   q(3990) => [
       q(Lamatuka),
       ],
-   q(4002) => [
+   q(3991) => [
       q(Lamalera),
       ],
-   q(4003) => [
+   q(3992) => [
       q(Lamenu),
       ],
-   q(4004) => [
+   q(3993) => [
       q(Lomaiviti),
       ],
-   q(4005) => [
+   q(3994) => [
       q(Lake Miwok),
       ],
-   q(4006) => [
+   q(3995) => [
       q(Laimbue),
       ],
-   q(4007) => [
+   q(3996) => [
       q(Lamboya),
       ],
-   q(4008) => [
+   q(3997) => [
       q(Lumbee),
       ],
-   q(4009) => [
+   q(3998) => [
       q(Langbashe),
       ],
-   q(4010) => [
+   q(3999) => [
       q(Mbalanhu),
       ],
-   q(4011) => [
+   q(4000) => [
       q(Lundayeh),
       q(Lun Bawang),
       ],
-   q(4012) => [
+   q(4001) => [
       q(Langobardic),
       ],
-   q(4013) => [
+   q(4002) => [
       q(Lanoh),
       ],
-   q(4014) => [
+   q(4003) => [
       q(Daantanai'),
       ],
-   q(4015) => [
+   q(4004) => [
       q(Leningitij),
       ],
-   q(4016) => [
+   q(4005) => [
       q(South Central Banda),
       ],
-   q(4017) => [
+   q(4006) => [
       q(Langam),
       ],
-   q(4018) => [
+   q(4007) => [
       q(Lorediakarkar),
       ],
-   q(4019) => [
+   q(4008) => [
       q(Lango (Sudan)),
       ],
-   q(4020) => [
+   q(4009) => [
       q(Lamnso'),
       ],
-   q(4021) => [
+   q(4010) => [
       q(Longuda),
       ],
-   q(4022) => [
+   q(4011) => [
       q(Lanima),
       ],
-   q(4023) => [
+   q(4012) => [
       q(Lonzo),
       ],
-   q(4024) => [
+   q(4013) => [
       q(Loloda),
       ],
-   q(4025) => [
+   q(4014) => [
       q(Lobi),
       ],
-   q(4026) => [
+   q(4015) => [
       q(Inonhan),
       ],
-   q(4027) => [
+   q(4016) => [
       q(Saluan),
       ],
-   q(4028) => [
+   q(4017) => [
       q(Logol),
       ],
-   q(4029) => [
+   q(4018) => [
       q(Logo),
       ],
-   q(4030) => [
+   q(4019) => [
       q(Narim),
       ],
-   q(4031) => [
+   q(4020) => [
       q(Loma (Cote d'Ivoire)),
       ],
-   q(4032) => [
+   q(4021) => [
       q(Lou),
       ],
-   q(4033) => [
+   q(4022) => [
       q(Loko),
       ],
-   q(4034) => [
+   q(4023) => [
       q(Loma (Liberia)),
       ],
-   q(4035) => [
+   q(4024) => [
       q(Malawi Lomwe),
       ],
-   q(4036) => [
+   q(4025) => [
       q(Lombo),
       ],
-   q(4037) => [
+   q(4026) => [
       q(Lopa),
       ],
-   q(4038) => [
+   q(4027) => [
       q(Lobala),
       ],
-   q(4039) => [
+   q(4028) => [
       q(Teen),
       ],
-   q(4040) => [
+   q(4029) => [
       q(Loniu),
       ],
-   q(4041) => [
+   q(4030) => [
       q(Otuho),
       ],
-   q(4042) => [
+   q(4031) => [
       q(Louisiana Creole French),
       ],
-   q(4043) => [
+   q(4032) => [
       q(Lopi),
       ],
-   q(4044) => [
+   q(4033) => [
       q(Tampias Lobu),
       ],
-   q(4045) => [
+   q(4034) => [
       q(Loun),
       ],
-   q(4046) => [
+   q(4035) => [
       q(Loke),
       ],
-   q(4047) => [
+   q(4036) => [
       q(Lelepa),
       ],
-   q(4048) => [
+   q(4037) => [
       q(Lepki),
       ],
-   q(4049) => [
+   q(4038) => [
       q(Long Phuri Naga),
       ],
-   q(4050) => [
+   q(4039) => [
       q(Lipo),
       ],
-   q(4051) => [
+   q(4040) => [
       q(Lopit),
       ],
-   q(4052) => [
+   q(4041) => [
       q(Rara Bakati'),
       ],
-   q(4053) => [
+   q(4042) => [
       q(Northern Luri),
       ],
-   q(4054) => [
+   q(4043) => [
       q(Laurentian),
       ],
-   q(4055) => [
+   q(4044) => [
       q(Laragia),
       ],
-   q(4056) => [
+   q(4045) => [
       q(Marachi),
       q(Olumarachi),
       ],
-   q(4057) => [
+   q(4046) => [
       q(Loarki),
       ],
-   q(4058) => [
+   q(4047) => [
       q(Lari),
       ],
-   q(4059) => [
+   q(4048) => [
       q(Marama),
       q(Olumarama),
       ],
-   q(4060) => [
+   q(4049) => [
       q(Lorang),
       ],
-   q(4061) => [
+   q(4050) => [
       q(Laro),
       ],
-   q(4062) => [
+   q(4051) => [
       q(Southern Yamphu),
       ],
-   q(4063) => [
+   q(4052) => [
       q(Larantuka Malay),
       ],
-   q(4064) => [
+   q(4053) => [
       q(Larevat),
       ],
-   q(4065) => [
+   q(4054) => [
       q(Lemerig),
       ],
-   q(4066) => [
+   q(4055) => [
       q(Lasgerdi),
       ],
-   q(4067) => [
+   q(4056) => [
       q(Lishana Deni),
       ],
-   q(4068) => [
+   q(4057) => [
       q(Lusengo),
       ],
-   q(4069) => [
+   q(4058) => [
       q(Lyons Sign Language),
       ],
-   q(4070) => [
+   q(4059) => [
       q(Lish),
       ],
-   q(4071) => [
+   q(4060) => [
       q(Lashi),
       ],
-   q(4072) => [
+   q(4061) => [
       q(Latvian Sign Language),
       ],
-   q(4073) => [
+   q(4062) => [
       q(Saamia),
       q(Olusamia),
       ],
-   q(4074) => [
+   q(4063) => [
       q(Laos Sign Language),
       ],
-   q(4075) => [
+   q(4064) => [
       q(Panamanian Sign Language),
       q(Lengua de Senas Panamenas),
       ],
-   q(4076) => [
+   q(4065) => [
       q(Aruop),
       ],
-   q(4077) => [
+   q(4066) => [
       q(Lasi),
       ],
-   q(4078) => [
+   q(4067) => [
       q(Trinidad and Tobago Sign Language),
       ],
-   q(4079) => [
+   q(4068) => [
       q(Mauritian Sign Language),
       ],
-   q(4080) => [
+   q(4069) => [
       q(Late Middle Chinese),
       ],
-   q(4081) => [
+   q(4070) => [
       q(Latgalian),
       ],
-   q(4082) => [
+   q(4071) => [
       q(Leti (Indonesia)),
       ],
-   q(4083) => [
+   q(4072) => [
       q(Latunde),
       ],
-   q(4084) => [
+   q(4073) => [
       q(Tsotso),
       q(Olutsotso),
       ],
-   q(4085) => [
+   q(4074) => [
       q(Tachoni),
       q(Lutachoni),
       ],
-   q(4086) => [
+   q(4075) => [
       q(Latu),
       ],
-   q(4087) => [
+   q(4076) => [
       q(Aringa),
       ],
-   q(4088) => [
+   q(4077) => [
       q(Ludian),
       ],
-   q(4089) => [
+   q(4078) => [
       q(Luvale),
       ],
-   q(4090) => [
+   q(4079) => [
       q(Laua),
       ],
-   q(4091) => [
+   q(4080) => [
       q(Luna),
       ],
-   q(4092) => [
+   q(4081) => [
       q(Lunanakha),
       ],
-   q(4093) => [
+   q(4082) => [
       q(Olu'bo),
       ],
-   q(4094) => [
+   q(4083) => [
       q(Luimbi),
       ],
-   q(4095) => [
+   q(4084) => [
       q(Lumbu),
       ],
-   q(4096) => [
+   q(4085) => [
       q(Lucumi),
       ],
-   q(4097) => [
+   q(4086) => [
       q(Laura),
       ],
-   q(4098) => [
+   q(4087) => [
       q(Lushootseed),
       ],
-   q(4099) => [
+   q(4088) => [
       q(Lumba-Yakkha),
       ],
-   q(4100) => [
+   q(4089) => [
       q(Luwati),
       ],
-   q(4101) => [
+   q(4090) => [
       q(Luo (Cameroon)),
       ],
-   q(4102) => [
+   q(4091) => [
       q(Luyia),
       q(Oluluyia),
       ],
-   q(4103) => [
+   q(4092) => [
       q(Southern Luri),
       ],
-   q(4104) => [
+   q(4093) => [
       q(Maku'a),
       ],
-   q(4105) => [
+   q(4094) => [
       q(Lavukaleve),
       ],
-   q(4106) => [
+   q(4095) => [
       q(Standard Latvian),
       ],
-   q(4107) => [
+   q(4096) => [
       q(Levuka),
       ],
-   q(4108) => [
+   q(4097) => [
       q(Lwalu),
       ],
-   q(4109) => [
+   q(4098) => [
       q(Lewo Eleng),
       ],
-   q(4110) => [
+   q(4099) => [
       q(Wanga),
       q(Oluwanga),
       ],
-   q(4111) => [
+   q(4100) => [
       q(White Lachi),
       ],
-   q(4112) => [
+   q(4101) => [
       q(Eastern Lawa),
       ],
-   q(4113) => [
+   q(4102) => [
       q(Laomian),
       ],
-   q(4114) => [
+   q(4103) => [
       q(Luwo),
       ],
-   q(4115) => [
+   q(4104) => [
       q(Lewotobi),
       ],
-   q(4116) => [
+   q(4105) => [
       q(Lawu),
       ],
-   q(4117) => [
+   q(4106) => [
       q(Lewo),
       ],
-   q(4118) => [
+   q(4107) => [
       q(Layakha),
       ],
-   q(4119) => [
+   q(4108) => [
       q(Lyngngam),
       ],
-   q(4120) => [
+   q(4109) => [
       q(Luyana),
       ],
-   q(4121) => [
+   q(4110) => [
       q(Literary Chinese),
       ],
-   q(4122) => [
+   q(4111) => [
       q(Litzlitz),
       ],
-   q(4123) => [
+   q(4112) => [
       q(Leinong Naga),
       ],
-   q(4124) => [
+   q(4113) => [
       q(Laz),
       ],
-   q(4125) => [
+   q(4114) => [
       q(San Jeronimo Tecoatl Mazatec),
       ],
-   q(4126) => [
+   q(4115) => [
       q(Yutanduchi Mixtec),
       ],
-   q(4127) => [
+   q(4116) => [
       q(Bo-Rukul),
       ],
-   q(4128) => [
+   q(4117) => [
       q(Mafa),
       ],
-   q(4129) => [
+   q(4118) => [
       q(Jalapa De Diaz Mazatec),
       ],
-   q(4130) => [
+   q(4119) => [
       q(Mam),
       ],
-   q(4131) => [
+   q(4120) => [
       q(Chiquihuitlan Mazatec),
       ],
-   q(4132) => [
+   q(4121) => [
       q(San Francisco Matlatzinca),
       ],
-   q(4133) => [
+   q(4122) => [
       q(Huautla Mazatec),
       ],
-   q(4134) => [
+   q(4123) => [
       q(Satere-Mawe),
       ],
-   q(4135) => [
+   q(4124) => [
       q(Mampruli),
       ],
-   q(4136) => [
+   q(4125) => [
       q(North Moluccan Malay),
       ],
-   q(4137) => [
+   q(4126) => [
       q(Central Mazahua),
       ],
-   q(4138) => [
+   q(4127) => [
       q(Higaonon),
       ],
-   q(4139) => [
+   q(4128) => [
       q(Western Bukidnon Manobo),
       ],
-   q(4140) => [
+   q(4129) => [
       q(Macushi),
       ],
-   q(4141) => [
+   q(4130) => [
       q(Dibabawon Manobo),
       ],
-   q(4142) => [
+   q(4131) => [
       q(Molale),
       ],
-   q(4143) => [
+   q(4132) => [
       q(Baba Malay),
       ],
-   q(4144) => [
+   q(4133) => [
       q(Mangseng),
       ],
-   q(4145) => [
+   q(4134) => [
       q(Ilianen Manobo),
       ],
-   q(4146) => [
+   q(4135) => [
       q(Nadeb),
       ],
-   q(4147) => [
+   q(4136) => [
       q(Malol),
       ],
-   q(4148) => [
+   q(4137) => [
       q(Maxakali),
       ],
-   q(4149) => [
+   q(4138) => [
       q(Ombamba),
       ],
-   q(4150) => [
+   q(4139) => [
       q(Macaguan),
       ],
-   q(4151) => [
+   q(4140) => [
       q(Mbo (Cameroon)),
       ],
-   q(4152) => [
+   q(4141) => [
       q(Malayo),
       ],
-   q(4153) => [
+   q(4142) => [
       q(Maisin),
       ],
-   q(4154) => [
+   q(4143) => [
       q(Nukak Maku),
       ],
-   q(4155) => [
+   q(4144) => [
       q(Sarangani Manobo),
       ],
-   q(4156) => [
+   q(4145) => [
       q(Matigsalug Manobo),
       ],
-   q(4157) => [
+   q(4146) => [
       q(Mbula-Bwazza),
       ],
-   q(4158) => [
+   q(4147) => [
       q(Mbulungish),
       ],
-   q(4159) => [
+   q(4148) => [
       q(Maring),
       ],
-   q(4160) => [
+   q(4149) => [
       q(Mari (East Sepik Province)),
       ],
-   q(4161) => [
+   q(4150) => [
       q(Memoni),
       ],
-   q(4162) => [
+   q(4151) => [
       q(Amoltepec Mixtec),
       ],
-   q(4163) => [
+   q(4152) => [
       q(Maca),
       ],
-   q(4164) => [
+   q(4153) => [
       q(Machiguenga),
       ],
-   q(4165) => [
+   q(4154) => [
       q(Bitur),
       ],
-   q(4166) => [
+   q(4155) => [
       q(Sharanahua),
       ],
-   q(4167) => [
+   q(4156) => [
       q(Itundujia Mixtec),
       ],
-   q(4168) => [
+   q(4157) => [
       q(Matses),
       ],
-   q(4169) => [
+   q(4158) => [
       q(Mapoyo),
       ],
-   q(4170) => [
+   q(4159) => [
       q(Maquiritari),
       ],
-   q(4171) => [
+   q(4160) => [
       q(Mese),
       ],
-   q(4172) => [
+   q(4161) => [
       q(Mvanip),
       ],
-   q(4173) => [
+   q(4162) => [
       q(Mbunda),
       ],
-   q(4174) => [
+   q(4163) => [
       q(Macaguaje),
       ],
-   q(4175) => [
+   q(4164) => [
       q(Malaccan Creole Portuguese),
       ],
-   q(4176) => [
+   q(4165) => [
       q(Masana),
       ],
-   q(4177) => [
+   q(4166) => [
       q(Coatlan Mixe),
       ],
-   q(4178) => [
+   q(4167) => [
       q(Makaa),
       ],
-   q(4179) => [
+   q(4168) => [
       q(Ese),
       ],
-   q(4180) => [
+   q(4169) => [
       q(Menya),
       ],
-   q(4181) => [
+   q(4170) => [
       q(Mambai),
       ],
-   q(4182) => [
+   q(4171) => [
       q(Mengisa),
       ],
-   q(4183) => [
+   q(4172) => [
       q(Cameroon Mambila),
       ],
-   q(4184) => [
+   q(4173) => [
       q(Minanibai),
       ],
-   q(4185) => [
+   q(4174) => [
       q(Mawa (Chad)),
       ],
-   q(4186) => [
+   q(4175) => [
       q(Mpiemo),
       ],
-   q(4187) => [
+   q(4176) => [
       q(South Watut),
       ],
-   q(4188) => [
+   q(4177) => [
       q(Mawan),
       ],
-   q(4189) => [
+   q(4178) => [
       q(Mada (Nigeria)),
       ],
-   q(4190) => [
+   q(4179) => [
       q(Morigi),
       ],
-   q(4191) => [
+   q(4180) => [
       q(Male (Papua New Guinea)),
       ],
-   q(4192) => [
+   q(4181) => [
       q(Mbum),
       ],
-   q(4193) => [
+   q(4182) => [
       q(Maba (Chad)),
       ],
-   q(4194) => [
+   q(4183) => [
       q(Massalat),
       ],
-   q(4195) => [
+   q(4184) => [
       q(Maguindanaon),
       ],
-   q(4196) => [
+   q(4185) => [
       q(Mamvu),
       ],
-   q(4197) => [
+   q(4186) => [
       q(Mangbetu),
       ],
-   q(4198) => [
+   q(4187) => [
       q(Mangbutu),
       ],
-   q(4199) => [
+   q(4188) => [
       q(Maltese Sign Language),
       ],
-   q(4200) => [
+   q(4189) => [
       q(Mayogo),
       ],
-   q(4201) => [
+   q(4190) => [
       q(Mbati),
       ],
-   q(4202) => [
+   q(4191) => [
       q(Mbala),
       ],
-   q(4203) => [
+   q(4192) => [
       q(Mbole),
       ],
-   q(4204) => [
+   q(4193) => [
       q(Maria (Papua New Guinea)),
       ],
-   q(4205) => [
+   q(4194) => [
       q(Mbere),
       ],
-   q(4206) => [
+   q(4195) => [
       q(Mboko),
       ],
-   q(4207) => [
+   q(4196) => [
       q(Santa Lucia Monteverde Mixtec),
       ],
-   q(4208) => [
+   q(4197) => [
       q(Mbosi),
       ],
-   q(4209) => [
+   q(4198) => [
       q(Dizin),
       ],
-   q(4210) => [
+   q(4199) => [
       q(Male (Ethiopia)),
       ],
-   q(4211) => [
+   q(4200) => [
       q(Surui Do Para),
       ],
-   q(4212) => [
+   q(4201) => [
       q(Menka),
       ],
-   q(4213) => [
+   q(4202) => [
       q(Ikobi),
       ],
-   q(4214) => [
+   q(4203) => [
       q(Mara),
       ],
-   q(4215) => [
+   q(4204) => [
       q(Melpa),
       ],
-   q(4216) => [
+   q(4205) => [
       q(Mengen),
       ],
-   q(4217) => [
+   q(4206) => [
       q(Megam),
       ],
-   q(4218) => [
+   q(4207) => [
       q(Southwestern Tlaxiaco Mixtec),
       ],
-   q(4219) => [
+   q(4208) => [
       q(Midob),
       ],
-   q(4220) => [
+   q(4209) => [
       q(Meyah),
       ],
-   q(4221) => [
+   q(4210) => [
       q(Mekeo),
       ],
-   q(4222) => [
+   q(4211) => [
       q(Central Melanau),
       ],
-   q(4223) => [
+   q(4212) => [
       q(Mangala),
       ],
-   q(4224) => [
+   q(4213) => [
       q(Kedah Malay),
       ],
-   q(4225) => [
+   q(4214) => [
       q(Miriwung),
       ],
-   q(4226) => [
+   q(4215) => [
       q(Merey),
       ],
-   q(4227) => [
+   q(4216) => [
       q(Meru),
       ],
-   q(4228) => [
+   q(4217) => [
       q(Masmaje),
       ],
-   q(4229) => [
+   q(4218) => [
       q(Mato),
       ],
-   q(4230) => [
+   q(4219) => [
       q(Motu),
       ],
-   q(4231) => [
+   q(4220) => [
       q(Mano),
       ],
-   q(4232) => [
+   q(4221) => [
       q(Maaka),
       ],
-   q(4233) => [
+   q(4222) => [
       q(Hassaniyya),
       ],
-   q(4234) => [
+   q(4223) => [
       q(Menominee),
       ],
-   q(4235) => [
+   q(4224) => [
       q(Pattani Malay),
       ],
-   q(4236) => [
+   q(4225) => [
       q(Bangka),
       ],
-   q(4237) => [
+   q(4226) => [
       q(Mba),
       ],
-   q(4238) => [
+   q(4227) => [
       q(Mendankwe-Nkwen),
       ],
-   q(4239) => [
+   q(4228) => [
       q(Morisyen),
       ],
-   q(4240) => [
+   q(4229) => [
       q(Naki),
       ],
-   q(4241) => [
+   q(4230) => [
       q(Mogofin),
       ],
-   q(4242) => [
+   q(4231) => [
       q(Matal),
       ],
-   q(4243) => [
+   q(4232) => [
       q(Wandala),
       ],
-   q(4244) => [
+   q(4233) => [
       q(Mefele),
       ],
-   q(4245) => [
+   q(4234) => [
       q(North Mofu),
       ],
-   q(4246) => [
+   q(4235) => [
       q(Putai),
       ],
-   q(4247) => [
+   q(4236) => [
       q(Marghi South),
       ],
-   q(4248) => [
+   q(4237) => [
       q(Cross River Mbembe),
       ],
-   q(4249) => [
+   q(4238) => [
       q(Mbe),
       ],
-   q(4250) => [
+   q(4239) => [
       q(Makassar Malay),
       ],
-   q(4251) => [
+   q(4240) => [
       q(Moba),
       ],
-   q(4252) => [
+   q(4241) => [
       q(Marithiel),
       ],
-   q(4253) => [
+   q(4242) => [
       q(Mexican Sign Language),
       ],
-   q(4254) => [
+   q(4243) => [
       q(Mokerang),
       ],
-   q(4255) => [
+   q(4244) => [
       q(Mbwela),
       ],
-   q(4256) => [
+   q(4245) => [
       q(Mandjak),
       ],
-   q(4257) => [
+   q(4246) => [
       q(Mulaha),
       ],
-   q(4258) => [
+   q(4247) => [
       q(Melo),
       ],
-   q(4259) => [
+   q(4248) => [
       q(Mayo),
       ],
-   q(4260) => [
+   q(4249) => [
       q(Mabaan),
       ],
-   q(4261) => [
+   q(4250) => [
       q(Mararit),
       ],
-   q(4262) => [
+   q(4251) => [
       q(Morokodo),
       ],
-   q(4263) => [
+   q(4252) => [
       q(Moru),
       ],
-   q(4264) => [
+   q(4253) => [
       q(Mango),
       ],
-   q(4265) => [
+   q(4254) => [
       q(Maklew),
       ],
-   q(4266) => [
+   q(4255) => [
       q(Mpumpong),
       ],
-   q(4267) => [
+   q(4256) => [
       q(Makhuwa-Meetto),
       ],
-   q(4268) => [
+   q(4257) => [
       q(Lijili),
       ],
-   q(4269) => [
+   q(4258) => [
       q(Abureni),
       ],
-   q(4270) => [
+   q(4259) => [
       q(Mawes),
       ],
-   q(4271) => [
+   q(4260) => [
       q(Maleu-Kilenge),
       ],
-   q(4272) => [
+   q(4261) => [
       q(Mambae),
       ],
-   q(4273) => [
+   q(4262) => [
       q(Mbangi),
       ],
-   q(4274) => [
+   q(4263) => [
       q(Meta'),
       ],
-   q(4275) => [
+   q(4264) => [
       q(Eastern Magar),
       ],
-   q(4276) => [
+   q(4265) => [
       q(Malila),
       ],
-   q(4277) => [
+   q(4266) => [
       q(Mambwe-Lungu),
       ],
-   q(4278) => [
+   q(4267) => [
       q(Manda (Tanzania)),
       ],
-   q(4279) => [
+   q(4268) => [
       q(Mongol),
       ],
-   q(4280) => [
+   q(4269) => [
       q(Mailu),
       ],
-   q(4281) => [
+   q(4270) => [
       q(Matengo),
       ],
-   q(4282) => [
+   q(4271) => [
       q(Matumbi),
       ],
-   q(4283) => [
+   q(4272) => [
       q(Mbunga),
       ],
-   q(4284) => [
+   q(4273) => [
       q(Mbugwe),
       ],
-   q(4285) => [
+   q(4274) => [
       q(Manda (India)),
       ],
-   q(4286) => [
+   q(4275) => [
       q(Mahongwe),
       ],
-   q(4287) => [
+   q(4276) => [
       q(Mocho),
       ],
-   q(4288) => [
+   q(4277) => [
       q(Mbugu),
       ],
-   q(4289) => [
+   q(4278) => [
       q(Besisi),
       q(Mah Meri),
       ],
-   q(4290) => [
+   q(4279) => [
       q(Mamaa),
       ],
-   q(4291) => [
+   q(4280) => [
       q(Margu),
       ],
-   q(4292) => [
+   q(4281) => [
       q(Ma'di),
       ],
-   q(4293) => [
+   q(4282) => [
       q(Mogholi),
       ],
-   q(4294) => [
+   q(4283) => [
       q(Mungaka),
       ],
-   q(4295) => [
+   q(4284) => [
       q(Mauwake),
       ],
-   q(4296) => [
+   q(4285) => [
       q(Makhuwa-Moniga),
       ],
-   q(4297) => [
+   q(4286) => [
       q(Mocheno),
       ],
-   q(4298) => [
+   q(4287) => [
       q(Mashi (Zambia)),
       ],
-   q(4299) => [
+   q(4288) => [
       q(Balinese Malay),
       ],
-   q(4300) => [
+   q(4289) => [
       q(Mandan),
       ],
-   q(4301) => [
+   q(4290) => [
       q(Eastern Mari),
       ],
-   q(4302) => [
+   q(4291) => [
       q(Buru (Indonesia)),
       ],
-   q(4303) => [
+   q(4292) => [
       q(Mandahuaca),
       ],
-   q(4304) => [
+   q(4293) => [
       q(Digaro-Mishmi),
       q(Darang Deng),
       ],
-   q(4305) => [
+   q(4294) => [
       q(Mbukushu),
       ],
-   q(4306) => [
+   q(4295) => [
       q(Maru),
       q(Lhaovo),
       ],
-   q(4307) => [
+   q(4296) => [
       q(Ma'anyan),
       ],
-   q(4308) => [
+   q(4297) => [
       q(Mor (Mor Islands)),
       ],
-   q(4309) => [
+   q(4298) => [
       q(Miami),
       ],
-   q(4310) => [
+   q(4299) => [
       q(Atatlahuca Mixtec),
       ],
-   q(4311) => [
+   q(4300) => [
       q(Mandaic),
       ],
-   q(4312) => [
+   q(4301) => [
       q(Ocotepec Mixtec),
       ],
-   q(4313) => [
+   q(4302) => [
       q(Mofu-Gudur),
       ],
-   q(4314) => [
+   q(4303) => [
       q(San Miguel El Grande Mixtec),
       ],
-   q(4315) => [
+   q(4304) => [
       q(Chayuco Mixtec),
       ],
-   q(4316) => [
+   q(4305) => [
       q(Chigmecatitlan Mixtec),
       ],
-   q(4317) => [
+   q(4306) => [
       q(Abar),
       q(Mungbam),
       ],
-   q(4318) => [
+   q(4307) => [
       q(Mikasuki),
       ],
-   q(4319) => [
+   q(4308) => [
       q(Penoles Mixtec),
       ],
-   q(4320) => [
+   q(4309) => [
       q(Alacatlatzala Mixtec),
       ],
-   q(4321) => [
+   q(4310) => [
       q(Pinotepa Nacional Mixtec),
       ],
-   q(4322) => [
+   q(4311) => [
       q(Apasco-Apoala Mixtec),
       ],
-   q(4323) => [
+   q(4312) => [
       q(Miskito),
       ],
-   q(4324) => [
+   q(4313) => [
       q(Isthmus Mixe),
       ],
-   q(4325) => [
+   q(4314) => [
       q(Southern Puebla Mixtec),
       ],
-   q(4326) => [
+   q(4315) => [
       q(Cacaloxtepec Mixtec),
       ],
-   q(4327) => [
+   q(4316) => [
       q(Akoye),
       ],
-   q(4328) => [
+   q(4317) => [
       q(Mixtepec Mixtec),
       ],
-   q(4329) => [
+   q(4318) => [
       q(Ayutla Mixtec),
       ],
-   q(4330) => [
+   q(4319) => [
       q(Coatzospan Mixtec),
       ],
-   q(4331) => [
+   q(4320) => [
       q(San Juan Colorado Mixtec),
       ],
-   q(4332) => [
+   q(4321) => [
       q(Northwest Maidu),
       ],
-   q(4333) => [
+   q(4322) => [
       q(Muskum),
       ],
-   q(4334) => [
+   q(4323) => [
       q(Tu),
       ],
-   q(4335) => [
+   q(4324) => [
       q(Mwera (Nyasa)),
       ],
-   q(4336) => [
+   q(4325) => [
       q(Kim Mun),
       ],
-   q(4337) => [
+   q(4326) => [
       q(Mawak),
       ],
-   q(4338) => [
+   q(4327) => [
       q(Matukar),
       ],
-   q(4339) => [
+   q(4328) => [
       q(Mandeali),
       ],
-   q(4340) => [
+   q(4329) => [
       q(Medebur),
       ],
-   q(4341) => [
+   q(4330) => [
       q(Ma (Papua New Guinea)),
       ],
-   q(4342) => [
+   q(4331) => [
       q(Malankuravan),
       ],
-   q(4343) => [
+   q(4332) => [
       q(Malapandaram),
       ],
-   q(4344) => [
+   q(4333) => [
       q(Malaryan),
       ],
-   q(4345) => [
+   q(4334) => [
       q(Malavedan),
       ],
-   q(4346) => [
+   q(4335) => [
       q(Miship),
       ],
-   q(4347) => [
+   q(4336) => [
       q(Sauria Paharia),
       ],
-   q(4348) => [
+   q(4337) => [
       q(Manna-Dora),
       ],
-   q(4349) => [
+   q(4338) => [
       q(Mannan),
       ],
-   q(4350) => [
+   q(4339) => [
       q(Karbi),
       ],
-   q(4351) => [
+   q(4340) => [
       q(Mahali),
       ],
-   q(4352) => [
+   q(4341) => [
       q(Mahican),
       ],
-   q(4353) => [
+   q(4342) => [
       q(Majhi),
       ],
-   q(4354) => [
+   q(4343) => [
       q(Mbre),
       ],
-   q(4355) => [
+   q(4344) => [
       q(Mal Paharia),
       ],
-   q(4356) => [
+   q(4345) => [
       q(Siliput),
       ],
-   q(4357) => [
+   q(4346) => [
       q(Mawchi),
       ],
-   q(4358) => [
+   q(4347) => [
       q(Miya),
       ],
-   q(4359) => [
+   q(4348) => [
       q(Mak (China)),
       ],
-   q(4360) => [
+   q(4349) => [
       q(Dhatki),
       ],
-   q(4361) => [
+   q(4350) => [
       q(Mokilese),
       ],
-   q(4362) => [
+   q(4351) => [
       q(Byep),
       ],
-   q(4363) => [
+   q(4352) => [
       q(Mokole),
       ],
-   q(4364) => [
+   q(4353) => [
       q(Moklen),
       ],
-   q(4365) => [
+   q(4354) => [
       q(Kupang Malay),
       ],
-   q(4366) => [
+   q(4355) => [
       q(Mingang Doso),
       ],
-   q(4367) => [
+   q(4356) => [
       q(Moikodi),
       ],
-   q(4368) => [
+   q(4357) => [
       q(Bay Miwok),
       ],
-   q(4369) => [
+   q(4358) => [
       q(Malas),
       ],
-   q(4370) => [
+   q(4359) => [
       q(Silacayoapan Mixtec),
       ],
-   q(4371) => [
+   q(4360) => [
       q(Vamale),
       ],
-   q(4372) => [
+   q(4361) => [
       q(Konyanka Maninka),
       ],
-   q(4373) => [
+   q(4362) => [
       q(Mafea),
       ],
-   q(4374) => [
+   q(4363) => [
       q(Kituba (Congo)),
       ],
-   q(4375) => [
+   q(4364) => [
       q(Kinamiging Manobo),
       ],
-   q(4376) => [
+   q(4365) => [
       q(East Makian),
       ],
-   q(4377) => [
+   q(4366) => [
       q(Makasae),
       ],
-   q(4378) => [
+   q(4367) => [
       q(Malo),
       ],
-   q(4379) => [
+   q(4368) => [
       q(Mbule),
       ],
-   q(4380) => [
+   q(4369) => [
       q(Cao Lan),
       ],
-   q(4381) => [
+   q(4370) => [
       q(Manambu),
       ],
-   q(4382) => [
+   q(4371) => [
       q(Mal),
       ],
-   q(4383) => [
+   q(4372) => [
       q(Mape),
       ],
-   q(4384) => [
+   q(4373) => [
       q(Malimpung),
       ],
-   q(4385) => [
+   q(4374) => [
       q(Miltu),
       ],
-   q(4386) => [
+   q(4375) => [
       q(Ilwana),
       q(Kiwilwana),
       ],
-   q(4387) => [
+   q(4376) => [
       q(Malua Bay),
       ],
-   q(4388) => [
+   q(4377) => [
       q(Mulam),
       ],
-   q(4389) => [
+   q(4378) => [
       q(Malango),
       ],
-   q(4390) => [
+   q(4379) => [
       q(Mlomp),
       ],
-   q(4391) => [
+   q(4380) => [
       q(Bargam),
       ],
-   q(4392) => [
+   q(4381) => [
       q(Western Maninkakan),
       ],
-   q(4393) => [
+   q(4382) => [
       q(Vame),
       ],
-   q(4394) => [
+   q(4383) => [
       q(Masalit),
       ],
-   q(4395) => [
+   q(4384) => [
       q(To'abaita),
       ],
-   q(4396) => [
+   q(4385) => [
       q(Motlav),
       q(Mwotlap),
       ],
-   q(4397) => [
+   q(4386) => [
       q(Moloko),
       ],
-   q(4398) => [
+   q(4387) => [
       q(Malfaxal),
       q(Naha'ai),
       ],
-   q(4399) => [
+   q(4388) => [
       q(Malaynon),
       ],
-   q(4400) => [
+   q(4389) => [
       q(Mama),
       ],
-   q(4401) => [
+   q(4390) => [
       q(Momina),
       ],
-   q(4402) => [
+   q(4391) => [
       q(Michoacan Mazahua),
       ],
-   q(4403) => [
+   q(4392) => [
       q(Maonan),
       ],
-   q(4404) => [
+   q(4393) => [
       q(Mae),
       ],
-   q(4405) => [
+   q(4394) => [
       q(Mundat),
       ],
-   q(4406) => [
+   q(4395) => [
       q(North Ambrym),
       ],
-   q(4407) => [
+   q(4396) => [
       q(Mehinaku),
       ],
-   q(4408) => [
+   q(4397) => [
       q(Musar),
       ],
-   q(4409) => [
+   q(4398) => [
       q(Majhwar),
       ],
-   q(4410) => [
+   q(4399) => [
       q(Mukha-Dora),
       ],
-   q(4411) => [
+   q(4400) => [
       q(Man Met),
       ],
-   q(4412) => [
+   q(4401) => [
       q(Maii),
       ],
-   q(4413) => [
+   q(4402) => [
       q(Mamanwa),
       ],
-   q(4414) => [
+   q(4403) => [
       q(Mangga Buang),
       ],
-   q(4415) => [
+   q(4404) => [
       q(Siawi),
       ],
-   q(4416) => [
+   q(4405) => [
       q(Musak),
       ],
-   q(4417) => [
+   q(4406) => [
       q(Western Xiangxi Miao),
       ],
-   q(4418) => [
+   q(4407) => [
       q(Malalamai),
       ],
-   q(4419) => [
+   q(4408) => [
       q(Mmaala),
       ],
-   q(4420) => [
+   q(4409) => [
       q(Miriti),
       ],
-   q(4421) => [
+   q(4410) => [
       q(Emae),
       ],
-   q(4422) => [
+   q(4411) => [
       q(Madak),
       ],
-   q(4423) => [
+   q(4412) => [
       q(Migaama),
       ],
-   q(4424) => [
+   q(4413) => [
       q(Mabaale),
       ],
-   q(4425) => [
+   q(4414) => [
       q(Mbula),
       ],
-   q(4426) => [
+   q(4415) => [
       q(Muna),
       ],
-   q(4427) => [
+   q(4416) => [
       q(Monde),
       ],
-   q(4428) => [
+   q(4417) => [
       q(Naba),
       ],
-   q(4429) => [
+   q(4418) => [
       q(Mundani),
       ],
-   q(4430) => [
+   q(4419) => [
       q(Eastern Mnong),
       ],
-   q(4431) => [
+   q(4420) => [
       q(Mono (Democratic Republic of Congo)),
       ],
-   q(4432) => [
+   q(4421) => [
       q(Munji),
       ],
-   q(4433) => [
+   q(4422) => [
       q(Mandinka),
       ],
-   q(4434) => [
+   q(4423) => [
       q(Tiale),
       ],
-   q(4435) => [
+   q(4424) => [
       q(Mapena),
       ],
-   q(4436) => [
+   q(4425) => [
       q(Southern Mnong),
       ],
-   q(4437) => [
+   q(4426) => [
       q(Min Bei Chinese),
       ],
-   q(4438) => [
+   q(4427) => [
       q(Minriq),
       ],
-   q(4439) => [
+   q(4428) => [
       q(Mono (USA)),
       ],
-   q(4440) => [
+   q(4429) => [
       q(Mansi),
       ],
-   q(4441) => [
+   q(4430) => [
       q(Mer),
       ],
-   q(4442) => [
+   q(4431) => [
       q(Rennell-Bellona),
       ],
-   q(4443) => [
+   q(4432) => [
       q(Mon),
       ],
-   q(4444) => [
+   q(4433) => [
       q(Manikion),
       ],
-   q(4445) => [
+   q(4434) => [
       q(Manyawa),
       ],
-   q(4446) => [
+   q(4435) => [
       q(Moni),
       ],
-   q(4447) => [
+   q(4436) => [
       q(Mwan),
       ],
-   q(4448) => [
+   q(4437) => [
       q(Mocovi),
       ],
-   q(4449) => [
+   q(4438) => [
       q(Mobilian),
       ],
-   q(4450) => [
+   q(4439) => [
       q(Montagnais),
       ],
-   q(4451) => [
+   q(4440) => [
       q(Mongondow),
       ],
-   q(4452) => [
+   q(4441) => [
       q(Mboi),
       ],
-   q(4453) => [
+   q(4442) => [
       q(Monzombo),
       ],
-   q(4454) => [
+   q(4443) => [
       q(Morori),
       ],
-   q(4455) => [
+   q(4444) => [
       q(Mangue),
       ],
-   q(4456) => [
+   q(4445) => [
       q(Monom),
       ],
-   q(4457) => [
+   q(4446) => [
       q(Mopan Maya),
       ],
-   q(4458) => [
+   q(4447) => [
       q(Mor (Bomberai Peninsula)),
       ],
-   q(4459) => [
+   q(4448) => [
       q(Moro),
       ],
-   q(4460) => [
+   q(4449) => [
       q(Mogum),
       ],
-   q(4461) => [
+   q(4450) => [
       q(Mohave),
       ],
-   q(4462) => [
+   q(4451) => [
       q(Moi (Congo)),
       ],
-   q(4463) => [
+   q(4452) => [
       q(Molima),
       ],
-   q(4464) => [
+   q(4453) => [
       q(Shekkacho),
       ],
-   q(4465) => [
+   q(4454) => [
       q(Mukulu),
       q(Gergiko),
       ],
-   q(4466) => [
+   q(4455) => [
       q(Mpoto),
       ],
-   q(4467) => [
+   q(4456) => [
       q(Mullukmulluk),
       ],
-   q(4468) => [
+   q(4457) => [
       q(Mangarayi),
       ],
-   q(4469) => [
+   q(4458) => [
       q(Machinere),
       ],
-   q(4470) => [
+   q(4459) => [
       q(Majang),
       ],
-   q(4471) => [
+   q(4460) => [
       q(Marba),
       ],
-   q(4472) => [
+   q(4461) => [
       q(Maung),
       ],
-   q(4473) => [
+   q(4462) => [
       q(Mpade),
       ],
-   q(4474) => [
+   q(4463) => [
       q(Martu Wangka),
       ],
-   q(4475) => [
+   q(4464) => [
       q(Mbara (Chad)),
       ],
-   q(4476) => [
+   q(4465) => [
       q(Middle Watut),
       ],
-   q(4477) => [
+   q(4466) => [
       q(Yosondua Mixtec),
       ],
-   q(4478) => [
+   q(4467) => [
       q(Mindiri),
       ],
-   q(4479) => [
+   q(4468) => [
       q(Miu),
       ],
-   q(4480) => [
+   q(4469) => [
       q(Migabac),
       ],
-   q(4481) => [
+   q(4470) => [
       q(Matis),
       ],
-   q(4482) => [
+   q(4471) => [
       q(Vangunu),
       ],
-   q(4483) => [
+   q(4472) => [
       q(Dadibi),
       ],
-   q(4484) => [
+   q(4473) => [
       q(Mian),
       ],
-   q(4485) => [
+   q(4474) => [
       q(Makurap),
       ],
-   q(4486) => [
+   q(4475) => [
       q(Mungkip),
       ],
-   q(4487) => [
+   q(4476) => [
       q(Mapidian),
       ],
-   q(4488) => [
+   q(4477) => [
       q(Misima-Panaeati),
       ],
-   q(4489) => [
+   q(4478) => [
       q(Mapia),
       ],
-   q(4490) => [
+   q(4479) => [
       q(Mpi),
       ],
-   q(4491) => [
+   q(4480) => [
       q(Maba (Indonesia)),
       ],
-   q(4492) => [
+   q(4481) => [
       q(Mbuko),
       ],
-   q(4493) => [
+   q(4482) => [
       q(Mangole),
       ],
-   q(4494) => [
+   q(4483) => [
       q(Matepi),
       ],
-   q(4495) => [
+   q(4484) => [
       q(Momuna),
       ],
-   q(4496) => [
+   q(4485) => [
       q(Kota Bangun Kutai Malay),
       ],
-   q(4497) => [
+   q(4486) => [
       q(Tlazoyaltepec Mixtec),
       ],
-   q(4498) => [
+   q(4487) => [
       q(Mariri),
       ],
-   q(4499) => [
+   q(4488) => [
       q(Mamasa),
       ],
-   q(4500) => [
+   q(4489) => [
       q(Rajah Kabunsuwan Manobo),
       ],
-   q(4501) => [
+   q(4490) => [
       q(Mbelime),
       ],
-   q(4502) => [
+   q(4491) => [
       q(South Marquesan),
       ],
-   q(4503) => [
+   q(4492) => [
       q(Moronene),
       ],
-   q(4504) => [
+   q(4493) => [
       q(Modole),
       ],
-   q(4505) => [
+   q(4494) => [
       q(Manipa),
       ],
-   q(4506) => [
+   q(4495) => [
       q(Minokok),
       ],
-   q(4507) => [
+   q(4496) => [
       q(Mander),
       ],
-   q(4508) => [
+   q(4497) => [
       q(West Makian),
       ],
-   q(4509) => [
+   q(4498) => [
       q(Mok),
       ],
-   q(4510) => [
+   q(4499) => [
       q(Mandari),
       ],
-   q(4511) => [
+   q(4500) => [
       q(Mosimo),
       ],
-   q(4512) => [
+   q(4501) => [
       q(Murupi),
       ],
-   q(4513) => [
+   q(4502) => [
       q(Mamuju),
       ],
-   q(4514) => [
+   q(4503) => [
       q(Manggarai),
       ],
-   q(4515) => [
+   q(4504) => [
       q(Pano),
       ],
-   q(4516) => [
+   q(4505) => [
       q(Mlabri),
       ],
-   q(4517) => [
+   q(4506) => [
       q(Marino),
       ],
-   q(4518) => [
+   q(4507) => [
       q(Maricopa),
       ],
-   q(4519) => [
+   q(4508) => [
       q(Western Magar),
       ],
-   q(4520) => [
+   q(4509) => [
       q(Martha's Vineyard Sign Language),
       ],
-   q(4521) => [
+   q(4510) => [
       q(Elseng),
       ],
-   q(4522) => [
+   q(4511) => [
       q(Mising),
       ],
-   q(4523) => [
+   q(4512) => [
       q(Mara Chin),
       ],
-   q(4524) => [
+   q(4513) => [
       q(Western Mari),
       ],
-   q(4525) => [
+   q(4514) => [
       q(Hmwaveke),
       ],
-   q(4526) => [
+   q(4515) => [
       q(Mortlockese),
       ],
-   q(4527) => [
+   q(4516) => [
       q(Merlav),
       q(Mwerlap),
       ],
-   q(4528) => [
+   q(4517) => [
       q(Cheke Holo),
       ],
-   q(4529) => [
+   q(4518) => [
       q(Mru),
       ],
-   q(4530) => [
+   q(4519) => [
       q(Morouas),
       ],
-   q(4531) => [
+   q(4520) => [
       q(North Marquesan),
       ],
-   q(4532) => [
+   q(4521) => [
       q(Maria (India)),
       ],
-   q(4533) => [
+   q(4522) => [
       q(Maragus),
       ],
-   q(4534) => [
+   q(4523) => [
       q(Marghi Central),
       ],
-   q(4535) => [
+   q(4524) => [
       q(Mono (Cameroon)),
       ],
-   q(4536) => [
+   q(4525) => [
       q(Mangareva),
       ],
-   q(4537) => [
+   q(4526) => [
       q(Maranao),
       ],
-   q(4538) => [
+   q(4527) => [
       q(Maremgi),
       q(Dineor),
       ],
-   q(4539) => [
+   q(4528) => [
       q(Mandaya),
       ],
-   q(4540) => [
+   q(4529) => [
       q(Marind),
       ],
-   q(4541) => [
+   q(4530) => [
       q(Masbatenyo),
       ],
-   q(4542) => [
+   q(4531) => [
       q(Sankaran Maninka),
       ],
-   q(4543) => [
+   q(4532) => [
       q(Yucatec Maya Sign Language),
       ],
-   q(4544) => [
+   q(4533) => [
       q(Musey),
       ],
-   q(4545) => [
+   q(4534) => [
       q(Mekwei),
       ],
-   q(4546) => [
+   q(4535) => [
       q(Moraid),
       ],
-   q(4547) => [
+   q(4536) => [
       q(Masikoro Malagasy),
       ],
-   q(4548) => [
+   q(4537) => [
       q(Sabah Malay),
       ],
-   q(4549) => [
+   q(4538) => [
       q(Ma (Democratic Republic of Congo)),
       ],
-   q(4550) => [
+   q(4539) => [
       q(Mansaka),
       ],
-   q(4551) => [
+   q(4540) => [
       q(Molof),
       q(Poule),
       ],
-   q(4552) => [
+   q(4541) => [
       q(Agusan Manobo),
       ],
-   q(4553) => [
+   q(4542) => [
       q(Vures),
       ],
-   q(4554) => [
+   q(4543) => [
       q(Mombum),
       ],
-   q(4555) => [
+   q(4544) => [
       q(Maritsaua),
       ],
-   q(4556) => [
+   q(4545) => [
       q(Caac),
       ],
-   q(4557) => [
+   q(4546) => [
       q(Mongolian Sign Language),
       ],
-   q(4558) => [
+   q(4547) => [
       q(West Masela),
       ],
-   q(4559) => [
+   q(4548) => [
       q(Musom),
       ],
-   q(4560) => [
+   q(4549) => [
       q(Maslam),
       ],
-   q(4561) => [
+   q(4550) => [
       q(Mansoanka),
       ],
-   q(4562) => [
+   q(4551) => [
       q(Moresada),
       ],
-   q(4563) => [
+   q(4552) => [
       q(Aruamu),
       ],
-   q(4564) => [
+   q(4553) => [
       q(Momare),
       ],
-   q(4565) => [
+   q(4554) => [
       q(Cotabato Manobo),
       ],
-   q(4566) => [
+   q(4555) => [
       q(Anyin Morofo),
       ],
-   q(4567) => [
+   q(4556) => [
       q(Munit),
       ],
-   q(4568) => [
+   q(4557) => [
       q(Mualang),
       ],
-   q(4569) => [
+   q(4558) => [
       q(Mono (Solomon Islands)),
       ],
-   q(4570) => [
+   q(4559) => [
       q(Murik (Papua New Guinea)),
       ],
-   q(4571) => [
+   q(4560) => [
       q(Una),
       ],
-   q(4572) => [
+   q(4561) => [
       q(Munggui),
       ],
-   q(4573) => [
+   q(4562) => [
       q(Maiwa (Papua New Guinea)),
       ],
-   q(4574) => [
+   q(4563) => [
       q(Moskona),
       ],
-   q(4575) => [
+   q(4564) => [
       q(Mbe'),
       ],
-   q(4576) => [
+   q(4565) => [
       q(Montol),
       ],
-   q(4577) => [
+   q(4566) => [
       q(Mator),
       ],
-   q(4578) => [
+   q(4567) => [
       q(Matagalpa),
       ],
-   q(4579) => [
+   q(4568) => [
       q(Totontepec Mixe),
       ],
-   q(4580) => [
+   q(4569) => [
       q(Wichi Lhamtes Nocten),
       ],
-   q(4581) => [
+   q(4570) => [
       q(Muong),
       ],
-   q(4582) => [
+   q(4571) => [
       q(Mewari),
       ],
-   q(4583) => [
+   q(4572) => [
       q(Yora),
       ],
-   q(4584) => [
+   q(4573) => [
       q(Mota),
       ],
-   q(4585) => [
+   q(4574) => [
       q(Tututepec Mixtec),
       ],
-   q(4586) => [
+   q(4575) => [
       q(Asaro'o),
       ],
-   q(4587) => [
+   q(4576) => [
       q(Southern Binukidnon),
       ],
-   q(4588) => [
+   q(4577) => [
       q(Tidaa Mixtec),
       ],
-   q(4589) => [
+   q(4578) => [
       q(Nabi),
       ],
-   q(4590) => [
+   q(4579) => [
       q(Mundang),
       ],
-   q(4591) => [
+   q(4580) => [
       q(Mubi),
       ],
-   q(4592) => [
+   q(4581) => [
       q(Ajumbu),
       ],
-   q(4593) => [
+   q(4582) => [
       q(Mednyj Aleut),
       ],
-   q(4594) => [
+   q(4583) => [
       q(Media Lengua),
       ],
-   q(4595) => [
+   q(4584) => [
       q(Musgu),
       ],
-   q(4596) => [
+   q(4585) => [
       q(Mundu),
       ],
-   q(4597) => [
+   q(4586) => [
       q(Musi),
       ],
-   q(4598) => [
+   q(4587) => [
       q(Mabire),
       ],
-   q(4599) => [
+   q(4588) => [
       q(Mugom),
       ],
-   q(4600) => [
+   q(4589) => [
       q(Maiwala),
       ],
-   q(4601) => [
+   q(4590) => [
       q(Nyong),
       ],
-   q(4602) => [
+   q(4591) => [
       q(Malvi),
       ],
-   q(4603) => [
+   q(4592) => [
       q(Eastern Xiangxi Miao),
       ],
-   q(4604) => [
+   q(4593) => [
       q(Murle),
       ],
-   q(4605) => [
+   q(4594) => [
       q(Western Muria),
       ],
-   q(4606) => [
+   q(4595) => [
       q(Yaaku),
       ],
-   q(4607) => [
+   q(4596) => [
       q(Muthuvan),
       ],
-   q(4608) => [
+   q(4597) => [
       q(Bo-Ung),
       ],
-   q(4609) => [
+   q(4598) => [
       q(Muyang),
       ],
-   q(4610) => [
+   q(4599) => [
       q(Mursi),
       ],
-   q(4611) => [
+   q(4600) => [
       q(Manam),
       ],
-   q(4612) => [
+   q(4601) => [
       q(Mattole),
       ],
-   q(4613) => [
+   q(4602) => [
       q(Mamboru),
       ],
-   q(4614) => [
+   q(4603) => [
       q(Marwari (Pakistan)),
       ],
-   q(4615) => [
+   q(4604) => [
       q(Peripheral Mongolian),
       ],
-   q(4616) => [
+   q(4605) => [
       q(Yucuane Mixtec),
       ],
-   q(4617) => [
+   q(4606) => [
       q(Mulgi),
       ],
-   q(4618) => [
+   q(4607) => [
       q(Miyako),
       ],
-   q(4619) => [
+   q(4608) => [
       q(Mekmek),
       ],
-   q(4620) => [
+   q(4609) => [
       q(Mbara (Australia)),
       ],
-   q(4621) => [
+   q(4610) => [
       q(Muya),
       ],
-   q(4622) => [
+   q(4611) => [
       q(Minaveha),
       ],
-   q(4623) => [
+   q(4612) => [
       q(Marovo),
       ],
-   q(4624) => [
+   q(4613) => [
       q(Duri),
       ],
-   q(4625) => [
+   q(4614) => [
       q(Moere),
       ],
-   q(4626) => [
+   q(4615) => [
       q(Marau),
       ],
-   q(4627) => [
+   q(4616) => [
       q(Massep),
       ],
-   q(4628) => [
+   q(4617) => [
       q(Mpotovoro),
       ],
-   q(4629) => [
+   q(4618) => [
       q(Marfa),
       ],
-   q(4630) => [
+   q(4619) => [
       q(Tagal Murut),
       ],
-   q(4631) => [
+   q(4620) => [
       q(Machinga),
       ],
-   q(4632) => [
+   q(4621) => [
       q(Meoswar),
       ],
-   q(4633) => [
+   q(4622) => [
       q(Indus Kohistani),
       ],
-   q(4634) => [
+   q(4623) => [
       q(Mesqan),
       ],
-   q(4635) => [
+   q(4624) => [
       q(Mwatebu),
       ],
-   q(4636) => [
+   q(4625) => [
       q(Juwal),
       ],
-   q(4637) => [
+   q(4626) => [
       q(Are),
       ],
-   q(4638) => [
+   q(4627) => [
       q(Mwera (Chimwera)),
       ],
-   q(4639) => [
+   q(4628) => [
       q(Murrinh-Patha),
       ],
-   q(4640) => [
+   q(4629) => [
       q(Aiklep),
       ],
-   q(4641) => [
+   q(4630) => [
       q(Mouk-Aria),
       ],
-   q(4642) => [
+   q(4631) => [
       q(Labo),
       q(Ninde),
       ],
-   q(4643) => [
-      q(Maligo),
-      ],
-   q(4644) => [
+   q(4632) => [
       q(Kita Maninkakan),
       ],
-   q(4645) => [
+   q(4633) => [
       q(Sar),
       ],
-   q(4646) => [
+   q(4634) => [
       q(Nyamwanga),
       ],
-   q(4647) => [
+   q(4635) => [
       q(Central Maewo),
       ],
-   q(4648) => [
+   q(4636) => [
       q(Kala Lagaw Ya),
       ],
-   q(4649) => [
+   q(4637) => [
       q(Mun Chin),
       ],
-   q(4650) => [
+   q(4638) => [
       q(Mwimbi-Muthambi),
       ],
-   q(4651) => [
+   q(4639) => [
       q(Moken),
       ],
-   q(4652) => [
+   q(4640) => [
       q(Mittu),
       ],
-   q(4653) => [
+   q(4641) => [
       q(Mentawai),
       ],
-   q(4654) => [
+   q(4642) => [
       q(Hmong Daw),
       ],
-   q(4655) => [
+   q(4643) => [
       q(Mediak),
       ],
-   q(4656) => [
+   q(4644) => [
       q(Mosiro),
       ],
-   q(4657) => [
+   q(4645) => [
       q(Moingi),
       ],
-   q(4658) => [
+   q(4646) => [
       q(Northwest Oaxaca Mixtec),
       ],
-   q(4659) => [
+   q(4647) => [
       q(Tezoatlan Mixtec),
       ],
-   q(4660) => [
+   q(4648) => [
       q(Manyika),
       ],
-   q(4661) => [
+   q(4649) => [
       q(Modang),
       ],
-   q(4662) => [
+   q(4650) => [
       q(Mele-Fila),
       ],
-   q(4663) => [
+   q(4651) => [
       q(Malgbe),
       ],
-   q(4664) => [
+   q(4652) => [
       q(Mbangala),
       ],
-   q(4665) => [
+   q(4653) => [
       q(Mvuba),
       ],
-   q(4666) => [
+   q(4654) => [
       q(Mozarabic),
       ],
-   q(4667) => [
+   q(4655) => [
       q(Miju-Mishmi),
       q(Geman Deng),
       ],
-   q(4668) => [
+   q(4656) => [
       q(Monumbo),
       ],
-   q(4669) => [
+   q(4657) => [
       q(Maxi Gbe),
       ],
-   q(4670) => [
+   q(4658) => [
       q(Meramera),
       ],
-   q(4671) => [
+   q(4659) => [
       q(Moi (Indonesia)),
       ],
-   q(4672) => [
+   q(4660) => [
       q(Mbowe),
       ],
-   q(4673) => [
+   q(4661) => [
       q(Tlahuitoltepec Mixe),
       ],
-   q(4674) => [
+   q(4662) => [
       q(Juquila Mixe),
       ],
-   q(4675) => [
+   q(4663) => [
       q(Murik (Malaysia)),
       ],
-   q(4676) => [
+   q(4664) => [
       q(Huitepec Mixtec),
       ],
-   q(4677) => [
+   q(4665) => [
       q(Jamiltepec Mixtec),
       ],
-   q(4678) => [
+   q(4666) => [
       q(Mada (Cameroon)),
       ],
-   q(4679) => [
+   q(4667) => [
       q(Metlatonoc Mixtec),
       ],
-   q(4680) => [
+   q(4668) => [
       q(Namo),
       ],
-   q(4681) => [
+   q(4669) => [
       q(Mahou),
       q(Mawukakan),
       ],
-   q(4682) => [
+   q(4670) => [
       q(Southeastern Nochixtlan Mixtec),
       ],
-   q(4683) => [
+   q(4671) => [
       q(Central Masela),
       ],
-   q(4684) => [
+   q(4672) => [
       q(Mbay),
       ],
-   q(4685) => [
+   q(4673) => [
       q(Mayeka),
       ],
-   q(4686) => [
+   q(4674) => [
       q(Maramba),
       ],
-   q(4687) => [
+   q(4675) => [
       q(Myene),
       ],
-   q(4688) => [
+   q(4676) => [
       q(Bambassi),
       ],
-   q(4689) => [
+   q(4677) => [
       q(Manta),
       ],
-   q(4690) => [
+   q(4678) => [
       q(Makah),
       ],
-   q(4691) => [
+   q(4679) => [
       q(Mina (India)),
       ],
-   q(4692) => [
+   q(4680) => [
       q(Mangayat),
       ],
-   q(4693) => [
+   q(4681) => [
       q(Mamara Senoufo),
       ],
-   q(4694) => [
+   q(4682) => [
       q(Moma),
       ],
-   q(4695) => [
+   q(4683) => [
       q(Me'en),
       ],
-   q(4696) => [
+   q(4684) => [
       q(Anfillo),
       ],
-   q(4697) => [
+   q(4685) => [
       q(Piraha),
       ],
-   q(4698) => [
+   q(4686) => [
       q(Muniche),
       ],
-   q(4699) => [
+   q(4687) => [
       q(Mesmes),
       ],
-   q(4700) => [
+   q(4688) => [
       q(Munduruku),
       ],
-   q(4701) => [
+   q(4689) => [
       q(Muyuw),
       ],
-   q(4702) => [
+   q(4690) => [
       q(Masaaba),
       ],
-   q(4703) => [
+   q(4691) => [
       q(Macuna),
       ],
-   q(4704) => [
+   q(4692) => [
       q(Classical Mandaic),
       ],
-   q(4705) => [
+   q(4693) => [
       q(Santa Maria Zacatepec Mixtec),
       ],
-   q(4706) => [
+   q(4694) => [
       q(Tumzabt),
       ],
-   q(4707) => [
+   q(4695) => [
       q(Madagascar Sign Language),
       ],
-   q(4708) => [
+   q(4696) => [
       q(Malimba),
       ],
-   q(4709) => [
+   q(4697) => [
       q(Morawa),
       ],
-   q(4710) => [
+   q(4698) => [
       q(Monastic Sign Language),
       ],
-   q(4711) => [
+   q(4699) => [
       q(Wichi Lhamtes Guisnay),
       ],
-   q(4712) => [
+   q(4700) => [
       q(Ixcatlan Mazatec),
       ],
-   q(4713) => [
+   q(4701) => [
       q(Manya),
       ],
-   q(4714) => [
+   q(4702) => [
       q(Nigeria Mambila),
       ],
-   q(4715) => [
+   q(4703) => [
       q(Mazatlan Mixe),
       ],
-   q(4716) => [
+   q(4704) => [
       q(Mumuye),
       ],
-   q(4717) => [
+   q(4705) => [
       q(Mazanderani),
       ],
-   q(4718) => [
+   q(4706) => [
       q(Matipuhy),
       ],
-   q(4719) => [
+   q(4707) => [
       q(Movima),
       ],
-   q(4720) => [
+   q(4708) => [
       q(Mori Atas),
       ],
-   q(4721) => [
+   q(4709) => [
       q(Marubo),
       ],
-   q(4722) => [
+   q(4710) => [
       q(Macanese),
       ],
-   q(4723) => [
+   q(4711) => [
       q(Mintil),
       ],
-   q(4724) => [
+   q(4712) => [
       q(Inapang),
       ],
-   q(4725) => [
+   q(4713) => [
       q(Manza),
       ],
-   q(4726) => [
+   q(4714) => [
       q(Deg),
       ],
-   q(4727) => [
+   q(4715) => [
       q(Mawayana),
       ],
-   q(4728) => [
+   q(4716) => [
       q(Mozambican Sign Language),
       ],
-   q(4729) => [
+   q(4717) => [
       q(Maiadomu),
       ],
-   q(4730) => [
+   q(4718) => [
       q(Namla),
       ],
-   q(4731) => [
+   q(4719) => [
       q(Southern Nambikuara),
       ],
-   q(4732) => [
+   q(4720) => [
       q(Narak),
       ],
-   q(4733) => [
+   q(4721) => [
       q(Nijadali),
       ],
-   q(4734) => [
+   q(4722) => [
       q(Naka'ela),
       ],
-   q(4735) => [
+   q(4723) => [
       q(Nabak),
       ],
-   q(4736) => [
+   q(4724) => [
       q(Naga Pidgin),
       ],
-   q(4737) => [
+   q(4725) => [
       q(Nalu),
       ],
-   q(4738) => [
+   q(4726) => [
       q(Nakanai),
       ],
-   q(4739) => [
+   q(4727) => [
       q(Nalik),
       ],
-   q(4740) => [
+   q(4728) => [
       q(Ngan'gityemerri),
       ],
-   q(4741) => [
+   q(4729) => [
       q(Min Nan Chinese),
       ],
-   q(4742) => [
+   q(4730) => [
       q(Naaba),
       ],
-   q(4743) => [
+   q(4731) => [
+      q(Khoekhoe),
       q(Nama (Namibia)),
       ],
-   q(4744) => [
+   q(4732) => [
       q(Iguta),
       ],
-   q(4745) => [
+   q(4733) => [
       q(Naasioi),
       ],
-   q(4746) => [
+   q(4734) => [
+      q(Cahungwarya),
       q(Hungworo),
       ],
-   q(4747) => [
+   q(4735) => [
       q(Nawuri),
       ],
-   q(4748) => [
+   q(4736) => [
       q(Nakwi),
       ],
-   q(4749) => [
+   q(4737) => [
       q(Narrinyeri),
       ],
-   q(4750) => [
+   q(4738) => [
       q(Coatepec Nahuatl),
       ],
-   q(4751) => [
+   q(4739) => [
       q(Nyemba),
       ],
-   q(4752) => [
+   q(4740) => [
       q(Ndoe),
       ],
-   q(4753) => [
+   q(4741) => [
       q(Chang Naga),
       ],
-   q(4754) => [
+   q(4742) => [
       q(Ngbinda),
       ],
-   q(4755) => [
+   q(4743) => [
       q(Konyak Naga),
       ],
-   q(4756) => [
+   q(4744) => [
       q(Nagarchal),
       ],
-   q(4757) => [
+   q(4745) => [
       q(Ngamo),
       ],
-   q(4758) => [
+   q(4746) => [
       q(Mao Naga),
       ],
-   q(4759) => [
+   q(4747) => [
       q(Ngarinman),
       ],
-   q(4760) => [
+   q(4748) => [
       q(Nake),
       ],
-   q(4761) => [
+   q(4749) => [
       q(Ngbaka Ma'bo),
       ],
-   q(4762) => [
+   q(4750) => [
       q(Kuri),
       ],
-   q(4763) => [
+   q(4751) => [
       q(Nkukoli),
       ],
-   q(4764) => [
+   q(4752) => [
       q(Nnam),
       ],
-   q(4765) => [
+   q(4753) => [
       q(Nggem),
       ],
-   q(4766) => [
+   q(4754) => [
       q(Numana-Nunku-Gbantu-Numbu),
       ],
-   q(4767) => [
+   q(4755) => [
       q(Namibian Sign Language),
       ],
-   q(4768) => [
+   q(4756) => [
       q(Na),
       ],
-   q(4769) => [
+   q(4757) => [
       q(Rongmei Naga),
       ],
-   q(4770) => [
+   q(4758) => [
       q(Ngamambo),
       ],
-   q(4771) => [
+   q(4759) => [
       q(Southern Ngbandi),
       ],
-   q(4772) => [
+   q(4760) => [
       q(Ningera),
       ],
-   q(4773) => [
+   q(4761) => [
       q(Iyo),
       ],
-   q(4774) => [
+   q(4762) => [
       q(Central Nicobarese),
       ],
-   q(4775) => [
+   q(4763) => [
       q(Ponam),
       ],
-   q(4776) => [
+   q(4764) => [
       q(Nachering),
       ],
-   q(4777) => [
+   q(4765) => [
       q(Yale),
       ],
-   q(4778) => [
+   q(4766) => [
       q(Notsi),
       ],
-   q(4779) => [
+   q(4767) => [
       q(Nisga'a),
       ],
-   q(4780) => [
+   q(4768) => [
       q(Central Huasteca Nahuatl),
       ],
-   q(4781) => [
+   q(4769) => [
       q(Classical Nahuatl),
       ],
-   q(4782) => [
+   q(4770) => [
       q(Northern Puebla Nahuatl),
       ],
-   q(4783) => [
+   q(4771) => [
       q(Nakara),
       ],
-   q(4784) => [
+   q(4772) => [
       q(Michoacan Nahuatl),
       ],
-   q(4785) => [
+   q(4773) => [
       q(Nambo),
       ],
-   q(4786) => [
+   q(4774) => [
       q(Nauna),
       ],
-   q(4787) => [
+   q(4775) => [
       q(Sibe),
       ],
-   q(4788) => [
+   q(4776) => [
       q(Ndaktup),
       ],
-   q(4789) => [
+   q(4777) => [
       q(Ncane),
       ],
-   q(4790) => [
+   q(4778) => [
       q(Nicaraguan Sign Language),
       ],
-   q(4791) => [
+   q(4779) => [
       q(Chothe Naga),
       ],
-   q(4792) => [
+   q(4780) => [
       q(Chumburung),
       ],
-   q(4793) => [
+   q(4781) => [
       q(Central Puebla Nahuatl),
       ],
-   q(4794) => [
+   q(4782) => [
       q(Natchez),
       ],
-   q(4795) => [
+   q(4783) => [
       q(Ndasa),
       ],
-   q(4796) => [
+   q(4784) => [
       q(Kenswei Nsei),
       ],
-   q(4797) => [
+   q(4785) => [
       q(Ndau),
       ],
-   q(4798) => [
+   q(4786) => [
       q(Nde-Nsele-Nta),
       ],
-   q(4799) => [
+   q(4787) => [
       q(Nadruvian),
       ],
-   q(4800) => [
+   q(4788) => [
       q(Ndengereko),
       ],
-   q(4801) => [
+   q(4789) => [
       q(Ndali),
       ],
-   q(4802) => [
+   q(4790) => [
       q(Samba Leko),
       ],
-   q(4803) => [
+   q(4791) => [
       q(Ndamba),
       ],
-   q(4804) => [
+   q(4792) => [
       q(Ndaka),
       ],
-   q(4805) => [
+   q(4793) => [
       q(Ndolo),
       ],
-   q(4806) => [
+   q(4794) => [
       q(Ndam),
       ],
-   q(4807) => [
+   q(4795) => [
       q(Ngundi),
       ],
-   q(4808) => [
+   q(4796) => [
       q(Ndo),
       ],
-   q(4809) => [
+   q(4797) => [
       q(Ndombe),
       ],
-   q(4810) => [
+   q(4798) => [
       q(Ndoola),
       ],
-   q(4811) => [
+   q(4799) => [
       q(Ndunga),
       ],
-   q(4812) => [
+   q(4800) => [
       q(Dugun),
       ],
-   q(4813) => [
+   q(4801) => [
       q(Ndut),
       ],
-   q(4814) => [
+   q(4802) => [
       q(Ndobo),
       ],
-   q(4815) => [
+   q(4803) => [
       q(Nduga),
       ],
-   q(4816) => [
+   q(4804) => [
       q(Lutos),
       ],
-   q(4817) => [
+   q(4805) => [
       q(Ndogo),
       ],
-   q(4818) => [
+   q(4806) => [
       q(Eastern Ngad'a),
       ],
-   q(4819) => [
+   q(4807) => [
       q(Toura (Cote d'Ivoire)),
       ],
-   q(4820) => [
+   q(4808) => [
       q(Nedebang),
       ],
-   q(4821) => [
+   q(4809) => [
       q(Nde-Gbite),
       ],
-   q(4822) => [
+   q(4810) => [
       q(Nelemwa-Nixumwak),
       ],
-   q(4823) => [
+   q(4811) => [
       q(Nefamese),
       ],
-   q(4824) => [
+   q(4812) => [
       q(Negidal),
       ],
-   q(4825) => [
+   q(4813) => [
       q(Nyenkha),
       ],
-   q(4826) => [
+   q(4814) => [
       q(Neo-Hittite),
       ],
-   q(4827) => [
+   q(4815) => [
       q(Neko),
       ],
-   q(4828) => [
+   q(4816) => [
       q(Neku),
       ],
-   q(4829) => [
+   q(4817) => [
       q(Nemi),
       ],
-   q(4830) => [
+   q(4818) => [
       q(Nengone),
       ],
-   q(4831) => [
+   q(4819) => [
       q(Na-Meo),
       ],
-   q(4832) => [
+   q(4820) => [
       q(North Central Mixe),
       ],
-   q(4833) => [
+   q(4821) => [
       q(Yahadian),
       ],
-   q(4834) => [
+   q(4822) => [
       q(Bhoti Kinnauri),
       ],
-   q(4835) => [
+   q(4823) => [
       q(Nete),
       ],
-   q(4836) => [
+   q(4824) => [
       q(Neo),
       ],
-   q(4837) => [
+   q(4825) => [
       q(Nyaheun),
       ],
-   q(4838) => [
+   q(4826) => [
       q(Neme),
       ],
-   q(4839) => [
+   q(4827) => [
       q(Neyo),
       ],
-   q(4840) => [
+   q(4828) => [
       q(Nez Perce),
       ],
-   q(4841) => [
+   q(4829) => [
       q(Dhao),
       ],
-   q(4842) => [
+   q(4830) => [
       q(Ahwai),
       ],
-   q(4843) => [
+   q(4831) => [
       q(Ayiwo),
       q(Aiwoo),
       ],
-   q(4844) => [
+   q(4832) => [
       q(Nafaanra),
       ],
-   q(4845) => [
+   q(4833) => [
       q(Mfumte),
       ],
-   q(4846) => [
+   q(4834) => [
       q(Ngbaka),
       ],
-   q(4847) => [
+   q(4835) => [
       q(Northern Ngbandi),
       ],
-   q(4848) => [
+   q(4836) => [
       q(Ngombe (Democratic Republic of Congo)),
       ],
-   q(4849) => [
+   q(4837) => [
       q(Ngando (Central African Republic)),
       ],
-   q(4850) => [
+   q(4838) => [
       q(Ngemba),
       ],
-   q(4851) => [
+   q(4839) => [
       q(Ngbaka Manza),
       ],
-   q(4852) => [
+   q(4840) => [
       q(N/u),
       ],
-   q(4853) => [
+   q(4841) => [
       q(Ngizim),
       ],
-   q(4854) => [
+   q(4842) => [
       q(Ngie),
       ],
-   q(4855) => [
+   q(4843) => [
       q(Dalabon),
       ],
-   q(4856) => [
+   q(4844) => [
       q(Lomwe),
       ],
-   q(4857) => [
+   q(4845) => [
       q(Ngatik Men's Creole),
       ],
-   q(4858) => [
+   q(4846) => [
       q(Ngwo),
       ],
-   q(4859) => [
+   q(4847) => [
       q(Ngoni),
       ],
-   q(4860) => [
+   q(4848) => [
       q(Ngulu),
       ],
-   q(4861) => [
+   q(4849) => [
       q(Ngurimi),
       q(Ngoreme),
       ],
-   q(4862) => [
+   q(4850) => [
       q(Engdewu),
       ],
-   q(4863) => [
+   q(4851) => [
       q(Gvoko),
       ],
-   q(4864) => [
+   q(4852) => [
       q(Ngeq),
       ],
-   q(4865) => [
+   q(4853) => [
       q(Guerrero Nahuatl),
       ],
-   q(4866) => [
+   q(4854) => [
       q(Nagumi),
       ],
-   q(4867) => [
+   q(4855) => [
       q(Ngwaba),
       ],
-   q(4868) => [
+   q(4856) => [
       q(Nggwahyi),
       ],
-   q(4869) => [
+   q(4857) => [
       q(Tibea),
       ],
-   q(4870) => [
+   q(4858) => [
       q(Ngungwel),
       ],
-   q(4871) => [
+   q(4859) => [
       q(Nhanda),
       ],
-   q(4872) => [
+   q(4860) => [
       q(Beng),
       ],
-   q(4873) => [
+   q(4861) => [
       q(Tabasco Nahuatl),
       ],
-   q(4874) => [
+   q(4862) => [
       q(Chiripa),
       q(Ava Guarani),
       ],
-   q(4875) => [
+   q(4863) => [
       q(Eastern Huasteca Nahuatl),
       ],
-   q(4876) => [
+   q(4864) => [
       q(Nhuwala),
       ],
-   q(4877) => [
+   q(4865) => [
       q(Tetelcingo Nahuatl),
       ],
-   q(4878) => [
+   q(4866) => [
       q(Nahari),
       ],
-   q(4879) => [
+   q(4867) => [
       q(Zacatlan-Ahuacatlan-Tepetzintla Nahuatl),
       ],
-   q(4880) => [
+   q(4868) => [
       q(Isthmus-Cosoleacaque Nahuatl),
       ],
-   q(4881) => [
+   q(4869) => [
       q(Morelos Nahuatl),
       ],
-   q(4882) => [
+   q(4870) => [
       q(Central Nahuatl),
       ],
-   q(4883) => [
+   q(4871) => [
       q(Takuu),
       ],
-   q(4884) => [
+   q(4872) => [
       q(Isthmus-Pajapan Nahuatl),
       ],
-   q(4885) => [
+   q(4873) => [
       q(Huaxcaleca Nahuatl),
       ],
-   q(4886) => [
+   q(4874) => [
       q(Naro),
       ],
-   q(4887) => [
+   q(4875) => [
       q(Ometepec Nahuatl),
       ],
-   q(4888) => [
+   q(4876) => [
       q(Noone),
       ],
-   q(4889) => [
+   q(4877) => [
       q(Temascaltepec Nahuatl),
       ],
-   q(4890) => [
+   q(4878) => [
       q(Western Huasteca Nahuatl),
       ],
-   q(4891) => [
+   q(4879) => [
       q(Isthmus-Mecayapan Nahuatl),
       ],
-   q(4892) => [
+   q(4880) => [
       q(Northern Oaxaca Nahuatl),
       ],
-   q(4893) => [
+   q(4881) => [
       q(Santa Maria La Alta Nahuatl),
       ],
-   q(4894) => [
+   q(4882) => [
       q(Nakame),
       ],
-   q(4895) => [
+   q(4883) => [
       q(Ngandi),
       ],
-   q(4896) => [
+   q(4884) => [
       q(Niellim),
       ],
-   q(4897) => [
+   q(4885) => [
       q(Nek),
       ],
-   q(4898) => [
+   q(4886) => [
       q(Ngalakan),
       ],
-   q(4899) => [
+   q(4887) => [
       q(Nyiha (Tanzania)),
       ],
-   q(4900) => [
+   q(4888) => [
       q(Nii),
       ],
-   q(4901) => [
+   q(4889) => [
       q(Ngaju),
       ],
-   q(4902) => [
+   q(4890) => [
       q(Southern Nicobarese),
       ],
-   q(4903) => [
+   q(4891) => [
       q(Nila),
       ],
-   q(4904) => [
+   q(4892) => [
       q(Nilamba),
       ],
-   q(4905) => [
+   q(4893) => [
       q(Ninzo),
       ],
-   q(4906) => [
+   q(4894) => [
       q(Nganasan),
       ],
-   q(4907) => [
+   q(4895) => [
       q(Nandi),
       ],
-   q(4908) => [
+   q(4896) => [
       q(Nimboran),
       ],
-   q(4909) => [
+   q(4897) => [
       q(Nimi),
       ],
-   q(4910) => [
+   q(4898) => [
       q(Southeastern Kolami),
       ],
-   q(4911) => [
+   q(4899) => [
       q(Gilyak),
       ],
-   q(4912) => [
+   q(4900) => [
       q(Nimo),
       ],
-   q(4913) => [
+   q(4901) => [
       q(Hema),
       ],
-   q(4914) => [
+   q(4902) => [
       q(Ngiti),
       ],
-   q(4915) => [
+   q(4903) => [
       q(Ningil),
       ],
-   q(4916) => [
+   q(4904) => [
       q(Nzanyi),
       ],
-   q(4917) => [
+   q(4905) => [
       q(Nocte Naga),
       ],
-   q(4918) => [
+   q(4906) => [
       q(Ndonde Hamba),
       ],
-   q(4919) => [
+   q(4907) => [
       q(Lotha Naga),
       ],
-   q(4920) => [
+   q(4908) => [
       q(Gudanji),
       ],
-   q(4921) => [
+   q(4909) => [
       q(Njen),
       ],
-   q(4922) => [
+   q(4910) => [
       q(Njalgulgule),
       ],
-   q(4923) => [
+   q(4911) => [
       q(Angami Naga),
       ],
-   q(4924) => [
+   q(4912) => [
       q(Liangmai Naga),
       ],
-   q(4925) => [
+   q(4913) => [
       q(Ao Naga),
       ],
-   q(4926) => [
+   q(4914) => [
       q(Njerep),
       ],
-   q(4927) => [
+   q(4915) => [
       q(Nisa),
       ],
-   q(4928) => [
+   q(4916) => [
       q(Ndyuka-Trio Pidgin),
       ],
-   q(4929) => [
+   q(4917) => [
       q(Ngadjunmaya),
       ],
-   q(4930) => [
+   q(4918) => [
       q(Kunyi),
       ],
-   q(4931) => [
+   q(4919) => [
       q(Njyem),
       ],
-   q(4932) => [
+   q(4920) => [
       q(Nyishi),
       ],
-   q(4933) => [
+   q(4921) => [
       q(Nkoya),
       ],
-   q(4934) => [
+   q(4922) => [
       q(Khoibu Naga),
       ],
-   q(4935) => [
+   q(4923) => [
       q(Nkongho),
       ],
-   q(4936) => [
+   q(4924) => [
       q(Koireng),
       ],
-   q(4937) => [
+   q(4925) => [
       q(Duke),
       ],
-   q(4938) => [
+   q(4926) => [
       q(Inpui Naga),
       ],
-   q(4939) => [
+   q(4927) => [
       q(Nekgini),
       ],
-   q(4940) => [
+   q(4928) => [
       q(Khezha Naga),
       ],
-   q(4941) => [
+   q(4929) => [
       q(Thangal Naga),
       ],
-   q(4942) => [
+   q(4930) => [
       q(Nakai),
       ],
-   q(4943) => [
+   q(4931) => [
       q(Nokuku),
       ],
-   q(4944) => [
+   q(4932) => [
       q(Namat),
       ],
-   q(4945) => [
+   q(4933) => [
       q(Nkangala),
       ],
-   q(4946) => [
+   q(4934) => [
       q(Nkonya),
       ],
-   q(4947) => [
+   q(4935) => [
       q(Niuatoputapu),
       ],
-   q(4948) => [
+   q(4936) => [
       q(Nkami),
       ],
-   q(4949) => [
+   q(4937) => [
       q(Nukuoro),
       ],
-   q(4950) => [
+   q(4938) => [
       q(North Asmat),
       ],
-   q(4951) => [
+   q(4939) => [
       q(Nyika (Tanzania)),
       ],
-   q(4952) => [
+   q(4940) => [
       q(Bouna Kulango),
       ],
-   q(4953) => [
+   q(4941) => [
       q(Nyika (Malawi and Zambia)),
       ],
-   q(4954) => [
+   q(4942) => [
       q(Nkutu),
       ],
-   q(4955) => [
+   q(4943) => [
       q(Nkoroo),
       ],
-   q(4956) => [
+   q(4944) => [
       q(Nkari),
       ],
-   q(4957) => [
+   q(4945) => [
       q(Ngombale),
       ],
-   q(4958) => [
+   q(4946) => [
       q(Nalca),
       ],
-   q(4959) => [
+   q(4947) => [
       q(East Nyala),
       ],
-   q(4960) => [
+   q(4948) => [
       q(Gela),
       ],
-   q(4961) => [
+   q(4949) => [
       q(Grangali),
       ],
-   q(4962) => [
+   q(4950) => [
       q(Nyali),
       ],
-   q(4963) => [
+   q(4951) => [
       q(Ninia Yali),
       ],
-   q(4964) => [
+   q(4952) => [
       q(Nihali),
       ],
-   q(4965) => [
+   q(4953) => [
       q(Ngul),
       ],
-   q(4966) => [
+   q(4954) => [
       q(Lao Naga),
       ],
-   q(4967) => [
+   q(4955) => [
       q(Nchumbulu),
       ],
-   q(4968) => [
+   q(4956) => [
       q(Orizaba Nahuatl),
       ],
-   q(4969) => [
+   q(4957) => [
       q(Walangama),
       ],
-   q(4970) => [
+   q(4958) => [
       q(Nahali),
       ],
-   q(4971) => [
+   q(4959) => [
       q(Nyamal),
       ],
-   q(4972) => [
+   q(4960) => [
       q(Nalogo),
       ],
-   q(4973) => [
+   q(4961) => [
       q(Maram Naga),
       ],
-   q(4974) => [
+   q(4962) => [
       q(Big Nambas),
       q(V'enen Taut),
       ],
-   q(4975) => [
+   q(4963) => [
       q(Ngam),
       ],
-   q(4976) => [
+   q(4964) => [
       q(Ndumu),
       ],
-   q(4977) => [
+   q(4965) => [
       q(Mzieme Naga),
       ],
-   q(4978) => [
+   q(4966) => [
       q(Tangkhul Naga (India)),
       ],
-   q(4979) => [
+   q(4967) => [
       q(Kwasio),
       ],
-   q(4980) => [
+   q(4968) => [
       q(Monsang Naga),
       ],
-   q(4981) => [
+   q(4969) => [
       q(Nyam),
       ],
-   q(4982) => [
+   q(4970) => [
       q(Ngombe (Central African Republic)),
       ],
-   q(4983) => [
+   q(4971) => [
       q(Namakura),
       ],
-   q(4984) => [
+   q(4972) => [
       q(Ndemli),
       ],
-   q(4985) => [
+   q(4973) => [
       q(Manangba),
       ],
-   q(4986) => [
+   q(4974) => [
       q(!Xoo),
       ],
-   q(4987) => [
+   q(4975) => [
       q(Moyon Naga),
       ],
-   q(4988) => [
+   q(4976) => [
       q(Nimanbur),
       ],
-   q(4989) => [
+   q(4977) => [
       q(Nambya),
       ],
-   q(4990) => [
+   q(4978) => [
       q(Nimbari),
       ],
-   q(4991) => [
+   q(4979) => [
       q(Letemboi),
       ],
-   q(4992) => [
+   q(4980) => [
       q(Namonuito),
       ],
-   q(4993) => [
+   q(4981) => [
       q(Northeast Maidu),
       ],
-   q(4994) => [
+   q(4982) => [
       q(Ngamini),
       ],
-   q(4995) => [
+   q(4983) => [
       q(Nimoa),
+      q(Rifao),
       ],
-   q(4996) => [
+   q(4984) => [
       q(Nama (Papua New Guinea)),
       ],
-   q(4997) => [
+   q(4985) => [
       q(Namuyi),
       ],
-   q(4998) => [
+   q(4986) => [
       q(Nawdm),
       ],
-   q(4999) => [
+   q(4987) => [
       q(Nyangumarta),
       ],
-   q(5000) => [
+   q(4988) => [
       q(Nande),
       ],
-   q(5001) => [
+   q(4989) => [
       q(Nancere),
       ],
-   q(5002) => [
+   q(4990) => [
       q(West Ambae),
       ],
-   q(5003) => [
+   q(4991) => [
       q(Ngandyera),
       ],
-   q(5004) => [
+   q(4992) => [
       q(Ngaing),
       ],
-   q(5005) => [
+   q(4993) => [
       q(Maring Naga),
       ],
-   q(5006) => [
+   q(4994) => [
       q(Ngiemboon),
       ],
-   q(5007) => [
+   q(4995) => [
       q(North Nuaulu),
       ],
-   q(5008) => [
+   q(4996) => [
       q(Nyangatom),
       ],
-   q(5009) => [
+   q(4997) => [
       q(Nankina),
       ],
-   q(5010) => [
+   q(4998) => [
       q(Northern Rengma Naga),
       ],
-   q(5011) => [
+   q(4999) => [
       q(Namia),
       ],
-   q(5012) => [
+   q(5000) => [
       q(Ngete),
       ],
-   q(5013) => [
+   q(5001) => [
       q(Wancho Naga),
       ],
-   q(5014) => [
+   q(5002) => [
       q(Ngindo),
       ],
-   q(5015) => [
+   q(5003) => [
       q(Narungga),
       ],
-   q(5016) => [
+   q(5004) => [
       q(Ningye),
       ],
-   q(5017) => [
+   q(5005) => [
       q(Nanticoke),
       ],
-   q(5018) => [
+   q(5006) => [
       q(Dwang),
       ],
-   q(5019) => [
+   q(5007) => [
       q(Nugunu (Australia)),
       ],
-   q(5020) => [
+   q(5008) => [
       q(Southern Nuni),
       ],
-   q(5021) => [
-      q(Ngong),
-      ],
-   q(5022) => [
+   q(5009) => [
       q(Nyangga),
       ],
-   q(5023) => [
+   q(5010) => [
       q(Nda'nda'),
       ],
-   q(5024) => [
+   q(5011) => [
       q(Woun Meu),
       ],
-   q(5025) => [
+   q(5012) => [
       q(Nuk),
       ],
-   q(5026) => [
+   q(5013) => [
       q(Northern Thai),
       ],
-   q(5027) => [
+   q(5014) => [
       q(Nimadi),
       ],
-   q(5028) => [
+   q(5015) => [
       q(Nomane),
       ],
-   q(5029) => [
+   q(5016) => [
       q(Nomu),
       ],
-   q(5030) => [
+   q(5017) => [
       q(Noiri),
       ],
-   q(5031) => [
+   q(5018) => [
       q(Nonuya),
       ],
-   q(5032) => [
+   q(5019) => [
       q(Nooksack),
       ],
-   q(5033) => [
+   q(5020) => [
       q(Nomlaki),
       ],
-   q(5034) => [
+   q(5021) => [
       q(Nocaman),
       ],
-   q(5035) => [
+   q(5022) => [
       q(Numanggang),
       ],
-   q(5036) => [
+   q(5023) => [
       q(Ngongo),
       ],
-   q(5037) => [
+   q(5024) => [
       q(Eastern Nisu),
       ],
-   q(5038) => [
+   q(5025) => [
       q(Nomatsiguenga),
       ],
-   q(5039) => [
+   q(5026) => [
       q(Ewage-Notu),
       ],
-   q(5040) => [
+   q(5027) => [
       q(Novial),
       ],
-   q(5041) => [
+   q(5028) => [
       q(Nyambo),
       ],
-   q(5042) => [
+   q(5029) => [
       q(Noy),
       ],
-   q(5043) => [
+   q(5030) => [
       q(Nayi),
       ],
-   q(5044) => [
+   q(5031) => [
       q(Nar Phu),
       ],
-   q(5045) => [
+   q(5032) => [
       q(Nupbikha),
       ],
-   q(5046) => [
+   q(5033) => [
       q(Ponyo-Gongwang Naga),
       ],
-   q(5047) => [
+   q(5034) => [
       q(Phom Naga),
       ],
-   q(5048) => [
+   q(5035) => [
       q(Nepali (individual language)),
       ],
-   q(5049) => [
+   q(5036) => [
       q(Southeastern Puebla Nahuatl),
       ],
-   q(5050) => [
+   q(5037) => [
       q(Mondropolon),
       ],
-   q(5051) => [
+   q(5038) => [
       q(Pochuri Naga),
       ],
-   q(5052) => [
+   q(5039) => [
       q(Nipsan),
       ],
-   q(5053) => [
+   q(5040) => [
       q(Puimei Naga),
       ],
-   q(5054) => [
+   q(5041) => [
       q(Napu),
       ],
-   q(5055) => [
+   q(5042) => [
       q(Southern Nago),
       ],
-   q(5056) => [
+   q(5043) => [
       q(Kura Ede Nago),
       ],
-   q(5057) => [
+   q(5044) => [
       q(Ndom),
       ],
-   q(5058) => [
+   q(5045) => [
       q(Nen),
       ],
-   q(5059) => [
+   q(5046) => [
       q(Kyan-Karyaw Naga),
       ],
-   q(5060) => [
+   q(5047) => [
       q(Akyaung Ari Naga),
       ],
-   q(5061) => [
+   q(5048) => [
       q(Ngom),
       ],
-   q(5062) => [
+   q(5049) => [
       q(Nara),
       ],
-   q(5063) => [
+   q(5050) => [
       q(Noric),
       ],
-   q(5064) => [
+   q(5051) => [
       q(Southern Rengma Naga),
       ],
-   q(5065) => [
+   q(5052) => [
+      q(Jerriais),
+      q(Guernesiais),
+      ],
+   q(5053) => [
       q(Narango),
       ],
-   q(5066) => [
+   q(5054) => [
       q(Chokri Naga),
       ],
-   q(5067) => [
+   q(5055) => [
       q(Ngarla),
       ],
-   q(5068) => [
+   q(5056) => [
       q(Ngarluma),
       ],
-   q(5069) => [
+   q(5057) => [
       q(Narom),
       ],
-   q(5070) => [
+   q(5058) => [
       q(Norn),
       ],
-   q(5071) => [
+   q(5059) => [
       q(North Picene),
       ],
-   q(5072) => [
+   q(5060) => [
       q(Norra),
       q(Nora),
       ],
-   q(5073) => [
+   q(5061) => [
       q(Northern Kalapuya),
       ],
-   q(5074) => [
+   q(5062) => [
       q(Narua),
       ],
-   q(5075) => [
+   q(5063) => [
       q(Ngurmbur),
       ],
-   q(5076) => [
+   q(5064) => [
       q(Lala),
       ],
-   q(5077) => [
+   q(5065) => [
       q(Sangtam Naga),
       ],
-   q(5078) => [
+   q(5066) => [
       q(Nshi),
       ],
-   q(5079) => [
+   q(5067) => [
       q(Southern Nisu),
       ],
-   q(5080) => [
+   q(5068) => [
       q(Nsenga),
       ],
-   q(5081) => [
+   q(5069) => [
       q(Northwestern Nisu),
       ],
-   q(5082) => [
+   q(5070) => [
       q(Ngasa),
       ],
-   q(5083) => [
+   q(5071) => [
       q(Ngoshie),
       ],
-   q(5084) => [
+   q(5072) => [
       q(Nigerian Sign Language),
       ],
-   q(5085) => [
+   q(5073) => [
       q(Naskapi),
       ],
-   q(5086) => [
+   q(5074) => [
       q(Norwegian Sign Language),
       ],
-   q(5087) => [
+   q(5075) => [
       q(Sumi Naga),
       ],
-   q(5088) => [
+   q(5076) => [
       q(Nehan),
       ],
-   q(5089) => [
+   q(5077) => [
       q(Nepalese Sign Language),
       ],
-   q(5090) => [
+   q(5078) => [
       q(Northern Sierra Miwok),
       ],
-   q(5091) => [
+   q(5079) => [
       q(Maritime Sign Language),
       ],
-   q(5092) => [
+   q(5080) => [
       q(Nali),
       ],
-   q(5093) => [
+   q(5081) => [
       q(Tase Naga),
       ],
-   q(5094) => [
+   q(5082) => [
       q(Sierra Negra Nahuatl),
       ],
-   q(5095) => [
+   q(5083) => [
       q(Southwestern Nisu),
       ],
-   q(5096) => [
+   q(5084) => [
       q(Navut),
       ],
-   q(5097) => [
+   q(5085) => [
       q(Nsongo),
       ],
-   q(5098) => [
+   q(5086) => [
       q(Nasal),
       ],
-   q(5099) => [
+   q(5087) => [
       q(Nisenan),
       ],
-   q(5100) => [
+   q(5088) => [
       q(Nathembo),
       ],
-   q(5101) => [
+   q(5089) => [
       q(Ngantangarra),
       ],
-   q(5102) => [
+   q(5090) => [
       q(Natioro),
       ],
-   q(5103) => [
+   q(5091) => [
       q(Ngaanyatjarra),
       ],
-   q(5104) => [
+   q(5092) => [
       q(Ikoma-Nata-Isenye),
       ],
-   q(5105) => [
+   q(5093) => [
       q(Nateni),
       ],
-   q(5106) => [
+   q(5094) => [
       q(Ntomba),
       ],
-   q(5107) => [
+   q(5095) => [
       q(Northern Tepehuan),
       ],
-   q(5108) => [
+   q(5096) => [
       q(Delo),
       ],
-   q(5109) => [
+   q(5097) => [
       q(Natagaimas),
       ],
-   q(5110) => [
+   q(5098) => [
       q(Natugu),
       ],
-   q(5111) => [
+   q(5099) => [
       q(Nottoway),
       ],
-   q(5112) => [
+   q(5100) => [
       q(Tangkhul Naga (Myanmar)),
       ],
-   q(5113) => [
+   q(5101) => [
       q(Mantsi),
       ],
-   q(5114) => [
+   q(5102) => [
       q(Natanzi),
       ],
-   q(5115) => [
+   q(5103) => [
       q(Yuanga),
       ],
-   q(5116) => [
+   q(5104) => [
       q(Nukuini),
       ],
-   q(5117) => [
+   q(5105) => [
       q(Ngala),
       ],
-   q(5118) => [
+   q(5106) => [
       q(Ngundu),
       ],
-   q(5119) => [
+   q(5107) => [
       q(Nusu),
       ],
-   q(5120) => [
+   q(5108) => [
       q(Nungali),
       ],
-   q(5121) => [
+   q(5109) => [
       q(Ndunda),
       ],
-   q(5122) => [
+   q(5110) => [
       q(Ngumbi),
       ],
-   q(5123) => [
+   q(5111) => [
       q(Nyole),
       ],
-   q(5124) => [
+   q(5112) => [
       q(Nuu-chah-nulth),
       q(Nuuchahnulth),
       ],
-   q(5125) => [
+   q(5113) => [
       q(Nusa Laut),
       ],
-   q(5126) => [
+   q(5114) => [
       q(Niuafo'ou),
       ],
-   q(5127) => [
+   q(5115) => [
       q(Anong),
       ],
-   q(5128) => [
+   q(5116) => [
       q(Nguon),
       ],
-   q(5129) => [
+   q(5117) => [
       q(Nupe-Nupe-Tako),
       ],
-   q(5130) => [
+   q(5118) => [
       q(Nukumanu),
       ],
-   q(5131) => [
+   q(5119) => [
       q(Nukuria),
       ],
-   q(5132) => [
+   q(5120) => [
       q(Nuer),
       ],
-   q(5133) => [
+   q(5121) => [
       q(Nung (Viet Nam)),
       ],
-   q(5134) => [
+   q(5122) => [
       q(Ngbundu),
       ],
-   q(5135) => [
+   q(5123) => [
       q(Northern Nuni),
       ],
-   q(5136) => [
+   q(5124) => [
       q(Nguluwan),
       ],
-   q(5137) => [
+   q(5125) => [
       q(Mehek),
       ],
-   q(5138) => [
+   q(5126) => [
       q(Nunggubuyu),
       ],
-   q(5139) => [
+   q(5127) => [
       q(Tlamacazapa Nahuatl),
       ],
-   q(5140) => [
+   q(5128) => [
       q(Nasarian),
       ],
-   q(5141) => [
+   q(5129) => [
       q(Namiae),
       ],
-   q(5142) => [
+   q(5130) => [
       q(Nyokon),
       ],
-   q(5143) => [
+   q(5131) => [
       q(Nawathinehena),
       ],
-   q(5144) => [
+   q(5132) => [
       q(Nyabwa),
       ],
-   q(5145) => [
+   q(5133) => [
       q(Ngwe),
       ],
-   q(5146) => [
+   q(5134) => [
       q(Ngayawung),
       ],
-   q(5147) => [
+   q(5135) => [
       q(Southwest Tanna),
       ],
-   q(5148) => [
+   q(5136) => [
       q(Nyamusa-Molo),
       ],
-   q(5149) => [
+   q(5137) => [
       q(Nauo),
       ],
-   q(5150) => [
+   q(5138) => [
       q(Nawaru),
       ],
-   q(5151) => [
+   q(5139) => [
       q(Middle Newar),
       ],
-   q(5152) => [
+   q(5140) => [
       q(Nottoway-Meherrin),
       ],
-   q(5153) => [
+   q(5141) => [
       q(Nauete),
       ],
-   q(5154) => [
+   q(5142) => [
       q(Ngando (Democratic Republic of Congo)),
       ],
-   q(5155) => [
+   q(5143) => [
       q(Nage),
       ],
-   q(5156) => [
+   q(5144) => [
       q(Ngad'a),
       ],
-   q(5157) => [
+   q(5145) => [
       q(Nindi),
       ],
-   q(5158) => [
+   q(5146) => [
       q(Koki Naga),
       ],
-   q(5159) => [
+   q(5147) => [
       q(South Nuaulu),
       ],
-   q(5160) => [
+   q(5148) => [
       q(Numidian),
       ],
-   q(5161) => [
+   q(5149) => [
       q(Ngawun),
       ],
-   q(5162) => [
+   q(5150) => [
+      q(Ndambomo),
+      ],
+   q(5151) => [
       q(Naxi),
       ],
-   q(5163) => [
+   q(5152) => [
       q(Ninggerum),
       ],
-   q(5164) => [
+   q(5153) => [
       q(Narau),
       ],
-   q(5165) => [
+   q(5154) => [
       q(Nafri),
       ],
-   q(5166) => [
+   q(5155) => [
       q(Nyangbo),
       ],
-   q(5167) => [
+   q(5156) => [
       q(Nyanga-li),
       ],
-   q(5168) => [
+   q(5157) => [
       q(Nyore),
       q(Olunyole),
       ],
-   q(5169) => [
+   q(5158) => [
       q(Nyengo),
       ],
-   q(5170) => [
+   q(5159) => [
       q(Giryama),
       q(Kigiryama),
       ],
-   q(5171) => [
+   q(5160) => [
       q(Nyindu),
       ],
-   q(5172) => [
+   q(5161) => [
       q(Nyigina),
       ],
-   q(5173) => [
+   q(5162) => [
       q(Ama (Sudan)),
       ],
-   q(5174) => [
+   q(5163) => [
       q(Nyanga),
       ],
-   q(5175) => [
+   q(5164) => [
       q(Nyaneka),
       ],
-   q(5176) => [
+   q(5165) => [
       q(Nyeu),
       ],
-   q(5177) => [
+   q(5166) => [
       q(Nyang'i),
       ],
-   q(5178) => [
+   q(5167) => [
       q(Nayini),
       ],
-   q(5179) => [
+   q(5168) => [
       q(Nyiha (Malawi)),
       ],
-   q(5180) => [
+   q(5169) => [
       q(Nyunga),
       ],
-   q(5181) => [
+   q(5170) => [
       q(Nyawaygi),
       ],
-   q(5182) => [
+   q(5171) => [
       q(Nyungwe),
       ],
-   q(5183) => [
+   q(5172) => [
       q(Nyulnyul),
       ],
-   q(5184) => [
+   q(5173) => [
       q(Nyaw),
       ],
-   q(5185) => [
+   q(5174) => [
       q(Nganyaywana),
       ],
-   q(5186) => [
+   q(5175) => [
       q(Nyakyusa-Ngonde),
       ],
-   q(5187) => [
+   q(5176) => [
       q(Tigon Mbembe),
       ],
-   q(5188) => [
+   q(5177) => [
       q(Njebi),
       ],
-   q(5189) => [
+   q(5178) => [
       q(Nzakara),
       ],
-   q(5190) => [
+   q(5179) => [
       q(Zeme Naga),
       ],
-   q(5191) => [
+   q(5180) => [
       q(New Zealand Sign Language),
       ],
-   q(5192) => [
+   q(5181) => [
       q(Teke-Nzikou),
       ],
-   q(5193) => [
+   q(5182) => [
       q(Nzakambay),
       ],
-   q(5194) => [
+   q(5183) => [
       q(Nanga Dama Dogon),
       ],
-   q(5195) => [
+   q(5184) => [
       q(Orok),
       ],
-   q(5196) => [
+   q(5185) => [
       q(Oroch),
       ],
-   q(5197) => [
+   q(5186) => [
       q(Old Aramaic (up to 700 BCE)),
       q(Ancient Aramaic (up to 700 BCE)),
       ],
-   q(5198) => [
+   q(5187) => [
       q(Old Avar),
       ],
-   q(5199) => [
+   q(5188) => [
       q(Obispeno),
       ],
-   q(5200) => [
+   q(5189) => [
       q(Southern Bontok),
       ],
-   q(5201) => [
+   q(5190) => [
       q(Oblo),
       ],
-   q(5202) => [
+   q(5191) => [
       q(Moabite),
       ],
-   q(5203) => [
+   q(5192) => [
       q(Obo Manobo),
       ],
-   q(5204) => [
+   q(5193) => [
       q(Old Burmese),
       ],
-   q(5205) => [
+   q(5194) => [
       q(Old Breton),
       ],
-   q(5206) => [
+   q(5195) => [
       q(Obulom),
       ],
-   q(5207) => [
+   q(5196) => [
       q(Ocaina),
       ],
-   q(5208) => [
+   q(5197) => [
       q(Old Chinese),
       ],
-   q(5209) => [
+   q(5198) => [
       q(Old Cornish),
       ],
-   q(5210) => [
+   q(5199) => [
       q(Atzingo Matlatzinca),
       ],
-   q(5211) => [
+   q(5200) => [
       q(Odut),
       ],
-   q(5212) => [
+   q(5201) => [
       q(Od),
       ],
-   q(5213) => [
+   q(5202) => [
       q(Old Dutch),
       ],
-   q(5214) => [
+   q(5203) => [
       q(Odual),
       ],
-   q(5215) => [
+   q(5204) => [
       q(Ofo),
       ],
-   q(5216) => [
+   q(5205) => [
       q(Old Frisian),
       ],
-   q(5217) => [
+   q(5206) => [
       q(Efutop),
       ],
-   q(5218) => [
+   q(5207) => [
       q(Ogbia),
       ],
-   q(5219) => [
+   q(5208) => [
       q(Ogbah),
       ],
-   q(5220) => [
+   q(5209) => [
       q(Old Georgian),
       ],
-   q(5221) => [
+   q(5210) => [
       q(Ogbogolo),
       ],
-   q(5222) => [
+   q(5211) => [
       q(Khana),
       ],
-   q(5223) => [
+   q(5212) => [
       q(Ogbronuagum),
       ],
-   q(5224) => [
+   q(5213) => [
       q(Old Hittite),
       ],
-   q(5225) => [
+   q(5214) => [
       q(Old Hungarian),
       ],
-   q(5226) => [
+   q(5215) => [
       q(Oirata),
       ],
-   q(5227) => [
+   q(5216) => [
       q(Inebu One),
       ],
-   q(5228) => [
+   q(5217) => [
       q(Northwestern Ojibwa),
       ],
-   q(5229) => [
+   q(5218) => [
       q(Central Ojibwa),
       ],
-   q(5230) => [
+   q(5219) => [
       q(Eastern Ojibwa),
       ],
-   q(5231) => [
+   q(5220) => [
       q(Old Japanese),
       ],
-   q(5232) => [
+   q(5221) => [
       q(Severn Ojibwa),
       ],
-   q(5233) => [
+   q(5222) => [
       q(Ontong Java),
       ],
-   q(5234) => [
+   q(5223) => [
       q(Western Ojibwa),
       ],
-   q(5235) => [
+   q(5224) => [
       q(Okanagan),
       ],
-   q(5236) => [
+   q(5225) => [
       q(Okobo),
       ],
-   q(5237) => [
+   q(5226) => [
       q(Okodia),
       ],
-   q(5238) => [
+   q(5227) => [
       q(Okpe (Southwestern Edo)),
       ],
-   q(5239) => [
+   q(5228) => [
       q(Koko Babangk),
       ],
-   q(5240) => [
+   q(5229) => [
       q(Koresh-e Rostam),
       ],
-   q(5241) => [
+   q(5230) => [
       q(Okiek),
       ],
-   q(5242) => [
+   q(5231) => [
       q(Oko-Juwoi),
       ],
-   q(5243) => [
+   q(5232) => [
       q(Kwamtim One),
       ],
-   q(5244) => [
+   q(5233) => [
       q(Old Kentish Sign Language),
       ],
-   q(5245) => [
+   q(5234) => [
       q(Middle Korean (10th-16th cent.)),
       ],
-   q(5246) => [
+   q(5235) => [
       q(Oki-No-Erabu),
       ],
-   q(5247) => [
+   q(5236) => [
       q(Old Korean (3rd-9th cent.)),
       ],
-   q(5248) => [
+   q(5237) => [
       q(Kirike),
       ],
-   q(5249) => [
+   q(5238) => [
       q(Oko-Eni-Osayen),
       ],
-   q(5250) => [
+   q(5239) => [
       q(Oku),
       ],
-   q(5251) => [
+   q(5240) => [
       q(Orokaiva),
       ],
-   q(5252) => [
+   q(5241) => [
       q(Okpe (Northwestern Edo)),
       ],
-   q(5253) => [
+   q(5242) => [
       q(Walungge),
       ],
-   q(5254) => [
+   q(5243) => [
       q(Mochi),
       ],
-   q(5255) => [
+   q(5244) => [
       q(Olekha),
       ],
-   q(5256) => [
+   q(5245) => [
       q(Olkol),
       ],
-   q(5257) => [
+   q(5246) => [
       q(Oloma),
       ],
-   q(5258) => [
+   q(5247) => [
       q(Livvi),
       ],
-   q(5259) => [
+   q(5248) => [
       q(Olrat),
       ],
-   q(5260) => [
+   q(5249) => [
       q(Old Lithuanian),
       ],
-   q(5261) => [
+   q(5250) => [
       q(Omaha-Ponca),
       ],
-   q(5262) => [
+   q(5251) => [
       q(East Ambae),
       ],
-   q(5263) => [
+   q(5252) => [
       q(Mochica),
       ],
-   q(5264) => [
+   q(5253) => [
       q(Omejes),
       ],
-   q(5265) => [
+   q(5254) => [
       q(Omagua),
       ],
-   q(5266) => [
+   q(5255) => [
       q(Omi),
       ],
-   q(5267) => [
+   q(5256) => [
       q(Omok),
       ],
-   q(5268) => [
+   q(5257) => [
       q(Ombo),
       ],
-   q(5269) => [
+   q(5258) => [
       q(Minoan),
       ],
-   q(5270) => [
+   q(5259) => [
       q(Utarmbung),
       ],
-   q(5271) => [
+   q(5260) => [
       q(Old Manipuri),
       ],
-   q(5272) => [
+   q(5261) => [
       q(Old Marathi),
       ],
-   q(5273) => [
+   q(5262) => [
       q(Omotik),
       ],
-   q(5274) => [
+   q(5263) => [
       q(Omurano),
       ],
-   q(5275) => [
+   q(5264) => [
       q(South Tairora),
       ],
-   q(5276) => [
+   q(5265) => [
       q(Old Mon),
       ],
-   q(5277) => [
+   q(5266) => [
       q(Ona),
       ],
-   q(5278) => [
+   q(5267) => [
       q(Lingao),
       ],
-   q(5279) => [
+   q(5268) => [
       q(Oneida),
       ],
-   q(5280) => [
+   q(5269) => [
       q(Olo),
       ],
-   q(5281) => [
+   q(5270) => [
       q(Onin),
       ],
-   q(5282) => [
+   q(5271) => [
       q(Onjob),
       ],
-   q(5283) => [
+   q(5272) => [
       q(Kabore One),
       ],
-   q(5284) => [
+   q(5273) => [
       q(Onobasulu),
       ],
-   q(5285) => [
+   q(5274) => [
       q(Onondaga),
       ],
-   q(5286) => [
+   q(5275) => [
       q(Sartang),
       ],
-   q(5287) => [
+   q(5276) => [
       q(Northern One),
       ],
-   q(5288) => [
+   q(5277) => [
       q(Ono),
       ],
-   q(5289) => [
+   q(5278) => [
       q(Ontenu),
       ],
-   q(5290) => [
+   q(5279) => [
       q(Unua),
       ],
-   q(5291) => [
+   q(5280) => [
       q(Old Nubian),
       ],
-   q(5292) => [
+   q(5281) => [
       q(Onin Based Pidgin),
       ],
-   q(5293) => [
+   q(5282) => [
       q(Tohono O'odham),
       ],
-   q(5294) => [
+   q(5283) => [
       q(Ong),
       ],
-   q(5295) => [
+   q(5284) => [
       q(Onge),
       ],
-   q(5296) => [
+   q(5285) => [
       q(Oorlams),
       ],
-   q(5297) => [
+   q(5286) => [
       q(Old Ossetic),
       ],
-   q(5298) => [
+   q(5287) => [
       q(Okpamheri),
       ],
-   q(5299) => [
+   q(5288) => [
       q(Kopkaka),
       ],
-   q(5300) => [
+   q(5289) => [
       q(Oksapmin),
       ],
-   q(5301) => [
+   q(5290) => [
       q(Opao),
       ],
-   q(5302) => [
+   q(5291) => [
       q(Opata),
       ],
-   q(5303) => [
+   q(5292) => [
       q(Ofaye),
       ],
-   q(5304) => [
+   q(5293) => [
       q(Oroha),
       ],
-   q(5305) => [
+   q(5294) => [
       q(Orma),
       ],
-   q(5306) => [
+   q(5295) => [
       q(Orejon),
       ],
-   q(5307) => [
+   q(5296) => [
       q(Oring),
       ],
-   q(5308) => [
+   q(5297) => [
       q(Oroqen),
       ],
-   q(5309) => [
+   q(5298) => [
       q(Orang Kanaq),
       ],
-   q(5310) => [
+   q(5299) => [
       q(Orokolo),
       ],
-   q(5311) => [
+   q(5300) => [
       q(Oruma),
       ],
-   q(5312) => [
+   q(5301) => [
       q(Orang Seletar),
       ],
-   q(5313) => [
+   q(5302) => [
       q(Adivasi Oriya),
       ],
-   q(5314) => [
+   q(5303) => [
       q(Ormuri),
       ],
-   q(5315) => [
+   q(5304) => [
       q(Old Russian),
       ],
-   q(5316) => [
+   q(5305) => [
       q(Oro Win),
       ],
-   q(5317) => [
+   q(5306) => [
       q(Oro),
       ],
-   q(5318) => [
+   q(5307) => [
       q(Oriya (individual language)),
       ],
-   q(5319) => [
+   q(5308) => [
       q(Ormu),
       ],
-   q(5320) => [
+   q(5309) => [
       q(Oscan),
       ],
-   q(5321) => [
+   q(5310) => [
       q(Osing),
       ],
-   q(5322) => [
+   q(5311) => [
       q(Ososo),
       ],
-   q(5323) => [
+   q(5312) => [
       q(Old Spanish),
       ],
-   q(5324) => [
+   q(5313) => [
       q(Osatu),
       ],
-   q(5325) => [
+   q(5314) => [
       q(Southern One),
       ],
-   q(5326) => [
+   q(5315) => [
       q(Old Saxon),
       ],
-   q(5327) => [
+   q(5316) => [
       q(Old Tibetan),
       ],
-   q(5328) => [
+   q(5317) => [
       q(Ot Danum),
       ],
-   q(5329) => [
+   q(5318) => [
       q(Mezquital Otomi),
       ],
-   q(5330) => [
+   q(5319) => [
       q(Oti),
       ],
-   q(5331) => [
+   q(5320) => [
       q(Old Turkish),
       ],
-   q(5332) => [
+   q(5321) => [
       q(Tilapa Otomi),
       ],
-   q(5333) => [
+   q(5322) => [
       q(Eastern Highland Otomi),
       ],
-   q(5334) => [
+   q(5323) => [
       q(Tenango Otomi),
       ],
-   q(5335) => [
+   q(5324) => [
       q(Queretaro Otomi),
       ],
-   q(5336) => [
+   q(5325) => [
       q(Otoro),
       ],
-   q(5337) => [
+   q(5326) => [
       q(Estado de Mexico Otomi),
       ],
-   q(5338) => [
+   q(5327) => [
       q(Temoaya Otomi),
       ],
-   q(5339) => [
+   q(5328) => [
       q(Otuke),
       ],
-   q(5340) => [
+   q(5329) => [
       q(Ottawa),
       ],
-   q(5341) => [
+   q(5330) => [
       q(Texcatepec Otomi),
       ],
-   q(5342) => [
+   q(5331) => [
       q(Old Tamil),
       ],
-   q(5343) => [
+   q(5332) => [
       q(Ixtenco Otomi),
       ],
-   q(5344) => [
+   q(5333) => [
       q(Tagargrent),
       ],
-   q(5345) => [
+   q(5334) => [
       q(Glio-Oubi),
       ],
-   q(5346) => [
+   q(5335) => [
       q(Oune),
       ],
-   q(5347) => [
+   q(5336) => [
       q(Old Uighur),
       ],
-   q(5348) => [
+   q(5337) => [
       q(Ouma),
       ],
-   q(5349) => [
-      q(!O!ung),
-      ],
-   q(5350) => [
+   q(5338) => [
       q(Owiniga),
       ],
-   q(5351) => [
+   q(5339) => [
       q(Old Welsh),
       ],
-   q(5352) => [
+   q(5340) => [
       q(Oy),
       ],
-   q(5353) => [
+   q(5341) => [
       q(Oyda),
       ],
-   q(5354) => [
+   q(5342) => [
       q(Wayampi),
       ],
-   q(5355) => [
+   q(5343) => [
       q(Oya'oya),
       ],
-   q(5356) => [
+   q(5344) => [
       q(Koonzime),
       ],
-   q(5357) => [
+   q(5345) => [
       q(Parecis),
       ],
-   q(5358) => [
+   q(5346) => [
       q(Pacoh),
       ],
-   q(5359) => [
+   q(5347) => [
       q(Paumari),
       ],
-   q(5360) => [
+   q(5348) => [
       q(Pagibete),
       ],
-   q(5361) => [
+   q(5349) => [
       q(Paranawat),
       ],
-   q(5362) => [
+   q(5350) => [
       q(Tenharim),
       ],
-   q(5363) => [
+   q(5351) => [
       q(Pe),
       ],
-   q(5364) => [
+   q(5352) => [
       q(Parakana),
       ],
-   q(5365) => [
+   q(5353) => [
       q(Northern Paiute),
       ],
-   q(5366) => [
+   q(5354) => [
       q(Parya),
       ],
-   q(5367) => [
+   q(5355) => [
       q(Panamint),
       q(Timbisha),
       ],
-   q(5368) => [
+   q(5356) => [
       q(Papasena),
       ],
-   q(5369) => [
+   q(5357) => [
       q(Papitalai),
       ],
-   q(5370) => [
+   q(5358) => [
       q(Pakaasnovos),
       ],
-   q(5371) => [
+   q(5359) => [
       q(Pawnee),
       ],
-   q(5372) => [
+   q(5360) => [
       q(Pankarare),
       ],
-   q(5373) => [
+   q(5361) => [
       q(Pech),
       ],
-   q(5374) => [
+   q(5362) => [
       q(Pankararu),
       ],
-   q(5375) => [
+   q(5363) => [
       q(Paez),
       ],
-   q(5376) => [
+   q(5364) => [
       q(Patamona),
       ],
-   q(5377) => [
+   q(5365) => [
       q(Mezontla Popoloca),
       ],
-   q(5378) => [
+   q(5366) => [
       q(Coyotepec Popoloca),
       ],
-   q(5379) => [
+   q(5367) => [
       q(Paraujano),
       ],
-   q(5380) => [
+   q(5368) => [
       q(E'napa Woromaipu),
       ],
-   q(5381) => [
+   q(5369) => [
       q(Parkwa),
       ],
-   q(5382) => [
+   q(5370) => [
       q(Mak (Nigeria)),
       ],
-   q(5383) => [
+   q(5371) => [
       q(Kpasam),
       ],
-   q(5384) => [
+   q(5372) => [
       q(Papel),
       ],
-   q(5385) => [
+   q(5373) => [
       q(Badyara),
       ],
-   q(5386) => [
+   q(5374) => [
       q(Pangwa),
       ],
-   q(5387) => [
+   q(5375) => [
       q(Central Pame),
       ],
-   q(5388) => [
+   q(5376) => [
       q(Southern Pashto),
       ],
-   q(5389) => [
+   q(5377) => [
       q(Northern Pashto),
       ],
-   q(5390) => [
+   q(5378) => [
       q(Pnar),
       ],
-   q(5391) => [
-      q(Pyu),
+   q(5379) => [
+      q(Pyu (Papua New Guinea)),
       ],
-   q(5392) => [
+   q(5380) => [
       q(Santa Ines Ahuatempan Popoloca),
       ],
-   q(5393) => [
+   q(5381) => [
       q(Pear),
       ],
-   q(5394) => [
+   q(5382) => [
       q(Bouyei),
       ],
-   q(5395) => [
+   q(5383) => [
       q(Picard),
       ],
-   q(5396) => [
+   q(5384) => [
       q(Ruching Palaung),
       ],
-   q(5397) => [
+   q(5385) => [
       q(Paliyan),
       ],
-   q(5398) => [
+   q(5386) => [
       q(Paniya),
       ],
-   q(5399) => [
+   q(5387) => [
       q(Pardhan),
       ],
-   q(5400) => [
+   q(5388) => [
       q(Duruwa),
       ],
-   q(5401) => [
+   q(5389) => [
       q(Parenga),
       ],
-   q(5402) => [
+   q(5390) => [
       q(Paite Chin),
       ],
-   q(5403) => [
+   q(5391) => [
       q(Pardhi),
       ],
-   q(5404) => [
+   q(5392) => [
       q(Nigerian Pidgin),
       ],
-   q(5405) => [
+   q(5393) => [
       q(Piti),
       ],
-   q(5406) => [
+   q(5394) => [
       q(Pacahuara),
       ],
-   q(5407) => [
+   q(5395) => [
       q(Pyapun),
       ],
-   q(5408) => [
+   q(5396) => [
       q(Anam),
       ],
-   q(5409) => [
+   q(5397) => [
       q(Pennsylvania German),
       ],
-   q(5410) => [
+   q(5398) => [
       q(Pa Di),
       ],
-   q(5411) => [
+   q(5399) => [
       q(Podena),
       q(Fedan),
       ],
-   q(5412) => [
+   q(5400) => [
       q(Padoe),
       ],
-   q(5413) => [
+   q(5401) => [
       q(Plautdietsch),
       ],
-   q(5414) => [
+   q(5402) => [
       q(Kayan),
       ],
-   q(5415) => [
+   q(5403) => [
       q(Peranakan Indonesian),
       ],
-   q(5416) => [
+   q(5404) => [
       q(Eastern Pomo),
       ],
-   q(5417) => [
+   q(5405) => [
       q(Mala (Papua New Guinea)),
       ],
-   q(5418) => [
+   q(5406) => [
       q(Taje),
       ],
-   q(5419) => [
+   q(5407) => [
       q(Northeastern Pomo),
       ],
-   q(5420) => [
+   q(5408) => [
       q(Pengo),
       ],
-   q(5421) => [
+   q(5409) => [
       q(Bonan),
       ],
-   q(5422) => [
+   q(5410) => [
       q(Chichimeca-Jonaz),
       ],
-   q(5423) => [
+   q(5411) => [
       q(Northern Pomo),
       ],
-   q(5424) => [
+   q(5412) => [
       q(Penchal),
       ],
-   q(5425) => [
+   q(5413) => [
       q(Pekal),
       ],
-   q(5426) => [
+   q(5414) => [
       q(Phende),
       ],
-   q(5427) => [
+   q(5415) => [
       q(Kunja),
       ],
-   q(5428) => [
+   q(5416) => [
       q(Southern Pomo),
       ],
-   q(5429) => [
+   q(5417) => [
       q(Iranian Persian),
       ],
-   q(5430) => [
+   q(5418) => [
       q(Pemono),
       ],
-   q(5431) => [
+   q(5419) => [
       q(Petats),
       ],
-   q(5432) => [
+   q(5420) => [
       q(Petjo),
       ],
-   q(5433) => [
+   q(5421) => [
       q(Eastern Penan),
       ],
-   q(5434) => [
+   q(5422) => [
       q(Paafang),
       ],
-   q(5435) => [
+   q(5423) => [
       q(Peere),
       ],
-   q(5436) => [
+   q(5424) => [
       q(Pfaelzisch),
       ],
-   q(5437) => [
+   q(5425) => [
       q(Sudanese Creole Arabic),
       ],
-   q(5438) => [
+   q(5426) => [
+      q(Gandhari),
+      ],
+   q(5427) => [
       q(Pangwali),
       ],
-   q(5439) => [
+   q(5428) => [
       q(Pagi),
       ],
-   q(5440) => [
+   q(5429) => [
       q(Rerep),
       ],
-   q(5441) => [
+   q(5430) => [
       q(Primitive Irish),
       ],
-   q(5442) => [
+   q(5431) => [
       q(Paelignian),
       ],
-   q(5443) => [
+   q(5432) => [
       q(Pangseng),
       ],
-   q(5444) => [
+   q(5433) => [
       q(Pagu),
       ],
-   q(5445) => [
+   q(5434) => [
       q(Pa-Hng),
       ],
-   q(5446) => [
+   q(5435) => [
       q(Phudagi),
       ],
-   q(5447) => [
+   q(5436) => [
       q(Phuong),
       ],
-   q(5448) => [
+   q(5437) => [
       q(Phukha),
       ],
-   q(5449) => [
+   q(5438) => [
       q(Phake),
       ],
-   q(5450) => [
+   q(5439) => [
       q(Phalura),
       q(Palula),
       ],
-   q(5451) => [
+   q(5440) => [
       q(Phimbi),
       ],
-   q(5452) => [
+   q(5441) => [
       q(Phunoi),
       ],
-   q(5453) => [
+   q(5442) => [
       q(Phana'),
       ],
-   q(5454) => [
+   q(5443) => [
       q(Pahari-Potwari),
       ],
-   q(5455) => [
+   q(5444) => [
       q(Phu Thai),
       ],
-   q(5456) => [
+   q(5445) => [
       q(Phuan),
       ],
-   q(5457) => [
+   q(5446) => [
       q(Pahlavani),
       ],
-   q(5458) => [
+   q(5447) => [
       q(Phangduwali),
       ],
-   q(5459) => [
+   q(5448) => [
       q(Pima Bajo),
       ],
-   q(5460) => [
+   q(5449) => [
       q(Yine),
       ],
-   q(5461) => [
+   q(5450) => [
       q(Pinji),
       ],
-   q(5462) => [
+   q(5451) => [
       q(Piaroa),
       ],
-   q(5463) => [
+   q(5452) => [
       q(Piro),
       ],
-   q(5464) => [
+   q(5453) => [
       q(Pingelapese),
       ],
-   q(5465) => [
+   q(5454) => [
       q(Pisabo),
       ],
-   q(5466) => [
+   q(5455) => [
       q(Pitcairn-Norfolk),
       ],
-   q(5467) => [
+   q(5456) => [
       q(Pini),
       ],
-   q(5468) => [
+   q(5457) => [
       q(Pijao),
       ],
-   q(5469) => [
+   q(5458) => [
       q(Yom),
       ],
-   q(5470) => [
+   q(5459) => [
       q(Powhatan),
       ],
-   q(5471) => [
+   q(5460) => [
       q(Piame),
       ],
-   q(5472) => [
+   q(5461) => [
       q(Piapoco),
       ],
-   q(5473) => [
+   q(5462) => [
       q(Pero),
       ],
-   q(5474) => [
+   q(5463) => [
       q(Piratapuyo),
       ],
-   q(5475) => [
+   q(5464) => [
       q(Pijin),
       ],
-   q(5476) => [
+   q(5465) => [
       q(Pitta Pitta),
       ],
-   q(5477) => [
+   q(5466) => [
       q(Pintupi-Luritja),
       ],
-   q(5478) => [
+   q(5467) => [
       q(Pileni),
       q(Vaeakau-Taumako),
       ],
-   q(5479) => [
+   q(5468) => [
       q(Pimbwe),
       ],
-   q(5480) => [
+   q(5469) => [
       q(Piu),
       ],
-   q(5481) => [
+   q(5470) => [
       q(Piya-Kwonci),
       ],
-   q(5482) => [
+   q(5471) => [
       q(Pije),
       ],
-   q(5483) => [
+   q(5472) => [
       q(Pitjantjatjara),
       ],
-   q(5484) => [
+   q(5473) => [
       q(Ardhamagadhi Prakrit),
       ],
-   q(5485) => [
+   q(5474) => [
       q(Pokomo),
       q(Kipfokomo),
       ],
-   q(5486) => [
+   q(5475) => [
       q(Paekche),
       ],
-   q(5487) => [
+   q(5476) => [
       q(Pak-Tong),
       ],
-   q(5488) => [
+   q(5477) => [
       q(Pankhu),
       ],
-   q(5489) => [
+   q(5478) => [
       q(Pakanha),
       ],
-   q(5490) => [
+   q(5479) => [
       q(Pokoot),
       ],
-   q(5491) => [
+   q(5480) => [
       q(Pukapuka),
       ],
-   q(5492) => [
+   q(5481) => [
       q(Attapady Kurumba),
       ],
-   q(5493) => [
+   q(5482) => [
       q(Pakistan Sign Language),
       ],
-   q(5494) => [
+   q(5483) => [
       q(Maleng),
       ],
-   q(5495) => [
+   q(5484) => [
       q(Paku),
       ],
-   q(5496) => [
+   q(5485) => [
       q(Miani),
       ],
-   q(5497) => [
+   q(5486) => [
       q(Polonombauk),
       ],
-   q(5498) => [
+   q(5487) => [
       q(Central Palawano),
       ],
-   q(5499) => [
+   q(5488) => [
       q(Polari),
       ],
-   q(5500) => [
+   q(5489) => [
       q(Palu'e),
       ],
-   q(5501) => [
+   q(5490) => [
       q(Pilaga),
       ],
-   q(5502) => [
+   q(5491) => [
       q(Paulohi),
       ],
-   q(5503) => [
+   q(5492) => [
       q(Polci),
       ],
-   q(5504) => [
+   q(5493) => [
       q(Kohistani Shina),
       ],
-   q(5505) => [
+   q(5494) => [
       q(Shwe Palaung),
       ],
-   q(5506) => [
+   q(5495) => [
       q(Palenquero),
       ],
-   q(5507) => [
+   q(5496) => [
       q(Oluta Popoluca),
       ],
-   q(5508) => [
+   q(5497) => [
       q(Palpa),
       ],
-   q(5509) => [
+   q(5498) => [
       q(Palaic),
       ],
-   q(5510) => [
+   q(5499) => [
       q(Palaka Senoufo),
       ],
-   q(5511) => [
+   q(5500) => [
+      q(San Marcos Tlacoyalco Popoloca),
       q(San Marcos Tlalcoyalco Popoloca),
       ],
-   q(5512) => [
+   q(5501) => [
       q(Plateau Malagasy),
       ],
-   q(5513) => [
+   q(5502) => [
       q(Palikur),
       ],
-   q(5514) => [
+   q(5503) => [
       q(Southwest Palawano),
       ],
-   q(5515) => [
+   q(5504) => [
       q(Brooke's Point Palawano),
       ],
-   q(5516) => [
+   q(5505) => [
       q(Bolyu),
       ],
-   q(5517) => [
+   q(5506) => [
       q(Paluan),
       ],
-   q(5518) => [
+   q(5507) => [
       q(Paama),
       ],
-   q(5519) => [
+   q(5508) => [
       q(Pambia),
       ],
-   q(5520) => [
+   q(5509) => [
       q(Palumata),
       ],
-   q(5521) => [
+   q(5510) => [
       q(Pallanganmiddang),
       ],
-   q(5522) => [
+   q(5511) => [
       q(Pwaamei),
       ],
-   q(5523) => [
+   q(5512) => [
       q(Pamona),
       ],
-   q(5524) => [
+   q(5513) => [
       q(Maharastri Prakrit),
       ],
-   q(5525) => [
+   q(5514) => [
       q(Northern Pumi),
       ],
-   q(5526) => [
+   q(5515) => [
       q(Southern Pumi),
       ],
-   q(5527) => [
+   q(5516) => [
       q(Pamlico),
       ],
-   q(5528) => [
+   q(5517) => [
       q(Lingua Franca),
       ],
-   q(5529) => [
+   q(5518) => [
       q(Pomo),
       ],
-   q(5530) => [
+   q(5519) => [
       q(Pam),
       ],
-   q(5531) => [
+   q(5520) => [
       q(Pom),
       ],
-   q(5532) => [
+   q(5521) => [
       q(Northern Pame),
       ],
-   q(5533) => [
+   q(5522) => [
       q(Paynamar),
       ],
-   q(5534) => [
+   q(5523) => [
       q(Piemontese),
       ],
-   q(5535) => [
+   q(5524) => [
       q(Tuamotuan),
       ],
-   q(5536) => [
-      q(Mirpur Panjabi),
-      ],
-   q(5537) => [
+   q(5525) => [
       q(Plains Miwok),
       ],
-   q(5538) => [
+   q(5526) => [
       q(Poumei Naga),
       ],
-   q(5539) => [
+   q(5527) => [
       q(Papuan Malay),
       ],
-   q(5540) => [
+   q(5528) => [
       q(Southern Pame),
       ],
-   q(5541) => [
+   q(5529) => [
       q(Punan Bah-Biau),
       ],
-   q(5542) => [
+   q(5530) => [
       q(Western Panjabi),
       ],
-   q(5543) => [
+   q(5531) => [
       q(Pannei),
       ],
-   q(5544) => [
+   q(5532) => [
       q(Western Penan),
       ],
-   q(5545) => [
+   q(5533) => [
       q(Pongu),
       ],
-   q(5546) => [
+   q(5534) => [
       q(Penrhyn),
       ],
-   q(5547) => [
+   q(5535) => [
       q(Aoheng),
       ],
-   q(5548) => [
+   q(5536) => [
       q(Pinjarup),
       ],
-   q(5549) => [
+   q(5537) => [
       q(Paunaka),
       ],
-   q(5550) => [
+   q(5538) => [
       q(Paleni),
       ],
-   q(5551) => [
+   q(5539) => [
       q(Punan Batu 1),
       ],
-   q(5552) => [
+   q(5540) => [
       q(Pinai-Hagahai),
       ],
-   q(5553) => [
+   q(5541) => [
       q(Panobo),
       ],
-   q(5554) => [
+   q(5542) => [
       q(Pancana),
       ],
-   q(5555) => [
+   q(5543) => [
       q(Pana (Burkina Faso)),
       ],
-   q(5556) => [
+   q(5544) => [
       q(Panim),
       ],
-   q(5557) => [
+   q(5545) => [
       q(Ponosakan),
       ],
-   q(5558) => [
+   q(5546) => [
       q(Pontic),
       ],
-   q(5559) => [
+   q(5547) => [
       q(Jiongnai Bunu),
       ],
-   q(5560) => [
+   q(5548) => [
       q(Pinigura),
       ],
-   q(5561) => [
+   q(5549) => [
       q(Panytyima),
       ],
-   q(5562) => [
+   q(5550) => [
       q(Phong-Kniang),
       ],
-   q(5563) => [
+   q(5551) => [
       q(Pinyin),
       ],
-   q(5564) => [
+   q(5552) => [
       q(Pana (Central African Republic)),
       ],
-   q(5565) => [
+   q(5553) => [
       q(Poqomam),
       ],
-   q(5566) => [
+   q(5554) => [
       q(Ponares),
       ],
-   q(5567) => [
+   q(5555) => [
       q(San Juan Atzingo Popoloca),
       ],
-   q(5568) => [
+   q(5556) => [
       q(Poke),
       ],
-   q(5569) => [
+   q(5557) => [
       q(Potiguara),
       ],
-   q(5570) => [
+   q(5558) => [
       q(Poqomchi'),
       ],
-   q(5571) => [
+   q(5559) => [
       q(Highland Popoluca),
       ],
-   q(5572) => [
+   q(5560) => [
       q(Pokanga),
       ],
-   q(5573) => [
+   q(5561) => [
       q(Southeastern Pomo),
       ],
-   q(5574) => [
+   q(5562) => [
       q(Central Pomo),
       ],
-   q(5575) => [
+   q(5563) => [
       q(Pwapwa),
       ],
-   q(5576) => [
+   q(5564) => [
       q(Texistepec Popoluca),
       ],
-   q(5577) => [
+   q(5565) => [
       q(Sayula Popoluca),
       ],
-   q(5578) => [
+   q(5566) => [
       q(Potawatomi),
       ],
-   q(5579) => [
+   q(5567) => [
       q(Upper Guinea Crioulo),
       ],
-   q(5580) => [
+   q(5568) => [
       q(San Felipe Otlaltepec Popoloca),
       ],
-   q(5581) => [
+   q(5569) => [
       q(Polabian),
       ],
-   q(5582) => [
+   q(5570) => [
       q(Pogolo),
       ],
-   q(5583) => [
+   q(5571) => [
       q(Pao),
       ],
-   q(5584) => [
+   q(5572) => [
       q(Papi),
       ],
-   q(5585) => [
+   q(5573) => [
       q(Paipai),
       ],
-   q(5586) => [
+   q(5574) => [
       q(Uma),
       ],
-   q(5587) => [
+   q(5575) => [
       q(Pipil),
       q(Nicarao),
       ],
-   q(5588) => [
+   q(5576) => [
       q(Papuma),
       ],
-   q(5589) => [
+   q(5577) => [
       q(Papapana),
       ],
-   q(5590) => [
+   q(5578) => [
       q(Folopa),
       ],
-   q(5591) => [
+   q(5579) => [
       q(Pelende),
       ],
-   q(5592) => [
+   q(5580) => [
       q(Pei),
       ],
-   q(5593) => [
+   q(5581) => [
       q(San Luis Temalacayuca Popoloca),
       ],
-   q(5594) => [
+   q(5582) => [
       q(Pare),
       ],
-   q(5595) => [
+   q(5583) => [
       q(Papora),
       ],
-   q(5596) => [
+   q(5584) => [
       q(Pa'a),
       ],
-   q(5597) => [
+   q(5585) => [
       q(Malecite-Passamaquoddy),
       ],
-   q(5598) => [
+   q(5586) => [
       q(Lua'),
       ],
-   q(5599) => [
+   q(5587) => [
       q(Parachi),
       ],
-   q(5600) => [
+   q(5588) => [
       q(Parsi-Dari),
       ],
-   q(5601) => [
+   q(5589) => [
       q(Principense),
       ],
-   q(5602) => [
+   q(5590) => [
       q(Paranan),
       ],
-   q(5603) => [
+   q(5591) => [
       q(Prussian),
       ],
-   q(5604) => [
+   q(5592) => [
       q(Porohanon),
       ],
-   q(5605) => [
+   q(5593) => [
       q(Paici),
       ],
-   q(5606) => [
+   q(5594) => [
       q(Parauk),
       ],
-   q(5607) => [
+   q(5595) => [
       q(Peruvian Sign Language),
       ],
-   q(5608) => [
+   q(5596) => [
       q(Kibiri),
       ],
-   q(5609) => [
+   q(5597) => [
       q(Prasuni),
       ],
-   q(5610) => [
+   q(5598) => [
       q(Parsi),
       ],
-   q(5611) => [
+   q(5599) => [
       q(Asheninka Perene),
       ],
-   q(5612) => [
+   q(5600) => [
       q(Puri),
       ],
-   q(5613) => [
+   q(5601) => [
       q(Dari),
       q(Afghan Persian),
       ],
-   q(5614) => [
+   q(5602) => [
       q(Phai),
       ],
-   q(5615) => [
+   q(5603) => [
       q(Puragi),
       ],
-   q(5616) => [
+   q(5604) => [
       q(Parawen),
       ],
-   q(5617) => [
+   q(5605) => [
       q(Purik),
       ],
-   q(5618) => [
+   q(5606) => [
       q(Pray 3),
       ],
-   q(5619) => [
+   q(5607) => [
       q(Providencia Sign Language),
       ],
-   q(5620) => [
+   q(5608) => [
       q(Asue Awyu),
       ],
-   q(5621) => [
+   q(5609) => [
       q(Persian Sign Language),
       ],
-   q(5622) => [
+   q(5610) => [
       q(Plains Indian Sign Language),
       ],
-   q(5623) => [
+   q(5611) => [
       q(Central Malay),
       ],
-   q(5624) => [
+   q(5612) => [
       q(Penang Sign Language),
       ],
-   q(5625) => [
+   q(5613) => [
+      q(Southwest Pashai),
       q(Southwest Pashayi),
       ],
-   q(5626) => [
+   q(5614) => [
+      q(Southeast Pashai),
       q(Southeast Pashayi),
       ],
-   q(5627) => [
+   q(5615) => [
       q(Puerto Rican Sign Language),
       ],
-   q(5628) => [
+   q(5616) => [
       q(Pauserna),
       ],
-   q(5629) => [
+   q(5617) => [
       q(Panasuan),
       ],
-   q(5630) => [
+   q(5618) => [
       q(Polish Sign Language),
       ],
-   q(5631) => [
+   q(5619) => [
       q(Philippine Sign Language),
       ],
-   q(5632) => [
+   q(5620) => [
       q(Pasi),
       ],
-   q(5633) => [
+   q(5621) => [
       q(Portuguese Sign Language),
       ],
-   q(5634) => [
+   q(5622) => [
       q(Kaulong),
       ],
-   q(5635) => [
+   q(5623) => [
       q(Central Pashto),
       ],
-   q(5636) => [
+   q(5624) => [
       q(Sauraseni Prakrit),
       ],
-   q(5637) => [
+   q(5625) => [
       q(Port Sandwich),
       ],
-   q(5638) => [
+   q(5626) => [
       q(Piscataway),
       ],
-   q(5639) => [
+   q(5627) => [
       q(Pai Tavytera),
       ],
-   q(5640) => [
+   q(5628) => [
       q(Pataxo Ha-Ha-Hae),
       ],
-   q(5641) => [
+   q(5629) => [
       q(Pintiini),
       ],
-   q(5642) => [
+   q(5630) => [
       q(Patani),
       ],
-   q(5643) => [
+   q(5631) => [
       q(Zo'e),
       ],
-   q(5644) => [
+   q(5632) => [
       q(Patep),
       ],
-   q(5645) => [
+   q(5633) => [
       q(Pattapu),
       ],
-   q(5646) => [
+   q(5634) => [
       q(Piamatsina),
       ],
-   q(5647) => [
+   q(5635) => [
       q(Enrekang),
       ],
-   q(5648) => [
+   q(5636) => [
       q(Bambam),
       ],
-   q(5649) => [
+   q(5637) => [
       q(Port Vato),
       ],
-   q(5650) => [
+   q(5638) => [
       q(Pentlatch),
       ],
-   q(5651) => [
+   q(5639) => [
       q(Pathiya),
       ],
-   q(5652) => [
+   q(5640) => [
       q(Western Highland Purepecha),
       ],
-   q(5653) => [
+   q(5641) => [
       q(Purum),
       ],
-   q(5654) => [
+   q(5642) => [
       q(Punan Merap),
       ],
-   q(5655) => [
+   q(5643) => [
       q(Punan Aput),
       ],
-   q(5656) => [
+   q(5644) => [
       q(Puelche),
       ],
-   q(5657) => [
+   q(5645) => [
       q(Punan Merah),
       ],
-   q(5658) => [
+   q(5646) => [
       q(Phuie),
       ],
-   q(5659) => [
+   q(5647) => [
       q(Puinave),
       ],
-   q(5660) => [
+   q(5648) => [
       q(Punan Tubu),
       ],
-   q(5661) => [
+   q(5649) => [
       q(Pu Ko),
       ],
-   q(5662) => [
+   q(5650) => [
       q(Puma),
       ],
-   q(5663) => [
+   q(5651) => [
       q(Puoc),
       ],
-   q(5664) => [
+   q(5652) => [
       q(Pulabu),
       ],
-   q(5665) => [
+   q(5653) => [
       q(Puquina),
       ],
-   q(5666) => [
+   q(5654) => [
       q(Purubora),
       ],
-   q(5667) => [
+   q(5655) => [
       q(Putoh),
       ],
-   q(5668) => [
+   q(5656) => [
       q(Punu),
       ],
-   q(5669) => [
+   q(5657) => [
       q(Puluwatese),
       ],
-   q(5670) => [
+   q(5658) => [
       q(Puare),
       ],
-   q(5671) => [
+   q(5659) => [
       q(Purisimeno),
       ],
-   q(5672) => [
+   q(5660) => [
       q(Pawaia),
       ],
-   q(5673) => [
+   q(5661) => [
       q(Panawa),
       ],
-   q(5674) => [
+   q(5662) => [
       q(Gapapaiwa),
       ],
-   q(5675) => [
+   q(5663) => [
       q(Patwin),
       ],
-   q(5676) => [
+   q(5664) => [
       q(Molbog),
       ],
-   q(5677) => [
+   q(5665) => [
       q(Paiwan),
       ],
-   q(5678) => [
+   q(5666) => [
       q(Pwo Western Karen),
       ],
-   q(5679) => [
+   q(5667) => [
       q(Powari),
       ],
-   q(5680) => [
+   q(5668) => [
       q(Pwo Northern Karen),
       ],
-   q(5681) => [
+   q(5669) => [
       q(Quetzaltepec Mixe),
       ],
-   q(5682) => [
+   q(5670) => [
       q(Pye Krumen),
       ],
-   q(5683) => [
+   q(5671) => [
       q(Fyam),
       ],
-   q(5684) => [
+   q(5672) => [
       q(Poyanawa),
       ],
-   q(5685) => [
+   q(5673) => [
       q(Paraguayan Sign Language),
       q(Lengua de Senas del Paraguay),
       ],
-   q(5686) => [
+   q(5674) => [
       q(Puyuma),
       ],
-   q(5687) => [
+   q(5675) => [
       q(Pyu (Myanmar)),
       ],
-   q(5688) => [
+   q(5676) => [
       q(Pyen),
       ],
-   q(5689) => [
+   q(5677) => [
       q(Para Naga),
       ],
-   q(5690) => [
+   q(5678) => [
       q(Quapaw),
       ],
-   q(5691) => [
+   q(5679) => [
       q(Huallaga Huanuco Quechua),
       ],
-   q(5692) => [
+   q(5680) => [
       q(K'iche'),
       q(Quiche),
       ],
-   q(5693) => [
+   q(5681) => [
       q(Calderon Highland Quichua),
       ],
-   q(5694) => [
+   q(5682) => [
       q(Lambayeque Quechua),
       ],
-   q(5695) => [
+   q(5683) => [
       q(Chimborazo Highland Quichua),
       ],
-   q(5696) => [
+   q(5684) => [
       q(South Bolivian Quechua),
       ],
-   q(5697) => [
+   q(5685) => [
       q(Quileute),
       ],
-   q(5698) => [
+   q(5686) => [
       q(Chachapoyas Quechua),
       ],
-   q(5699) => [
+   q(5687) => [
       q(North Bolivian Quechua),
       ],
-   q(5700) => [
+   q(5688) => [
       q(Sipacapense),
       ],
-   q(5701) => [
+   q(5689) => [
       q(Quinault),
       ],
-   q(5702) => [
+   q(5690) => [
       q(Southern Pastaza Quechua),
       ],
-   q(5703) => [
+   q(5691) => [
       q(Quinqui),
       ],
-   q(5704) => [
+   q(5692) => [
       q(Yanahuanca Pasco Quechua),
       ],
-   q(5705) => [
+   q(5693) => [
       q(Santiago del Estero Quichua),
       ],
-   q(5706) => [
+   q(5694) => [
       q(Sacapulteco),
       ],
-   q(5707) => [
+   q(5695) => [
       q(Tena Lowland Quichua),
       ],
-   q(5708) => [
+   q(5696) => [
       q(Yauyos Quechua),
       ],
-   q(5709) => [
+   q(5697) => [
       q(Ayacucho Quechua),
       ],
-   q(5710) => [
+   q(5698) => [
       q(Cusco Quechua),
       ],
-   q(5711) => [
+   q(5699) => [
       q(Ambo-Pasco Quechua),
       ],
-   q(5712) => [
+   q(5700) => [
       q(Cajamarca Quechua),
       ],
-   q(5713) => [
+   q(5701) => [
       q(Eastern Apurimac Quechua),
       ],
-   q(5714) => [
+   q(5702) => [
       q(Huamalies-Dos de Mayo Huanuco Quechua),
       ],
-   q(5715) => [
+   q(5703) => [
       q(Imbabura Highland Quichua),
       ],
-   q(5716) => [
+   q(5704) => [
       q(Loja Highland Quichua),
       ],
-   q(5717) => [
+   q(5705) => [
       q(Cajatambo North Lima Quechua),
       ],
-   q(5718) => [
+   q(5706) => [
       q(Margos-Yarowilca-Lauricocha Quechua),
       ],
-   q(5719) => [
+   q(5707) => [
       q(North Junin Quechua),
       ],
-   q(5720) => [
+   q(5708) => [
       q(Napo Lowland Quechua),
       ],
-   q(5721) => [
+   q(5709) => [
       q(Pacaraos Quechua),
       ],
-   q(5722) => [
+   q(5710) => [
       q(San Martin Quechua),
       ],
-   q(5723) => [
+   q(5711) => [
       q(Huaylla Wanca Quechua),
       ],
-   q(5724) => [
+   q(5712) => [
       q(Queyu),
       ],
-   q(5725) => [
+   q(5713) => [
       q(Northern Pastaza Quichua),
       ],
-   q(5726) => [
+   q(5714) => [
       q(Corongo Ancash Quechua),
       ],
-   q(5727) => [
+   q(5715) => [
       q(Classical Quechua),
       ],
-   q(5728) => [
+   q(5716) => [
       q(Huaylas Ancash Quechua),
       ],
-   q(5729) => [
+   q(5717) => [
       q(Kuman (Russia)),
       ],
-   q(5730) => [
+   q(5718) => [
       q(Sihuas Ancash Quechua),
       ],
-   q(5731) => [
+   q(5719) => [
       q(Kwalhioqua-Tlatskanai),
       ],
-   q(5732) => [
+   q(5720) => [
       q(Chiquian Ancash Quechua),
       ],
-   q(5733) => [
+   q(5721) => [
       q(Chincha Quechua),
       ],
-   q(5734) => [
+   q(5722) => [
       q(Panao Huanuco Quechua),
       ],
-   q(5735) => [
+   q(5723) => [
       q(Salasaca Highland Quichua),
       ],
-   q(5736) => [
+   q(5724) => [
       q(Northern Conchucos Ancash Quechua),
       ],
-   q(5737) => [
+   q(5725) => [
       q(Southern Conchucos Ancash Quechua),
       ],
-   q(5738) => [
+   q(5726) => [
       q(Puno Quechua),
       ],
-   q(5739) => [
+   q(5727) => [
       q(Qashqa'i),
       ],
-   q(5740) => [
+   q(5728) => [
       q(Canar Highland Quichua),
       ],
-   q(5741) => [
+   q(5729) => [
       q(Southern Qiang),
       ],
-   q(5742) => [
+   q(5730) => [
       q(Santa Ana de Tusi Pasco Quechua),
       ],
-   q(5743) => [
+   q(5731) => [
       q(Arequipa-La Union Quechua),
       ],
-   q(5744) => [
+   q(5732) => [
       q(Jauja Wanca Quechua),
       ],
-   q(5745) => [
+   q(5733) => [
       q(Quenya),
       ],
-   q(5746) => [
+   q(5734) => [
       q(Quiripi),
       ],
-   q(5747) => [
+   q(5735) => [
       q(Dungmali),
       ],
-   q(5748) => [
+   q(5736) => [
       q(Camling),
       ],
-   q(5749) => [
+   q(5737) => [
       q(Rasawa),
       ],
-   q(5750) => [
+   q(5738) => [
       q(Rade),
       ],
-   q(5751) => [
+   q(5739) => [
       q(Western Meohang),
       ],
-   q(5752) => [
+   q(5740) => [
       q(Logooli),
       q(Lulogooli),
       ],
-   q(5753) => [
+   q(5741) => [
       q(Rabha),
       ],
-   q(5754) => [
+   q(5742) => [
       q(Ramoaaina),
       ],
-   q(5755) => [
+   q(5743) => [
       q(Tulu-Bohuai),
       ],
-   q(5756) => [
+   q(5744) => [
       q(Ralte),
       ],
-   q(5757) => [
+   q(5745) => [
       q(Canela),
       ],
-   q(5758) => [
+   q(5746) => [
       q(Riantana),
       ],
-   q(5759) => [
+   q(5747) => [
       q(Rao),
       ],
-   q(5760) => [
+   q(5748) => [
       q(Saam),
       ],
-   q(5761) => [
+   q(5749) => [
       q(Tegali),
       ],
-   q(5762) => [
+   q(5750) => [
       q(Razajerdi),
       ],
-   q(5763) => [
+   q(5751) => [
       q(Raute),
       ],
-   q(5764) => [
+   q(5752) => [
       q(Sampang),
       ],
-   q(5765) => [
+   q(5753) => [
       q(Rawang),
       ],
-   q(5766) => [
+   q(5754) => [
       q(Rang),
       ],
-   q(5767) => [
+   q(5755) => [
       q(Rapa),
       ],
-   q(5768) => [
+   q(5756) => [
       q(Rahambuu),
       ],
-   q(5769) => [
+   q(5757) => [
       q(Rumai Palaung),
       ],
-   q(5770) => [
+   q(5758) => [
       q(Northern Bontok),
       ],
-   q(5771) => [
+   q(5759) => [
       q(Miraya Bikol),
       ],
-   q(5772) => [
+   q(5760) => [
       q(Barababaraba),
       ],
-   q(5773) => [
+   q(5761) => [
       q(Reunion Creole French),
       ],
-   q(5774) => [
+   q(5762) => [
       q(Rudbari),
       ],
-   q(5775) => [
+   q(5763) => [
       q(Rerau),
       ],
-   q(5776) => [
+   q(5764) => [
       q(Rembong),
       ],
-   q(5777) => [
+   q(5765) => [
       q(Rejang Kayan),
       ],
-   q(5778) => [
+   q(5766) => [
       q(Kara (Tanzania)),
       ],
-   q(5779) => [
+   q(5767) => [
       q(Reli),
       ],
-   q(5780) => [
+   q(5768) => [
       q(Rejang),
       ],
-   q(5781) => [
+   q(5769) => [
       q(Rendille),
       ],
-   q(5782) => [
+   q(5770) => [
       q(Remo),
       ],
-   q(5783) => [
+   q(5771) => [
       q(Rengao),
       ],
-   q(5784) => [
+   q(5772) => [
       q(Rer Bare),
       ],
-   q(5785) => [
+   q(5773) => [
       q(Reshe),
       ],
-   q(5786) => [
+   q(5774) => [
       q(Retta),
       ],
-   q(5787) => [
+   q(5775) => [
       q(Reyesano),
       ],
-   q(5788) => [
+   q(5776) => [
       q(Roria),
       ],
-   q(5789) => [
+   q(5777) => [
       q(Romano-Greek),
       ],
-   q(5790) => [
+   q(5778) => [
       q(Rangkas),
       ],
-   q(5791) => [
+   q(5779) => [
       q(Romagnol),
       ],
-   q(5792) => [
+   q(5780) => [
       q(Resigaro),
       ],
-   q(5793) => [
+   q(5781) => [
       q(Southern Roglai),
       ],
-   q(5794) => [
+   q(5782) => [
       q(Ringgou),
       ],
-   q(5795) => [
+   q(5783) => [
       q(Rohingya),
       ],
-   q(5796) => [
+   q(5784) => [
       q(Yahang),
       ],
-   q(5797) => [
+   q(5785) => [
       q(Riang (India)),
       ],
-   q(5798) => [
+   q(5786) => [
       q(Rien),
       ],
-   q(5799) => [
+   q(5787) => [
       q(Tarifit),
       ],
-   q(5800) => [
+   q(5788) => [
       q(Riang (Myanmar)),
       ],
-   q(5801) => [
+   q(5789) => [
       q(Nyaturu),
       ],
-   q(5802) => [
+   q(5790) => [
       q(Nungu),
       ],
-   q(5803) => [
+   q(5791) => [
       q(Ribun),
       ],
-   q(5804) => [
+   q(5792) => [
       q(Ritarungo),
       ],
-   q(5805) => [
+   q(5793) => [
       q(Riung),
       ],
-   q(5806) => [
+   q(5794) => [
       q(Rajong),
       ],
-   q(5807) => [
+   q(5795) => [
       q(Raji),
       ],
-   q(5808) => [
+   q(5796) => [
       q(Rajbanshi),
       ],
-   q(5809) => [
+   q(5797) => [
       q(Kraol),
       ],
-   q(5810) => [
+   q(5798) => [
       q(Rikbaktsa),
       ],
-   q(5811) => [
+   q(5799) => [
       q(Rakahanga-Manihiki),
       ],
-   q(5812) => [
+   q(5800) => [
       q(Rakhine),
       ],
-   q(5813) => [
+   q(5801) => [
       q(Marka),
       ],
-   q(5814) => [
+   q(5802) => [
       q(Rangpuri),
       q(Kamta),
       ],
-   q(5815) => [
+   q(5803) => [
       q(Arakwal),
       ],
-   q(5816) => [
+   q(5804) => [
       q(Rama),
       ],
-   q(5817) => [
+   q(5805) => [
       q(Rembarunga),
       ],
-   q(5818) => [
+   q(5806) => [
       q(Carpathian Romani),
       ],
-   q(5819) => [
+   q(5807) => [
       q(Traveller Danish),
       ],
-   q(5820) => [
+   q(5808) => [
       q(Angloromani),
       ],
-   q(5821) => [
+   q(5809) => [
       q(Kalo Finnish Romani),
       ],
-   q(5822) => [
+   q(5810) => [
       q(Traveller Norwegian),
       ],
-   q(5823) => [
+   q(5811) => [
       q(Murkim),
       ],
-   q(5824) => [
+   q(5812) => [
       q(Lomavren),
       ],
-   q(5825) => [
+   q(5813) => [
       q(Romkun),
       ],
-   q(5826) => [
+   q(5814) => [
       q(Baltic Romani),
       ],
-   q(5827) => [
+   q(5815) => [
       q(Roma),
       ],
-   q(5828) => [
+   q(5816) => [
       q(Balkan Romani),
       ],
-   q(5829) => [
+   q(5817) => [
       q(Sinte Romani),
       ],
-   q(5830) => [
+   q(5818) => [
       q(Rempi),
       ],
-   q(5831) => [
+   q(5819) => [
       q(Calo),
       ],
-   q(5832) => [
+   q(5820) => [
       q(Romanian Sign Language),
       ],
-   q(5833) => [
+   q(5821) => [
       q(Domari),
       ],
-   q(5834) => [
+   q(5822) => [
       q(Tavringer Romani),
       ],
-   q(5835) => [
+   q(5823) => [
       q(Romanova),
       ],
-   q(5836) => [
+   q(5824) => [
       q(Welsh Romani),
       ],
-   q(5837) => [
+   q(5825) => [
       q(Romam),
       ],
-   q(5838) => [
+   q(5826) => [
       q(Vlax Romani),
       ],
-   q(5839) => [
+   q(5827) => [
       q(Marma),
       ],
-   q(5840) => [
+   q(5828) => [
       q(Runa),
       ],
-   q(5841) => [
+   q(5829) => [
       q(Ruund),
       ],
-   q(5842) => [
+   q(5830) => [
       q(Ronga),
       ],
-   q(5843) => [
+   q(5831) => [
       q(Ranglong),
       ],
-   q(5844) => [
+   q(5832) => [
       q(Roon),
       ],
-   q(5845) => [
+   q(5833) => [
       q(Rongpo),
       ],
-   q(5846) => [
+   q(5834) => [
       q(Nari Nari),
       ],
-   q(5847) => [
+   q(5835) => [
       q(Rungwa),
       ],
-   q(5848) => [
+   q(5836) => [
       q(Tae'),
       ],
-   q(5849) => [
+   q(5837) => [
       q(Cacgia Roglai),
       ],
-   q(5850) => [
+   q(5838) => [
       q(Rogo),
       ],
-   q(5851) => [
+   q(5839) => [
       q(Ronji),
       ],
-   q(5852) => [
+   q(5840) => [
       q(Rombo),
       ],
-   q(5853) => [
+   q(5841) => [
       q(Northern Roglai),
       ],
-   q(5854) => [
+   q(5842) => [
       q(Romblomanon),
       ],
-   q(5855) => [
+   q(5843) => [
       q(Rotokas),
       ],
-   q(5856) => [
+   q(5844) => [
       q(Kriol),
       ],
-   q(5857) => [
+   q(5845) => [
       q(Rongga),
       ],
-   q(5858) => [
+   q(5846) => [
       q(Runga),
       ],
-   q(5859) => [
+   q(5847) => [
       q(Dela-Oenale),
       ],
-   q(5860) => [
+   q(5848) => [
       q(Repanbitip),
       ],
-   q(5861) => [
+   q(5849) => [
       q(Rapting),
       ],
-   q(5862) => [
+   q(5850) => [
       q(Ririo),
       ],
-   q(5863) => [
+   q(5851) => [
       q(Waima),
       ],
-   q(5864) => [
+   q(5852) => [
       q(Arritinngithigh),
       ],
-   q(5865) => [
+   q(5853) => [
       q(Romano-Serbian),
       ],
-   q(5866) => [
+   q(5854) => [
       q(Rennellese Sign Language),
       ],
-   q(5867) => [
+   q(5855) => [
       q(Russian Sign Language),
       ],
-   q(5868) => [
+   q(5856) => [
       q(Rungtu Chin),
       ],
-   q(5869) => [
+   q(5857) => [
       q(Ratahan),
       ],
-   q(5870) => [
+   q(5858) => [
       q(Rotuman),
       ],
-   q(5871) => [
+   q(5859) => [
+      q(Yurats),
+      ],
+   q(5860) => [
       q(Rathawi),
       ],
-   q(5872) => [
+   q(5861) => [
       q(Gungu),
       ],
-   q(5873) => [
+   q(5862) => [
       q(Ruuli),
       ],
-   q(5874) => [
+   q(5863) => [
       q(Rusyn),
       ],
-   q(5875) => [
+   q(5864) => [
       q(Luguru),
       ],
-   q(5876) => [
+   q(5865) => [
       q(Roviana),
       ],
-   q(5877) => [
+   q(5866) => [
       q(Ruga),
       ],
-   q(5878) => [
+   q(5867) => [
       q(Rufiji),
       ],
-   q(5879) => [
+   q(5868) => [
       q(Che),
       ],
-   q(5880) => [
+   q(5869) => [
       q(Istro Romanian),
       ],
-   q(5881) => [
+   q(5870) => [
       q(Megleno Romanian),
       ],
-   q(5882) => [
+   q(5871) => [
       q(Rutul),
       ],
-   q(5883) => [
+   q(5872) => [
       q(Lanas Lobu),
       ],
-   q(5884) => [
+   q(5873) => [
       q(Mala (Nigeria)),
       ],
-   q(5885) => [
+   q(5874) => [
       q(Ruma),
       ],
-   q(5886) => [
+   q(5875) => [
       q(Rawo),
       ],
-   q(5887) => [
+   q(5876) => [
       q(Rwa),
       ],
-   q(5888) => [
+   q(5877) => [
       q(Amba (Uganda)),
       ],
-   q(5889) => [
+   q(5878) => [
       q(Rawa),
       ],
-   q(5890) => [
+   q(5879) => [
       q(Marwari (India)),
       ],
-   q(5891) => [
+   q(5880) => [
       q(Ngardi),
       ],
-   q(5892) => [
+   q(5881) => [
       q(Karuwali),
       ],
-   q(5893) => [
+   q(5882) => [
       q(Northern Amami-Oshima),
       ],
-   q(5894) => [
+   q(5883) => [
       q(Yaeyama),
       ],
-   q(5895) => [
+   q(5884) => [
       q(Central Okinawan),
       ],
-   q(5896) => [
+   q(5885) => [
       q(Saba),
       ],
-   q(5897) => [
+   q(5886) => [
       q(Buglere),
       ],
-   q(5898) => [
+   q(5887) => [
       q(Meskwaki),
       ],
-   q(5899) => [
+   q(5888) => [
       q(Sabane),
       ],
-   q(5900) => [
+   q(5889) => [
       q(Safaliba),
       ],
-   q(5901) => [
+   q(5890) => [
       q(Sahu),
       ],
-   q(5902) => [
+   q(5891) => [
       q(Sake),
       ],
-   q(5903) => [
+   q(5892) => [
       q(Sause),
       ],
-   q(5904) => [
+   q(5893) => [
       q(Samburu),
       ],
-   q(5905) => [
+   q(5894) => [
       q(Saraveca),
       ],
-   q(5906) => [
+   q(5895) => [
       q(Saleman),
       ],
-   q(5907) => [
+   q(5896) => [
       q(Saafi-Saafi),
       ],
-   q(5908) => [
+   q(5897) => [
       q(Sawi),
       ],
-   q(5909) => [
+   q(5898) => [
       q(Sa),
       ],
-   q(5910) => [
+   q(5899) => [
       q(Saya),
       ],
-   q(5911) => [
+   q(5900) => [
       q(Saurashtra),
       ],
-   q(5912) => [
+   q(5901) => [
       q(Ngambay),
       ],
-   q(5913) => [
+   q(5902) => [
       q(Simbo),
       ],
-   q(5914) => [
+   q(5903) => [
       q(Kele (Papua New Guinea)),
       ],
-   q(5915) => [
+   q(5904) => [
       q(Southern Samo),
       ],
-   q(5916) => [
+   q(5905) => [
       q(Saliba),
       ],
-   q(5917) => [
+   q(5906) => [
+      q(Chabu),
       q(Shabo),
       ],
-   q(5918) => [
+   q(5907) => [
       q(Seget),
       ],
-   q(5919) => [
+   q(5908) => [
       q(Sori-Harengan),
       ],
-   q(5920) => [
+   q(5909) => [
       q(Seti),
       ],
-   q(5921) => [
+   q(5910) => [
       q(Surbakhal),
       ],
-   q(5922) => [
+   q(5911) => [
       q(Safwa),
       ],
-   q(5923) => [
+   q(5912) => [
       q(Botolan Sambal),
       ],
-   q(5924) => [
+   q(5913) => [
       q(Sagala),
       ],
-   q(5925) => [
+   q(5914) => [
       q(Sindhi Bhil),
       ],
-   q(5926) => [
+   q(5915) => [
       q(Sabum),
       ],
-   q(5927) => [
+   q(5916) => [
       q(Sangu (Tanzania)),
       ],
-   q(5928) => [
+   q(5917) => [
       q(Sileibi),
       ],
-   q(5929) => [
+   q(5918) => [
       q(Sembakung Murut),
       ],
-   q(5930) => [
+   q(5919) => [
       q(Subiya),
       ],
-   q(5931) => [
+   q(5920) => [
       q(Kimki),
       ],
-   q(5932) => [
+   q(5921) => [
       q(Stod Bhoti),
       ],
-   q(5933) => [
+   q(5922) => [
       q(Sabine),
       ],
-   q(5934) => [
+   q(5923) => [
       q(Simba),
       ],
-   q(5935) => [
+   q(5924) => [
       q(Seberuang),
       ],
-   q(5936) => [
+   q(5925) => [
       q(Soli),
       ],
-   q(5937) => [
+   q(5926) => [
       q(Sara Kaba),
       ],
-   q(5938) => [
+   q(5927) => [
       q(Chut),
       ],
-   q(5939) => [
+   q(5928) => [
       q(Dongxiang),
       ],
-   q(5940) => [
+   q(5929) => [
       q(San Miguel Creole French),
       ],
-   q(5941) => [
+   q(5930) => [
       q(Sanggau),
       ],
-   q(5942) => [
+   q(5931) => [
       q(Sakachep),
       ],
-   q(5943) => [
+   q(5932) => [
       q(Sri Lankan Creole Malay),
       ],
-   q(5944) => [
+   q(5933) => [
       q(Sadri),
       ],
-   q(5945) => [
+   q(5934) => [
       q(Shina),
       ],
-   q(5946) => [
+   q(5935) => [
       q(Helambu Sherpa),
       ],
-   q(5947) => [
+   q(5936) => [
       q(Sa'och),
       ],
-   q(5948) => [
+   q(5937) => [
       q(North Slavey),
       ],
-   q(5949) => [
+   q(5938) => [
       q(Shumcho),
       ],
-   q(5950) => [
+   q(5939) => [
       q(Sheni),
       ],
-   q(5951) => [
+   q(5940) => [
       q(Sha),
       ],
-   q(5952) => [
+   q(5941) => [
       q(Sicel),
       ],
-   q(5953) => [
+   q(5942) => [
       q(Toraja-Sa'dan),
       ],
-   q(5954) => [
+   q(5943) => [
       q(Shabak),
       ],
-   q(5955) => [
+   q(5944) => [
       q(Sassarese Sardinian),
       ],
-   q(5956) => [
+   q(5945) => [
       q(Surubu),
       ],
-   q(5957) => [
+   q(5946) => [
       q(Sarli),
       ],
-   q(5958) => [
+   q(5947) => [
       q(Savi),
       ],
-   q(5959) => [
+   q(5948) => [
       q(Southern Kurdish),
       ],
-   q(5960) => [
+   q(5949) => [
       q(Suundi),
       ],
-   q(5961) => [
+   q(5950) => [
       q(Sos Kundi),
       ],
-   q(5962) => [
+   q(5951) => [
       q(Saudi Arabian Sign Language),
       ],
-   q(5963) => [
+   q(5952) => [
       q(Semandang),
       ],
-   q(5964) => [
+   q(5953) => [
       q(Gallurese Sardinian),
       ],
-   q(5965) => [
+   q(5954) => [
       q(Bukar-Sadung Bidayuh),
       ],
-   q(5966) => [
+   q(5955) => [
       q(Sherdukpen),
       ],
-   q(5967) => [
+   q(5956) => [
       q(Oraon Sadri),
       ],
-   q(5968) => [
+   q(5957) => [
       q(Sened),
       ],
-   q(5969) => [
+   q(5958) => [
       q(Shuadit),
       ],
-   q(5970) => [
+   q(5959) => [
       q(Sarudu),
       ],
-   q(5971) => [
+   q(5960) => [
       q(Sibu Melanau),
       ],
-   q(5972) => [
+   q(5961) => [
       q(Sallands),
       ],
-   q(5973) => [
+   q(5962) => [
       q(Semai),
       ],
-   q(5974) => [
+   q(5963) => [
       q(Shempire Senoufo),
       ],
-   q(5975) => [
+   q(5964) => [
       q(Sechelt),
       ],
-   q(5976) => [
+   q(5965) => [
       q(Sedang),
       ],
-   q(5977) => [
+   q(5966) => [
       q(Seneca),
       ],
-   q(5978) => [
+   q(5967) => [
       q(Cebaara Senoufo),
       ],
-   q(5979) => [
+   q(5968) => [
       q(Segeju),
       ],
-   q(5980) => [
+   q(5969) => [
       q(Sena),
       ],
-   q(5981) => [
+   q(5970) => [
       q(Seri),
       ],
-   q(5982) => [
+   q(5971) => [
       q(Sene),
       ],
-   q(5983) => [
+   q(5972) => [
       q(Sekani),
       ],
-   q(5984) => [
+   q(5973) => [
       q(Nanerige Senoufo),
       ],
-   q(5985) => [
+   q(5974) => [
       q(Suarmin),
       ],
-   q(5986) => [
+   q(5975) => [
       q(Sicite Senoufo),
       ],
-   q(5987) => [
+   q(5976) => [
       q(Senara Senoufo),
       ],
-   q(5988) => [
+   q(5977) => [
       q(Serrano),
       ],
-   q(5989) => [
+   q(5978) => [
       q(Koyraboro Senni Songhai),
       ],
-   q(5990) => [
+   q(5979) => [
       q(Sentani),
       ],
-   q(5991) => [
+   q(5980) => [
       q(Serui-Laut),
       ],
-   q(5992) => [
+   q(5981) => [
       q(Nyarafolo Senoufo),
       ],
-   q(5993) => [
+   q(5982) => [
       q(Sewa Bay),
       ],
-   q(5994) => [
+   q(5983) => [
       q(Secoya),
       ],
-   q(5995) => [
+   q(5984) => [
       q(Senthang Chin),
       ],
-   q(5996) => [
+   q(5985) => [
       q(Langue des signes de Belgique Francophone),
       q(French Belgian Sign Language),
       ],
-   q(5997) => [
+   q(5986) => [
       q(Eastern Subanen),
       ],
-   q(5998) => [
+   q(5987) => [
       q(Small Flowery Miao),
       ],
-   q(5999) => [
+   q(5988) => [
       q(South African Sign Language),
       ],
-   q(6000) => [
+   q(5989) => [
       q(Sehwi),
       ],
-   q(6001) => [
+   q(5990) => [
       q(Mag-antsi Ayta),
       ],
-   q(6002) => [
+   q(5991) => [
       q(Kipsigis),
       ],
-   q(6003) => [
+   q(5992) => [
       q(Surigaonon),
       ],
-   q(6004) => [
+   q(5993) => [
       q(Segai),
       ],
-   q(6005) => [
+   q(5994) => [
       q(Swiss-German Sign Language),
       ],
-   q(6006) => [
+   q(5995) => [
       q(Shughni),
       ],
-   q(6007) => [
+   q(5996) => [
       q(Suga),
       ],
-   q(6008) => [
+   q(5997) => [
       q(Surgujia),
       ],
-   q(6009) => [
+   q(5998) => [
       q(Sangkong),
       ],
-   q(6010) => [
+   q(5999) => [
       q(Singa),
       ],
-   q(6011) => [
-      q(Songa),
-      ],
-   q(6012) => [
+   q(6000) => [
       q(Singpho),
       ],
-   q(6013) => [
+   q(6001) => [
       q(Sangisari),
       ],
-   q(6014) => [
+   q(6002) => [
       q(Samogitian),
       ],
-   q(6015) => [
+   q(6003) => [
       q(Brokpake),
       ],
-   q(6016) => [
+   q(6004) => [
       q(Salas),
       ],
-   q(6017) => [
+   q(6005) => [
       q(Sebat Bet Gurage),
       ],
-   q(6018) => [
+   q(6006) => [
       q(Sierra Leone Sign Language),
       ],
-   q(6019) => [
+   q(6007) => [
       q(Sanglechi),
       ],
-   q(6020) => [
+   q(6008) => [
       q(Sursurunga),
       ],
-   q(6021) => [
+   q(6009) => [
       q(Shall-Zwall),
       ],
-   q(6022) => [
+   q(6010) => [
       q(Ninam),
       ],
-   q(6023) => [
+   q(6011) => [
       q(Sonde),
       ],
-   q(6024) => [
+   q(6012) => [
       q(Kundal Shahi),
       ],
-   q(6025) => [
+   q(6013) => [
       q(Sheko),
       ],
-   q(6026) => [
+   q(6014) => [
       q(Shua),
       ],
-   q(6027) => [
+   q(6015) => [
       q(Shoshoni),
       ],
-   q(6028) => [
+   q(6016) => [
       q(Tachelhit),
       ],
-   q(6029) => [
+   q(6017) => [
       q(Shatt),
       ],
-   q(6030) => [
+   q(6018) => [
       q(Shilluk),
       ],
-   q(6031) => [
+   q(6019) => [
       q(Shendu),
       ],
-   q(6032) => [
+   q(6020) => [
       q(Shahrudi),
       ],
-   q(6033) => [
+   q(6021) => [
       q(Shanga),
       ],
-   q(6034) => [
+   q(6022) => [
       q(Shipibo-Conibo),
       ],
-   q(6035) => [
+   q(6023) => [
       q(Sala),
       ],
-   q(6036) => [
+   q(6024) => [
       q(Shi),
       ],
-   q(6037) => [
+   q(6025) => [
       q(Shuswap),
       ],
-   q(6038) => [
+   q(6026) => [
       q(Shasta),
       ],
-   q(6039) => [
+   q(6027) => [
       q(Chadian Arabic),
       ],
-   q(6040) => [
+   q(6028) => [
       q(Shehri),
       ],
-   q(6041) => [
+   q(6029) => [
       q(Shwai),
       ],
-   q(6042) => [
+   q(6030) => [
       q(She),
       ],
-   q(6043) => [
+   q(6031) => [
       q(Tachawit),
       ],
-   q(6044) => [
+   q(6032) => [
       q(Syenara Senoufo),
       ],
-   q(6045) => [
+   q(6033) => [
       q(Akkala Sami),
       ],
-   q(6046) => [
+   q(6034) => [
       q(Sebop),
       ],
-   q(6047) => [
+   q(6035) => [
       q(Simaa),
       ],
-   q(6048) => [
+   q(6036) => [
       q(Siamou),
       ],
-   q(6049) => [
+   q(6037) => [
       q(Paasaal),
       ],
-   q(6050) => [
+   q(6038) => [
       q(Zire),
       q(Sishee),
       ],
-   q(6051) => [
+   q(6039) => [
       q(Shom Peng),
       ],
-   q(6052) => [
+   q(6040) => [
       q(Numbami),
       ],
-   q(6053) => [
+   q(6041) => [
       q(Sikiana),
       ],
-   q(6054) => [
+   q(6042) => [
       q(Tumulung Sisaala),
       ],
-   q(6055) => [
+   q(6043) => [
       q(Mende (Papua New Guinea)),
       ],
-   q(6056) => [
+   q(6044) => [
       q(Sikkimese),
       ],
-   q(6057) => [
+   q(6045) => [
       q(Sonia),
       ],
-   q(6058) => [
+   q(6046) => [
       q(Siri),
       ],
-   q(6059) => [
+   q(6047) => [
       q(Siuslaw),
       ],
-   q(6060) => [
+   q(6048) => [
       q(Sinagen),
       ],
-   q(6061) => [
+   q(6049) => [
       q(Sumariup),
       ],
-   q(6062) => [
+   q(6050) => [
       q(Siwai),
       ],
-   q(6063) => [
+   q(6051) => [
       q(Sumau),
       ],
-   q(6064) => [
+   q(6052) => [
       q(Sivandi),
       ],
-   q(6065) => [
+   q(6053) => [
       q(Siwi),
       ],
-   q(6066) => [
+   q(6054) => [
       q(Epena),
       ],
-   q(6067) => [
+   q(6055) => [
       q(Sajau Basap),
       ],
-   q(6068) => [
+   q(6056) => [
       q(Kildin Sami),
       ],
-   q(6069) => [
+   q(6057) => [
       q(Pite Sami),
       ],
-   q(6070) => [
+   q(6058) => [
       q(Assangori),
       ],
-   q(6071) => [
+   q(6059) => [
       q(Kemi Sami),
       ],
-   q(6072) => [
+   q(6060) => [
       q(Sajalong),
       q(Miji),
       ],
-   q(6073) => [
+   q(6061) => [
       q(Mapun),
       ],
-   q(6074) => [
+   q(6062) => [
       q(Sindarin),
       ],
-   q(6075) => [
+   q(6063) => [
       q(Xibe),
       ],
-   q(6076) => [
+   q(6064) => [
       q(Surjapuri),
       ],
-   q(6077) => [
+   q(6065) => [
       q(Siar-Lak),
       ],
-   q(6078) => [
+   q(6066) => [
       q(Senhaja De Srair),
       ],
-   q(6079) => [
+   q(6067) => [
       q(Ter Sami),
       ],
-   q(6080) => [
+   q(6068) => [
       q(Ume Sami),
       ],
-   q(6081) => [
+   q(6069) => [
       q(Shawnee),
       ],
-   q(6082) => [
+   q(6070) => [
       q(Skagit),
       ],
-   q(6083) => [
+   q(6071) => [
       q(Saek),
       ],
-   q(6084) => [
+   q(6072) => [
       q(Ma Manda),
       ],
-   q(6085) => [
+   q(6073) => [
       q(Southern Sierra Miwok),
       ],
-   q(6086) => [
+   q(6074) => [
       q(Seke (Vanuatu)),
       ],
-   q(6087) => [
+   q(6075) => [
       q(Sakirabia),
       ],
-   q(6088) => [
+   q(6076) => [
       q(Sakalava Malagasy),
       ],
-   q(6089) => [
+   q(6077) => [
       q(Sikule),
       ],
-   q(6090) => [
+   q(6078) => [
       q(Sika),
       ],
-   q(6091) => [
+   q(6079) => [
       q(Seke (Nepal)),
       ],
-   q(6092) => [
+   q(6080) => [
       q(Sok),
       ],
-   q(6093) => [
+   q(6081) => [
       q(Kutong),
       ],
-   q(6094) => [
+   q(6082) => [
       q(Kolibugan Subanon),
       ],
-   q(6095) => [
+   q(6083) => [
       q(Seko Tengah),
       ],
-   q(6096) => [
+   q(6084) => [
       q(Sekapan),
       ],
-   q(6097) => [
+   q(6085) => [
       q(Sininkere),
       ],
-   q(6098) => [
+   q(6086) => [
+      q(Saraiki),
       q(Seraiki),
       ],
-   q(6099) => [
+   q(6087) => [
       q(Maia),
       ],
-   q(6100) => [
+   q(6088) => [
       q(Sakata),
       ],
-   q(6101) => [
+   q(6089) => [
       q(Sakao),
       ],
-   q(6102) => [
+   q(6090) => [
       q(Skou),
       ],
-   q(6103) => [
+   q(6091) => [
       q(Skepi Creole Dutch),
       ],
-   q(6104) => [
+   q(6092) => [
       q(Seko Padang),
       ],
-   q(6105) => [
+   q(6093) => [
       q(Sikaiana),
       ],
-   q(6106) => [
+   q(6094) => [
       q(Sekar),
       ],
-   q(6107) => [
+   q(6095) => [
       q(Sissala),
       ],
-   q(6108) => [
+   q(6096) => [
       q(Sholaga),
       ],
-   q(6109) => [
+   q(6097) => [
       q(Swiss-Italian Sign Language),
       ],
-   q(6110) => [
+   q(6098) => [
       q(Selungai Murut),
       ],
-   q(6111) => [
+   q(6099) => [
       q(Southern Puget Sound Salish),
       ],
-   q(6112) => [
+   q(6100) => [
       q(Lower Silesian),
       ],
-   q(6113) => [
+   q(6101) => [
       q(Saluma),
       ],
-   q(6114) => [
+   q(6102) => [
       q(Salt-Yui),
       ],
-   q(6115) => [
+   q(6103) => [
       q(Pangutaran Sama),
       ],
-   q(6116) => [
+   q(6104) => [
       q(Salinan),
       ],
-   q(6117) => [
+   q(6105) => [
       q(Lamaholot),
       ],
-   q(6118) => [
+   q(6106) => [
       q(Salchuq),
       ],
-   q(6119) => [
+   q(6107) => [
       q(Salar),
       ],
-   q(6120) => [
+   q(6108) => [
       q(Singapore Sign Language),
       ],
-   q(6121) => [
+   q(6109) => [
       q(Sila),
       ],
-   q(6122) => [
+   q(6110) => [
       q(Selaru),
       ],
-   q(6123) => [
+   q(6111) => [
       q(Sialum),
       ],
-   q(6124) => [
+   q(6112) => [
       q(Salampasu),
       ],
-   q(6125) => [
+   q(6113) => [
       q(Selayar),
       ],
-   q(6126) => [
+   q(6114) => [
       q(Ma'ya),
       ],
-   q(6127) => [
+   q(6115) => [
       q(Simbari),
       ],
-   q(6128) => [
+   q(6116) => [
       q(Som),
       ],
-   q(6129) => [
+   q(6117) => [
       q(Sama),
       ],
-   q(6130) => [
+   q(6118) => [
       q(Auwe),
       ],
-   q(6131) => [
+   q(6119) => [
       q(Simbali),
       ],
-   q(6132) => [
+   q(6120) => [
       q(Samei),
       ],
-   q(6133) => [
+   q(6121) => [
       q(Bolinao),
       ],
-   q(6134) => [
+   q(6122) => [
       q(Central Sama),
       ],
-   q(6135) => [
+   q(6123) => [
       q(Musasa),
       ],
-   q(6136) => [
+   q(6124) => [
       q(Samaritan),
       ],
-   q(6137) => [
+   q(6125) => [
       q(Samo),
       ],
-   q(6138) => [
+   q(6126) => [
       q(Simeulue),
       ],
-   q(6139) => [
+   q(6127) => [
       q(Simte),
       ],
-   q(6140) => [
+   q(6128) => [
       q(Somray),
       ],
-   q(6141) => [
+   q(6129) => [
       q(Samvedi),
       ],
-   q(6142) => [
+   q(6130) => [
       q(Sumbawa),
       ],
-   q(6143) => [
+   q(6131) => [
       q(Samba),
       ],
-   q(6144) => [
+   q(6132) => [
       q(Semnani),
       ],
-   q(6145) => [
+   q(6133) => [
       q(Simeku),
       ],
-   q(6146) => [
+   q(6134) => [
       q(Sebuyau),
       ],
-   q(6147) => [
+   q(6135) => [
       q(Sinaugoro),
       ],
-   q(6148) => [
+   q(6136) => [
       q(Bau Bidayuh),
       ],
-   q(6149) => [
+   q(6137) => [
       q(Noon),
       ],
-   q(6150) => [
+   q(6138) => [
       q(Sanga (Democratic Republic of Congo)),
       ],
-   q(6151) => [
+   q(6139) => [
       q(Shinabo),
       ],
-   q(6152) => [
+   q(6140) => [
       q(Sensi),
       ],
-   q(6153) => [
+   q(6141) => [
       q(Riverain Sango),
       ],
-   q(6154) => [
+   q(6142) => [
       q(Sangil),
       ],
-   q(6155) => [
+   q(6143) => [
       q(Southern Ma'di),
       ],
-   q(6156) => [
+   q(6144) => [
       q(Siona),
       ],
-   q(6157) => [
+   q(6145) => [
       q(Snohomish),
       ],
-   q(6158) => [
+   q(6146) => [
       q(Siane),
       ],
-   q(6159) => [
+   q(6147) => [
       q(Sangu (Gabon)),
       ],
-   q(6160) => [
+   q(6148) => [
       q(Sihan),
       ],
-   q(6161) => [
+   q(6149) => [
       q(South West Bay),
       q(Nahavaq),
       ],
-   q(6162) => [
+   q(6150) => [
       q(Senggi),
       q(Viid),
       ],
-   q(6163) => [
+   q(6151) => [
       q(Sa'ban),
       ],
-   q(6164) => [
+   q(6152) => [
       q(Selee),
       ],
-   q(6165) => [
+   q(6153) => [
       q(Sam),
       ],
-   q(6166) => [
+   q(6154) => [
       q(Saniyo-Hiyewe),
       ],
-   q(6167) => [
+   q(6155) => [
       q(Sinsauru),
       ],
-   q(6168) => [
+   q(6156) => [
       q(Thai Song),
       ],
-   q(6169) => [
+   q(6157) => [
       q(Sobei),
       ],
-   q(6170) => [
+   q(6158) => [
       q(So (Democratic Republic of Congo)),
       ],
-   q(6171) => [
+   q(6159) => [
       q(Songoora),
       ],
-   q(6172) => [
+   q(6160) => [
       q(Songomeno),
       ],
-   q(6173) => [
+   q(6161) => [
       q(Aka),
       ],
-   q(6174) => [
+   q(6162) => [
       q(Sonha),
       ],
-   q(6175) => [
+   q(6163) => [
       q(Soi),
       ],
-   q(6176) => [
+   q(6164) => [
       q(Sokoro),
       ],
-   q(6177) => [
+   q(6165) => [
       q(Solos),
       ],
-   q(6178) => [
+   q(6166) => [
       q(Songo),
       ],
-   q(6179) => [
+   q(6167) => [
       q(Songe),
       ],
-   q(6180) => [
+   q(6168) => [
       q(Kanasi),
       ],
-   q(6181) => [
+   q(6169) => [
       q(Somrai),
       ],
-   q(6182) => [
+   q(6170) => [
       q(Seeku),
       ],
-   q(6183) => [
+   q(6171) => [
       q(Southern Thai),
       ],
-   q(6184) => [
+   q(6172) => [
       q(Sonsorol),
       ],
-   q(6185) => [
+   q(6173) => [
       q(Sowanda),
       ],
-   q(6186) => [
+   q(6174) => [
       q(Swo),
       ],
-   q(6187) => [
+   q(6175) => [
       q(Miyobe),
       ],
-   q(6188) => [
+   q(6176) => [
       q(Temi),
       ],
-   q(6189) => [
+   q(6177) => [
       q(Sepa (Indonesia)),
       ],
-   q(6190) => [
+   q(6178) => [
       q(Sape),
       ],
-   q(6191) => [
+   q(6179) => [
       q(Saep),
       ],
-   q(6192) => [
+   q(6180) => [
       q(Sepa (Papua New Guinea)),
       ],
-   q(6193) => [
+   q(6181) => [
       q(Sian),
       ],
-   q(6194) => [
+   q(6182) => [
       q(Saponi),
       ],
-   q(6195) => [
+   q(6183) => [
       q(Sengo),
       ],
-   q(6196) => [
+   q(6184) => [
       q(Selepet),
       ],
-   q(6197) => [
+   q(6185) => [
       q(Akukem),
       ],
-   q(6198) => [
+   q(6186) => [
       q(Sanapana),
       ],
-   q(6199) => [
+   q(6187) => [
       q(Spokane),
       ],
-   q(6200) => [
+   q(6188) => [
       q(Supyire Senoufo),
       ],
-   q(6201) => [
+   q(6189) => [
       q(Loreto-Ucayali Spanish),
       ],
-   q(6202) => [
+   q(6190) => [
       q(Saparua),
       ],
-   q(6203) => [
+   q(6191) => [
       q(Saposa),
       ],
-   q(6204) => [
+   q(6192) => [
       q(Spiti Bhoti),
       ],
-   q(6205) => [
+   q(6193) => [
       q(Sapuan),
       ],
-   q(6206) => [
+   q(6194) => [
       q(Sambalpuri),
       q(Kosli),
       ],
-   q(6207) => [
+   q(6195) => [
       q(South Picene),
       ],
-   q(6208) => [
+   q(6196) => [
       q(Sabaot),
       ],
-   q(6209) => [
+   q(6197) => [
       q(Shama-Sambuga),
       ],
-   q(6210) => [
+   q(6198) => [
       q(Shau),
       ],
-   q(6211) => [
+   q(6199) => [
       q(Albanian Sign Language),
       ],
-   q(6212) => [
+   q(6200) => [
       q(Suma),
       ],
-   q(6213) => [
+   q(6201) => [
       q(Susquehannock),
       ],
-   q(6214) => [
+   q(6202) => [
       q(Sorkhei),
       ],
-   q(6215) => [
+   q(6203) => [
       q(Sou),
       ],
-   q(6216) => [
+   q(6204) => [
       q(Siculo Arabic),
       ],
-   q(6217) => [
+   q(6205) => [
       q(Sri Lankan Sign Language),
       ],
-   q(6218) => [
+   q(6206) => [
       q(Soqotri),
       ],
-   q(6219) => [
+   q(6207) => [
       q(Squamish),
       ],
-   q(6220) => [
+   q(6208) => [
       q(Saruga),
       ],
-   q(6221) => [
+   q(6209) => [
       q(Sora),
       ],
-   q(6222) => [
+   q(6210) => [
       q(Logudorese Sardinian),
       ],
-   q(6223) => [
+   q(6211) => [
       q(Sara),
       ],
-   q(6224) => [
+   q(6212) => [
       q(Nafi),
       ],
-   q(6225) => [
+   q(6213) => [
       q(Sulod),
       ],
-   q(6226) => [
+   q(6214) => [
       q(Sarikoli),
       ],
-   q(6227) => [
+   q(6215) => [
       q(Siriano),
       ],
-   q(6228) => [
+   q(6216) => [
       q(Serudung Murut),
       ],
-   q(6229) => [
+   q(6217) => [
       q(Isirawa),
       ],
-   q(6230) => [
+   q(6218) => [
       q(Saramaccan),
       ],
-   q(6231) => [
+   q(6219) => [
       q(Campidanese Sardinian),
       ],
-   q(6232) => [
+   q(6220) => [
       q(Siriono),
       ],
-   q(6233) => [
+   q(6221) => [
       q(Sarsi),
       ],
-   q(6234) => [
+   q(6222) => [
       q(Sauri),
       ],
-   q(6235) => [
+   q(6223) => [
       q(Surui),
       ],
-   q(6236) => [
+   q(6224) => [
       q(Southern Sorsoganon),
       ],
-   q(6237) => [
+   q(6225) => [
       q(Serua),
       ],
-   q(6238) => [
+   q(6226) => [
       q(Sirmauri),
       ],
-   q(6239) => [
+   q(6227) => [
       q(Sera),
       ],
-   q(6240) => [
+   q(6228) => [
       q(Shahmirzadi),
       ],
-   q(6241) => [
+   q(6229) => [
       q(Southern Sama),
       ],
-   q(6242) => [
+   q(6230) => [
       q(Suba-Simbiti),
       ],
-   q(6243) => [
+   q(6231) => [
       q(Siroi),
       ],
-   q(6244) => [
+   q(6232) => [
       q(Balangingi),
       q(Bangingih Sama),
       ],
-   q(6245) => [
+   q(6233) => [
       q(Thao),
       ],
-   q(6246) => [
+   q(6234) => [
       q(Seimat),
       ],
-   q(6247) => [
+   q(6235) => [
       q(Shihhi Arabic),
       ],
-   q(6248) => [
+   q(6236) => [
       q(Sansi),
       ],
-   q(6249) => [
+   q(6237) => [
       q(Sausi),
       ],
-   q(6250) => [
+   q(6238) => [
       q(Sunam),
       ],
-   q(6251) => [
+   q(6239) => [
       q(Western Sisaala),
       ],
-   q(6252) => [
+   q(6240) => [
       q(Semnam),
       ],
-   q(6253) => [
+   q(6241) => [
       q(Waata),
       ],
-   q(6254) => [
+   q(6242) => [
       q(Sissano),
       ],
-   q(6255) => [
+   q(6243) => [
       q(Spanish Sign Language),
       ],
-   q(6256) => [
+   q(6244) => [
       q(So'a),
       ],
-   q(6257) => [
+   q(6245) => [
       q(Swiss-French Sign Language),
       ],
-   q(6258) => [
+   q(6246) => [
       q(So),
       ],
-   q(6259) => [
+   q(6247) => [
       q(Sinasina),
       ],
-   q(6260) => [
+   q(6248) => [
       q(Susuami),
       ],
-   q(6261) => [
+   q(6249) => [
       q(Shark Bay),
       ],
-   q(6262) => [
+   q(6250) => [
       q(Samberigi),
       ],
-   q(6263) => [
+   q(6251) => [
       q(Saho),
       ],
-   q(6264) => [
+   q(6252) => [
       q(Sengseng),
       ],
-   q(6265) => [
+   q(6253) => [
       q(Settla),
       ],
-   q(6266) => [
+   q(6254) => [
       q(Northern Subanen),
       ],
-   q(6267) => [
+   q(6255) => [
       q(Sentinel),
       ],
-   q(6268) => [
+   q(6256) => [
       q(Liana-Seti),
       ],
-   q(6269) => [
+   q(6257) => [
       q(Seta),
       ],
-   q(6270) => [
+   q(6258) => [
       q(Trieng),
       ],
-   q(6271) => [
+   q(6259) => [
       q(Shelta),
       ],
-   q(6272) => [
+   q(6260) => [
       q(Bulo Stieng),
       ],
-   q(6273) => [
+   q(6261) => [
       q(Matya Samo),
       ],
-   q(6274) => [
+   q(6262) => [
       q(Arammba),
       ],
-   q(6275) => [
+   q(6263) => [
       q(Stellingwerfs),
       ],
-   q(6276) => [
+   q(6264) => [
       q(Setaman),
       ],
-   q(6277) => [
+   q(6265) => [
       q(Owa),
       ],
-   q(6278) => [
+   q(6266) => [
       q(Stoney),
       ],
-   q(6279) => [
+   q(6267) => [
       q(Southeastern Tepehuan),
       ],
-   q(6280) => [
+   q(6268) => [
       q(Saterfriesisch),
       ],
-   q(6281) => [
+   q(6269) => [
       q(Straits Salish),
       ],
-   q(6282) => [
+   q(6270) => [
       q(Shumashti),
       ],
-   q(6283) => [
+   q(6271) => [
       q(Budeh Stieng),
       ],
-   q(6284) => [
+   q(6272) => [
       q(Samtao),
       ],
-   q(6285) => [
+   q(6273) => [
       q(Silt'e),
       ],
-   q(6286) => [
+   q(6274) => [
       q(Satawalese),
       ],
-   q(6287) => [
+   q(6275) => [
       q(Siberian Tatar),
       ],
-   q(6288) => [
+   q(6276) => [
       q(Sulka),
       ],
-   q(6289) => [
+   q(6277) => [
       q(Suku),
       ],
-   q(6290) => [
+   q(6278) => [
       q(Western Subanon),
       ],
-   q(6291) => [
+   q(6279) => [
       q(Suena),
       ],
-   q(6292) => [
+   q(6280) => [
       q(Suganga),
       ],
-   q(6293) => [
+   q(6281) => [
       q(Suki),
       ],
-   q(6294) => [
+   q(6282) => [
       q(Shubi),
       ],
-   q(6295) => [
+   q(6283) => [
       q(Suri),
       ],
-   q(6296) => [
+   q(6284) => [
       q(Mwaghavul),
       ],
-   q(6297) => [
+   q(6285) => [
       q(Subtiaba),
       ],
-   q(6298) => [
+   q(6286) => [
       q(Puroik),
       ],
-   q(6299) => [
+   q(6287) => [
       q(Sumbwa),
       ],
-   q(6300) => [
+   q(6288) => [
       q(Suya),
       ],
-   q(6301) => [
+   q(6289) => [
       q(Sunwar),
       ],
-   q(6302) => [
+   q(6290) => [
       q(Svan),
       ],
-   q(6303) => [
+   q(6291) => [
       q(Ulau-Suain),
       ],
-   q(6304) => [
+   q(6292) => [
       q(Vincentian Creole English),
       ],
-   q(6305) => [
+   q(6293) => [
       q(Serili),
       ],
-   q(6306) => [
+   q(6294) => [
       q(Slovakian Sign Language),
       ],
-   q(6307) => [
+   q(6295) => [
       q(Slavomolisano),
       ],
-   q(6308) => [
+   q(6296) => [
       q(Savara),
       ],
-   q(6309) => [
+   q(6297) => [
       q(Savosavo),
       ],
-   q(6310) => [
+   q(6298) => [
       q(Skalvian),
       ],
-   q(6311) => [
+   q(6299) => [
       q(Maore Comorian),
       ],
-   q(6312) => [
+   q(6300) => [
       q(Congo Swahili),
       ],
-   q(6313) => [
+   q(6301) => [
       q(Sere),
       ],
-   q(6314) => [
+   q(6302) => [
       q(Swabian),
       ],
-   q(6315) => [
+   q(6303) => [
       q(Swahili (individual language)),
       q(Kiswahili),
       ],
-   q(6316) => [
+   q(6304) => [
       q(Sui),
       ],
-   q(6317) => [
+   q(6305) => [
       q(Sira),
       ],
-   q(6318) => [
+   q(6306) => [
       q(Malawi Sena),
       ],
-   q(6319) => [
+   q(6307) => [
       q(Swedish Sign Language),
       ],
-   q(6320) => [
+   q(6308) => [
       q(Samosa),
       ],
-   q(6321) => [
+   q(6309) => [
       q(Sawknah),
       ],
-   q(6322) => [
+   q(6310) => [
       q(Shanenawa),
       ],
-   q(6323) => [
+   q(6311) => [
       q(Suau),
       ],
-   q(6324) => [
+   q(6312) => [
       q(Sharwa),
       ],
-   q(6325) => [
+   q(6313) => [
       q(Saweru),
       ],
-   q(6326) => [
+   q(6314) => [
       q(Seluwasan),
       ],
-   q(6327) => [
+   q(6315) => [
       q(Sawila),
       ],
-   q(6328) => [
+   q(6316) => [
       q(Suwawa),
       ],
-   q(6329) => [
+   q(6317) => [
       q(Shekhawati),
       ],
-   q(6330) => [
+   q(6318) => [
       q(Sowa),
       ],
-   q(6331) => [
+   q(6319) => [
       q(Suruaha),
       ],
-   q(6332) => [
+   q(6320) => [
       q(Sarua),
       ],
-   q(6333) => [
+   q(6321) => [
       q(Suba),
       ],
-   q(6334) => [
+   q(6322) => [
       q(Sicanian),
       ],
-   q(6335) => [
+   q(6323) => [
       q(Sighu),
       ],
-   q(6336) => [
+   q(6324) => [
       q(Shixing),
       ],
-   q(6337) => [
+   q(6325) => [
       q(Southern Kalapuya),
       ],
-   q(6338) => [
+   q(6326) => [
       q(Selian),
       ],
-   q(6339) => [
+   q(6327) => [
       q(Samre),
       ],
-   q(6340) => [
+   q(6328) => [
       q(Sangir),
       ],
-   q(6341) => [
+   q(6329) => [
       q(Sorothaptic),
       ],
-   q(6342) => [
+   q(6330) => [
       q(Saaroa),
       ],
-   q(6343) => [
+   q(6331) => [
       q(Sasaru),
       ],
-   q(6344) => [
+   q(6332) => [
       q(Upper Saxon),
       ],
-   q(6345) => [
+   q(6333) => [
       q(Saxwe Gbe),
       ],
-   q(6346) => [
+   q(6334) => [
       q(Siang),
       ],
-   q(6347) => [
+   q(6335) => [
       q(Central Subanen),
       ],
-   q(6348) => [
+   q(6336) => [
       q(Seki),
       ],
-   q(6349) => [
+   q(6337) => [
       q(Sukur),
       ],
-   q(6350) => [
+   q(6338) => [
       q(Sylheti),
       ],
-   q(6351) => [
+   q(6339) => [
       q(Maya Samo),
       ],
-   q(6352) => [
+   q(6340) => [
       q(Senaya),
       ],
-   q(6353) => [
+   q(6341) => [
       q(Suoy),
       ],
-   q(6354) => [
+   q(6342) => [
       q(Sinyar),
       ],
-   q(6355) => [
+   q(6343) => [
       q(Kagate),
       ],
-   q(6356) => [
+   q(6344) => [
+      q(Samay),
+      ],
+   q(6345) => [
       q(Al-Sayyid Bedouin Sign Language),
       ],
-   q(6357) => [
+   q(6346) => [
       q(Semelai),
       ],
-   q(6358) => [
+   q(6347) => [
       q(Ngalum),
       ],
-   q(6359) => [
+   q(6348) => [
       q(Semaq Beri),
       ],
-   q(6360) => [
+   q(6349) => [
       q(Seru),
       ],
-   q(6361) => [
+   q(6350) => [
       q(Seze),
       ],
-   q(6362) => [
+   q(6351) => [
       q(Sengele),
       ],
-   q(6363) => [
+   q(6352) => [
       q(Silesian),
       ],
-   q(6364) => [
+   q(6353) => [
       q(Sula),
       ],
-   q(6365) => [
+   q(6354) => [
       q(Suabo),
       ],
-   q(6366) => [
+   q(6355) => [
       q(Isu (Fako Division)),
       ],
-   q(6367) => [
+   q(6356) => [
       q(Sawai),
       ],
-   q(6368) => [
+   q(6357) => [
       q(Lower Tanana),
       ],
-   q(6369) => [
+   q(6358) => [
       q(Tabassaran),
       ],
-   q(6370) => [
+   q(6359) => [
       q(Lowland Tarahumara),
       ],
-   q(6371) => [
+   q(6360) => [
       q(Tause),
       ],
-   q(6372) => [
+   q(6361) => [
       q(Tariana),
       ],
-   q(6373) => [
+   q(6362) => [
       q(Tapirape),
       ],
-   q(6374) => [
+   q(6363) => [
       q(Tagoi),
       ],
-   q(6375) => [
+   q(6364) => [
       q(Eastern Tamang),
       ],
-   q(6376) => [
+   q(6365) => [
       q(Tala),
       ],
-   q(6377) => [
+   q(6366) => [
       q(Tal),
       ],
-   q(6378) => [
+   q(6367) => [
       q(Tangale),
       ],
-   q(6379) => [
+   q(6368) => [
       q(Yami),
       ],
-   q(6380) => [
+   q(6369) => [
       q(Taabwa),
       ],
-   q(6381) => [
+   q(6370) => [
       q(Tamasheq),
       ],
-   q(6382) => [
+   q(6371) => [
       q(Central Tarahumara),
       ],
-   q(6383) => [
+   q(6372) => [
       q(Tay Boi),
       ],
-   q(6384) => [
+   q(6373) => [
       q(Upper Tanana),
       ],
-   q(6385) => [
+   q(6374) => [
       q(Tatuyo),
       ],
-   q(6386) => [
+   q(6375) => [
       q(Tai),
       ],
-   q(6387) => [
+   q(6376) => [
       q(Tamki),
       ],
-   q(6388) => [
+   q(6377) => [
       q(Atayal),
       ],
-   q(6389) => [
+   q(6378) => [
       q(Tocho),
       ],
-   q(6390) => [
+   q(6379) => [
       q(Aikana),
       ],
-   q(6391) => [
+   q(6380) => [
       q(Tapeba),
       ],
-   q(6392) => [
+   q(6381) => [
       q(Takia),
       ],
-   q(6393) => [
+   q(6382) => [
       q(Kaki Ae),
       ],
-   q(6394) => [
+   q(6383) => [
       q(Tanimbili),
       ],
-   q(6395) => [
+   q(6384) => [
       q(Mandara),
       ],
-   q(6396) => [
+   q(6385) => [
       q(North Tairora),
       ],
-   q(6397) => [
+   q(6386) => [
       q(Thurawal),
       ],
-   q(6398) => [
+   q(6387) => [
       q(Gaam),
       ],
-   q(6399) => [
+   q(6388) => [
       q(Tiang),
       ],
-   q(6400) => [
+   q(6389) => [
       q(Calamian Tagbanwa),
       ],
-   q(6401) => [
+   q(6390) => [
       q(Tboli),
       ],
-   q(6402) => [
+   q(6391) => [
       q(Tagbu),
       ],
-   q(6403) => [
+   q(6392) => [
       q(Barro Negro Tunebo),
       ],
-   q(6404) => [
+   q(6393) => [
       q(Tawala),
       ],
-   q(6405) => [
+   q(6394) => [
       q(Taworta),
       q(Diebroud),
       ],
-   q(6406) => [
+   q(6395) => [
       q(Tumtum),
       ],
-   q(6407) => [
+   q(6396) => [
       q(Tanguat),
       ],
-   q(6408) => [
+   q(6397) => [
       q(Tembo (Kitembo)),
       ],
-   q(6409) => [
+   q(6398) => [
       q(Tubar),
       ],
-   q(6410) => [
+   q(6399) => [
       q(Tobo),
       ],
-   q(6411) => [
+   q(6400) => [
       q(Tagbanwa),
       ],
-   q(6412) => [
+   q(6401) => [
       q(Kapin),
       ],
-   q(6413) => [
+   q(6402) => [
       q(Tabaru),
       ],
-   q(6414) => [
+   q(6403) => [
       q(Ditammari),
       ],
-   q(6415) => [
+   q(6404) => [
       q(Ticuna),
       ],
-   q(6416) => [
+   q(6405) => [
       q(Tanacross),
       ],
-   q(6417) => [
+   q(6406) => [
       q(Datooga),
       ],
-   q(6418) => [
+   q(6407) => [
       q(Tafi),
       ],
-   q(6419) => [
+   q(6408) => [
       q(Southern Tutchone),
       ],
-   q(6420) => [
+   q(6409) => [
       q(Malinaltepec Me'phaa),
       q(Malinaltepec Tlapanec),
       ],
-   q(6421) => [
+   q(6410) => [
       q(Tamagario),
       ],
-   q(6422) => [
+   q(6411) => [
       q(Turks And Caicos Creole English),
       ],
-   q(6423) => [
+   q(6412) => [
       q(Wara),
       ],
-   q(6424) => [
+   q(6413) => [
       q(Tchitchege),
       ],
-   q(6425) => [
+   q(6414) => [
       q(Taman (Myanmar)),
       ],
-   q(6426) => [
+   q(6415) => [
       q(Tanahmerah),
       ],
-   q(6427) => [
+   q(6416) => [
       q(Tichurong),
       ],
-   q(6428) => [
+   q(6417) => [
       q(Taungyo),
       ],
-   q(6429) => [
+   q(6418) => [
       q(Tawr Chin),
       ],
-   q(6430) => [
+   q(6419) => [
       q(Kaiy),
       ],
-   q(6431) => [
+   q(6420) => [
       q(Torres Strait Creole),
       ],
-   q(6432) => [
+   q(6421) => [
       q(T'en),
       ],
-   q(6433) => [
+   q(6422) => [
       q(Southeastern Tarahumara),
       ],
-   q(6434) => [
+   q(6423) => [
       q(Tecpatlan Totonac),
       ],
-   q(6435) => [
+   q(6424) => [
       q(Toda),
       ],
-   q(6436) => [
+   q(6425) => [
       q(Tulu),
       ],
-   q(6437) => [
+   q(6426) => [
       q(Thado Chin),
       ],
-   q(6438) => [
+   q(6427) => [
       q(Tagdal),
       ],
-   q(6439) => [
+   q(6428) => [
       q(Panchpargania),
       ],
-   q(6440) => [
+   q(6429) => [
       q(Embera-Tado),
       ],
-   q(6441) => [
+   q(6430) => [
       q(Tai Nua),
       ],
-   q(6442) => [
+   q(6431) => [
       q(Tiranige Diga Dogon),
       ],
-   q(6443) => [
+   q(6432) => [
       q(Talieng),
       ],
-   q(6444) => [
+   q(6433) => [
       q(Western Tamang),
       ],
-   q(6445) => [
+   q(6434) => [
       q(Thulung),
       ],
-   q(6446) => [
+   q(6435) => [
       q(Tomadino),
       ],
-   q(6447) => [
+   q(6436) => [
       q(Tajio),
       ],
-   q(6448) => [
+   q(6437) => [
       q(Tambas),
       ],
-   q(6449) => [
+   q(6438) => [
       q(Sur),
       ],
-   q(6450) => [
+   q(6439) => [
       q(Tondano),
       ],
-   q(6451) => [
+   q(6440) => [
       q(Teme),
       ],
-   q(6452) => [
+   q(6441) => [
       q(Tita),
       ],
-   q(6453) => [
+   q(6442) => [
       q(Todrah),
       ],
-   q(6454) => [
+   q(6443) => [
       q(Doutai),
       ],
-   q(6455) => [
+   q(6444) => [
       q(Tetun Dili),
       ],
-   q(6456) => [
+   q(6445) => [
       q(Tempasuk Dusun),
       ],
-   q(6457) => [
+   q(6446) => [
       q(Toro),
       ],
-   q(6458) => [
+   q(6447) => [
       q(Tandroy-Mahafaly Malagasy),
       ],
-   q(6459) => [
+   q(6448) => [
       q(Tadyawan),
       ],
-   q(6460) => [
+   q(6449) => [
       q(Temiar),
       ],
-   q(6461) => [
+   q(6450) => [
       q(Tetete),
       ],
-   q(6462) => [
+   q(6451) => [
       q(Terik),
       ],
-   q(6463) => [
+   q(6452) => [
       q(Tepo Krumen),
       ],
-   q(6464) => [
+   q(6453) => [
       q(Huehuetla Tepehua),
       ],
-   q(6465) => [
+   q(6454) => [
       q(Teressa),
       ],
-   q(6466) => [
+   q(6455) => [
       q(Teke-Tege),
       ],
-   q(6467) => [
+   q(6456) => [
       q(Tehuelche),
       ],
-   q(6468) => [
+   q(6457) => [
       q(Torricelli),
       ],
-   q(6469) => [
+   q(6458) => [
       q(Ibali Teke),
       ],
-   q(6470) => [
+   q(6459) => [
       q(Tama (Colombia)),
       ],
-   q(6471) => [
+   q(6460) => [
       q(Teso),
       ],
-   q(6472) => [
+   q(6461) => [
       q(Tepecano),
       ],
-   q(6473) => [
+   q(6462) => [
       q(Temein),
       ],
-   q(6474) => [
+   q(6463) => [
       q(Tengger),
       ],
-   q(6475) => [
+   q(6464) => [
       q(Soo),
       ],
-   q(6476) => [
+   q(6465) => [
       q(Teor),
       ],
-   q(6477) => [
+   q(6466) => [
       q(Tewa (USA)),
       ],
-   q(6478) => [
+   q(6467) => [
       q(Tennet),
       ],
-   q(6479) => [
+   q(6468) => [
       q(Tulishi),
       ],
-   q(6480) => [
+   q(6469) => [
       q(Tofin Gbe),
       ],
-   q(6481) => [
+   q(6470) => [
       q(Tanaina),
       ],
-   q(6482) => [
+   q(6471) => [
       q(Tefaro),
       ],
-   q(6483) => [
+   q(6472) => [
       q(Teribe),
       ],
-   q(6484) => [
+   q(6473) => [
       q(Ternate),
       ],
-   q(6485) => [
+   q(6474) => [
       q(Sagalla),
       ],
-   q(6486) => [
+   q(6475) => [
       q(Tobilung),
       ],
-   q(6487) => [
+   q(6476) => [
       q(Tigak),
       ],
-   q(6488) => [
+   q(6477) => [
       q(Ciwogai),
       ],
-   q(6489) => [
+   q(6478) => [
       q(Eastern Gorkha Tamang),
       ],
-   q(6490) => [
+   q(6479) => [
       q(Chalikha),
       ],
-   q(6491) => [
+   q(6480) => [
       q(Tobagonian Creole English),
       ],
-   q(6492) => [
+   q(6481) => [
       q(Lawunuia),
       ],
-   q(6493) => [
+   q(6482) => [
       q(Tagin),
       ],
-   q(6494) => [
+   q(6483) => [
       q(Tandaganon),
       ],
-   q(6495) => [
+   q(6484) => [
       q(Sudest),
       ],
-   q(6496) => [
+   q(6485) => [
       q(Tangoa),
       ],
-   q(6497) => [
+   q(6486) => [
       q(Tring),
       ],
-   q(6498) => [
+   q(6487) => [
       q(Tareng),
       ],
-   q(6499) => [
+   q(6488) => [
       q(Nume),
       ],
-   q(6500) => [
+   q(6489) => [
       q(Central Tagbanwa),
       ],
-   q(6501) => [
+   q(6490) => [
       q(Tanggu),
       ],
-   q(6502) => [
+   q(6491) => [
       q(Tingui-Boto),
       ],
-   q(6503) => [
+   q(6492) => [
       q(Tagwana Senoufo),
       ],
-   q(6504) => [
+   q(6493) => [
       q(Tagish),
       ],
-   q(6505) => [
+   q(6494) => [
       q(Togoyo),
       ],
-   q(6506) => [
+   q(6495) => [
       q(Tagalaka),
       ],
-   q(6507) => [
+   q(6496) => [
       q(Tai Hang Tong),
       ],
-   q(6508) => [
+   q(6497) => [
       q(Thayore),
       ],
-   q(6509) => [
+   q(6498) => [
       q(Chitwania Tharu),
       ],
-   q(6510) => [
+   q(6499) => [
       q(Thangmi),
       ],
-   q(6511) => [
+   q(6500) => [
       q(Northern Tarahumara),
       ],
-   q(6512) => [
+   q(6501) => [
       q(Tai Long),
       ],
-   q(6513) => [
+   q(6502) => [
       q(Tharaka),
       q(Kitharaka),
       ],
-   q(6514) => [
+   q(6503) => [
       q(Dangaura Tharu),
       ],
-   q(6515) => [
+   q(6504) => [
       q(Aheu),
       ],
-   q(6516) => [
+   q(6505) => [
       q(Thachanadan),
       ],
-   q(6517) => [
+   q(6506) => [
       q(Thompson),
       ],
-   q(6518) => [
+   q(6507) => [
       q(Kochila Tharu),
       ],
-   q(6519) => [
+   q(6508) => [
       q(Rana Tharu),
       ],
-   q(6520) => [
+   q(6509) => [
       q(Thakali),
       ],
-   q(6521) => [
+   q(6510) => [
       q(Tahltan),
       ],
-   q(6522) => [
+   q(6511) => [
       q(Thuri),
       ],
-   q(6523) => [
+   q(6512) => [
       q(Tahaggart Tamahaq),
       ],
-   q(6524) => [
+   q(6513) => [
       q(Thudam),
       ],
-   q(6525) => [
-      q(The),
-      ],
-   q(6526) => [
+   q(6514) => [
       q(Tha),
       ],
-   q(6527) => [
+   q(6515) => [
       q(Tayart Tamajeq),
       ],
-   q(6528) => [
+   q(6516) => [
       q(Tidikelt Tamazight),
       ],
-   q(6529) => [
+   q(6517) => [
       q(Tira),
       ],
-   q(6530) => [
+   q(6518) => [
       q(Tidong),
       ],
-   q(6531) => [
+   q(6519) => [
       q(Tifal),
       ],
-   q(6532) => [
+   q(6520) => [
       q(Timugon Murut),
       ],
-   q(6533) => [
+   q(6521) => [
       q(Tiene),
       ],
-   q(6534) => [
+   q(6522) => [
       q(Tilung),
       ],
-   q(6535) => [
+   q(6523) => [
       q(Tikar),
       ],
-   q(6536) => [
+   q(6524) => [
       q(Tillamook),
       ],
-   q(6537) => [
+   q(6525) => [
       q(Timbe),
       ],
-   q(6538) => [
+   q(6526) => [
       q(Tindi),
       ],
-   q(6539) => [
+   q(6527) => [
       q(Teop),
       ],
-   q(6540) => [
+   q(6528) => [
       q(Trimuris),
       ],
-   q(6541) => [
+   q(6529) => [
       q(Tiefo),
       ],
-   q(6542) => [
+   q(6530) => [
       q(Masadiit Itneg),
       ],
-   q(6543) => [
+   q(6531) => [
       q(Tinigua),
       ],
-   q(6544) => [
+   q(6532) => [
       q(Adasen),
       ],
-   q(6545) => [
+   q(6533) => [
       q(Tiwi),
       ],
-   q(6546) => [
+   q(6534) => [
       q(Southern Tiwa),
       ],
-   q(6547) => [
+   q(6535) => [
       q(Tiruray),
       ],
-   q(6548) => [
+   q(6536) => [
       q(Tai Hongjin),
       ],
-   q(6549) => [
+   q(6537) => [
       q(Tajuasohn),
       ],
-   q(6550) => [
+   q(6538) => [
       q(Tunjung),
       ],
-   q(6551) => [
+   q(6539) => [
       q(Northern Tujia),
       ],
-   q(6552) => [
+   q(6540) => [
       q(Tai Laing),
       ],
-   q(6553) => [
+   q(6541) => [
       q(Timucua),
       ],
-   q(6554) => [
+   q(6542) => [
       q(Tonjon),
       ],
-   q(6555) => [
+   q(6543) => [
       q(Temacine Tamazight),
       ],
-   q(6556) => [
+   q(6544) => [
       q(Southern Tujia),
       ],
-   q(6557) => [
+   q(6545) => [
       q(Tjurruru),
       ],
-   q(6558) => [
+   q(6546) => [
       q(Djabwurrung),
       ],
-   q(6559) => [
+   q(6547) => [
       q(Truka),
       ],
-   q(6560) => [
+   q(6548) => [
       q(Buksa),
       ],
-   q(6561) => [
+   q(6549) => [
       q(Tukudede),
       ],
-   q(6562) => [
+   q(6550) => [
       q(Takwane),
       ],
-   q(6563) => [
+   q(6551) => [
       q(Tukumanfed),
       ],
-   q(6564) => [
+   q(6552) => [
       q(Tesaka Malagasy),
       ],
-   q(6565) => [
+   q(6553) => [
       q(Takelma),
       ],
-   q(6566) => [
+   q(6554) => [
       q(Toku-No-Shima),
       ],
-   q(6567) => [
+   q(6555) => [
       q(Tikopia),
       ],
-   q(6568) => [
+   q(6556) => [
       q(Tee),
       ],
-   q(6569) => [
+   q(6557) => [
       q(Tsakhur),
       ],
-   q(6570) => [
+   q(6558) => [
       q(Takestani),
       ],
-   q(6571) => [
+   q(6559) => [
       q(Kathoriya Tharu),
       ],
-   q(6572) => [
+   q(6560) => [
       q(Upper Necaxa Totonac),
       ],
-   q(6573) => [
+   q(6561) => [
       q(Mur Pano),
       ],
-   q(6574) => [
+   q(6562) => [
       q(Teanu),
       ],
-   q(6575) => [
+   q(6563) => [
       q(Tangko),
       ],
-   q(6576) => [
+   q(6564) => [
       q(Takua),
       ],
-   q(6577) => [
+   q(6565) => [
       q(Southwestern Tepehuan),
       ],
-   q(6578) => [
+   q(6566) => [
       q(Tobelo),
       ],
-   q(6579) => [
+   q(6567) => [
       q(Yecuatla Totonac),
       ],
-   q(6580) => [
+   q(6568) => [
       q(Talaud),
       ],
-   q(6581) => [
+   q(6569) => [
       q(Telefol),
       ],
-   q(6582) => [
+   q(6570) => [
       q(Tofanma),
       ],
-   q(6583) => [
+   q(6571) => [
       q(Talinga-Bwisi),
       ],
-   q(6584) => [
+   q(6572) => [
       q(Taloki),
       ],
-   q(6585) => [
+   q(6573) => [
       q(Tetela),
       ],
-   q(6586) => [
+   q(6574) => [
       q(Tolomako),
       ],
-   q(6587) => [
+   q(6575) => [
       q(Talondo'),
       ],
-   q(6588) => [
+   q(6576) => [
       q(Talodi),
       ],
-   q(6589) => [
+   q(6577) => [
       q(Filomena Mata-Coahuitlan Totonac),
       ],
-   q(6590) => [
+   q(6578) => [
       q(Tai Loi),
       ],
-   q(6591) => [
+   q(6579) => [
       q(Talise),
       ],
-   q(6592) => [
+   q(6580) => [
       q(Tambotalo),
       ],
-   q(6593) => [
+   q(6581) => [
       q(Teluti),
       ],
-   q(6594) => [
+   q(6582) => [
       q(Tulehu),
       ],
-   q(6595) => [
+   q(6583) => [
       q(Taliabu),
       ],
-   q(6596) => [
+   q(6584) => [
       q(Khehek),
       ],
-   q(6597) => [
+   q(6585) => [
       q(Talysh),
       ],
-   q(6598) => [
+   q(6586) => [
       q(Tama (Chad)),
       ],
-   q(6599) => [
+   q(6587) => [
       q(Katbol),
       q(Avava),
       ],
-   q(6600) => [
+   q(6588) => [
       q(Tumak),
       ],
-   q(6601) => [
+   q(6589) => [
       q(Haruai),
       ],
-   q(6602) => [
+   q(6590) => [
       q(Tremembe),
       ],
-   q(6603) => [
+   q(6591) => [
       q(Toba-Maskoy),
       ],
-   q(6604) => [
+   q(6592) => [
       q(Ternateno),
       ],
-   q(6605) => [
+   q(6593) => [
       q(Tutuba),
       ],
-   q(6606) => [
+   q(6594) => [
       q(Samarokena),
       ],
-   q(6607) => [
+   q(6595) => [
       q(Northwestern Tamang),
       ],
-   q(6608) => [
+   q(6596) => [
       q(Tamnim Citak),
       ],
-   q(6609) => [
+   q(6597) => [
       q(Tai Thanh),
       ],
-   q(6610) => [
+   q(6598) => [
       q(Taman (Indonesia)),
       ],
-   q(6611) => [
+   q(6599) => [
       q(Temoq),
       ],
-   q(6612) => [
+   q(6600) => [
       q(Tai Mene),
       ],
-   q(6613) => [
+   q(6601) => [
       q(Tumleo),
       ],
-   q(6614) => [
+   q(6602) => [
       q(Jewish Babylonian Aramaic (ca. 200-1200 CE)),
       ],
-   q(6615) => [
+   q(6603) => [
       q(Tima),
       ],
-   q(6616) => [
+   q(6604) => [
       q(Tasmate),
       ],
-   q(6617) => [
+   q(6605) => [
       q(Iau),
       ],
-   q(6618) => [
+   q(6606) => [
       q(Tembo (Motembo)),
       ],
-   q(6619) => [
+   q(6607) => [
       q(Temuan),
       ],
-   q(6620) => [
+   q(6608) => [
       q(Tami),
       ],
-   q(6621) => [
+   q(6609) => [
       q(Tamanaku),
       ],
-   q(6622) => [
+   q(6610) => [
       q(Tacana),
       ],
-   q(6623) => [
+   q(6611) => [
       q(Western Tunebo),
       ],
-   q(6624) => [
+   q(6612) => [
       q(Tanimuca-Retuara),
       ],
-   q(6625) => [
+   q(6613) => [
       q(Angosturas Tunebo),
       ],
-   q(6626) => [
+   q(6614) => [
       q(Tinoc Kallahan),
       ],
-   q(6627) => [
+   q(6615) => [
       q(Tobanga),
       ],
-   q(6628) => [
+   q(6616) => [
       q(Maiani),
       ],
-   q(6629) => [
+   q(6617) => [
       q(Tandia),
       ],
-   q(6630) => [
+   q(6618) => [
       q(Kwamera),
       ],
-   q(6631) => [
+   q(6619) => [
       q(Lenakel),
       ],
-   q(6632) => [
+   q(6620) => [
       q(Tabla),
       ],
-   q(6633) => [
+   q(6621) => [
       q(North Tanna),
       ],
-   q(6634) => [
+   q(6622) => [
       q(Toromono),
       ],
-   q(6635) => [
+   q(6623) => [
       q(Whitesands),
       ],
-   q(6636) => [
+   q(6624) => [
       q(Taino),
       ],
-   q(6637) => [
+   q(6625) => [
       q(Menik),
       ],
-   q(6638) => [
+   q(6626) => [
       q(Tenis),
       ],
-   q(6639) => [
+   q(6627) => [
       q(Tontemboan),
       ],
-   q(6640) => [
+   q(6628) => [
       q(Tay Khang),
       ],
-   q(6641) => [
+   q(6629) => [
       q(Tangchangya),
       ],
-   q(6642) => [
+   q(6630) => [
       q(Tonsawang),
       ],
-   q(6643) => [
+   q(6631) => [
       q(Tanema),
       ],
-   q(6644) => [
+   q(6632) => [
       q(Tongwe),
       ],
-   q(6645) => [
+   q(6633) => [
       q(Tonga (Thailand)),
       ],
-   q(6646) => [
+   q(6634) => [
       q(Toba),
       ],
-   q(6647) => [
+   q(6635) => [
       q(Coyutla Totonac),
       ],
-   q(6648) => [
+   q(6636) => [
       q(Toma),
       ],
-   q(6649) => [
+   q(6637) => [
       q(Tomedes),
       ],
-   q(6650) => [
+   q(6638) => [
       q(Gizrra),
       ],
-   q(6651) => [
+   q(6639) => [
       q(Gitonga),
       ],
-   q(6652) => [
+   q(6640) => [
       q(Tonga (Zambia)),
       ],
-   q(6653) => [
+   q(6641) => [
       q(Tojolabal),
       ],
-   q(6654) => [
+   q(6642) => [
       q(Tolowa),
       ],
-   q(6655) => [
+   q(6643) => [
       q(Tombulu),
       ],
-   q(6656) => [
+   q(6644) => [
       q(Xicotepec De Juarez Totonac),
       ],
-   q(6657) => [
+   q(6645) => [
       q(Papantla Totonac),
       ],
-   q(6658) => [
+   q(6646) => [
       q(Toposa),
       ],
-   q(6659) => [
+   q(6647) => [
       q(Togbo-Vara Banda),
       ],
-   q(6660) => [
+   q(6648) => [
       q(Highland Totonac),
       ],
-   q(6661) => [
+   q(6649) => [
       q(Tho),
       ],
-   q(6662) => [
+   q(6650) => [
       q(Upper Taromi),
       ],
-   q(6663) => [
+   q(6651) => [
       q(Jemez),
       ],
-   q(6664) => [
+   q(6652) => [
       q(Tobian),
       ],
-   q(6665) => [
+   q(6653) => [
       q(Topoiyo),
       ],
-   q(6666) => [
+   q(6654) => [
       q(To),
       ],
-   q(6667) => [
+   q(6655) => [
       q(Taupota),
       ],
-   q(6668) => [
+   q(6656) => [
       q(Azoyu Me'phaa),
       q(Azoyu Tlapanec),
       ],
-   q(6669) => [
+   q(6657) => [
       q(Tippera),
       ],
-   q(6670) => [
+   q(6658) => [
       q(Tarpia),
       ],
-   q(6671) => [
+   q(6659) => [
       q(Kula),
       ],
-   q(6672) => [
+   q(6660) => [
       q(Tapiete),
       ],
-   q(6673) => [
+   q(6661) => [
       q(Tupinikin),
       ],
-   q(6674) => [
+   q(6662) => [
       q(Tlacoapa Me'phaa),
       q(Tlacoapa Tlapanec),
       ],
-   q(6675) => [
+   q(6663) => [
       q(Tampulma),
       ],
-   q(6676) => [
+   q(6664) => [
       q(Tupinamba),
       ],
-   q(6677) => [
+   q(6665) => [
       q(Tai Pao),
       ],
-   q(6678) => [
+   q(6666) => [
       q(Pisaflores Tepehua),
       ],
-   q(6679) => [
+   q(6667) => [
       q(Tukpa),
       ],
-   q(6680) => [
+   q(6668) => [
       q(Tupari),
       ],
-   q(6681) => [
+   q(6669) => [
       q(Tlachichilco Tepehua),
       ],
-   q(6682) => [
+   q(6670) => [
       q(Tampuan),
       ],
-   q(6683) => [
+   q(6671) => [
       q(Tanapag),
       ],
-   q(6684) => [
+   q(6672) => [
       q(Tupi),
       ],
-   q(6685) => [
+   q(6673) => [
       q(Acatepec Me'phaa),
       q(Acatepec Tlapanec),
       ],
-   q(6686) => [
+   q(6674) => [
       q(Trumai),
       ],
-   q(6687) => [
+   q(6675) => [
       q(Tinputz),
       ],
-   q(6688) => [
+   q(6676) => [
       q(Tembe),
       ],
-   q(6689) => [
+   q(6677) => [
       q(Lehali),
       ],
-   q(6690) => [
+   q(6678) => [
       q(Turumsa),
       ],
-   q(6691) => [
+   q(6679) => [
       q(Tenino),
       ],
-   q(6692) => [
+   q(6680) => [
       q(Toaripi),
       ],
-   q(6693) => [
+   q(6681) => [
       q(Tomoip),
       ],
-   q(6694) => [
+   q(6682) => [
       q(Tunni),
       ],
-   q(6695) => [
+   q(6683) => [
       q(Torona),
       ],
-   q(6696) => [
+   q(6684) => [
       q(Western Totonac),
       ],
-   q(6697) => [
+   q(6685) => [
       q(Touo),
       ],
-   q(6698) => [
+   q(6686) => [
       q(Tonkawa),
       ],
-   q(6699) => [
+   q(6687) => [
       q(Tirahi),
       ],
-   q(6700) => [
+   q(6688) => [
       q(Terebu),
       ],
-   q(6701) => [
+   q(6689) => [
       q(Copala Triqui),
       ],
-   q(6702) => [
+   q(6690) => [
       q(Turi),
       ],
-   q(6703) => [
+   q(6691) => [
       q(East Tarangan),
       ],
-   q(6704) => [
+   q(6692) => [
       q(Trinidadian Creole English),
       ],
-   q(6705) => [
+   q(6693) => [
       q(Lishan Didan),
       ],
-   q(6706) => [
+   q(6694) => [
       q(Turaka),
       ],
-   q(6707) => [
+   q(6695) => [
       q(Trio),
       ],
-   q(6708) => [
+   q(6696) => [
       q(Toram),
       ],
-   q(6709) => [
+   q(6697) => [
       q(Traveller Scottish),
       ],
-   q(6710) => [
+   q(6698) => [
       q(Tregami),
       ],
-   q(6711) => [
+   q(6699) => [
       q(Trinitario),
       ],
-   q(6712) => [
+   q(6700) => [
       q(Tarao Naga),
       ],
-   q(6713) => [
+   q(6701) => [
       q(Kok Borok),
       ],
-   q(6714) => [
+   q(6702) => [
       q(San Martin Itunyoso Triqui),
       ],
-   q(6715) => [
+   q(6703) => [
       q(Taushiro),
       ],
-   q(6716) => [
+   q(6704) => [
       q(Chicahuaxtla Triqui),
       ],
-   q(6717) => [
+   q(6705) => [
       q(Tunggare),
       ],
-   q(6718) => [
+   q(6706) => [
       q(Turoyo),
       q(Surayt),
       ],
-   q(6719) => [
+   q(6707) => [
       q(Taroko),
       ],
-   q(6720) => [
+   q(6708) => [
       q(Torwali),
       ],
-   q(6721) => [
+   q(6709) => [
       q(Tringgus-Sembaan Bidayuh),
       ],
-   q(6722) => [
+   q(6710) => [
       q(Turung),
       ],
-   q(6723) => [
+   q(6711) => [
       q(Tora),
       ],
-   q(6724) => [
+   q(6712) => [
       q(Tsaangi),
       ],
-   q(6725) => [
+   q(6713) => [
       q(Tsamai),
       ],
-   q(6726) => [
+   q(6714) => [
       q(Tswa),
       ],
-   q(6727) => [
+   q(6715) => [
       q(Tsakonian),
       ],
-   q(6728) => [
+   q(6716) => [
       q(Tunisian Sign Language),
       ],
-   q(6729) => [
-      q(Southwestern Tamang),
-      ],
-   q(6730) => [
+   q(6717) => [
       q(Tausug),
       ],
-   q(6731) => [
+   q(6718) => [
       q(Tsuvan),
       ],
-   q(6732) => [
+   q(6719) => [
       q(Tshangla),
       ],
-   q(6733) => [
+   q(6720) => [
       q(Tseku),
       ],
-   q(6734) => [
+   q(6721) => [
       q(Ts'un-Lao),
       ],
-   q(6735) => [
+   q(6722) => [
       q(Turkish Sign Language),
       q(Turk Isaret Dili),
       ],
-   q(6736) => [
+   q(6723) => [
       q(Northern Toussian),
       ],
-   q(6737) => [
+   q(6724) => [
       q(Thai Sign Language),
       ],
-   q(6738) => [
+   q(6725) => [
       q(Akei),
       ],
-   q(6739) => [
+   q(6726) => [
       q(Taiwan Sign Language),
       ],
-   q(6740) => [
+   q(6727) => [
       q(Tondi Songway Kiini),
       ],
-   q(6741) => [
+   q(6728) => [
       q(Tsou),
       ],
-   q(6742) => [
+   q(6729) => [
       q(Tsogo),
       ],
-   q(6743) => [
+   q(6730) => [
       q(Tsishingini),
       ],
-   q(6744) => [
+   q(6731) => [
       q(Mubami),
       ],
-   q(6745) => [
+   q(6732) => [
       q(Tebul Sign Language),
       ],
-   q(6746) => [
+   q(6733) => [
       q(Purepecha),
       ],
-   q(6747) => [
+   q(6734) => [
       q(Tutelo),
       ],
-   q(6748) => [
+   q(6735) => [
       q(Gaa),
       ],
-   q(6749) => [
+   q(6736) => [
       q(Tektiteko),
       ],
-   q(6750) => [
+   q(6737) => [
       q(Tauade),
       ],
-   q(6751) => [
+   q(6738) => [
       q(Bwanabwana),
       ],
-   q(6752) => [
+   q(6739) => [
       q(Tuotomb),
       ],
-   q(6753) => [
+   q(6740) => [
       q(Tutong),
       ],
-   q(6754) => [
+   q(6741) => [
       q(Upper Ta'oih),
       ],
-   q(6755) => [
+   q(6742) => [
       q(Tobati),
       ],
-   q(6756) => [
+   q(6743) => [
       q(Tooro),
       ],
-   q(6757) => [
+   q(6744) => [
       q(Totoro),
       ],
-   q(6758) => [
+   q(6745) => [
       q(Totela),
       ],
-   q(6759) => [
+   q(6746) => [
       q(Northern Tutchone),
       ],
-   q(6760) => [
+   q(6747) => [
       q(Towei),
       ],
-   q(6761) => [
+   q(6748) => [
       q(Lower Ta'oih),
       ],
-   q(6762) => [
+   q(6749) => [
       q(Tombelala),
       ],
-   q(6763) => [
+   q(6750) => [
       q(Tawallammat Tamajaq),
       ],
-   q(6764) => [
+   q(6751) => [
       q(Tera),
       ],
-   q(6765) => [
+   q(6752) => [
       q(Northeastern Thai),
       ],
-   q(6766) => [
+   q(6753) => [
       q(Muslim Tat),
       ],
-   q(6767) => [
+   q(6754) => [
       q(Torau),
       ],
-   q(6768) => [
+   q(6755) => [
       q(Titan),
       ],
-   q(6769) => [
+   q(6756) => [
       q(Long Wat),
       ],
-   q(6770) => [
+   q(6757) => [
       q(Sikaritai),
       ],
-   q(6771) => [
+   q(6758) => [
       q(Tsum),
       ],
-   q(6772) => [
+   q(6759) => [
       q(Wiarumus),
       ],
-   q(6773) => [
+   q(6760) => [
       q(Tubatulabal),
       ],
-   q(6774) => [
+   q(6761) => [
       q(Mutu),
       ],
-   q(6775) => [
+   q(6762) => [
       q(Tuxa),
       ],
-   q(6776) => [
+   q(6763) => [
       q(Tuyuca),
       ],
-   q(6777) => [
+   q(6764) => [
       q(Central Tunebo),
       ],
-   q(6778) => [
+   q(6765) => [
       q(Tunia),
       ],
-   q(6779) => [
+   q(6766) => [
       q(Taulil),
       ],
-   q(6780) => [
+   q(6767) => [
       q(Tupuri),
       ],
-   q(6781) => [
+   q(6768) => [
       q(Tugutil),
       ],
-   q(6782) => [
+   q(6769) => [
       q(Tula),
       ],
-   q(6783) => [
+   q(6770) => [
       q(Tunica),
       ],
-   q(6784) => [
+   q(6771) => [
       q(Tucano),
       ],
-   q(6785) => [
+   q(6772) => [
       q(Tedaga),
       ],
-   q(6786) => [
+   q(6773) => [
       q(Tuscarora),
       ],
-   q(6787) => [
+   q(6774) => [
       q(Tututni),
       ],
-   q(6788) => [
+   q(6775) => [
       q(Turkana),
       ],
-   q(6789) => [
+   q(6776) => [
       q(Tuxinawa),
       ],
-   q(6790) => [
+   q(6777) => [
       q(Tugen),
       ],
-   q(6791) => [
+   q(6778) => [
       q(Turka),
       ],
-   q(6792) => [
+   q(6779) => [
       q(Vaghua),
       ],
-   q(6793) => [
+   q(6780) => [
       q(Tsuvadi),
       ],
-   q(6794) => [
+   q(6781) => [
       q(Te'un),
       ],
-   q(6795) => [
+   q(6782) => [
       q(Southeast Ambrym),
       ],
-   q(6796) => [
+   q(6783) => [
       q(Tela-Masbuar),
       ],
-   q(6797) => [
+   q(6784) => [
       q(Tavoyan),
       ],
-   q(6798) => [
+   q(6785) => [
       q(Tidore),
       ],
-   q(6799) => [
+   q(6786) => [
       q(Taveta),
       ],
-   q(6800) => [
+   q(6787) => [
       q(Tutsa Naga),
       ],
-   q(6801) => [
+   q(6788) => [
       q(Tunen),
       ],
-   q(6802) => [
+   q(6789) => [
       q(Sedoa),
       ],
-   q(6803) => [
+   q(6790) => [
       q(Timor Pidgin),
       ],
-   q(6804) => [
+   q(6791) => [
       q(Twana),
       ],
-   q(6805) => [
+   q(6792) => [
       q(Western Tawbuid),
       ],
-   q(6806) => [
+   q(6793) => [
       q(Teshenawa),
       ],
-   q(6807) => [
+   q(6794) => [
       q(Twents),
       ],
-   q(6808) => [
+   q(6795) => [
       q(Tewa (Indonesia)),
       ],
-   q(6809) => [
+   q(6796) => [
       q(Northern Tiwa),
       ],
-   q(6810) => [
+   q(6797) => [
       q(Tereweng),
       ],
-   q(6811) => [
+   q(6798) => [
       q(Tai Don),
       ],
-   q(6812) => [
+   q(6799) => [
       q(Tawara),
       ],
-   q(6813) => [
+   q(6800) => [
       q(Tawang Monpa),
       ],
-   q(6814) => [
+   q(6801) => [
       q(Twendi),
       ],
-   q(6815) => [
+   q(6802) => [
       q(Tswapong),
       ],
-   q(6816) => [
+   q(6803) => [
       q(Ere),
       ],
-   q(6817) => [
+   q(6804) => [
       q(Tasawaq),
       ],
-   q(6818) => [
+   q(6805) => [
       q(Southwestern Tarahumara),
       ],
-   q(6819) => [
+   q(6806) => [
       q(Turiwara),
       ],
-   q(6820) => [
+   q(6807) => [
       q(Termanu),
       ],
-   q(6821) => [
+   q(6808) => [
       q(Tuwari),
       ],
-   q(6822) => [
+   q(6809) => [
       q(Tewe),
       ],
-   q(6823) => [
+   q(6810) => [
       q(Tawoyan),
       ],
-   q(6824) => [
+   q(6811) => [
       q(Tombonuo),
       ],
-   q(6825) => [
+   q(6812) => [
       q(Tokharian B),
       ],
-   q(6826) => [
+   q(6813) => [
       q(Tsetsaut),
       ],
-   q(6827) => [
+   q(6814) => [
       q(Totoli),
       ],
-   q(6828) => [
+   q(6815) => [
       q(Tangut),
       ],
-   q(6829) => [
+   q(6816) => [
       q(Thracian),
       ],
-   q(6830) => [
+   q(6817) => [
       q(Ikpeng),
       ],
-   q(6831) => [
+   q(6818) => [
+      q(Tarjumo),
+      ],
+   q(6819) => [
       q(Tomini),
       ],
-   q(6832) => [
+   q(6820) => [
       q(West Tarangan),
       ],
-   q(6833) => [
+   q(6821) => [
       q(Toto),
       ],
-   q(6834) => [
+   q(6822) => [
       q(Tii),
       ],
-   q(6835) => [
+   q(6823) => [
       q(Tartessian),
       ],
-   q(6836) => [
+   q(6824) => [
       q(Tonsea),
       ],
-   q(6837) => [
+   q(6825) => [
       q(Citak),
       ],
-   q(6838) => [
+   q(6826) => [
       q(Kayapo),
       ],
-   q(6839) => [
+   q(6827) => [
       q(Tatana),
       ],
-   q(6840) => [
+   q(6828) => [
       q(Tanosy Malagasy),
       ],
-   q(6841) => [
+   q(6829) => [
       q(Tauya),
       ],
-   q(6842) => [
+   q(6830) => [
       q(Kyanga),
       ],
-   q(6843) => [
+   q(6831) => [
       q(O'du),
       ],
-   q(6844) => [
+   q(6832) => [
       q(Teke-Tsaayi),
       ],
-   q(6845) => [
+   q(6833) => [
       q(Tai Do),
       ],
-   q(6846) => [
+   q(6834) => [
       q(Thu Lao),
       ],
-   q(6847) => [
+   q(6835) => [
       q(Kombai),
       ],
-   q(6848) => [
+   q(6836) => [
       q(Thaypan),
       ],
-   q(6849) => [
+   q(6837) => [
       q(Tai Daeng),
       ],
-   q(6850) => [
+   q(6838) => [
       q(Tay Sa Pa),
       ],
-   q(6851) => [
+   q(6839) => [
       q(Tay Tac),
       ],
-   q(6852) => [
+   q(6840) => [
       q(Kua),
       ],
-   q(6853) => [
+   q(6841) => [
       q(Teke-Tyee),
       ],
-   q(6854) => [
+   q(6842) => [
       q(Tay),
       ],
-   q(6855) => [
+   q(6843) => [
       q(Tanzanian Sign Language),
       ],
-   q(6856) => [
+   q(6844) => [
       q(Tzeltal),
       ],
-   q(6857) => [
+   q(6845) => [
       q(Tz'utujil),
       ],
-   q(6858) => [
+   q(6846) => [
       q(Talossan),
       ],
-   q(6859) => [
+   q(6847) => [
       q(Central Atlas Tamazight),
       ],
-   q(6860) => [
+   q(6848) => [
       q(Tugun),
       ],
-   q(6861) => [
+   q(6849) => [
       q(Tzotzil),
       ],
-   q(6862) => [
+   q(6850) => [
       q(Tabriak),
       ],
-   q(6863) => [
+   q(6851) => [
       q(Uamue),
       ],
-   q(6864) => [
+   q(6852) => [
       q(Kuan),
       ],
-   q(6865) => [
+   q(6853) => [
       q(Tairuma),
       ],
-   q(6866) => [
+   q(6854) => [
       q(Ubang),
       ],
-   q(6867) => [
+   q(6855) => [
       q(Ubi),
       ],
-   q(6868) => [
+   q(6856) => [
       q(Buhi'non Bikol),
       ],
-   q(6869) => [
+   q(6857) => [
       q(Ubir),
       ],
-   q(6870) => [
+   q(6858) => [
       q(Umbu-Ungu),
       ],
-   q(6871) => [
+   q(6859) => [
       q(Ubykh),
       ],
-   q(6872) => [
+   q(6860) => [
       q(Uda),
       ],
-   q(6873) => [
+   q(6861) => [
       q(Udihe),
       ],
-   q(6874) => [
+   q(6862) => [
       q(Muduga),
       ],
-   q(6875) => [
+   q(6863) => [
       q(Udi),
       ],
-   q(6876) => [
+   q(6864) => [
       q(Ujir),
       ],
-   q(6877) => [
+   q(6865) => [
       q(Wuzlam),
       ],
-   q(6878) => [
+   q(6866) => [
       q(Uduk),
       ],
-   q(6879) => [
+   q(6867) => [
       q(Kioko),
       ],
-   q(6880) => [
+   q(6868) => [
       q(Ufim),
       ],
-   q(6881) => [
+   q(6869) => [
       q(Kuku-Ugbanh),
       ],
-   q(6882) => [
+   q(6870) => [
       q(Ughele),
       ],
-   q(6883) => [
+   q(6871) => [
       q(Ugandan Sign Language),
       ],
-   q(6884) => [
+   q(6872) => [
       q(Ugong),
       ],
-   q(6885) => [
+   q(6873) => [
       q(Uruguayan Sign Language),
       ],
-   q(6886) => [
+   q(6874) => [
       q(Uhami),
       ],
-   q(6887) => [
+   q(6875) => [
       q(Damal),
       ],
-   q(6888) => [
+   q(6876) => [
       q(Uisai),
       ],
-   q(6889) => [
+   q(6877) => [
       q(Iyive),
       ],
-   q(6890) => [
+   q(6878) => [
       q(Tanjijili),
       ],
-   q(6891) => [
+   q(6879) => [
       q(Kaburi),
       ],
-   q(6892) => [
+   q(6880) => [
       q(Ukuriguma),
       ],
-   q(6893) => [
+   q(6881) => [
       q(Ukhwejo),
       ],
-   q(6894) => [
+   q(6882) => [
       q(Ukrainian Sign Language),
       ],
-   q(6895) => [
+   q(6883) => [
       q(Ukpe-Bayobiri),
       ],
-   q(6896) => [
+   q(6884) => [
       q(Ukwa),
       ],
-   q(6897) => [
+   q(6885) => [
       q(Urubu-Kaapor Sign Language),
       q(Kaapor Sign Language),
       ],
-   q(6898) => [
+   q(6886) => [
       q(Ukue),
       ],
-   q(6899) => [
+   q(6887) => [
       q(Ukwuani-Aboh-Ndoni),
       ],
-   q(6900) => [
+   q(6888) => [
       q(Kuuk-Yak),
       ],
-   q(6901) => [
+   q(6889) => [
       q(Fungwa),
       ],
-   q(6902) => [
+   q(6890) => [
       q(Ulukwumi),
       ],
-   q(6903) => [
+   q(6891) => [
       q(Ulch),
       ],
-   q(6904) => [
+   q(6892) => [
       q(Lule),
       ],
-   q(6905) => [
+   q(6893) => [
       q(Usku),
       q(Afra),
       ],
-   q(6906) => [
+   q(6894) => [
       q(Ulithian),
       ],
-   q(6907) => [
+   q(6895) => [
       q(Meriam),
       ],
-   q(6908) => [
+   q(6896) => [
       q(Ullatan),
       ],
-   q(6909) => [
+   q(6897) => [
       q(Ulumanda'),
       ],
-   q(6910) => [
+   q(6898) => [
       q(Unserdeutsch),
       ],
-   q(6911) => [
+   q(6899) => [
       q(Uma' Lung),
       ],
-   q(6912) => [
+   q(6900) => [
       q(Ulwa),
       ],
-   q(6913) => [
+   q(6901) => [
       q(Umatilla),
       ],
-   q(6914) => [
+   q(6902) => [
       q(Marrucinian),
       ],
-   q(6915) => [
+   q(6903) => [
       q(Umbindhamu),
       ],
-   q(6916) => [
+   q(6904) => [
       q(Umbuygamu),
       ],
-   q(6917) => [
+   q(6905) => [
       q(Ukit),
       ],
-   q(6918) => [
+   q(6906) => [
       q(Umon),
       ],
-   q(6919) => [
+   q(6907) => [
       q(Makyan Naga),
       ],
-   q(6920) => [
+   q(6908) => [
       q(Umotina),
       ],
-   q(6921) => [
+   q(6909) => [
       q(Umpila),
       ],
-   q(6922) => [
+   q(6910) => [
       q(Umbugarla),
       ],
-   q(6923) => [
+   q(6911) => [
       q(Pendau),
       ],
-   q(6924) => [
+   q(6912) => [
       q(Munsee),
       ],
-   q(6925) => [
+   q(6913) => [
       q(North Watut),
       ],
-   q(6926) => [
+   q(6914) => [
       q(Uneme),
       ],
-   q(6927) => [
+   q(6915) => [
       q(Ngarinyin),
       ],
-   q(6928) => [
+   q(6916) => [
       q(Enawene-Nawe),
       ],
-   q(6929) => [
+   q(6917) => [
       q(Unami),
       ],
-   q(6930) => [
+   q(6918) => [
       q(Kurnai),
       ],
-   q(6931) => [
+   q(6919) => [
       q(Mundari),
       ],
-   q(6932) => [
+   q(6920) => [
       q(Unubahe),
       ],
-   q(6933) => [
+   q(6921) => [
       q(Munda),
       ],
-   q(6934) => [
+   q(6922) => [
       q(Unde Kaili),
       ],
-   q(6935) => [
-      q(Uokha),
-      ],
-   q(6936) => [
+   q(6923) => [
       q(Umeda),
       ],
-   q(6937) => [
+   q(6924) => [
       q(Uripiv-Wala-Rano-Atchin),
       ],
-   q(6938) => [
+   q(6925) => [
       q(Urarina),
       ],
-   q(6939) => [
+   q(6926) => [
       q(Urubu-Kaapor),
       q(Kaapor),
       ],
-   q(6940) => [
+   q(6927) => [
       q(Urningangg),
       ],
-   q(6941) => [
+   q(6928) => [
       q(Uru),
       ],
-   q(6942) => [
+   q(6929) => [
       q(Uradhi),
       ],
-   q(6943) => [
+   q(6930) => [
       q(Urigina),
       ],
-   q(6944) => [
+   q(6931) => [
       q(Urhobo),
       ],
-   q(6945) => [
+   q(6932) => [
       q(Urim),
       ],
-   q(6946) => [
+   q(6933) => [
       q(Urak Lawoi'),
       ],
-   q(6947) => [
+   q(6934) => [
       q(Urali),
       ],
-   q(6948) => [
+   q(6935) => [
       q(Urapmin),
       ],
-   q(6949) => [
+   q(6936) => [
       q(Uruangnirin),
       ],
-   q(6950) => [
+   q(6937) => [
       q(Ura (Papua New Guinea)),
       ],
-   q(6951) => [
+   q(6938) => [
       q(Uru-Pa-In),
       ],
-   q(6952) => [
+   q(6939) => [
       q(Lehalurup),
       q(Loyop),
       ],
-   q(6953) => [
+   q(6940) => [
       q(Urat),
       ],
-   q(6954) => [
+   q(6941) => [
       q(Urumi),
       ],
-   q(6955) => [
+   q(6942) => [
       q(Uruava),
       ],
-   q(6956) => [
+   q(6943) => [
       q(Sop),
       ],
-   q(6957) => [
+   q(6944) => [
       q(Urimo),
       ],
-   q(6958) => [
+   q(6945) => [
       q(Orya),
       ],
-   q(6959) => [
+   q(6946) => [
       q(Uru-Eu-Wau-Wau),
       ],
-   q(6960) => [
+   q(6947) => [
       q(Usarufa),
       ],
-   q(6961) => [
+   q(6948) => [
       q(Ushojo),
       ],
-   q(6962) => [
+   q(6949) => [
       q(Usui),
       ],
-   q(6963) => [
+   q(6950) => [
       q(Usaghade),
       ],
-   q(6964) => [
+   q(6951) => [
       q(Uspanteco),
       ],
-   q(6965) => [
+   q(6952) => [
       q(Uya),
       ],
-   q(6966) => [
+   q(6953) => [
       q(Otank),
       ],
-   q(6967) => [
+   q(6954) => [
       q(Ute-Southern Paiute),
       ],
-   q(6968) => [
+   q(6955) => [
       q(Amba (Solomon Islands)),
       ],
-   q(6969) => [
+   q(6956) => [
       q(Etulo),
       ],
-   q(6970) => [
+   q(6957) => [
       q(Utu),
       ],
-   q(6971) => [
+   q(6958) => [
       q(Urum),
       ],
-   q(6972) => [
+   q(6959) => [
       q(Kulon-Pazeh),
       ],
-   q(6973) => [
+   q(6960) => [
       q(Ura (Vanuatu)),
       ],
-   q(6974) => [
+   q(6961) => [
       q(U),
       ],
-   q(6975) => [
+   q(6962) => [
       q(West Uvean),
       q(Fagauvea),
       ],
-   q(6976) => [
+   q(6963) => [
       q(Uri),
       ],
-   q(6977) => [
+   q(6964) => [
       q(Lote),
       ],
-   q(6978) => [
+   q(6965) => [
       q(Kuku-Uwanh),
       ],
-   q(6979) => [
+   q(6966) => [
       q(Doko-Uyanga),
       ],
-   q(6980) => [
+   q(6967) => [
       q(Northern Uzbek),
       ],
-   q(6981) => [
+   q(6968) => [
       q(Southern Uzbek),
       ],
-   q(6982) => [
+   q(6969) => [
       q(Vaagri Booli),
       ],
-   q(6983) => [
+   q(6970) => [
       q(Vale),
       ],
-   q(6984) => [
+   q(6971) => [
       q(Vafsi),
       ],
-   q(6985) => [
+   q(6972) => [
       q(Vagla),
       ],
-   q(6986) => [
+   q(6973) => [
       q(Varhadi-Nagpuri),
       ],
-   q(6987) => [
-      q(Vasekela Bushman),
+   q(6974) => [
+      q(Sekele),
+      q(Northwestern Kung),
+      q(Northwestern Kung),
+      q(Vasekele),
       ],
-   q(6988) => [
+   q(6975) => [
       q(Vehes),
       ],
-   q(6989) => [
+   q(6976) => [
       q(Vanimo),
       ],
-   q(6990) => [
+   q(6977) => [
       q(Valman),
       ],
-   q(6991) => [
+   q(6978) => [
       q(Vao),
       ],
-   q(6992) => [
+   q(6979) => [
       q(Vaiphei),
       ],
-   q(6993) => [
+   q(6980) => [
       q(Huarijio),
       ],
-   q(6994) => [
+   q(6981) => [
       q(Vasavi),
       ],
-   q(6995) => [
+   q(6982) => [
       q(Vanuma),
       ],
-   q(6996) => [
+   q(6983) => [
       q(Varli),
       ],
-   q(6997) => [
+   q(6984) => [
       q(Wayu),
       ],
-   q(6998) => [
+   q(6985) => [
       q(Southeast Babar),
       ],
-   q(6999) => [
+   q(6986) => [
       q(Southwestern Bontok),
       ],
-   q(7000) => [
+   q(6987) => [
       q(Venetian),
       ],
-   q(7001) => [
+   q(6988) => [
       q(Veddah),
       ],
-   q(7002) => [
+   q(6989) => [
       q(Veluws),
       ],
-   q(7003) => [
+   q(6990) => [
       q(Vemgo-Mabas),
       ],
-   q(7004) => [
+   q(6991) => [
       q(Ventureno),
       ],
-   q(7005) => [
+   q(6992) => [
       q(Veps),
       ],
-   q(7006) => [
+   q(6993) => [
       q(Mom Jango),
       ],
-   q(7007) => [
+   q(6994) => [
       q(Vaghri),
       ],
-   q(7008) => [
+   q(6995) => [
       q(Vlaamse Gebarentaal),
       q(Flemish Sign Language),
       ],
-   q(7009) => [
+   q(6996) => [
       q(Virgin Islands Creole English),
       ],
-   q(7010) => [
+   q(6997) => [
       q(Vidunda),
       ],
-   q(7011) => [
+   q(6998) => [
       q(Vili),
       ],
-   q(7012) => [
+   q(6999) => [
       q(Viemo),
       ],
-   q(7013) => [
+   q(7000) => [
       q(Vilela),
       ],
-   q(7014) => [
+   q(7001) => [
       q(Vinza),
       ],
-   q(7015) => [
+   q(7002) => [
       q(Vishavan),
       ],
-   q(7016) => [
+   q(7003) => [
       q(Viti),
       ],
-   q(7017) => [
+   q(7004) => [
       q(Iduna),
       ],
-   q(7018) => [
+   q(7005) => [
       q(Kariyarra),
       ],
-   q(7019) => [
+   q(7006) => [
       q(Ija-Zuba),
       ],
-   q(7020) => [
+   q(7007) => [
       q(Kujarge),
       ],
-   q(7021) => [
+   q(7008) => [
       q(Kaur),
       ],
-   q(7022) => [
+   q(7009) => [
       q(Kulisusu),
       ],
-   q(7023) => [
+   q(7010) => [
       q(Kamakan),
       ],
-   q(7024) => [
+   q(7011) => [
       q(Kodeoha),
       ],
-   q(7025) => [
+   q(7012) => [
       q(Korlai Creole Portuguese),
       ],
-   q(7026) => [
+   q(7013) => [
       q(Tenggarong Kutai Malay),
       ],
-   q(7027) => [
+   q(7014) => [
       q(Kurrama),
       ],
-   q(7028) => [
+   q(7015) => [
       q(Valpei),
       ],
-   q(7029) => [
+   q(7016) => [
       q(Vlaams),
       ],
-   q(7030) => [
+   q(7017) => [
       q(Martuyhunira),
       ],
-   q(7031) => [
+   q(7018) => [
       q(Barbaram),
       ],
-   q(7032) => [
+   q(7019) => [
       q(Juxtlahuaca Mixtec),
       ],
-   q(7033) => [
+   q(7020) => [
       q(Mudu Koraga),
       ],
-   q(7034) => [
+   q(7021) => [
       q(East Masela),
       ],
-   q(7035) => [
+   q(7022) => [
       q(Mainfrankisch),
       ],
-   q(7036) => [
+   q(7023) => [
       q(Lungalunga),
       ],
-   q(7037) => [
+   q(7024) => [
       q(Maraghei),
       ],
-   q(7038) => [
+   q(7025) => [
       q(Miwa),
       ],
-   q(7039) => [
+   q(7026) => [
       q(Ixtayutla Mixtec),
       ],
-   q(7040) => [
+   q(7027) => [
       q(Makhuwa-Shirima),
       ],
-   q(7041) => [
+   q(7028) => [
       q(Malgana),
       ],
-   q(7042) => [
+   q(7029) => [
       q(Mitlatongo Mixtec),
       ],
-   q(7043) => [
+   q(7030) => [
       q(Soyaltepec Mazatec),
       ],
-   q(7044) => [
+   q(7031) => [
       q(Soyaltepec Mixtec),
       ],
-   q(7045) => [
+   q(7032) => [
       q(Marenje),
       ],
-   q(7046) => [
+   q(7033) => [
       q(Moksela),
       ],
-   q(7047) => [
+   q(7034) => [
       q(Muluridyi),
       ],
-   q(7048) => [
+   q(7035) => [
       q(Valley Maidu),
       ],
-   q(7049) => [
+   q(7036) => [
       q(Makhuwa),
       ],
-   q(7050) => [
+   q(7037) => [
       q(Tamazola Mixtec),
       ],
-   q(7051) => [
+   q(7038) => [
       q(Ayautla Mazatec),
       ],
-   q(7052) => [
+   q(7039) => [
       q(Mazatlan Mazatec),
       ],
-   q(7053) => [
+   q(7040) => [
       q(Vano),
       q(Lovono),
       ],
-   q(7054) => [
+   q(7041) => [
       q(Vinmavis),
       q(Neve'ei),
       ],
-   q(7055) => [
+   q(7042) => [
       q(Vunapu),
       ],
-   q(7056) => [
+   q(7043) => [
       q(Voro),
       ],
-   q(7057) => [
+   q(7044) => [
       q(Vera'a),
       ],
-   q(7058) => [
+   q(7045) => [
       q(Varisi),
       ],
-   q(7059) => [
+   q(7046) => [
       q(Burmbar),
       q(Banam Bay),
       ],
-   q(7060) => [
+   q(7047) => [
       q(Moldova Sign Language),
       ],
-   q(7061) => [
+   q(7048) => [
       q(Venezuelan Sign Language),
       ],
-   q(7062) => [
+   q(7049) => [
       q(Valencian Sign Language),
       q(Llengua de signes valenciana),
       ],
-   q(7063) => [
+   q(7050) => [
       q(Vitou),
       ],
-   q(7064) => [
+   q(7051) => [
       q(Vumbu),
       ],
-   q(7065) => [
+   q(7052) => [
       q(Vunjo),
       ],
-   q(7066) => [
+   q(7053) => [
       q(Vute),
       ],
-   q(7067) => [
+   q(7054) => [
       q(Awa (China)),
       ],
-   q(7068) => [
+   q(7055) => [
       q(Walla Walla),
       ],
-   q(7069) => [
+   q(7056) => [
       q(Wab),
       ],
-   q(7070) => [
+   q(7057) => [
       q(Wasco-Wishram),
       ],
-   q(7071) => [
+   q(7058) => [
       q(Wandamen),
       ],
-   q(7072) => [
+   q(7059) => [
       q(Walser),
       ],
-   q(7073) => [
+   q(7060) => [
       q(Wakona),
       ],
-   q(7074) => [
+   q(7061) => [
       q(Wa'ema),
       ],
-   q(7075) => [
+   q(7062) => [
       q(Watubela),
       ],
-   q(7076) => [
+   q(7063) => [
       q(Wares),
       ],
-   q(7077) => [
+   q(7064) => [
       q(Waffa),
       ],
-   q(7078) => [
+   q(7065) => [
       q(Wampanoag),
       ],
-   q(7079) => [
+   q(7066) => [
       q(Wan),
       ],
-   q(7080) => [
+   q(7067) => [
       q(Wappo),
       ],
-   q(7081) => [
+   q(7068) => [
       q(Wapishana),
       ],
-   q(7082) => [
+   q(7069) => [
       q(Wageman),
       ],
-   q(7083) => [
+   q(7070) => [
       q(Kaninuwa),
       ],
-   q(7084) => [
+   q(7071) => [
       q(Waura),
       ],
-   q(7085) => [
+   q(7072) => [
       q(Waka),
       ],
-   q(7086) => [
+   q(7073) => [
       q(Waiwai),
       ],
-   q(7087) => [
+   q(7074) => [
       q(Watam),
       q(Marangis),
       ],
-   q(7088) => [
+   q(7075) => [
       q(Wayana),
       ],
-   q(7089) => [
+   q(7076) => [
       q(Wampur),
       ],
-   q(7090) => [
+   q(7077) => [
       q(Warao),
       ],
-   q(7091) => [
+   q(7078) => [
       q(Wabo),
       ],
-   q(7092) => [
+   q(7079) => [
       q(Waritai),
       ],
-   q(7093) => [
+   q(7080) => [
       q(Wanda),
       ],
-   q(7094) => [
+   q(7081) => [
       q(Vwanji),
       ],
-   q(7095) => [
+   q(7082) => [
       q(Alagwa),
       ],
-   q(7096) => [
+   q(7083) => [
       q(Waigali),
       ],
-   q(7097) => [
+   q(7084) => [
       q(Wakhi),
       ],
-   q(7098) => [
+   q(7085) => [
       q(Wa),
       ],
-   q(7099) => [
+   q(7086) => [
       q(Warlpiri),
       ],
-   q(7100) => [
+   q(7087) => [
       q(Waddar),
       ],
-   q(7101) => [
+   q(7088) => [
       q(Wagdi),
       ],
-   q(7102) => [
+   q(7089) => [
       q(Wanman),
       ],
-   q(7103) => [
+   q(7090) => [
       q(Wajarri),
       ],
-   q(7104) => [
+   q(7091) => [
       q(Woi),
       ],
-   q(7105) => [
+   q(7092) => [
       q(Yanomami),
       ],
-   q(7106) => [
+   q(7093) => [
       q(Waci Gbe),
       ],
-   q(7107) => [
+   q(7094) => [
       q(Wandji),
       ],
-   q(7108) => [
+   q(7095) => [
       q(Wadaginam),
       ],
-   q(7109) => [
+   q(7096) => [
       q(Wadjiginy),
       ],
-   q(7110) => [
+   q(7097) => [
       q(Wadikali),
       ],
-   q(7111) => [
+   q(7098) => [
       q(Wadjigu),
       ],
-   q(7112) => [
+   q(7099) => [
       q(Wadjabangayi),
       ],
-   q(7113) => [
+   q(7100) => [
       q(Wewaw),
       ],
-   q(7114) => [
+   q(7101) => [
       q(We Western),
       ],
-   q(7115) => [
+   q(7102) => [
       q(Wedau),
       ],
-   q(7116) => [
+   q(7103) => [
       q(Wergaia),
       ],
-   q(7117) => [
+   q(7104) => [
       q(Weh),
       ],
-   q(7118) => [
+   q(7105) => [
       q(Kiunum),
       ],
-   q(7119) => [
+   q(7106) => [
       q(Weme Gbe),
       ],
-   q(7120) => [
+   q(7107) => [
       q(Wemale),
       ],
-   q(7121) => [
+   q(7108) => [
       q(Westphalien),
       ],
-   q(7122) => [
+   q(7109) => [
       q(Weri),
       ],
-   q(7123) => [
+   q(7110) => [
       q(Cameroon Pidgin),
       ],
-   q(7124) => [
+   q(7111) => [
       q(Perai),
       ],
-   q(7125) => [
+   q(7112) => [
       q(Rawngtu Chin),
       ],
-   q(7126) => [
+   q(7113) => [
       q(Wejewa),
       ],
-   q(7127) => [
+   q(7114) => [
       q(Yafi),
       q(Zorop),
       ],
-   q(7128) => [
+   q(7115) => [
       q(Wagaya),
       ],
-   q(7129) => [
+   q(7116) => [
       q(Wagawaga),
       ],
-   q(7130) => [
+   q(7117) => [
       q(Wangganguru),
       ],
-   q(7131) => [
+   q(7118) => [
       q(Wahgi),
       ],
-   q(7132) => [
+   q(7119) => [
       q(Waigeo),
       ],
-   q(7133) => [
+   q(7120) => [
       q(Wirangu),
       ],
-   q(7134) => [
+   q(7121) => [
       q(Warrgamay),
       ],
-   q(7135) => [
+   q(7122) => [
       q(Manusela),
       ],
-   q(7136) => [
+   q(7123) => [
       q(North Wahgi),
       ],
-   q(7137) => [
+   q(7124) => [
       q(Wahau Kenyah),
       ],
-   q(7138) => [
+   q(7125) => [
       q(Wahau Kayan),
       ],
-   q(7139) => [
+   q(7126) => [
       q(Southern Toussian),
       ],
-   q(7140) => [
+   q(7127) => [
       q(Wichita),
       ],
-   q(7141) => [
+   q(7128) => [
       q(Wik-Epa),
       ],
-   q(7142) => [
+   q(7129) => [
       q(Wik-Keyangan),
       ],
-   q(7143) => [
+   q(7130) => [
       q(Wik-Ngathana),
       ],
-   q(7144) => [
+   q(7131) => [
       q(Wik-Me'anha),
       ],
-   q(7145) => [
+   q(7132) => [
       q(Minidien),
       ],
-   q(7146) => [
+   q(7133) => [
       q(Wik-Iiyanh),
       ],
-   q(7147) => [
+   q(7134) => [
       q(Wikalkan),
       ],
-   q(7148) => [
+   q(7135) => [
       q(Wilawila),
       ],
-   q(7149) => [
+   q(7136) => [
       q(Wik-Mungkan),
       ],
-   q(7150) => [
+   q(7137) => [
       q(Ho-Chunk),
       ],
-   q(7151) => [
+   q(7138) => [
       q(Wirafed),
       ],
-   q(7152) => [
+   q(7139) => [
       q(Wiru),
       ],
-   q(7153) => [
+   q(7140) => [
       q(Vitu),
       ],
-   q(7154) => [
+   q(7141) => [
       q(Wiyot),
       ],
-   q(7155) => [
+   q(7142) => [
       q(Waja),
       ],
-   q(7156) => [
+   q(7143) => [
       q(Warji),
       ],
-   q(7157) => [
+   q(7144) => [
       q(Kw'adza),
       ],
-   q(7158) => [
+   q(7145) => [
       q(Kumbaran),
       ],
-   q(7159) => [
+   q(7146) => [
       q(Wakde),
       q(Mo),
       ],
-   q(7160) => [
+   q(7147) => [
       q(Kalanadi),
       ],
-   q(7161) => [
+   q(7148) => [
       q(Kunduvadi),
       ],
-   q(7162) => [
+   q(7149) => [
       q(Wakawaka),
       ],
-   q(7163) => [
+   q(7150) => [
       q(Wangkayutyuru),
       ],
-   q(7164) => [
+   q(7151) => [
       q(Walio),
       ],
-   q(7165) => [
+   q(7152) => [
       q(Mwali Comorian),
       ],
-   q(7166) => [
+   q(7153) => [
       q(Wolane),
       ],
-   q(7167) => [
+   q(7154) => [
       q(Kunbarlang),
       ],
-   q(7168) => [
+   q(7155) => [
       q(Waioli),
       ],
-   q(7169) => [
+   q(7156) => [
       q(Wailaki),
       ],
-   q(7170) => [
+   q(7157) => [
       q(Wali (Sudan)),
       ],
-   q(7171) => [
+   q(7158) => [
       q(Middle Welsh),
       ],
-   q(7172) => [
+   q(7159) => [
       q(Wolio),
       ],
-   q(7173) => [
+   q(7160) => [
       q(Wailapa),
       ],
-   q(7174) => [
+   q(7161) => [
       q(Wallisian),
       ],
-   q(7175) => [
+   q(7162) => [
       q(Wuliwuli),
       ],
-   q(7176) => [
+   q(7163) => [
       q(Wichi Lhamtes Vejoz),
       ],
-   q(7177) => [
+   q(7164) => [
       q(Walak),
       ],
-   q(7178) => [
+   q(7165) => [
       q(Wali (Ghana)),
       ],
-   q(7179) => [
+   q(7166) => [
       q(Waling),
       ],
-   q(7180) => [
+   q(7167) => [
       q(Mawa (Nigeria)),
       ],
-   q(7181) => [
+   q(7168) => [
       q(Wambaya),
       ],
-   q(7182) => [
+   q(7169) => [
       q(Wamas),
       ],
-   q(7183) => [
+   q(7170) => [
       q(Mamainde),
       ],
-   q(7184) => [
+   q(7171) => [
       q(Wambule),
       ],
-   q(7185) => [
+   q(7172) => [
       q(Waima'a),
       ],
-   q(7186) => [
+   q(7173) => [
       q(Wamin),
       ],
-   q(7187) => [
+   q(7174) => [
       q(Maiwa (Indonesia)),
       ],
-   q(7188) => [
+   q(7175) => [
       q(Waamwang),
       ],
-   q(7189) => [
+   q(7176) => [
       q(Wom (Papua New Guinea)),
       ],
-   q(7190) => [
+   q(7177) => [
       q(Wambon),
       ],
-   q(7191) => [
+   q(7178) => [
       q(Walmajarri),
       ],
-   q(7192) => [
+   q(7179) => [
       q(Mwani),
       ],
-   q(7193) => [
+   q(7180) => [
       q(Womo),
       ],
-   q(7194) => [
+   q(7181) => [
       q(Wanambre),
       ],
-   q(7195) => [
+   q(7182) => [
       q(Wantoat),
       ],
-   q(7196) => [
+   q(7183) => [
       q(Wandarang),
       ],
-   q(7197) => [
+   q(7184) => [
       q(Waneci),
       ],
-   q(7198) => [
+   q(7185) => [
       q(Wanggom),
       ],
-   q(7199) => [
+   q(7186) => [
       q(Ndzwani Comorian),
       ],
-   q(7200) => [
+   q(7187) => [
       q(Wanukaka),
       ],
-   q(7201) => [
+   q(7188) => [
       q(Wanggamala),
       ],
-   q(7202) => [
+   q(7189) => [
       q(Wunumara),
       ],
-   q(7203) => [
+   q(7190) => [
       q(Wano),
       ],
-   q(7204) => [
+   q(7191) => [
       q(Wanap),
       ],
-   q(7205) => [
+   q(7192) => [
       q(Usan),
       ],
-   q(7206) => [
+   q(7193) => [
       q(Wintu),
       ],
-   q(7207) => [
+   q(7194) => [
       q(Wanyi),
       ],
-   q(7208) => [
+   q(7195) => [
       q(Tyaraity),
       ],
-   q(7209) => [
+   q(7196) => [
       q(We Northern),
       ],
-   q(7210) => [
+   q(7197) => [
       q(Wogeo),
       ],
-   q(7211) => [
+   q(7198) => [
       q(Wolani),
       ],
-   q(7212) => [
+   q(7199) => [
       q(Woleaian),
       ],
-   q(7213) => [
+   q(7200) => [
       q(Gambian Wolof),
       ],
-   q(7214) => [
+   q(7201) => [
       q(Wogamusin),
       ],
-   q(7215) => [
+   q(7202) => [
       q(Kamang),
       ],
-   q(7216) => [
+   q(7203) => [
       q(Longto),
       ],
-   q(7217) => [
+   q(7204) => [
       q(Wom (Nigeria)),
       ],
-   q(7218) => [
+   q(7205) => [
       q(Wongo),
       ],
-   q(7219) => [
+   q(7206) => [
       q(Manombai),
       ],
-   q(7220) => [
+   q(7207) => [
       q(Woria),
       ],
-   q(7221) => [
+   q(7208) => [
       q(Hanga Hundi),
       ],
-   q(7222) => [
+   q(7209) => [
       q(Wawonii),
       ],
-   q(7223) => [
+   q(7210) => [
       q(Weyto),
       ],
-   q(7224) => [
+   q(7211) => [
       q(Maco),
       ],
-   q(7225) => [
+   q(7212) => [
       q(Warapu),
       ],
-   q(7226) => [
+   q(7213) => [
       q(Warluwara),
       ],
-   q(7227) => [
+   q(7214) => [
       q(Warduji),
       ],
-   q(7228) => [
+   q(7215) => [
       q(Warungu),
       ],
-   q(7229) => [
+   q(7216) => [
       q(Wiradhuri),
       ],
-   q(7230) => [
+   q(7217) => [
       q(Wariyangga),
       ],
-   q(7231) => [
+   q(7218) => [
       q(Garrwa),
       ],
-   q(7232) => [
+   q(7219) => [
       q(Warlmanpa),
       ],
-   q(7233) => [
+   q(7220) => [
       q(Warumungu),
       ],
-   q(7234) => [
+   q(7221) => [
       q(Warnang),
       ],
-   q(7235) => [
+   q(7222) => [
       q(Worrorra),
       ],
-   q(7236) => [
+   q(7223) => [
       q(Waropen),
       ],
-   q(7237) => [
+   q(7224) => [
       q(Wardaman),
       ],
-   q(7238) => [
+   q(7225) => [
       q(Waris),
       ],
-   q(7239) => [
+   q(7226) => [
       q(Waru),
       ],
-   q(7240) => [
+   q(7227) => [
       q(Waruna),
       ],
-   q(7241) => [
+   q(7228) => [
       q(Gugu Warra),
       ],
-   q(7242) => [
+   q(7229) => [
       q(Wae Rana),
       ],
-   q(7243) => [
+   q(7230) => [
       q(Merwari),
       ],
-   q(7244) => [
+   q(7231) => [
       q(Waray (Australia)),
       ],
-   q(7245) => [
+   q(7232) => [
       q(Warembori),
       ],
-   q(7246) => [
+   q(7233) => [
       q(Wusi),
       ],
-   q(7247) => [
+   q(7234) => [
       q(Waskia),
       ],
-   q(7248) => [
+   q(7235) => [
       q(Owenia),
       ],
-   q(7249) => [
+   q(7236) => [
       q(Wasa),
       ],
-   q(7250) => [
+   q(7237) => [
       q(Wasu),
       ],
-   q(7251) => [
+   q(7238) => [
       q(Wotapuri-Katarqalai),
       ],
-   q(7252) => [
+   q(7239) => [
       q(Watiwa),
       ],
-   q(7253) => [
+   q(7240) => [
       q(Wathawurrung),
       ],
-   q(7254) => [
+   q(7241) => [
       q(Berta),
       ],
-   q(7255) => [
+   q(7242) => [
       q(Watakataui),
       ],
-   q(7256) => [
+   q(7243) => [
       q(Mewati),
       ],
-   q(7257) => [
+   q(7244) => [
       q(Wotu),
       ],
-   q(7258) => [
+   q(7245) => [
       q(Wikngenchera),
       ],
-   q(7259) => [
+   q(7246) => [
       q(Wunambal),
       ],
-   q(7260) => [
+   q(7247) => [
       q(Wudu),
       ],
-   q(7261) => [
+   q(7248) => [
       q(Wutunhua),
       ],
-   q(7262) => [
+   q(7249) => [
       q(Silimo),
       ],
-   q(7263) => [
+   q(7250) => [
       q(Wumbvu),
       ],
-   q(7264) => [
+   q(7251) => [
       q(Bungu),
       ],
-   q(7265) => [
+   q(7252) => [
       q(Wurrugu),
       ],
-   q(7266) => [
+   q(7253) => [
       q(Wutung),
       ],
-   q(7267) => [
+   q(7254) => [
       q(Wu Chinese),
       ],
-   q(7268) => [
+   q(7255) => [
       q(Wuvulu-Aua),
       ],
-   q(7269) => [
+   q(7256) => [
       q(Wulna),
       ],
-   q(7270) => [
+   q(7257) => [
       q(Wauyai),
       ],
-   q(7271) => [
+   q(7258) => [
       q(Waama),
       ],
-   q(7272) => [
+   q(7259) => [
       q(Wakabunga),
       ],
-   q(7273) => [
+   q(7260) => [
       q(Wetamut),
       q(Dorig),
       ],
-   q(7274) => [
+   q(7261) => [
       q(Warrwa),
       ],
-   q(7275) => [
+   q(7262) => [
       q(Wawa),
       ],
-   q(7276) => [
+   q(7263) => [
       q(Waxianghua),
       ],
-   q(7277) => [
+   q(7264) => [
       q(Wardandi),
       ],
-   q(7278) => [
+   q(7265) => [
       q(Wyandot),
       ],
-   q(7279) => [
+   q(7266) => [
       q(Wangaaybuwan-Ngiyambaa),
       ],
-   q(7280) => [
+   q(7267) => [
       q(Woiwurrung),
       ],
-   q(7281) => [
+   q(7268) => [
       q(Wymysorys),
       ],
-   q(7282) => [
+   q(7269) => [
       q(Wayoro),
       ],
-   q(7283) => [
+   q(7270) => [
       q(Western Fijian),
       ],
-   q(7284) => [
+   q(7271) => [
       q(Andalusian Arabic),
       ],
-   q(7285) => [
+   q(7272) => [
       q(Sambe),
       ],
-   q(7286) => [
+   q(7273) => [
       q(Kachari),
       ],
-   q(7287) => [
+   q(7274) => [
       q(Adai),
       ],
-   q(7288) => [
+   q(7275) => [
       q(Aequian),
       ],
-   q(7289) => [
+   q(7276) => [
       q(Aghwan),
       ],
-   q(7290) => [
+   q(7277) => [
       q(Kaimbe),
       ],
-   q(7291) => [
+   q(7278) => [
       q(Ararandewara),
       ],
-   q(7292) => [
+   q(7279) => [
       q(/Xam),
       ],
-   q(7293) => [
+   q(7280) => [
       q(Xamtanga),
       ],
-   q(7294) => [
+   q(7281) => [
       q(Khao),
       ],
-   q(7295) => [
+   q(7282) => [
       q(Apalachee),
       ],
-   q(7296) => [
+   q(7283) => [
       q(Aquitanian),
       ],
-   q(7297) => [
+   q(7284) => [
       q(Karami),
       ],
-   q(7298) => [
+   q(7285) => [
       q(Kamas),
       ],
-   q(7299) => [
+   q(7286) => [
       q(Katawixi),
       ],
-   q(7300) => [
+   q(7287) => [
       q(Kauwera),
       ],
-   q(7301) => [
+   q(7288) => [
       q(Xavante),
       ],
-   q(7302) => [
+   q(7289) => [
       q(Kawaiisu),
       ],
-   q(7303) => [
+   q(7290) => [
       q(Kayan Mahakam),
       ],
-   q(7304) => [
+   q(7291) => [
       q(Kamba (Brazil)),
       ],
-   q(7305) => [
+   q(7292) => [
       q(Lower Burdekin),
       ],
-   q(7306) => [
+   q(7293) => [
       q(Bactrian),
       ],
-   q(7307) => [
+   q(7294) => [
       q(Bindal),
       ],
-   q(7308) => [
+   q(7295) => [
       q(Bigambal),
       ],
-   q(7309) => [
+   q(7296) => [
       q(Bunganditj),
       ],
-   q(7310) => [
+   q(7297) => [
       q(Kombio),
       ],
-   q(7311) => [
+   q(7298) => [
       q(Birrpayi),
       ],
-   q(7312) => [
+   q(7299) => [
       q(Middle Breton),
       ],
-   q(7313) => [
+   q(7300) => [
       q(Kenaboi),
       ],
-   q(7314) => [
+   q(7301) => [
       q(Bolgarian),
       ],
-   q(7315) => [
+   q(7302) => [
       q(Bibbulman),
       ],
-   q(7316) => [
+   q(7303) => [
       q(Kambera),
       ],
-   q(7317) => [
+   q(7304) => [
       q(Kambiwa),
       ],
-   q(7318) => [
+   q(7305) => [
       q(Kabixi),
       ],
-   q(7319) => [
+   q(7306) => [
       q(Batyala),
       ],
-   q(7320) => [
+   q(7307) => [
       q(Cumbric),
       ],
-   q(7321) => [
+   q(7308) => [
       q(Camunic),
       ],
-   q(7322) => [
+   q(7309) => [
       q(Celtiberian),
       ],
-   q(7323) => [
+   q(7310) => [
       q(Cisalpine Gaulish),
       ],
-   q(7324) => [
+   q(7311) => [
       q(Chemakum),
       q(Chimakum),
       ],
-   q(7325) => [
+   q(7312) => [
       q(Classical Armenian),
       ],
-   q(7326) => [
+   q(7313) => [
       q(Comecrudo),
       ],
-   q(7327) => [
+   q(7314) => [
       q(Cotoname),
       ],
-   q(7328) => [
+   q(7315) => [
       q(Chorasmian),
       ],
-   q(7329) => [
+   q(7316) => [
       q(Carian),
       ],
-   q(7330) => [
+   q(7317) => [
       q(Classical Tibetan),
       ],
-   q(7331) => [
+   q(7318) => [
       q(Curonian),
       ],
-   q(7332) => [
+   q(7319) => [
       q(Chuvantsy),
       ],
-   q(7333) => [
+   q(7320) => [
       q(Coahuilteco),
       ],
-   q(7334) => [
+   q(7321) => [
       q(Cayuse),
       ],
-   q(7335) => [
+   q(7322) => [
       q(Darkinyung),
       ],
-   q(7336) => [
+   q(7323) => [
       q(Dacian),
       ],
-   q(7337) => [
+   q(7324) => [
       q(Dharuk),
       ],
-   q(7338) => [
+   q(7325) => [
       q(Edomite),
       ],
-   q(7339) => [
+   q(7326) => [
       q(Malayic Dayak),
       ],
-   q(7340) => [
+   q(7327) => [
       q(Eblan),
       ],
-   q(7341) => [
+   q(7328) => [
       q(Hdi),
       ],
-   q(7342) => [
+   q(7329) => [
       q(//Xegwi),
       ],
-   q(7343) => [
+   q(7330) => [
       q(Kelo),
       ],
-   q(7344) => [
+   q(7331) => [
       q(Kembayan),
       ],
-   q(7345) => [
+   q(7332) => [
       q(Epi-Olmec),
       ],
-   q(7346) => [
+   q(7333) => [
       q(Xerente),
       ],
-   q(7347) => [
+   q(7334) => [
       q(Kesawai),
       ],
-   q(7348) => [
+   q(7335) => [
       q(Xeta),
       ],
-   q(7349) => [
+   q(7336) => [
       q(Keoru-Ahia),
       ],
-   q(7350) => [
+   q(7337) => [
       q(Faliscan),
       ],
-   q(7351) => [
+   q(7338) => [
       q(Galatian),
       ],
-   q(7352) => [
+   q(7339) => [
       q(Gbin),
       ],
-   q(7353) => [
+   q(7340) => [
       q(Gudang),
       ],
-   q(7354) => [
+   q(7341) => [
       q(Gabrielino-Fernandeno),
       ],
-   q(7355) => [
+   q(7342) => [
       q(Goreng),
       ],
-   q(7356) => [
+   q(7343) => [
       q(Garingbal),
       ],
-   q(7357) => [
+   q(7344) => [
       q(Galindan),
       ],
-   q(7358) => [
+   q(7345) => [
       q(Dharumbal),
       q(Guwinmal),
       ],
-   q(7359) => [
+   q(7346) => [
       q(Garza),
       ],
-   q(7360) => [
+   q(7347) => [
       q(Unggumi),
       ],
-   q(7361) => [
+   q(7348) => [
       q(Guwa),
       ],
-   q(7362) => [
+   q(7349) => [
       q(Harami),
       ],
-   q(7363) => [
+   q(7350) => [
       q(Hunnic),
       ],
-   q(7364) => [
+   q(7351) => [
       q(Hadrami),
       ],
-   q(7365) => [
+   q(7352) => [
       q(Khetrani),
       ],
-   q(7366) => [
+   q(7353) => [
       q(Hernican),
       ],
-   q(7367) => [
+   q(7354) => [
       q(Hattic),
       ],
-   q(7368) => [
+   q(7355) => [
       q(Hurrian),
       ],
-   q(7369) => [
+   q(7356) => [
       q(Khua),
       ],
-   q(7370) => [
+   q(7357) => [
       q(Iberian),
       ],
-   q(7371) => [
+   q(7358) => [
       q(Xiri),
       ],
-   q(7372) => [
+   q(7359) => [
       q(Illyrian),
       ],
-   q(7373) => [
+   q(7360) => [
       q(Xinca),
       ],
-   q(7374) => [
+   q(7361) => [
       q(Xipinawa),
       ],
-   q(7375) => [
+   q(7362) => [
       q(Xiriana),
       ],
-   q(7376) => [
+   q(7363) => [
       q(Kisan),
       ],
-   q(7377) => [
+   q(7364) => [
       q(Indus Valley Language),
       ],
-   q(7378) => [
+   q(7365) => [
       q(Xipaya),
       ],
-   q(7379) => [
+   q(7366) => [
       q(Minjungbal),
       ],
-   q(7380) => [
+   q(7367) => [
       q(Jaitmatang),
       ],
-   q(7381) => [
+   q(7368) => [
       q(Kalkoti),
       ],
-   q(7382) => [
+   q(7369) => [
       q(Northern Nago),
       ],
-   q(7383) => [
+   q(7370) => [
       q(Kho'ini),
       ],
-   q(7384) => [
+   q(7371) => [
       q(Mendalam Kayan),
       ],
-   q(7385) => [
+   q(7372) => [
       q(Kereho),
       ],
-   q(7386) => [
+   q(7373) => [
       q(Khengkha),
       ],
-   q(7387) => [
+   q(7374) => [
       q(Kagoro),
       ],
-   q(7388) => [
+   q(7375) => [
       q(Karahawyana),
       ],
-   q(7389) => [
+   q(7376) => [
       q(Kenyan Sign Language),
       ],
-   q(7390) => [
+   q(7377) => [
       q(Kajali),
       ],
-   q(7391) => [
+   q(7378) => [
       q(Kaco'),
       ],
-   q(7392) => [
+   q(7379) => [
       q(Mainstream Kenyah),
       ],
-   q(7393) => [
+   q(7380) => [
       q(Kayan River Kayan),
       ],
-   q(7394) => [
+   q(7381) => [
       q(Kiorr),
       ],
-   q(7395) => [
+   q(7382) => [
       q(Kabatei),
       ],
-   q(7396) => [
+   q(7383) => [
       q(Koroni),
       ],
-   q(7397) => [
+   q(7384) => [
       q(Xakriaba),
       ],
-   q(7398) => [
+   q(7385) => [
       q(Kumbewaha),
       ],
-   q(7399) => [
+   q(7386) => [
       q(Kantosi),
       ],
-   q(7400) => [
+   q(7387) => [
       q(Kaamba),
       ],
-   q(7401) => [
+   q(7388) => [
       q(Kgalagadi),
       ],
-   q(7402) => [
+   q(7389) => [
       q(Kembra),
       ],
-   q(7403) => [
+   q(7390) => [
       q(Karore),
       ],
-   q(7404) => [
+   q(7391) => [
       q(Uma' Lasan),
       ],
-   q(7405) => [
+   q(7392) => [
       q(Kurtokha),
       ],
-   q(7406) => [
+   q(7393) => [
       q(Kamula),
       ],
-   q(7407) => [
+   q(7394) => [
       q(Loup B),
       ],
-   q(7408) => [
+   q(7395) => [
       q(Lycian),
       ],
-   q(7409) => [
+   q(7396) => [
       q(Lydian),
       ],
-   q(7410) => [
+   q(7397) => [
       q(Lemnian),
       ],
-   q(7411) => [
+   q(7398) => [
       q(Ligurian (Ancient)),
       ],
-   q(7412) => [
+   q(7399) => [
       q(Liburnian),
       ],
-   q(7413) => [
+   q(7400) => [
       q(Alanic),
       ],
-   q(7414) => [
+   q(7401) => [
       q(Loup A),
       ],
-   q(7415) => [
+   q(7402) => [
       q(Lepontic),
       ],
-   q(7416) => [
+   q(7403) => [
       q(Lusitanian),
       ],
-   q(7417) => [
+   q(7404) => [
       q(Cuneiform Luwian),
       ],
-   q(7418) => [
+   q(7405) => [
       q(Elymian),
       ],
-   q(7419) => [
+   q(7406) => [
       q(Mushungulu),
       ],
-   q(7420) => [
+   q(7407) => [
       q(Mbonga),
       ],
-   q(7421) => [
+   q(7408) => [
       q(Makhuwa-Marrevone),
       ],
-   q(7422) => [
+   q(7409) => [
       q(Mbudum),
       ],
-   q(7423) => [
+   q(7410) => [
       q(Median),
       ],
-   q(7424) => [
+   q(7411) => [
       q(Mingrelian),
       ],
-   q(7425) => [
+   q(7412) => [
       q(Mengaka),
       ],
-   q(7426) => [
+   q(7413) => [
       q(Kuku-Muminh),
       ],
-   q(7427) => [
+   q(7414) => [
       q(Majera),
       ],
-   q(7428) => [
+   q(7415) => [
       q(Ancient Macedonian),
       ],
-   q(7429) => [
+   q(7416) => [
       q(Malaysian Sign Language),
       ],
-   q(7430) => [
+   q(7417) => [
       q(Manado Malay),
       ],
-   q(7431) => [
+   q(7418) => [
       q(Manichaean Middle Persian),
       ],
-   q(7432) => [
+   q(7419) => [
       q(Morerebi),
       ],
-   q(7433) => [
+   q(7420) => [
       q(Kuku-Mu'inh),
       ],
-   q(7434) => [
+   q(7421) => [
       q(Kuku-Mangk),
       ],
-   q(7435) => [
+   q(7422) => [
       q(Meroitic),
       ],
-   q(7436) => [
+   q(7423) => [
       q(Moroccan Sign Language),
       ],
-   q(7437) => [
+   q(7424) => [
       q(Matbat),
       ],
-   q(7438) => [
+   q(7425) => [
       q(Kamu),
       ],
-   q(7439) => [
+   q(7426) => [
       q(Antankarana Malagasy),
       q(Tankarana Malagasy),
       ],
-   q(7440) => [
+   q(7427) => [
       q(Tsimihety Malagasy),
       ],
-   q(7441) => [
+   q(7428) => [
       q(Maden),
       ],
-   q(7442) => [
+   q(7429) => [
       q(Mayaguduna),
       ],
-   q(7443) => [
+   q(7430) => [
       q(Mori Bawah),
       ],
-   q(7444) => [
+   q(7431) => [
       q(Ancient North Arabian),
       ],
-   q(7445) => [
+   q(7432) => [
       q(Kanakanabu),
       ],
-   q(7446) => [
+   q(7433) => [
       q(Middle Mongolian),
       ],
-   q(7447) => [
+   q(7434) => [
       q(Kuanhua),
       ],
-   q(7448) => [
+   q(7435) => [
       q(Ngarigu),
       ],
-   q(7449) => [
+   q(7436) => [
       q(Nganakarti),
       ],
-   q(7450) => [
+   q(7437) => [
       q(Northern Kankanay),
       ],
-   q(7451) => [
+   q(7438) => [
       q(Anglo-Norman),
       ],
-   q(7452) => [
+   q(7439) => [
       q(Kangri),
       ],
-   q(7453) => [
+   q(7440) => [
       q(Kanashi),
       ],
-   q(7454) => [
+   q(7441) => [
       q(Narragansett),
       ],
-   q(7455) => [
+   q(7442) => [
       q(Nukunul),
       ],
-   q(7456) => [
+   q(7443) => [
       q(Nyiyaparli),
       ],
-   q(7457) => [
+   q(7444) => [
       q(Kenzi),
       q(Mattoki),
       ],
-   q(7458) => [
+   q(7445) => [
       q(O'chi'chi'),
       ],
-   q(7459) => [
+   q(7446) => [
       q(Kokoda),
       ],
-   q(7460) => [
+   q(7447) => [
       q(Soga),
       ],
-   q(7461) => [
+   q(7448) => [
       q(Kominimung),
       ],
-   q(7462) => [
+   q(7449) => [
       q(Xokleng),
       ],
-   q(7463) => [
+   q(7450) => [
       q(Komo (Sudan)),
       ],
-   q(7464) => [
+   q(7451) => [
       q(Konkomba),
       ],
-   q(7465) => [
+   q(7452) => [
       q(Xukuru),
       ],
-   q(7466) => [
+   q(7453) => [
       q(Kopar),
       ],
-   q(7467) => [
+   q(7454) => [
       q(Korubo),
       ],
-   q(7468) => [
+   q(7455) => [
       q(Kowaki),
       ],
-   q(7469) => [
+   q(7456) => [
       q(Pirriya),
       ],
-   q(7470) => [
+   q(7457) => [
       q(Pecheneg),
       ],
-   q(7471) => [
+   q(7458) => [
       q(Liberia Kpelle),
       ],
-   q(7472) => [
+   q(7459) => [
       q(Phrygian),
       ],
-   q(7473) => [
+   q(7460) => [
       q(Pictish),
       ],
-   q(7474) => [
+   q(7461) => [
       q(Mpalitjanh),
       ],
-   q(7475) => [
+   q(7462) => [
       q(Kulina Pano),
       ],
-   q(7476) => [
+   q(7463) => [
       q(Pumpokol),
       ],
-   q(7477) => [
+   q(7464) => [
       q(Kapinawa),
       ],
-   q(7478) => [
+   q(7465) => [
       q(Pochutec),
       ],
-   q(7479) => [
+   q(7466) => [
       q(Puyo-Paekche),
       ],
-   q(7480) => [
+   q(7467) => [
       q(Mohegan-Pequot),
       ],
-   q(7481) => [
+   q(7468) => [
       q(Parthian),
       ],
-   q(7482) => [
+   q(7469) => [
       q(Pisidian),
       ],
-   q(7483) => [
+   q(7470) => [
       q(Punthamara),
       ],
-   q(7484) => [
+   q(7471) => [
       q(Punic),
       ],
-   q(7485) => [
+   q(7472) => [
       q(Puyo),
       ],
-   q(7486) => [
+   q(7473) => [
       q(Karakhanid),
       ],
-   q(7487) => [
+   q(7474) => [
       q(Qatabanian),
       ],
-   q(7488) => [
+   q(7475) => [
       q(Kraho),
       ],
-   q(7489) => [
+   q(7476) => [
       q(Eastern Karaboro),
       ],
-   q(7490) => [
+   q(7477) => [
       q(Gundungurra),
       ],
-   q(7491) => [
+   q(7478) => [
       q(Kreye),
       ],
-   q(7492) => [
+   q(7479) => [
       q(Minang),
       ],
-   q(7493) => [
+   q(7480) => [
       q(Krikati-Timbira),
       ],
-   q(7494) => [
+   q(7481) => [
       q(Armazic),
       ],
-   q(7495) => [
+   q(7482) => [
       q(Arin),
       ],
-   q(7496) => [
+   q(7483) => [
       q(Karranga),
       ],
-   q(7497) => [
+   q(7484) => [
       q(Raetic),
       ],
-   q(7498) => [
+   q(7485) => [
       q(Aranama-Tamique),
       ],
-   q(7499) => [
+   q(7486) => [
       q(Marriammu),
       ],
-   q(7500) => [
+   q(7487) => [
       q(Karawa),
       ],
-   q(7501) => [
+   q(7488) => [
       q(Sabaean),
       ],
-   q(7502) => [
+   q(7489) => [
       q(Sambal),
       ],
-   q(7503) => [
+   q(7490) => [
       q(Scythian),
       ],
-   q(7504) => [
+   q(7491) => [
       q(Sidetic),
       ],
-   q(7505) => [
+   q(7492) => [
       q(Sempan),
       ],
-   q(7506) => [
+   q(7493) => [
       q(Shamang),
       ],
-   q(7507) => [
+   q(7494) => [
       q(Sio),
       ],
-   q(7508) => [
-      q(Subi),
-      ],
-   q(7509) => [
+   q(7495) => [
       q(South Slavey),
       ],
-   q(7510) => [
+   q(7496) => [
       q(Kasem),
       ],
-   q(7511) => [
+   q(7497) => [
       q(Sanga (Nigeria)),
       ],
-   q(7512) => [
+   q(7498) => [
       q(Solano),
       ],
-   q(7513) => [
+   q(7499) => [
       q(Silopi),
       ],
-   q(7514) => [
+   q(7500) => [
       q(Makhuwa-Saka),
       ],
-   q(7515) => [
+   q(7501) => [
       q(Sherpa),
       ],
-   q(7516) => [
+   q(7502) => [
       q(Assan),
       ],
-   q(7517) => [
+   q(7503) => [
       q(Sanuma),
       ],
-   q(7518) => [
+   q(7504) => [
       q(Sudovian),
       ],
-   q(7519) => [
+   q(7505) => [
       q(Saisiyat),
       ],
-   q(7520) => [
+   q(7506) => [
       q(Alcozauca Mixtec),
       ],
-   q(7521) => [
+   q(7507) => [
       q(Chazumba Mixtec),
       ],
-   q(7522) => [
+   q(7508) => [
       q(Katcha-Kadugli-Miri),
       ],
-   q(7523) => [
+   q(7509) => [
       q(Diuxi-Tilantongo Mixtec),
       ],
-   q(7524) => [
+   q(7510) => [
       q(Ketengban),
       ],
-   q(7525) => [
+   q(7511) => [
       q(Transalpine Gaulish),
       ],
-   q(7526) => [
+   q(7512) => [
       q(Yitha Yitha),
       ],
-   q(7527) => [
+   q(7513) => [
       q(Sinicahua Mixtec),
       ],
-   q(7528) => [
+   q(7514) => [
       q(San Juan Teita Mixtec),
       ],
-   q(7529) => [
+   q(7515) => [
       q(Tijaltepec Mixtec),
       ],
-   q(7530) => [
+   q(7516) => [
       q(Magdalena Penasco Mixtec),
       ],
-   q(7531) => [
+   q(7517) => [
       q(Northern Tlaxiaco Mixtec),
       ],
-   q(7532) => [
+   q(7518) => [
       q(Tokharian A),
       ],
-   q(7533) => [
+   q(7519) => [
       q(San Miguel Piedras Mixtec),
       ],
-   q(7534) => [
+   q(7520) => [
       q(Tumshuqese),
       ],
-   q(7535) => [
+   q(7521) => [
       q(Early Tripuri),
       ],
-   q(7536) => [
+   q(7522) => [
       q(Sindihui Mixtec),
       ],
-   q(7537) => [
+   q(7523) => [
       q(Tacahua Mixtec),
       ],
-   q(7538) => [
+   q(7524) => [
       q(Cuyamecalco Mixtec),
       ],
-   q(7539) => [
+   q(7525) => [
       q(Thawa),
       ],
-   q(7540) => [
+   q(7526) => [
       q(Tawande),
       ],
-   q(7541) => [
+   q(7527) => [
       q(Yoloxochitl Mixtec),
       ],
-   q(7542) => [
+   q(7528) => [
       q(Tasmanian),
       ],
-   q(7543) => [
+   q(7529) => [
       q(Alu Kurumba),
       ],
-   q(7544) => [
+   q(7530) => [
       q(Betta Kurumba),
       ],
-   q(7545) => [
+   q(7531) => [
       q(Umiida),
       ],
-   q(7546) => [
+   q(7532) => [
       q(Kunigami),
       ],
-   q(7547) => [
+   q(7533) => [
       q(Jennu Kurumba),
       ],
-   q(7548) => [
+   q(7534) => [
       q(Ngunawal),
       ],
-   q(7549) => [
+   q(7535) => [
       q(Umbrian),
       ],
-   q(7550) => [
+   q(7536) => [
       q(Unggaranggu),
       ],
-   q(7551) => [
+   q(7537) => [
       q(Kuo),
       ],
-   q(7552) => [
+   q(7538) => [
       q(Upper Umpqua),
       ],
-   q(7553) => [
+   q(7539) => [
       q(Urartian),
       ],
-   q(7554) => [
+   q(7540) => [
       q(Kuthant),
       ],
-   q(7555) => [
+   q(7541) => [
       q(Kxoe),
       ],
-   q(7556) => [
+   q(7542) => [
       q(Venetic),
       ],
-   q(7557) => [
+   q(7543) => [
       q(Kamviri),
       ],
-   q(7558) => [
+   q(7544) => [
       q(Vandalic),
       ],
-   q(7559) => [
+   q(7545) => [
       q(Volscian),
       ],
-   q(7560) => [
+   q(7546) => [
       q(Vestinian),
       ],
-   q(7561) => [
+   q(7547) => [
       q(Kwaza),
       ],
-   q(7562) => [
+   q(7548) => [
       q(Woccon),
       ],
-   q(7563) => [
+   q(7549) => [
       q(Wadi Wadi),
       ],
-   q(7564) => [
+   q(7550) => [
       q(Xwela Gbe),
       ],
-   q(7565) => [
+   q(7551) => [
       q(Kwegu),
       ],
-   q(7566) => [
+   q(7552) => [
       q(Wajuk),
       ],
-   q(7567) => [
+   q(7553) => [
       q(Wangkumara),
       ],
-   q(7568) => [
+   q(7554) => [
       q(Western Xwla Gbe),
       ],
-   q(7569) => [
+   q(7555) => [
       q(Written Oirat),
       ],
-   q(7570) => [
+   q(7556) => [
       q(Kwerba Mamberamo),
       ],
-   q(7571) => [
+   q(7557) => [
       q(Wotjobaluk),
       ],
-   q(7572) => [
+   q(7558) => [
       q(Wemba Wemba),
       ],
-   q(7573) => [
+   q(7559) => [
       q(Boro (Ghana)),
       ],
-   q(7574) => [
+   q(7560) => [
       q(Ke'o),
       ],
-   q(7575) => [
+   q(7561) => [
       q(Minkin),
       ],
-   q(7576) => [
+   q(7562) => [
       q(Koropo),
       ],
-   q(7577) => [
+   q(7563) => [
       q(Tambora),
       ],
-   q(7578) => [
+   q(7564) => [
       q(Yaygir),
       ],
-   q(7579) => [
+   q(7565) => [
       q(Yandjibara),
       ],
-   q(7580) => [
+   q(7566) => [
       q(Mayi-Yapi),
       ],
-   q(7581) => [
+   q(7567) => [
       q(Mayi-Kulan),
       ],
-   q(7582) => [
+   q(7568) => [
       q(Yalakalore),
       ],
-   q(7583) => [
+   q(7569) => [
       q(Mayi-Thakurti),
       ],
-   q(7584) => [
+   q(7570) => [
       q(Yorta Yorta),
       ],
-   q(7585) => [
+   q(7571) => [
       q(Zhang-Zhung),
       ],
-   q(7586) => [
+   q(7572) => [
       q(Zemgalian),
       ],
-   q(7587) => [
+   q(7573) => [
       q(Ancient Zapotec),
       ],
-   q(7588) => [
+   q(7574) => [
       q(Yaminahua),
       ],
-   q(7589) => [
+   q(7575) => [
       q(Yuhup),
       ],
-   q(7590) => [
+   q(7576) => [
       q(Pass Valley Yali),
       ],
-   q(7591) => [
+   q(7577) => [
       q(Yagua),
       ],
-   q(7592) => [
+   q(7578) => [
       q(Pume),
       ],
-   q(7593) => [
+   q(7579) => [
       q(Yaka (Democratic Republic of Congo)),
       ],
-   q(7594) => [
+   q(7580) => [
       q(Yamana),
       ],
-   q(7595) => [
+   q(7581) => [
       q(Yazgulyam),
       ],
-   q(7596) => [
+   q(7582) => [
       q(Yagnobi),
       ],
-   q(7597) => [
+   q(7583) => [
       q(Banda-Yangere),
       ],
-   q(7598) => [
+   q(7584) => [
       q(Yakama),
       ],
-   q(7599) => [
+   q(7585) => [
       q(Yalunka),
       ],
-   q(7600) => [
+   q(7586) => [
       q(Yamba),
       ],
-   q(7601) => [
+   q(7587) => [
       q(Mayangna),
       ],
-   q(7602) => [
+   q(7588) => [
       q(Yaqui),
       ],
-   q(7603) => [
+   q(7589) => [
       q(Yabarana),
       ],
-   q(7604) => [
+   q(7590) => [
       q(Nugunu (Cameroon)),
       ],
-   q(7605) => [
+   q(7591) => [
       q(Yambeta),
       ],
-   q(7606) => [
+   q(7592) => [
       q(Yuwana),
       ],
-   q(7607) => [
+   q(7593) => [
       q(Yangben),
       ],
-   q(7608) => [
+   q(7594) => [
       q(Yawalapiti),
       ],
-   q(7609) => [
+   q(7595) => [
       q(Yauma),
       ],
-   q(7610) => [
+   q(7596) => [
       q(Agwagwune),
       ],
-   q(7611) => [
+   q(7597) => [
       q(Lokaa),
       ],
-   q(7612) => [
+   q(7598) => [
       q(Yala),
       ],
-   q(7613) => [
+   q(7599) => [
       q(Yemba),
       ],
-   q(7614) => [
+   q(7600) => [
       q(West Yugur),
       ],
-   q(7615) => [
+   q(7601) => [
       q(Yakha),
       ],
-   q(7616) => [
+   q(7602) => [
       q(Yamphu),
       ],
-   q(7617) => [
+   q(7603) => [
       q(Hasha),
       ],
-   q(7618) => [
+   q(7604) => [
       q(Bokha),
       ],
-   q(7619) => [
+   q(7605) => [
       q(Yukuben),
       ],
-   q(7620) => [
+   q(7606) => [
       q(Yaben),
       ],
-   q(7621) => [
+   q(7607) => [
       q(Yabaana),
       ],
-   q(7622) => [
+   q(7608) => [
       q(Yabong),
       ],
-   q(7623) => [
+   q(7609) => [
       q(Yawiyo),
       ],
-   q(7624) => [
+   q(7610) => [
       q(Yaweyuha),
       ],
-   q(7625) => [
+   q(7611) => [
       q(Chesu),
       ],
-   q(7626) => [
+   q(7612) => [
       q(Lolopo),
       ],
-   q(7627) => [
+   q(7613) => [
       q(Yucuna),
       ],
-   q(7628) => [
+   q(7614) => [
       q(Chepya),
       ],
-   q(7629) => [
+   q(7615) => [
       q(Yanda),
       ],
-   q(7630) => [
+   q(7616) => [
       q(Eastern Yiddish),
       ],
-   q(7631) => [
+   q(7617) => [
       q(Yangum Dey),
       ],
-   q(7632) => [
+   q(7618) => [
       q(Yidgha),
       ],
-   q(7633) => [
+   q(7619) => [
       q(Yoidik),
       ],
-   q(7634) => [
-      q(Yiddish Sign Language),
-      ],
-   q(7635) => [
+   q(7620) => [
       q(Ravula),
       ],
-   q(7636) => [
+   q(7621) => [
       q(Yeniche),
       ],
-   q(7637) => [
+   q(7622) => [
       q(Yimas),
       ],
-   q(7638) => [
+   q(7623) => [
       q(Yeni),
       ],
-   q(7639) => [
+   q(7624) => [
       q(Yevanic),
       ],
-   q(7640) => [
+   q(7625) => [
       q(Yela),
       ],
-   q(7641) => [
+   q(7626) => [
       q(Tarok),
       ],
-   q(7642) => [
+   q(7627) => [
       q(Nyankpa),
       ],
-   q(7643) => [
+   q(7628) => [
       q(Yetfa),
       ],
-   q(7644) => [
+   q(7629) => [
       q(Yerukula),
       ],
-   q(7645) => [
+   q(7630) => [
       q(Yapunda),
       ],
-   q(7646) => [
+   q(7631) => [
       q(Yeyi),
       ],
-   q(7647) => [
+   q(7632) => [
       q(Malyangapa),
       ],
-   q(7648) => [
+   q(7633) => [
       q(Yiningayi),
       ],
-   q(7649) => [
+   q(7634) => [
       q(Yangum Gel),
       ],
-   q(7650) => [
+   q(7635) => [
       q(Yagomi),
       ],
-   q(7651) => [
+   q(7636) => [
       q(Gepo),
       ],
-   q(7652) => [
+   q(7637) => [
       q(Yagaria),
       ],
-   q(7653) => [
+   q(7638) => [
       q(Yolnu Sign Language),
       ],
-   q(7654) => [
+   q(7639) => [
       q(Yugul),
       ],
-   q(7655) => [
+   q(7640) => [
       q(Yagwoia),
       ],
-   q(7656) => [
+   q(7641) => [
       q(Baha Buyang),
       ],
-   q(7657) => [
+   q(7642) => [
       q(Judeo-Iraqi Arabic),
       ],
-   q(7658) => [
+   q(7643) => [
       q(Hlepho Phowa),
       ],
-   q(7659) => [
+   q(7644) => [
       q(Yinggarda),
       ],
-   q(7660) => [
+   q(7645) => [
       q(Wusa Nasu),
       ],
-   q(7661) => [
+   q(7646) => [
       q(Western Yiddish),
       ],
-   q(7662) => [
+   q(7647) => [
       q(Yidiny),
       ],
-   q(7663) => [
+   q(7648) => [
       q(Yindjibarndi),
       ],
-   q(7664) => [
+   q(7649) => [
       q(Dongshanba Lalo),
       ],
-   q(7665) => [
+   q(7650) => [
       q(Yindjilandji),
       ],
-   q(7666) => [
+   q(7651) => [
       q(Yimchungru Naga),
       ],
-   q(7667) => [
+   q(7652) => [
       q(Yinchia),
       ],
-   q(7668) => [
+   q(7653) => [
       q(Pholo),
       ],
-   q(7669) => [
+   q(7654) => [
       q(Miqie),
       ],
-   q(7670) => [
+   q(7655) => [
       q(North Awyu),
       ],
-   q(7671) => [
+   q(7656) => [
       q(Yis),
       ],
-   q(7672) => [
+   q(7657) => [
       q(Eastern Lalu),
       ],
-   q(7673) => [
+   q(7658) => [
       q(Awu),
       ],
-   q(7674) => [
+   q(7659) => [
       q(Northern Nisu),
       ],
-   q(7675) => [
+   q(7660) => [
       q(Axi Yi),
       ],
-   q(7676) => [
+   q(7661) => [
       q(Azhe),
       ],
-   q(7677) => [
+   q(7662) => [
       q(Yakan),
       ],
-   q(7678) => [
+   q(7663) => [
       q(Northern Yukaghir),
       ],
-   q(7679) => [
+   q(7664) => [
       q(Yoke),
       ],
-   q(7680) => [
+   q(7665) => [
       q(Yakaikeke),
       ],
-   q(7681) => [
+   q(7666) => [
       q(Khlula),
       ],
-   q(7682) => [
+   q(7667) => [
       q(Kap),
       ],
-   q(7683) => [
+   q(7668) => [
       q(Kua-nsi),
       ],
-   q(7684) => [
+   q(7669) => [
       q(Yasa),
       ],
-   q(7685) => [
+   q(7670) => [
       q(Yekora),
       ],
-   q(7686) => [
+   q(7671) => [
       q(Kathu),
       ],
-   q(7687) => [
+   q(7672) => [
       q(Kuamasi),
       ],
-   q(7688) => [
+   q(7673) => [
       q(Yakoma),
       ],
-   q(7689) => [
+   q(7674) => [
       q(Yaul),
       ],
-   q(7690) => [
+   q(7675) => [
       q(Yaleba),
       ],
-   q(7691) => [
+   q(7676) => [
       q(Yele),
       ],
-   q(7692) => [
+   q(7677) => [
       q(Yelogu),
       ],
-   q(7693) => [
+   q(7678) => [
       q(Angguruk Yali),
       ],
-   q(7694) => [
+   q(7679) => [
       q(Yil),
       ],
-   q(7695) => [
+   q(7680) => [
       q(Limi),
       ],
-   q(7696) => [
+   q(7681) => [
       q(Langnian Buyang),
       ],
-   q(7697) => [
+   q(7682) => [
       q(Naluo Yi),
       ],
-   q(7698) => [
+   q(7683) => [
       q(Yalarnnga),
       ],
-   q(7699) => [
+   q(7684) => [
       q(Aribwaung),
       ],
-   q(7700) => [
+   q(7685) => [
       q(Nyalayu),
       q(Nyelayu),
       ],
-   q(7701) => [
+   q(7686) => [
       q(Yambes),
       ],
-   q(7702) => [
+   q(7687) => [
       q(Southern Muji),
       ],
-   q(7703) => [
+   q(7688) => [
       q(Muda),
       ],
-   q(7704) => [
+   q(7689) => [
       q(Yameo),
       ],
-   q(7705) => [
+   q(7690) => [
       q(Yamongeri),
       ],
-   q(7706) => [
+   q(7691) => [
       q(Mili),
       ],
-   q(7707) => [
+   q(7692) => [
       q(Moji),
       ],
-   q(7708) => [
+   q(7693) => [
       q(Makwe),
       ],
-   q(7709) => [
+   q(7694) => [
       q(Iamalele),
       ],
-   q(7710) => [
+   q(7695) => [
       q(Maay),
       ],
-   q(7711) => [
+   q(7696) => [
       q(Yamna),
       q(Sunum),
       ],
-   q(7712) => [
+   q(7697) => [
       q(Yangum Mon),
       ],
-   q(7713) => [
+   q(7698) => [
       q(Yamap),
       ],
-   q(7714) => [
+   q(7699) => [
       q(Qila Muji),
       ],
-   q(7715) => [
+   q(7700) => [
       q(Malasar),
       ],
-   q(7716) => [
+   q(7701) => [
       q(Mysian),
       ],
-   q(7717) => [
-      q(Mator-Taygi-Karagas),
-      ],
-   q(7718) => [
+   q(7702) => [
       q(Northern Muji),
       ],
-   q(7719) => [
+   q(7703) => [
       q(Muzi),
       ],
-   q(7720) => [
+   q(7704) => [
       q(Aluo),
       ],
-   q(7721) => [
+   q(7705) => [
       q(Yandruwandha),
       ],
-   q(7722) => [
+   q(7706) => [
       q(Lang'e),
       ],
-   q(7723) => [
+   q(7707) => [
       q(Yango),
       ],
-   q(7724) => [
-      q(Yangho),
-      ],
-   q(7725) => [
+   q(7708) => [
       q(Naukan Yupik),
       ],
-   q(7726) => [
+   q(7709) => [
       q(Yangulam),
       ],
-   q(7727) => [
+   q(7710) => [
       q(Yana),
       ],
-   q(7728) => [
+   q(7711) => [
       q(Yong),
       ],
-   q(7729) => [
+   q(7712) => [
       q(Yendang),
       ],
-   q(7730) => [
+   q(7713) => [
       q(Yansi),
       ],
-   q(7731) => [
+   q(7714) => [
       q(Yahuna),
       ],
-   q(7732) => [
+   q(7715) => [
       q(Yoba),
       ],
-   q(7733) => [
+   q(7716) => [
       q(Yogad),
       ],
-   q(7734) => [
+   q(7717) => [
       q(Yonaguni),
       ],
-   q(7735) => [
+   q(7718) => [
       q(Yokuts),
       ],
-   q(7736) => [
+   q(7719) => [
       q(Yola),
       ],
-   q(7737) => [
+   q(7720) => [
       q(Yombe),
       ],
-   q(7738) => [
+   q(7721) => [
       q(Yongkom),
       ],
-   q(7739) => [
+   q(7722) => [
       q(Yotti),
       ],
-   q(7740) => [
+   q(7723) => [
       q(Yoron),
       ],
-   q(7741) => [
+   q(7724) => [
       q(Yoy),
       ],
-   q(7742) => [
+   q(7725) => [
       q(Phala),
       ],
-   q(7743) => [
+   q(7726) => [
       q(Labo Phowa),
       ],
-   q(7744) => [
+   q(7727) => [
       q(Phola),
       ],
-   q(7745) => [
+   q(7728) => [
       q(Phupha),
       ],
-   q(7746) => [
+   q(7729) => [
       q(Phuma),
       ],
-   q(7747) => [
+   q(7730) => [
       q(Ani Phowa),
       ],
-   q(7748) => [
+   q(7731) => [
       q(Alo Phola),
       ],
-   q(7749) => [
+   q(7732) => [
       q(Phupa),
       ],
-   q(7750) => [
+   q(7733) => [
       q(Phuza),
       ],
-   q(7751) => [
+   q(7734) => [
       q(Yerakai),
       ],
-   q(7752) => [
+   q(7735) => [
       q(Yareba),
       ],
-   q(7753) => [
+   q(7736) => [
       q(Yaoure),
       ],
-   q(7754) => [
+   q(7737) => [
       q(Yari),
       ],
-   q(7755) => [
+   q(7738) => [
       q(Nenets),
       ],
-   q(7756) => [
+   q(7739) => [
       q(Nhengatu),
       ],
-   q(7757) => [
+   q(7740) => [
       q(Yirrk-Mel),
       ],
-   q(7758) => [
+   q(7741) => [
       q(Yerong),
       ],
-   q(7759) => [
+   q(7742) => [
       q(Yarsun),
       ],
-   q(7760) => [
+   q(7743) => [
       q(Yarawata),
       ],
-   q(7761) => [
+   q(7744) => [
       q(Yarluyandi),
       ],
-   q(7762) => [
+   q(7745) => [
       q(Yassic),
       ],
-   q(7763) => [
+   q(7746) => [
       q(Samatao),
       ],
-   q(7764) => [
+   q(7747) => [
       q(Sonaga),
       ],
-   q(7765) => [
+   q(7748) => [
       q(Yugoslavian Sign Language),
       ],
-   q(7766) => [
+   q(7749) => [
       q(Sani),
       ],
-   q(7767) => [
+   q(7750) => [
       q(Nisi (China)),
       ],
-   q(7768) => [
+   q(7751) => [
       q(Southern Lolopo),
       ],
-   q(7769) => [
+   q(7752) => [
       q(Sirenik Yupik),
       ],
-   q(7770) => [
+   q(7753) => [
       q(Yessan-Mayo),
       ],
-   q(7771) => [
+   q(7754) => [
       q(Sanie),
       ],
-   q(7772) => [
+   q(7755) => [
       q(Talu),
       ],
-   q(7773) => [
+   q(7756) => [
       q(Tanglang),
       ],
-   q(7774) => [
+   q(7757) => [
       q(Thopho),
       ],
-   q(7775) => [
+   q(7758) => [
       q(Yout Wam),
       ],
-   q(7776) => [
+   q(7759) => [
       q(Yatay),
       ],
-   q(7777) => [
+   q(7760) => [
       q(Yucateco),
       q(Yucatec Maya),
       ],
-   q(7778) => [
+   q(7761) => [
       q(Yugambal),
       ],
-   q(7779) => [
+   q(7762) => [
       q(Yuchi),
       ],
-   q(7780) => [
+   q(7763) => [
       q(Judeo-Tripolitanian Arabic),
       ],
-   q(7781) => [
+   q(7764) => [
       q(Yue Chinese),
       q(Cantonese),
       ],
-   q(7782) => [
+   q(7765) => [
       q(Havasupai-Walapai-Yavapai),
       ],
-   q(7783) => [
+   q(7766) => [
       q(Yug),
       ],
-   q(7784) => [
+   q(7767) => [
       q(Yuruti),
       ],
-   q(7785) => [
+   q(7768) => [
       q(Karkar-Yuri),
       ],
-   q(7786) => [
+   q(7769) => [
       q(Yuki),
       ],
-   q(7787) => [
+   q(7770) => [
       q(Yulu),
       ],
-   q(7788) => [
+   q(7771) => [
       q(Quechan),
       ],
-   q(7789) => [
+   q(7772) => [
       q(Bena (Nigeria)),
       ],
-   q(7790) => [
+   q(7773) => [
       q(Yukpa),
       ],
-   q(7791) => [
+   q(7774) => [
       q(Yuqui),
       ],
-   q(7792) => [
+   q(7775) => [
       q(Yurok),
       ],
-   q(7793) => [
+   q(7776) => [
       q(Yopno),
       ],
-   q(7794) => [
+   q(7777) => [
       q(Yau (Morobe Province)),
       ],
-   q(7795) => [
+   q(7778) => [
       q(Southern Yukaghir),
       ],
-   q(7796) => [
+   q(7779) => [
       q(East Yugur),
       ],
-   q(7797) => [
+   q(7780) => [
       q(Yuracare),
       ],
-   q(7798) => [
+   q(7781) => [
       q(Yawa),
       ],
-   q(7799) => [
+   q(7782) => [
       q(Yavitero),
       ],
-   q(7800) => [
+   q(7783) => [
       q(Kalou),
       ],
-   q(7801) => [
+   q(7784) => [
       q(Yinhawangka),
       ],
-   q(7802) => [
+   q(7785) => [
       q(Western Lalu),
       ],
-   q(7803) => [
+   q(7786) => [
       q(Yawanawa),
       ],
-   q(7804) => [
+   q(7787) => [
       q(Wuding-Luquan Yi),
       ],
-   q(7805) => [
+   q(7788) => [
       q(Yawuru),
       ],
-   q(7806) => [
+   q(7789) => [
       q(Xishanba Lalo),
       q(Central Lalo),
       ],
-   q(7807) => [
+   q(7790) => [
       q(Wumeng Nasu),
       ],
-   q(7808) => [
+   q(7791) => [
       q(Yawarawarga),
       ],
-   q(7809) => [
+   q(7792) => [
       q(Mayawali),
       ],
-   q(7810) => [
+   q(7793) => [
       q(Yagara),
       ],
-   q(7811) => [
+   q(7794) => [
       q(Yardliyawarra),
       ],
-   q(7812) => [
+   q(7795) => [
       q(Yinwum),
       ],
-   q(7813) => [
+   q(7796) => [
       q(Yuyu),
       ],
-   q(7814) => [
+   q(7797) => [
       q(Yabula Yabula),
       ],
-   q(7815) => [
+   q(7798) => [
       q(Yir Yoront),
       ],
-   q(7816) => [
+   q(7799) => [
       q(Yau (Sandaun Province)),
       ],
-   q(7817) => [
+   q(7800) => [
       q(Ayizi),
       ],
-   q(7818) => [
+   q(7801) => [
       q(E'ma Buyang),
       ],
-   q(7819) => [
+   q(7802) => [
       q(Zokhuo),
       ],
-   q(7820) => [
+   q(7803) => [
       q(Sierra de Juarez Zapotec),
       ],
-   q(7821) => [
+   q(7804) => [
       q(San Juan Guelavia Zapotec),
       ],
-   q(7822) => [
+   q(7805) => [
       q(Ocotlan Zapotec),
       ],
-   q(7823) => [
+   q(7806) => [
       q(Cajonos Zapotec),
       ],
-   q(7824) => [
+   q(7807) => [
       q(Yareni Zapotec),
       ],
-   q(7825) => [
+   q(7808) => [
       q(Ayoquesco Zapotec),
       ],
-   q(7826) => [
+   q(7809) => [
       q(Zaghawa),
       ],
-   q(7827) => [
+   q(7810) => [
       q(Zangwal),
       ],
-   q(7828) => [
+   q(7811) => [
       q(Isthmus Zapotec),
       ],
-   q(7829) => [
+   q(7812) => [
       q(Zaramo),
       ],
-   q(7830) => [
+   q(7813) => [
       q(Zanaki),
       ],
-   q(7831) => [
+   q(7814) => [
       q(Zauzou),
       ],
-   q(7832) => [
+   q(7815) => [
       q(Miahuatlan Zapotec),
       ],
-   q(7833) => [
+   q(7816) => [
       q(Ozolotepec Zapotec),
       ],
-   q(7834) => [
+   q(7817) => [
       q(Aloapam Zapotec),
       ],
-   q(7835) => [
+   q(7818) => [
       q(Rincon Zapotec),
       ],
-   q(7836) => [
+   q(7819) => [
       q(Santo Domingo Albarradas Zapotec),
       ],
-   q(7837) => [
+   q(7820) => [
       q(Tabaa Zapotec),
       ],
-   q(7838) => [
+   q(7821) => [
       q(Zangskari),
       ],
-   q(7839) => [
+   q(7822) => [
       q(Yatzachi Zapotec),
       ],
-   q(7840) => [
+   q(7823) => [
       q(Mitla Zapotec),
       ],
-   q(7841) => [
+   q(7824) => [
       q(Xadani Zapotec),
       ],
-   q(7842) => [
+   q(7825) => [
       q(Zayse-Zergulla),
       q(Zaysete),
       ],
-   q(7843) => [
+   q(7826) => [
       q(Zari),
       ],
-   q(7844) => [
+   q(7827) => [
       q(Central Berawan),
       ],
-   q(7845) => [
+   q(7828) => [
       q(East Berawan),
       ],
-   q(7846) => [
+   q(7829) => [
       q(Batui),
       ],
-   q(7847) => [
+   q(7830) => [
       q(West Berawan),
       ],
-   q(7848) => [
+   q(7831) => [
       q(Coatecas Altas Zapotec),
       ],
-   q(7849) => [
+   q(7832) => [
       q(Central Hongshuihe Zhuang),
       ],
-   q(7850) => [
+   q(7833) => [
       q(Ngazidja Comorian),
       ],
-   q(7851) => [
+   q(7834) => [
       q(Zeeuws),
       ],
-   q(7852) => [
+   q(7835) => [
       q(Zenag),
       ],
-   q(7853) => [
+   q(7836) => [
       q(Eastern Hongshuihe Zhuang),
       ],
-   q(7854) => [
+   q(7837) => [
       q(Kinga),
       ],
-   q(7855) => [
+   q(7838) => [
       q(Guibei Zhuang),
       ],
-   q(7856) => [
+   q(7839) => [
       q(Minz Zhuang),
       ],
-   q(7857) => [
+   q(7840) => [
       q(Guibian Zhuang),
       ],
-   q(7858) => [
+   q(7841) => [
       q(Magori),
       ],
-   q(7859) => [
+   q(7842) => [
       q(Zhaba),
       ],
-   q(7860) => [
+   q(7843) => [
       q(Dai Zhuang),
       ],
-   q(7861) => [
+   q(7844) => [
       q(Zhire),
       ],
-   q(7862) => [
+   q(7845) => [
       q(Nong Zhuang),
       ],
-   q(7863) => [
+   q(7846) => [
       q(Zhoa),
       ],
-   q(7864) => [
+   q(7847) => [
       q(Zia),
       ],
-   q(7865) => [
+   q(7848) => [
       q(Zimbabwe Sign Language),
       ],
-   q(7866) => [
+   q(7849) => [
       q(Zimakani),
       ],
-   q(7867) => [
+   q(7850) => [
       q(Zialo),
       ],
-   q(7868) => [
+   q(7851) => [
       q(Mesme),
       ],
-   q(7869) => [
+   q(7852) => [
       q(Zinza),
       ],
-   q(7870) => [
+   q(7853) => [
       q(Ziriya),
       ],
-   q(7871) => [
+   q(7854) => [
       q(Zigula),
       ],
-   q(7872) => [
+   q(7855) => [
       q(Zizilivakan),
       ],
-   q(7873) => [
+   q(7856) => [
       q(Kaimbulawa),
       ],
-   q(7874) => [
+   q(7857) => [
       q(Koibal),
       ],
-   q(7875) => [
+   q(7858) => [
       q(Kadu),
       ],
-   q(7876) => [
+   q(7859) => [
       q(Koguryo),
       ],
-   q(7877) => [
+   q(7860) => [
       q(Khorezmian),
       ],
-   q(7878) => [
+   q(7861) => [
       q(Karankawa),
       ],
-   q(7879) => [
+   q(7862) => [
       q(Kanan),
       ],
-   q(7880) => [
+   q(7863) => [
       q(Kott),
       ],
-   q(7881) => [
+   q(7864) => [
       q(Sao Paulo Kaingang),
       ],
-   q(7882) => [
+   q(7865) => [
       q(Zakhring),
       ],
-   q(7883) => [
+   q(7866) => [
       q(Kitan),
       ],
-   q(7884) => [
+   q(7867) => [
       q(Kaurna),
       ],
-   q(7885) => [
+   q(7868) => [
       q(Krevinian),
       ],
-   q(7886) => [
+   q(7869) => [
       q(Khazar),
       ],
-   q(7887) => [
+   q(7870) => [
       q(Liujiang Zhuang),
       ],
-   q(7888) => [
+   q(7871) => [
       q(Malay (individual language)),
       ],
-   q(7889) => [
+   q(7872) => [
       q(Lianshan Zhuang),
       ],
-   q(7890) => [
+   q(7873) => [
       q(Liuqian Zhuang),
       ],
-   q(7891) => [
+   q(7874) => [
       q(Manda (Australia)),
       ],
-   q(7892) => [
+   q(7875) => [
       q(Zimba),
       ],
-   q(7893) => [
+   q(7876) => [
       q(Margany),
       ],
-   q(7894) => [
+   q(7877) => [
       q(Maridan),
       ],
-   q(7895) => [
+   q(7878) => [
       q(Mangerr),
       ],
-   q(7896) => [
+   q(7879) => [
       q(Mfinu),
       ],
-   q(7897) => [
+   q(7880) => [
       q(Marti Ke),
       ],
-   q(7898) => [
+   q(7881) => [
       q(Makolkol),
       ],
-   q(7899) => [
+   q(7882) => [
       q(Negeri Sembilan Malay),
       ],
-   q(7900) => [
+   q(7883) => [
       q(Maridjabin),
       ],
-   q(7901) => [
+   q(7884) => [
       q(Mandandanyi),
       ],
-   q(7902) => [
+   q(7885) => [
       q(Madngele),
       ],
-   q(7903) => [
+   q(7886) => [
       q(Marimanindji),
       ],
-   q(7904) => [
+   q(7887) => [
       q(Mbangwe),
       ],
-   q(7905) => [
+   q(7888) => [
       q(Molo),
       ],
-   q(7906) => [
+   q(7889) => [
       q(Mpuono),
       ],
-   q(7907) => [
+   q(7890) => [
       q(Mituku),
       ],
-   q(7908) => [
+   q(7891) => [
       q(Maranunggu),
       ],
-   q(7909) => [
+   q(7892) => [
       q(Mbesa),
       ],
-   q(7910) => [
+   q(7893) => [
       q(Maringarr),
       ],
-   q(7911) => [
+   q(7894) => [
       q(Muruwari),
       ],
-   q(7912) => [
+   q(7895) => [
       q(Mbariman-Gudhinma),
       ],
-   q(7913) => [
+   q(7896) => [
       q(Mbo (Democratic Republic of Congo)),
       ],
-   q(7914) => [
+   q(7897) => [
       q(Bomitaba),
       ],
-   q(7915) => [
+   q(7898) => [
       q(Mariyedi),
       ],
-   q(7916) => [
+   q(7899) => [
       q(Mbandja),
       ],
-   q(7917) => [
+   q(7900) => [
       q(Zan Gula),
       ],
-   q(7918) => [
+   q(7901) => [
       q(Zande (individual language)),
       ],
-   q(7919) => [
+   q(7902) => [
       q(Mang),
       ],
-   q(7920) => [
+   q(7903) => [
       q(Manangkari),
       ],
-   q(7921) => [
+   q(7904) => [
       q(Mangas),
       ],
-   q(7922) => [
+   q(7905) => [
       q(Copainala Zoque),
       ],
-   q(7923) => [
+   q(7906) => [
       q(Chimalapa Zoque),
       ],
-   q(7924) => [
+   q(7907) => [
       q(Zou),
       ],
-   q(7925) => [
+   q(7908) => [
       q(Asuncion Mixtepec Zapotec),
       ],
-   q(7926) => [
+   q(7909) => [
       q(Tabasco Zoque),
       ],
-   q(7927) => [
+   q(7910) => [
       q(Rayon Zoque),
       ],
-   q(7928) => [
+   q(7911) => [
       q(Francisco Leon Zoque),
       ],
-   q(7929) => [
+   q(7912) => [
       q(Lachiguiri Zapotec),
       ],
-   q(7930) => [
+   q(7913) => [
       q(Yautepec Zapotec),
       ],
-   q(7931) => [
+   q(7914) => [
       q(Choapan Zapotec),
       ],
-   q(7932) => [
+   q(7915) => [
       q(Southeastern Ixtlan Zapotec),
       ],
-   q(7933) => [
+   q(7916) => [
       q(Petapa Zapotec),
       ],
-   q(7934) => [
+   q(7917) => [
       q(San Pedro Quiatoni Zapotec),
       ],
-   q(7935) => [
+   q(7918) => [
       q(Guevea De Humboldt Zapotec),
       ],
-   q(7936) => [
+   q(7919) => [
       q(Totomachapan Zapotec),
       ],
-   q(7937) => [
+   q(7920) => [
       q(Santa Maria Quiegolani Zapotec),
       ],
-   q(7938) => [
+   q(7921) => [
       q(Quiavicuzas Zapotec),
       ],
-   q(7939) => [
+   q(7922) => [
       q(Tlacolulita Zapotec),
       ],
-   q(7940) => [
+   q(7923) => [
       q(Lachixio Zapotec),
       ],
-   q(7941) => [
+   q(7924) => [
       q(Mixtepec Zapotec),
       ],
-   q(7942) => [
+   q(7925) => [
       q(Santa Ines Yatzechi Zapotec),
       ],
-   q(7943) => [
+   q(7926) => [
       q(Amatlan Zapotec),
       ],
-   q(7944) => [
+   q(7927) => [
       q(El Alto Zapotec),
       ],
-   q(7945) => [
+   q(7928) => [
       q(Zoogocho Zapotec),
       ],
-   q(7946) => [
+   q(7929) => [
       q(Santiago Xanica Zapotec),
       ],
-   q(7947) => [
+   q(7930) => [
       q(Coatlan Zapotec),
       ],
-   q(7948) => [
+   q(7931) => [
       q(San Vicente Coatlan Zapotec),
       ],
-   q(7949) => [
+   q(7932) => [
       q(Yalalag Zapotec),
       ],
-   q(7950) => [
+   q(7933) => [
       q(Chichicapan Zapotec),
       ],
-   q(7951) => [
+   q(7934) => [
       q(Zaniza Zapotec),
       ],
-   q(7952) => [
+   q(7935) => [
       q(San Baltazar Loxicha Zapotec),
       ],
-   q(7953) => [
+   q(7936) => [
       q(Mazaltepec Zapotec),
       ],
-   q(7954) => [
+   q(7937) => [
       q(Texmelucan Zapotec),
       ],
-   q(7955) => [
+   q(7938) => [
       q(Qiubei Zhuang),
       ],
-   q(7956) => [
+   q(7939) => [
       q(Kara (Korea)),
       ],
-   q(7957) => [
+   q(7940) => [
       q(Mirgan),
       ],
-   q(7958) => [
+   q(7941) => [
       q(Zerenkel),
       ],
-   q(7959) => [
+   q(7942) => [
       q(Zaparo),
       ],
-   q(7960) => [
+   q(7943) => [
       q(Zarphatic),
       ],
-   q(7961) => [
+   q(7944) => [
       q(Mairasi),
       ],
-   q(7962) => [
+   q(7945) => [
       q(Sarasira),
       ],
-   q(7963) => [
+   q(7946) => [
       q(Kaskean),
       ],
-   q(7964) => [
+   q(7947) => [
       q(Zambian Sign Language),
       ],
-   q(7965) => [
+   q(7948) => [
       q(Standard Malay),
       ],
-   q(7966) => [
+   q(7949) => [
       q(Southern Rincon Zapotec),
       ],
-   q(7967) => [
+   q(7950) => [
       q(Sukurum),
       ],
-   q(7968) => [
+   q(7951) => [
       q(Elotepec Zapotec),
       ],
-   q(7969) => [
+   q(7952) => [
       q(Xanaguia Zapotec),
       ],
-   q(7970) => [
+   q(7953) => [
       q(Lapaguia-Guivini Zapotec),
       ],
-   q(7971) => [
+   q(7954) => [
       q(San Agustin Mixtepec Zapotec),
       ],
-   q(7972) => [
+   q(7955) => [
       q(Santa Catarina Albarradas Zapotec),
       ],
-   q(7973) => [
+   q(7956) => [
       q(Loxicha Zapotec),
       ],
-   q(7974) => [
+   q(7957) => [
       q(Quioquitani-Quieri Zapotec),
       ],
-   q(7975) => [
+   q(7958) => [
       q(Tilquiapan Zapotec),
       ],
-   q(7976) => [
+   q(7959) => [
       q(Tejalapan Zapotec),
       ],
-   q(7977) => [
+   q(7960) => [
       q(Guila Zapotec),
       ],
-   q(7978) => [
+   q(7961) => [
       q(Zaachila Zapotec),
       ],
-   q(7979) => [
+   q(7962) => [
       q(Yatee Zapotec),
       ],
-   q(7980) => [
+   q(7963) => [
       q(Zeem),
       ],
-   q(7981) => [
+   q(7964) => [
       q(Tokano),
       ],
-   q(7982) => [
+   q(7965) => [
       q(Kumzari),
       ],
-   q(7983) => [
+   q(7966) => [
       q(Zumaya),
       ],
-   q(7984) => [
+   q(7967) => [
       q(Zay),
       ],
-   q(7985) => [
+   q(7968) => [
       q(Yongbei Zhuang),
       ],
-   q(7986) => [
+   q(7969) => [
       q(Yang Zhuang),
       ],
-   q(7987) => [
+   q(7970) => [
       q(Youjiang Zhuang),
       ],
-   q(7988) => [
+   q(7971) => [
       q(Yongnan Zhuang),
       ],
-   q(7989) => [
+   q(7972) => [
       q(Zyphe Chin),
       ],
-   q(7990) => [
+   q(7973) => [
       q(Zuojiang Zhuang),
       ],
 };
 
 $Locale::Codes::Data{'language'}{'alias2id'} = {
-   q(!o!ung) => [
-      q(5349),
-      q(0),
-      ],
    q(!xoo) => [
-      q(4986),
+      q(4974),
       q(0),
       ],
    q('are'are) => [
-      q(0763),
+      q(0761),
       q(0),
       ],
    q('auhelawa) => [
-      q(3655),
+      q(3647),
       q(0),
       ],
    q('oroe) => [
-      q(1386),
+      q(1381),
       q(1),
       ],
    q(//ani) => [
-      q(2811),
+      q(2803),
       q(0),
       ],
    q(//gana) => [
-      q(2581),
+      q(2574),
       q(0),
       ],
    q(//xegwi) => [
-      q(7342),
+      q(7329),
       q(0),
       ],
    q(/gwi) => [
-      q(2694),
+      q(2686),
       q(0),
       ],
    q(/xam) => [
-      q(7292),
+      q(7279),
       q(0),
       ],
    q(=/hua) => [
-      q(2861),
+      q(2853),
       q(0),
       ],
-   q(=/kx'au//'ein) => [
-      q(0939),
-      q(0),
+   q(=/ungkue) => [
+      q(2541),
+      q(1),
       ],
    q(a'ou) => [
-      q(0833),
+      q(0831),
       q(0),
       ],
    q(a'tong) => [
-      q(0832),
-      q(0),
+      q(0830),
+      q(1),
       ],
    q(a-hmaos) => [
-      q(2788),
+      q(2780),
       q(1),
       ],
    q(a-pucikwar) => [
-      q(0851),
+      q(0849),
       q(0),
       ],
    q(aari) => [
-      q(0712),
+      q(0710),
       q(0),
       ],
    q(aasax) => [
-      q(0554),
+      q(0553),
       q(0),
       ],
    q(abadi) => [
-      q(3209),
+      q(3201),
       q(0),
       ],
    q(abaga) => [
-      q(0566),
+      q(0565),
       q(0),
       ],
    q(abai sungai) => [
-      q(0565),
+      q(0564),
       q(0),
       ],
    q(abanyom) => [
-      q(0571),
+      q(0570),
       q(0),
       ],
    q(abar) => [
-      q(4317),
+      q(4306),
       q(0),
       ],
    q(abau) => [
-      q(0556),
+      q(0555),
       q(0),
       ],
    q(abaza) => [
-      q(0575),
+      q(0574),
       q(0),
       ],
    q(abe) => [
-      q(0560),
+      q(0559),
       q(0),
       ],
    q(abellen ayta) => [
-      q(0574),
+      q(0573),
       q(0),
       ],
    q(abidji) => [
-      q(0568),
+      q(0567),
       q(0),
       ],
    q(abinomn) => [
-      q(1451),
+      q(1446),
       q(0),
       ],
    q(abipon) => [
-      q(0988),
+      q(0984),
       q(0),
       ],
    q(abishira) => [
-      q(0894),
+      q(0892),
       q(0),
       ],
    q(abkhazian) => [
@@ -24432,19 +24394,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(abom) => [
-      q(0817),
+      q(0815),
       q(0),
       ],
    q(abon) => [
-      q(0573),
+      q(0572),
       q(0),
       ],
    q(abron) => [
-      q(0576),
+      q(0575),
       q(0),
       ],
    q(abu) => [
-      q(0615),
+      q(0614),
       q(0),
       ],
    q(abu' arapesh) => [
@@ -24452,51 +24414,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(abua) => [
-      q(0572),
+      q(0571),
       q(0),
       ],
    q(abui) => [
-      q(0584),
+      q(0583),
       q(0),
       ],
    q(abun) => [
-      q(3332),
+      q(3324),
       q(0),
       ],
    q(abure) => [
-      q(0579),
+      q(0578),
       q(0),
       ],
    q(abureni) => [
-      q(4269),
+      q(4258),
       q(0),
       ],
    q(acatepec me'phaa) => [
-      q(6685),
+      q(6673),
       q(0),
       ],
    q(acatepec tlapanec) => [
-      q(6685),
+      q(6673),
       q(1),
       ],
    q(achagua) => [
-      q(0585),
+      q(0584),
       q(0),
       ],
    q(achang) => [
-      q(0593),
+      q(0592),
       q(0),
       ],
    q(ache) => [
-      q(2665),
+      q(2657),
       q(0),
       ],
    q(acheron) => [
-      q(0604),
+      q(0603),
       q(0),
       ],
    q(achi) => [
-      q(0596),
+      q(0595),
       q(0),
       ],
    q(achinese) => [
@@ -24504,15 +24466,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(achterhoeks) => [
-      q(0598),
+      q(0597),
       q(0),
       ],
    q(achuar-shiwiar) => [
-      q(0599),
+      q(0598),
       q(0),
       ],
    q(achumawi) => [
-      q(0600),
+      q(0599),
       q(0),
       ],
    q(acoli) => [
@@ -24520,87 +24482,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(acroa) => [
-      q(0597),
+      q(0596),
       q(0),
       ],
    q(adabe) => [
-      q(0605),
+      q(0604),
       q(0),
       ],
    q(adai) => [
-      q(7287),
+      q(7274),
       q(0),
       ],
    q(adamawa fulfulde) => [
-      q(2386),
+      q(2379),
       q(0),
       ],
    q(adamorobe sign language) => [
-      q(0619),
+      q(0617),
       q(0),
       ],
    q(adang) => [
-      q(0614),
+      q(0613),
       q(0),
       ],
    q(adangbe) => [
-      q(0617),
+      q(0615),
       q(0),
       ],
    q(adangme) => [
       q(0005),
       q(0),
       ],
-   q(adap) => [
-      q(0616),
-      q(0),
-      ],
    q(adara) => [
-      q(3177),
+      q(3170),
       q(0),
       ],
    q(adasen) => [
-      q(6544),
+      q(6532),
       q(0),
       ],
    q(adele) => [
-      q(0607),
+      q(0606),
       q(0),
       ],
    q(adhola) => [
-      q(0610),
+      q(0609),
       q(0),
       ],
    q(adi) => [
-      q(0611),
+      q(0610),
       q(0),
       ],
    q(adioukrou) => [
-      q(0612),
+      q(0611),
       q(0),
       ],
    q(adithinngithigh) => [
-      q(2164),
+      q(2158),
       q(0),
       ],
    q(adivasi oriya) => [
-      q(5313),
+      q(5302),
       q(0),
       ],
    q(adiwasi garasia) => [
-      q(2421),
+      q(2414),
       q(0),
       ],
    q(adnyamathanha) => [
-      q(0620),
+      q(0618),
       q(0),
       ],
    q(adonara) => [
-      q(0618),
+      q(0616),
       q(0),
       ],
    q(aduge) => [
-      q(0621),
+      q(0619),
       q(0),
       ],
    q(adygei) => [
@@ -24612,23 +24570,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(adzera) => [
-      q(0624),
+      q(0622),
       q(0),
       ],
    q(aeka) => [
-      q(0640),
+      q(0638),
       q(0),
       ],
    q(aekyom) => [
-      q(0975),
+      q(0971),
       q(0),
       ],
    q(aequian) => [
-      q(7288),
+      q(7275),
       q(0),
       ],
    q(aer) => [
-      q(0634),
+      q(0632),
       q(0),
       ],
    q(afade) => [
@@ -24640,19 +24598,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(afghan persian) => [
-      q(5613),
+      q(5601),
       q(1),
       ],
    q(afghan sign language) => [
-      q(0644),
+      q(0642),
       q(0),
       ],
    q(afitti) => [
-      q(0651),
+      q(0649),
       q(0),
       ],
    q(afra) => [
-      q(6905),
+      q(6893),
       q(1),
       ],
    q(afrihili) => [
@@ -24668,143 +24626,143 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(afro-seminole creole) => [
-      q(0650),
+      q(0648),
       q(0),
       ],
    q(agarabi) => [
-      q(0657),
+      q(0655),
       q(0),
       ],
    q(agariya) => [
-      q(0662),
+      q(0660),
       q(0),
       ],
    q(agatu) => [
-      q(0656),
+      q(0654),
       q(0),
       ],
    q(agavotaguerra) => [
-      q(0965),
+      q(0961),
       q(0),
       ],
    q(aghem) => [
-      q(0669),
+      q(0667),
       q(0),
       ],
    q(aghu) => [
-      q(0682),
+      q(0680),
       q(0),
       ],
    q(aghu-tharnggala) => [
-      q(2649),
+      q(2641),
       q(0),
       ],
    q(aghul) => [
-      q(0676),
+      q(0674),
       q(0),
       ],
    q(aghwan) => [
-      q(7289),
+      q(7276),
       q(0),
       ],
    q(agi) => [
-      q(0698),
+      q(0696),
       q(0),
       ],
    q(agob) => [
-      q(3378),
+      q(3370),
       q(0),
       ],
    q(agoi) => [
-      q(2901),
+      q(2893),
       q(0),
       ],
    q(aguacateco) => [
-      q(0673),
+      q(0671),
       q(0),
       ],
    q(aguano) => [
-      q(0654),
+      q(0652),
       q(0),
       ],
    q(aguaruna) => [
-      q(0670),
+      q(0668),
       q(0),
       ],
    q(aguna) => [
-      q(0940),
+      q(0936),
       q(0),
       ],
    q(agusan manobo) => [
-      q(4552),
+      q(4541),
       q(0),
       ],
    q(agutaynen) => [
-      q(0667),
+      q(0665),
       q(0),
       ],
    q(agwagwune) => [
-      q(7610),
+      q(7596),
       q(0),
       ],
    q(ahan) => [
-      q(0687),
+      q(0685),
       q(0),
       ],
    q(ahanta) => [
-      q(0679),
+      q(0677),
       q(0),
       ],
    q(aheu) => [
-      q(6515),
+      q(6504),
       q(0),
       ],
    q(ahirani) => [
-      q(0690),
+      q(0688),
       q(0),
       ],
    q(ahom) => [
-      q(0688),
+      q(0686),
       q(0),
       ],
    q(ahtena) => [
-      q(0692),
+      q(0690),
       q(0),
       ],
    q(ahwai) => [
-      q(4842),
+      q(4830),
       q(0),
       ],
    q(ai-cham) => [
-      q(0700),
+      q(0698),
       q(0),
       ],
    q(aighon) => [
-      q(0713),
+      q(0711),
       q(0),
       ],
    q(aikana) => [
-      q(6390),
+      q(6379),
       q(0),
       ],
    q(aiklep) => [
-      q(4640),
+      q(4629),
       q(0),
       ],
    q(aimaq) => [
-      q(0708),
+      q(0706),
       q(0),
       ],
    q(aimele) => [
-      q(0704),
+      q(0702),
       q(0),
       ],
    q(aimol) => [
-      q(0705),
+      q(0703),
       q(0),
       ],
    q(ainbai) => [
-      q(0695),
+      q(0693),
       q(0),
       ],
    q(ainu) => [
@@ -24812,7 +24770,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ainu (china)) => [
-      q(0694),
+      q(0692),
       q(0),
       ],
    q(ainu (japan)) => [
@@ -24820,83 +24778,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(aiome) => [
-      q(0731),
+      q(0729),
       q(0),
       ],
    q(airoran) => [
-      q(0709),
+      q(0707),
       q(0),
       ],
    q(aiton) => [
-      q(0706),
+      q(0704),
       q(0),
       ],
    q(aiwoo) => [
-      q(4843),
+      q(4831),
       q(1),
       ],
    q(aja (benin)) => [
-      q(0716),
+      q(0714),
       q(0),
       ],
    q(aja (sudan)) => [
-      q(0715),
+      q(0713),
       q(0),
       ],
    q(ajawa) => [
-      q(0722),
+      q(0720),
       q(0),
       ],
    q(ajie) => [
-      q(0717),
+      q(0715),
       q(0),
       ],
    q(ajiya) => [
-      q(2912),
+      q(2904),
       q(1),
       ],
    q(ajumbu) => [
-      q(4592),
+      q(4581),
       q(0),
       ],
    q(ajyininka apurucayali) => [
-      q(1838),
+      q(1832),
       q(0),
       ],
    q(ak) => [
-      q(0737),
+      q(0735),
       q(0),
       ],
    q(aka) => [
-      q(6173),
+      q(6161),
       q(0),
       ],
    q(aka-bea) => [
-      q(0569),
+      q(0568),
       q(0),
       ],
    q(aka-bo) => [
-      q(0734),
+      q(0732),
       q(0),
       ],
    q(aka-cari) => [
-      q(0589),
+      q(0588),
       q(0),
       ],
    q(aka-jeru) => [
-      q(0732),
+      q(0730),
       q(0),
       ],
    q(aka-kede) => [
-      q(0744),
+      q(0742),
       q(0),
       ],
    q(aka-kol) => [
-      q(0745),
+      q(0743),
       q(0),
       ],
    q(aka-kora) => [
-      q(0590),
+      q(0589),
       q(0),
       ],
    q(akan) => [
@@ -24904,39 +24862,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(akar-bale) => [
-      q(0591),
+      q(0590),
       q(0),
       ],
    q(akaselem) => [
-      q(0739),
+      q(0737),
       q(0),
       ],
    q(akawaio) => [
-      q(0727),
+      q(0725),
       q(0),
       ],
    q(ake) => [
-      q(0703),
+      q(0701),
       q(0),
       ],
    q(akebu) => [
-      q(3284),
+      q(3276),
       q(0),
       ],
    q(akei) => [
-      q(6738),
+      q(6725),
       q(0),
       ],
    q(akeu) => [
-      q(0637),
+      q(0635),
       q(0),
       ],
    q(akha) => [
-      q(0684),
+      q(0682),
       q(0),
       ],
    q(akhvakh) => [
-      q(0742),
+      q(0740),
       q(0),
       ],
    q(akkadian) => [
@@ -24944,79 +24902,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(akkala sami) => [
-      q(6045),
+      q(6033),
       q(0),
       ],
    q(aklanon) => [
-      q(0733),
+      q(0731),
       q(0),
       ],
    q(akolet) => [
-      q(0740),
+      q(0738),
       q(0),
       ],
    q(akoose) => [
-      q(1468),
+      q(1463),
       q(0),
       ],
    q(akoye) => [
-      q(4327),
+      q(4316),
       q(0),
       ],
    q(akpa) => [
-      q(0728),
+      q(0726),
       q(0),
       ],
    q(akpes) => [
-      q(2898),
+      q(2890),
       q(0),
       ],
    q(akrukay) => [
-      q(0645),
+      q(0643),
       q(0),
       ],
    q(akukem) => [
-      q(6197),
+      q(6185),
       q(0),
       ],
    q(akuku) => [
-      q(1003),
+      q(0999),
       q(0),
       ],
    q(akum) => [
-      q(0741),
+      q(0739),
       q(0),
       ],
    q(akuntsu) => [
-      q(0869),
+      q(0867),
       q(0),
       ],
    q(akurio) => [
-      q(0735),
+      q(0733),
       q(0),
       ],
    q(akwa) => [
-      q(0743),
+      q(0741),
       q(0),
       ],
    q(akyaung ari naga) => [
-      q(5060),
+      q(5047),
       q(0),
       ],
    q(al-sayyid bedouin sign language) => [
-      q(6356),
+      q(6345),
       q(0),
       ],
    q(alaba-k'abeena) => [
-      q(0764),
+      q(0762),
       q(0),
       ],
    q(alabama) => [
-      q(0746),
+      q(0744),
       q(0),
       ],
    q(alabat island agta) => [
-      q(2185),
+      q(2179),
       q(0),
       ],
    q(alacalufan languages) => [
@@ -25024,39 +24982,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alacatlatzala mixtec) => [
-      q(4320),
+      q(4309),
       q(0),
       ],
    q(alago) => [
-      q(0747),
+      q(0745),
       q(0),
       ],
    q(alagwa) => [
-      q(7095),
+      q(7082),
       q(0),
       ],
    q(alak) => [
-      q(0754),
+      q(0752),
       q(0),
       ],
    q(alamblak) => [
-      q(0781),
+      q(0779),
       q(0),
       ],
    q(alangan) => [
-      q(0753),
+      q(0751),
       q(0),
       ],
    q(alanic) => [
-      q(7413),
+      q(7400),
       q(0),
       ],
    q(alapmunte) => [
-      q(0856),
+      q(0854),
       q(0),
       ],
    q(alawa) => [
-      q(0751),
+      q(0749),
       q(0),
       ],
    q(albanian) => [
@@ -25068,19 +25026,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(albanian sign language) => [
-      q(6211),
+      q(6199),
       q(0),
       ],
    q(alcozauca mixtec) => [
-      q(7520),
+      q(7506),
       q(0),
       ],
    q(alege) => [
-      q(0750),
+      q(0748),
       q(0),
       ],
    q(alekano) => [
-      q(2410),
+      q(2403),
       q(0),
       ],
    q(alemannic) => [
@@ -25092,15 +25050,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(algerian arabic) => [
-      q(0879),
+      q(0877),
       q(0),
       ],
    q(algerian saharan arabic) => [
-      q(0551),
+      q(0550),
       q(0),
       ],
    q(algerian sign language) => [
-      q(0901),
+      q(0899),
       q(0),
       ],
    q(algic languages) => [
@@ -25112,35 +25070,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(algonquin) => [
-      q(0760),
+      q(0758),
       q(0),
       ],
    q(ali) => [
-      q(0714),
+      q(0712),
       q(0),
       ],
    q(alladian) => [
-      q(0749),
+      q(0747),
       q(0),
       ],
    q(allar) => [
-      q(0755),
+      q(0753),
       q(0),
       ],
    q(alngith) => [
-      q(0696),
+      q(0694),
       q(0),
       ],
    q(alo phola) => [
-      q(7748),
+      q(7731),
       q(0),
       ],
    q(aloapam zapotec) => [
-      q(7834),
+      q(7817),
       q(0),
       ],
    q(alor) => [
-      q(0827),
+      q(0825),
       q(0),
       ],
    q(alsatian) => [
@@ -25148,7 +25106,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(alsea) => [
-      q(0636),
+      q(0634),
       q(0),
       ],
    q(altaic languages) => [
@@ -25156,11 +25114,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alu kurumba) => [
-      q(7543),
+      q(7529),
       q(0),
       ],
    q(alugu) => [
-      q(0936),
+      q(0933),
       q(0),
       ],
    q(alumu-tesu) => [
@@ -25168,47 +25126,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alune) => [
-      q(0759),
+      q(0757),
       q(0),
       ],
    q(aluo) => [
-      q(7720),
+      q(7704),
       q(0),
       ],
    q(alur) => [
-      q(0767),
+      q(0765),
       q(0),
       ],
    q(alutor) => [
-      q(0761),
+      q(0759),
       q(0),
       ],
    q(alviri-vidari) => [
-      q(0959),
+      q(0955),
       q(0),
       ],
    q(alyawarr) => [
-      q(0766),
+      q(0764),
       q(0),
       ],
    q(ama (papua new guinea)) => [
-      q(0778),
+      q(0776),
       q(0),
       ],
    q(ama (sudan)) => [
-      q(5173),
+      q(5162),
       q(0),
       ],
    q(amahai) => [
-      q(0782),
+      q(0780),
       q(0),
       ],
    q(amahuaca) => [
-      q(0770),
+      q(0768),
       q(0),
       ],
    q(amaimon) => [
-      q(0752),
+      q(0750),
       q(0),
       ],
    q(amal) => [
@@ -25216,71 +25174,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(amanab) => [
-      q(0779),
+      q(0777),
       q(0),
       ],
    q(amanaye) => [
-      q(0768),
+      q(0766),
       q(0),
       ],
    q(amara) => [
-      q(0697),
+      q(0695),
       q(0),
       ],
    q(amarakaeri) => [
-      q(0783),
+      q(0781),
       q(0),
       ],
    q(amarasi) => [
-      q(0559),
+      q(0558),
       q(0),
       ],
    q(amatlan zapotec) => [
-      q(7943),
+      q(7926),
       q(0),
       ],
    q(amba (solomon islands)) => [
-      q(6968),
+      q(6955),
       q(0),
       ],
    q(amba (uganda)) => [
-      q(5888),
+      q(5877),
       q(0),
       ],
    q(ambai) => [
-      q(0776),
+      q(0774),
       q(0),
       ],
    q(ambakich) => [
-      q(0638),
+      q(0636),
       q(0),
       ],
    q(ambala ayta) => [
-      q(0562),
+      q(0561),
       q(0),
       ],
    q(ambelau) => [
-      q(0787),
+      q(0785),
       q(0),
       ],
    q(ambele) => [
-      q(0631),
+      q(0629),
       q(0),
       ],
    q(amblong) => [
-      q(0756),
+      q(0754),
       q(0),
       ],
    q(ambo) => [
-      q(0769),
+      q(0767),
       q(0),
       ],
    q(ambo-pasco quechua) => [
-      q(5711),
+      q(5699),
       q(0),
       ],
    q(ambonese malay) => [
-      q(0577),
+      q(0576),
       q(0),
       ],
    q(ambrak) => [
@@ -25288,31 +25246,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ambul) => [
-      q(0849),
+      q(0847),
       q(0),
       ],
    q(ambulas) => [
-      q(0578),
+      q(0577),
       q(0),
       ],
    q(amdang) => [
-      q(0775),
+      q(0773),
       q(0),
       ],
    q(amdo tibetan) => [
-      q(0623),
+      q(0621),
       q(0),
       ],
    q(amele) => [
-      q(0639),
+      q(0637),
       q(0),
       ],
    q(american sign language) => [
-      q(0891),
+      q(0889),
       q(0),
       ],
    q(amganad ifugao) => [
-      q(2920),
+      q(2912),
       q(0),
       ],
    q(amharic) => [
@@ -25320,91 +25278,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ami) => [
-      q(0790),
+      q(0788),
       q(0),
       ],
    q(amio-gelimi) => [
-      q(3887),
+      q(3877),
       q(1),
       ],
    q(amis) => [
-      q(0774),
+      q(0772),
       q(0),
       ],
    q(amo) => [
-      q(0780),
+      q(0778),
       q(0),
       ],
    q(amol) => [
-      q(0765),
+      q(0763),
       q(0),
       ],
    q(amoltepec mixtec) => [
-      q(4162),
+      q(4151),
       q(0),
       ],
    q(ampanang) => [
-      q(0841),
+      q(0839),
       q(0),
       ],
    q(ampari dogon) => [
-      q(0862),
+      q(0860),
       q(0),
       ],
    q(amri karbi) => [
-      q(0723),
+      q(0721),
       q(0),
       ],
    q(amto) => [
-      q(0785),
+      q(0783),
       q(0),
       ],
    q(amundava) => [
-      q(0622),
+      q(0620),
       q(0),
       ],
    q(amurdak) => [
-      q(0773),
+      q(0771),
       q(0),
       ],
    q(ana tinga dogon) => [
-      q(2165),
+      q(2159),
       q(0),
       ],
    q(anaang) => [
-      q(0812),
+      q(0810),
       q(0),
       ],
    q(anakalangu) => [
-      q(0729),
+      q(0727),
       q(0),
       ],
    q(anal) => [
-      q(0803),
+      q(0801),
       q(0),
       ],
    q(anam) => [
-      q(5408),
+      q(5396),
       q(0),
       ],
    q(anambe) => [
-      q(0550),
+      q(0549),
       q(0),
       ],
    q(anamgura) => [
-      q(2970),
+      q(2962),
       q(0),
       ],
    q(anasi) => [
-      q(1390),
+      q(1385),
       q(0),
       ],
    q(anca) => [
-      q(0586),
+      q(0585),
       q(0),
       ],
    q(ancient aramaic (up to 700 bce)) => [
-      q(5197),
+      q(5186),
       q(1),
       ],
    q(ancient greek (to 1453)) => [
@@ -25412,119 +25370,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(ancient hebrew) => [
-      q(2743),
+      q(2735),
       q(0),
       ],
    q(ancient macedonian) => [
-      q(7428),
+      q(7415),
       q(0),
       ],
    q(ancient north arabian) => [
-      q(7444),
+      q(7431),
       q(0),
       ],
    q(ancient zapotec) => [
-      q(7587),
+      q(7573),
       q(0),
       ],
    q(andaandi) => [
-      q(2018),
+      q(2012),
       q(0),
       ],
    q(andai) => [
-      q(0642),
+      q(0640),
       q(0),
       ],
    q(andajin) => [
-      q(0718),
+      q(0716),
       q(0),
       ],
    q(andalusian arabic) => [
-      q(7284),
+      q(7271),
       q(0),
       ],
    q(andaman creole hindi) => [
-      q(2745),
+      q(2737),
       q(0),
       ],
    q(andaqui) => [
-      q(0792),
+      q(0790),
       q(0),
       ],
    q(andarum) => [
-      q(0819),
+      q(0817),
       q(0),
       ],
    q(andegerebinha) => [
-      q(0609),
+      q(0608),
       q(0),
       ],
    q(andh) => [
-      q(0807),
+      q(0805),
       q(0),
       ],
    q(andi) => [
-      q(0799),
+      q(0797),
       q(0),
       ],
    q(andio) => [
-      q(1620),
+      q(1613),
       q(0),
       ],
    q(andoa) => [
-      q(0793),
+      q(0791),
       q(0),
       ],
    q(andoque) => [
-      q(0805),
+      q(0803),
       q(0),
       ],
    q(andra-hus) => [
-      q(0813),
+      q(0811),
       q(0),
       ],
    q(aneityum) => [
-      q(0933),
+      q(0930),
       q(0),
       ],
    q(anem) => [
-      q(0815),
+      q(0813),
       q(0),
       ],
    q(aneme wake) => [
-      q(0583),
+      q(0582),
       q(0),
       ],
    q(anfillo) => [
-      q(4696),
+      q(4684),
       q(0),
       ],
    q(angaataha) => [
-      q(0666),
+      q(0664),
       q(0),
       ],
    q(angaite) => [
-      q(0868),
+      q(0866),
       q(0),
       ],
    q(angal) => [
-      q(0658),
+      q(0656),
       q(0),
       ],
    q(angal enen) => [
-      q(0820),
+      q(0818),
       q(0),
       ],
    q(angal heneng) => [
-      q(0730),
+      q(0728),
       q(0),
       ],
    q(angami naga) => [
-      q(4923),
+      q(4911),
       q(0),
       ],
    q(angguruk yali) => [
-      q(7693),
+      q(7678),
       q(0),
       ],
    q(angika) => [
@@ -25532,55 +25490,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(angkamuthi) => [
-      q(0963),
+      q(0959),
       q(0),
       ],
    q(anglo-norman) => [
-      q(7451),
+      q(7438),
       q(0),
       ],
    q(angloromani) => [
-      q(5820),
+      q(5808),
       q(0),
       ],
    q(angolar) => [
-      q(0816),
+      q(0814),
       q(0),
       ],
    q(angor) => [
-      q(0660),
+      q(0658),
       q(0),
       ],
    q(angoram) => [
-      q(0822),
+      q(0820),
       q(0),
       ],
    q(angosturas tunebo) => [
-      q(6625),
+      q(6613),
       q(0),
       ],
    q(anguthimri) => [
-      q(0973),
+      q(0969),
       q(0),
       ],
    q(ani phowa) => [
-      q(7747),
+      q(7730),
       q(0),
       ],
    q(anii) => [
-      q(1295),
+      q(1291),
       q(0),
       ],
    q(animere) => [
-      q(0797),
+      q(0795),
       q(0),
       ],
    q(anindilyakwa) => [
-      q(0824),
+      q(0822),
       q(0),
       ],
    q(anjam) => [
-      q(1363),
+      q(1358),
       q(0),
       ],
    q(ankave) => [
@@ -25588,83 +25546,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(anmatyerre) => [
-      q(0789),
+      q(0787),
       q(0),
       ],
    q(anong) => [
-      q(5127),
+      q(5115),
       q(0),
       ],
    q(anor) => [
-      q(0800),
+      q(0798),
       q(0),
       ],
    q(anserma) => [
-      q(0808),
+      q(0806),
       q(0),
       ],
    q(ansus) => [
-      q(0795),
+      q(0793),
       q(0),
       ],
    q(antakarinya) => [
-      q(0809),
+      q(0807),
       q(0),
       ],
    q(antankarana malagasy) => [
-      q(7439),
+      q(7426),
       q(0),
       ],
    q(antigua and barbuda creole english) => [
-      q(0699),
+      q(0697),
       q(0),
       ],
    q(anu-hkongso chin) => [
-      q(0802),
+      q(0800),
       q(0),
       ],
    q(anuak) => [
-      q(0810),
+      q(0808),
       q(0),
       ],
    q(anufo) => [
-      q(1764),
+      q(1758),
       q(0),
       ],
    q(anuki) => [
-      q(0942),
+      q(0938),
       q(0),
       ],
    q(anus) => [
-      q(0950),
+      q(0946),
       q(0),
       ],
    q(anuta) => [
-      q(0938),
+      q(0935),
       q(0),
       ],
    q(anyin) => [
-      q(0814),
+      q(0812),
       q(0),
       ],
    q(anyin morofo) => [
-      q(4566),
+      q(4555),
       q(0),
       ],
    q(ao naga) => [
-      q(4925),
+      q(4913),
       q(0),
       ],
    q(aoheng) => [
-      q(5547),
+      q(5535),
       q(0),
       ],
    q(aore) => [
-      q(0830),
+      q(0828),
       q(0),
       ],
    q(ap ma) => [
-      q(3213),
+      q(3205),
       q(0),
       ],
    q(apache languages) => [
@@ -25672,59 +25630,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(apalachee) => [
-      q(7295),
+      q(7282),
       q(0),
       ],
    q(apalai) => [
-      q(0859),
+      q(0857),
       q(0),
       ],
    q(apali) => [
-      q(2270),
+      q(2263),
       q(0),
       ],
    q(apasco-apoala mixtec) => [
-      q(4322),
+      q(4311),
       q(0),
       ],
    q(apatani) => [
-      q(0854),
+      q(0852),
       q(0),
       ],
    q(apiaka) => [
-      q(0843),
+      q(0841),
       q(0),
       ],
    q(apinaye) => [
-      q(0848),
+      q(0846),
       q(0),
       ],
    q(apma) => [
-      q(0850),
+      q(0848),
       q(0),
       ],
    q(aproumu aizi) => [
-      q(0689),
+      q(0687),
       q(0),
       ],
    q(apurina) => [
-      q(0855),
+      q(0853),
       q(0),
       ],
    q(aputai) => [
-      q(0858),
+      q(0856),
       q(0),
       ],
    q(aquitanian) => [
-      q(7296),
+      q(7283),
       q(0),
       ],
    q(arabana) => [
-      q(0871),
+      q(0869),
       q(0),
       ],
    q(arabela) => [
-      q(0877),
+      q(0875),
       q(0),
       ],
    q(arabic) => [
@@ -25736,23 +25694,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(araki) => [
-      q(0738),
+      q(0736),
       q(0),
       ],
    q(arakwal) => [
-      q(5815),
+      q(5803),
       q(0),
       ],
    q(aralle-tabulahan) => [
-      q(0925),
-      q(0),
-      ],
-   q(aramanik) => [
-      q(0549),
+      q(0922),
       q(0),
       ],
    q(arammba) => [
-      q(6274),
+      q(6262),
       q(0),
       ],
    q(aranadan) => [
@@ -25760,15 +25714,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aranama-tamique) => [
-      q(7498),
+      q(7485),
       q(0),
       ],
    q(arandai) => [
-      q(3070),
+      q(3062),
       q(0),
       ],
    q(araona) => [
-      q(0878),
+      q(0876),
       q(0),
       ],
    q(arapaho) => [
@@ -25776,11 +25730,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arapaso) => [
-      q(0875),
+      q(0873),
       q(0),
       ],
    q(ararandewara) => [
-      q(7291),
+      q(7278),
       q(0),
       ],
    q(arauan languages) => [
@@ -25788,7 +25742,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arawa) => [
-      q(0882),
+      q(0880),
       q(1),
       ],
    q(arawak) => [
@@ -25800,11 +25754,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arawete) => [
-      q(0982),
+      q(0978),
       q(0),
       ],
    q(arawum) => [
-      q(0977),
+      q(0973),
       q(0),
       ],
    q(arbereshe albanian) => [
@@ -25812,55 +25766,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arbore) => [
-      q(0883),
+      q(0881),
       q(0),
       ],
    q(archi) => [
-      q(0861),
+      q(0859),
       q(0),
       ],
    q(ardhamagadhi prakrit) => [
-      q(5484),
+      q(5473),
       q(0),
       ],
    q(are) => [
-      q(4637),
+      q(4626),
       q(0),
       ],
    q(areba) => [
-      q(0625),
+      q(0623),
       q(0),
       ],
    q(arem) => [
-      q(0632),
+      q(0630),
       q(0),
       ],
    q(arequipa-la union quechua) => [
-      q(5743),
+      q(5731),
       q(0),
       ],
    q(argentine sign language) => [
-      q(0628),
+      q(0626),
       q(0),
       ],
    q(argobba) => [
-      q(0663),
+      q(0661),
       q(0),
       ],
    q(arguni) => [
-      q(0659),
+      q(0657),
       q(0),
       ],
    q(arha) => [
-      q(0867),
+      q(0865),
       q(0),
       ],
    q(arho) => [
-      q(0826),
+      q(0824),
       q(0),
       ],
    q(arhuaco) => [
-      q(0873),
+      q(0871),
       q(0),
       ],
    q(ari) => [
@@ -25868,11 +25822,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aribwatsa) => [
-      q(3821),
+      q(3811),
       q(0),
       ],
    q(aribwaung) => [
-      q(7699),
+      q(7684),
       q(0),
       ],
    q(arifama-miniafia) => [
@@ -25880,35 +25834,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arigidi) => [
-      q(0863),
+      q(0861),
       q(0),
       ],
    q(arikapu) => [
-      q(0876),
+      q(0874),
       q(0),
       ],
    q(arikara) => [
-      q(0874),
+      q(0872),
       q(0),
       ],
    q(arikem) => [
-      q(0711),
+      q(0709),
       q(0),
       ],
    q(arin) => [
-      q(7495),
+      q(7482),
       q(0),
       ],
    q(aringa) => [
-      q(4087),
+      q(4076),
       q(0),
       ],
    q(arma) => [
-      q(0823),
+      q(0821),
       q(0),
       ],
    q(armazic) => [
-      q(7494),
+      q(7481),
       q(0),
       ],
    q(armenian) => [
@@ -25920,7 +25874,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(armenian sign language) => [
-      q(0633),
+      q(0631),
       q(0),
       ],
    q(aromanian) => [
@@ -25928,27 +25882,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arop-lokep) => [
-      q(0852),
+      q(0850),
       q(0),
       ],
    q(arop-sissano) => [
-      q(0853),
+      q(0851),
       q(0),
       ],
    q(arosi) => [
-      q(0693),
+      q(0691),
       q(0),
       ],
    q(arpitan) => [
-      q(2380),
+      q(2373),
       q(0),
       ],
    q(arritinngithigh) => [
-      q(5864),
+      q(5852),
       q(0),
       ],
    q(arta) => [
-      q(0934),
+      q(0931),
       q(0),
       ],
    q(artificial languages) => [
@@ -25956,19 +25910,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arua (amazonas state)) => [
-      q(0882),
+      q(0880),
       q(0),
       ],
    q(arua (rodonia state)) => [
-      q(0884),
+      q(0882),
       q(0),
       ],
    q(aruamu) => [
-      q(4563),
+      q(4552),
       q(0),
       ],
    q(aruek) => [
-      q(0951),
+      q(0947),
       q(0),
       ],
    q(arumanian) => [
@@ -25976,67 +25930,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(aruop) => [
-      q(4076),
+      q(4065),
       q(0),
       ],
    q(arutani) => [
-      q(0932),
+      q(0929),
       q(0),
       ],
    q(arvanitika albanian) => [
-      q(0555),
+      q(0554),
       q(0),
       ],
    q(as) => [
-      q(0910),
+      q(0908),
       q(0),
       ],
    q(asaro'o) => [
-      q(4586),
+      q(4575),
       q(0),
       ],
    q(asas) => [
-      q(0890),
+      q(0888),
       q(0),
       ],
    q(ashaninka) => [
-      q(1805),
+      q(1799),
       q(0),
       ],
    q(ashe) => [
-      q(0691),
+      q(0689),
       q(0),
       ],
    q(asheninka pajonal) => [
-      q(1755),
+      q(1749),
       q(0),
       ],
    q(asheninka perene) => [
-      q(5611),
+      q(5599),
       q(0),
       ],
    q(ashkun) => [
-      q(0897),
+      q(0895),
       q(0),
       ],
    q(asho chin) => [
-      q(1877),
+      q(1871),
       q(0),
       ],
    q(ashtiani) => [
-      q(0922),
+      q(0920),
       q(0),
       ],
    q(asilulu) => [
-      q(0898),
+      q(0896),
       q(0),
       ],
    q(askopan) => [
-      q(2236),
+      q(2229),
       q(0),
       ],
    q(asoa) => [
-      q(0906),
+      q(0904),
       q(0),
       ],
    q(assamese) => [
@@ -26044,19 +25998,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(assan) => [
-      q(7516),
+      q(7502),
       q(0),
       ],
    q(assangori) => [
-      q(6070),
+      q(6058),
       q(0),
       ],
    q(assiniboine) => [
-      q(0888),
+      q(0886),
       q(0),
       ],
    q(assyrian neo-aramaic) => [
-      q(0701),
+      q(0699),
       q(0),
       ],
    q(asturian) => [
@@ -26068,55 +26022,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(3),
       ],
    q(asu (nigeria)) => [
-      q(0946),
+      q(0942),
       q(0),
       ],
    q(asu (tanzania)) => [
-      q(0887),
+      q(0885),
       q(0),
       ],
    q(asue awyu) => [
-      q(5620),
+      q(5608),
       q(0),
       ],
    q(asumboa) => [
-      q(0935),
+      q(0932),
       q(0),
       ],
    q(asuncion mixtepec zapotec) => [
-      q(7925),
+      q(7908),
       q(0),
       ],
    q(asuri) => [
-      q(0903),
+      q(0901),
       q(0),
       ],
    q(ata) => [
-      q(0921),
+      q(0919),
       q(0),
       ],
    q(ata manobo) => [
-      q(0914),
+      q(0912),
       q(0),
       ],
    q(atakapa) => [
-      q(0866),
+      q(0864),
       q(0),
       ],
    q(atampaya) => [
-      q(0791),
+      q(0789),
       q(0),
       ],
    q(atatlahuca mixtec) => [
-      q(4310),
+      q(4299),
       q(0),
       ],
    q(atayal) => [
-      q(6388),
+      q(6377),
       q(0),
       ],
    q(atemble) => [
-      q(0915),
+      q(0913),
       q(0),
       ],
    q(athapascan languages) => [
@@ -26124,15 +26078,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(athpariya) => [
-      q(0842),
+      q(0840),
       q(0),
       ],
    q(ati) => [
-      q(0919),
+      q(0917),
       q(0),
       ],
    q(atikamekw) => [
-      q(0918),
+      q(0916),
       q(0),
       ],
    q(atlantic-congo languages) => [
@@ -26140,67 +26094,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(atohwaim) => [
-      q(0864),
+      q(0862),
       q(0),
       ],
    q(atong) => [
-      q(0923),
+      q(0830),
       q(0),
       ],
    q(atorada) => [
-      q(0834),
+      q(0832),
       q(0),
       ],
    q(atsahuaca) => [
-      q(0913),
+      q(0911),
       q(0),
       ],
    q(atsam) => [
-      q(1690),
+      q(1684),
       q(0),
       ],
    q(atsugewi) => [
-      q(0931),
+      q(0928),
       q(0),
       ],
    q(attapady kurumba) => [
-      q(5492),
+      q(5481),
       q(0),
       ],
    q(attie) => [
-      q(0917),
+      q(0915),
       q(0),
       ],
    q(atzingo matlatzinca) => [
-      q(5210),
+      q(5199),
       q(0),
       ],
    q(au) => [
-      q(0967),
+      q(0963),
       q(0),
       ],
    q(aulua) => [
-      q(0945),
+      q(0941),
       q(0),
       ],
    q(aura) => [
-      q(0955),
+      q(0951),
       q(0),
       ],
    q(aushi) => [
-      q(0941),
+      q(0937),
       q(0),
       ],
    q(aushiri) => [
-      q(0966),
+      q(0962),
       q(0),
       ],
    q(austral) => [
-      q(0952),
+      q(0948),
       q(0),
       ],
    q(australian aborigines sign language) => [
-      q(0907),
+      q(0905),
       q(0),
       ],
    q(australian languages) => [
@@ -26208,11 +26162,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(australian sign language) => [
-      q(0892),
+      q(0890),
       q(0),
       ],
    q(austrian sign language) => [
-      q(0902),
+      q(0900),
       q(0),
       ],
    q(austro-asiatic languages) => [
@@ -26224,23 +26178,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(auwe) => [
-      q(6130),
+      q(6118),
       q(0),
       ],
    q(auye) => [
-      q(0953),
+      q(0949),
       q(0),
       ],
    q(auyokawa) => [
-      q(0948),
+      q(0944),
       q(0),
       ],
    q(ava guarani) => [
-      q(4874),
+      q(4862),
       q(1),
       ],
    q(ava-canoeiro) => [
-      q(0969),
+      q(0965),
       q(0),
       ],
    q(avaric) => [
@@ -26248,15 +26202,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(avatime) => [
-      q(0964),
+      q(0960),
       q(0),
       ],
    q(avau) => [
-      q(0958),
+      q(0954),
       q(0),
       ],
    q(avava) => [
-      q(6599),
+      q(6587),
       q(1),
       ],
    q(avestan) => [
@@ -26264,31 +26218,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(avikam) => [
-      q(0960),
+      q(0956),
       q(0),
       ],
    q(avokaya) => [
-      q(0968),
+      q(0964),
       q(0),
       ],
    q(awa (china)) => [
-      q(7067),
+      q(7054),
       q(0),
       ],
    q(awa (papua new guinea)) => [
-      q(0970),
+      q(0966),
       q(0),
       ],
    q(awa-cuaiquer) => [
-      q(3708),
+      q(3700),
       q(0),
       ],
    q(awabakal) => [
-      q(0976),
+      q(0972),
       q(0),
       ],
    q(awad bing) => [
-      q(1087),
+      q(1083),
       q(0),
       ],
    q(awadhi) => [
@@ -26296,119 +26250,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(awak) => [
-      q(0979),
+      q(0975),
       q(0),
       ],
    q(awar) => [
-      q(0995),
+      q(0991),
       q(0),
       ],
    q(awara) => [
-      q(0986),
+      q(0982),
       q(0),
       ],
    q(awbono) => [
-      q(0974),
+      q(0970),
       q(0),
       ],
    q(aweer) => [
-      q(1357),
+      q(1352),
       q(0),
       ],
    q(awera) => [
-      q(0980),
+      q(0976),
       q(0),
       ],
    q(aweti) => [
-      q(0972),
+      q(0968),
       q(0),
       ],
    q(awing) => [
-      q(1022),
+      q(1018),
       q(0),
       ],
    q(awiyaana) => [
-      q(0956),
+      q(0952),
       q(0),
       ],
    q(awjilah) => [
-      q(0943),
+      q(0939),
       q(0),
       ],
    q(awngi) => [
-      q(0978),
+      q(0974),
       q(0),
       ],
    q(awngthim) => [
-      q(2695),
+      q(2687),
       q(0),
       ],
    q(awtuw) => [
-      q(3473),
+      q(3466),
       q(0),
       ],
    q(awu) => [
-      q(7673),
+      q(7658),
       q(0),
       ],
    q(awun) => [
-      q(0985),
+      q(0981),
       q(0),
       ],
    q(awutu) => [
-      q(0652),
+      q(0650),
       q(0),
       ],
    q(awyi) => [
-      q(0954),
+      q(0950),
       q(0),
       ],
    q(axamb) => [
-      q(0680),
+      q(0678),
       q(0),
       ],
    q(axi yi) => [
-      q(7675),
+      q(7660),
       q(0),
       ],
    q(ayabadhu) => [
-      q(0998),
+      q(0994),
       q(0),
       ],
    q(ayacucho quechua) => [
-      q(5709),
+      q(5697),
       q(0),
       ],
    q(ayangan ifugao) => [
-      q(2921),
+      q(2913),
       q(1),
       ],
    q(ayautla mazatec) => [
-      q(7051),
+      q(7038),
       q(0),
       ],
    q(ayere) => [
-      q(0999),
+      q(0995),
       q(0),
       ],
    q(ayerrerenge) => [
-      q(0989),
+      q(0985),
       q(0),
       ],
    q(ayi (papua new guinea)) => [
-      q(1008),
+      q(1004),
       q(0),
       ],
    q(ayiwo) => [
-      q(4843),
+      q(4831),
       q(0),
       ],
    q(ayizi) => [
-      q(7817),
+      q(7800),
       q(0),
       ],
    q(ayizo gbe) => [
-      q(0996),
+      q(0992),
       q(0),
       ],
    q(aymara) => [
@@ -26416,19 +26370,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ayoquesco zapotec) => [
-      q(7825),
+      q(7808),
       q(0),
       ],
    q(ayoreo) => [
-      q(1006),
+      q(1002),
       q(0),
       ],
    q(ayu) => [
-      q(1012),
+      q(1008),
       q(0),
       ],
    q(ayutla mixtec) => [
-      q(4329),
+      q(4318),
       q(0),
       ],
    q(azerbaijani) => [
@@ -26436,59 +26390,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(azha) => [
-      q(1015),
+      q(1011),
       q(0),
       ],
    q(azhe) => [
-      q(7676),
+      q(7661),
       q(0),
       ],
    q(azoyu me'phaa) => [
-      q(6668),
+      q(6656),
       q(0),
       ],
    q(azoyu tlapanec) => [
-      q(6668),
+      q(6656),
       q(1),
       ],
    q(baan) => [
-      q(1530),
+      q(1525),
       q(0),
       ],
    q(baangi) => [
-      q(1424),
+      q(1419),
       q(0),
       ],
    q(baatonum) => [
-      q(1041),
+      q(1037),
       q(0),
       ],
    q(baba) => [
-      q(1063),
+      q(1059),
       q(0),
       ],
    q(baba malay) => [
-      q(4143),
+      q(4132),
       q(0),
       ],
    q(babalia creole arabic) => [
-      q(1066),
+      q(1062),
       q(0),
       ],
    q(babango) => [
-      q(1053),
+      q(1049),
       q(0),
       ],
    q(babanki) => [
-      q(1051),
+      q(1047),
       q(0),
       ],
    q(babatana) => [
-      q(1025),
+      q(1021),
       q(0),
       ],
    q(babine) => [
-      q(1084),
+      q(1080),
       q(0),
       ],
    q(bable) => [
@@ -26496,315 +26450,315 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(babuza) => [
-      q(1625),
+      q(1618),
       q(0),
       ],
    q(bacama) => [
-      q(1090),
+      q(1086),
       q(0),
       ],
    q(bacanese malay) => [
-      q(1483),
+      q(1478),
       q(0),
       ],
    q(bactrian) => [
-      q(7306),
+      q(7293),
       q(0),
       ],
    q(bada (indonesia)) => [
-      q(1212),
+      q(1208),
       q(0),
       ],
    q(bada (nigeria)) => [
-      q(1036),
+      q(1032),
       q(0),
       ],
    q(badaga) => [
-      q(1155),
+      q(1151),
       q(0),
       ],
    q(bade) => [
-      q(1096),
+      q(1092),
       q(0),
       ],
    q(badeshi) => [
-      q(1117),
+      q(1113),
       q(0),
       ],
    q(badi kanum) => [
-      q(3342),
+      q(3334),
       q(0),
       ],
    q(badimaya) => [
-      q(1213),
+      q(1209),
       q(0),
       ],
    q(badjiri) => [
-      q(3069),
+      q(3061),
       q(0),
       ],
    q(badui) => [
-      q(1027),
+      q(1023),
       q(0),
       ],
    q(badyara) => [
-      q(5385),
+      q(5373),
       q(0),
       ],
    q(baeggu) => [
-      q(1524),
+      q(1519),
       q(0),
       ],
    q(baelelea) => [
-      q(1523),
+      q(1518),
       q(0),
       ],
    q(baetora) => [
-      q(1490),
+      q(1485),
       q(0),
       ],
    q(bafanji) => [
-      q(1148),
+      q(1144),
       q(0),
       ],
    q(bafaw-balong) => [
-      q(1565),
+      q(1560),
       q(0),
       ],
    q(bafia) => [
-      q(3606),
+      q(3598),
       q(0),
       ],
    q(bafut) => [
-      q(1142),
+      q(1138),
       q(0),
       ],
    q(baga binari) => [
-      q(1073),
+      q(1069),
       q(0),
       ],
    q(baga kaloum) => [
-      q(1406),
+      q(1401),
       q(0),
       ],
    q(baga koga) => [
-      q(1177),
+      q(1173),
       q(0),
       ],
    q(baga manduri) => [
-      q(1309),
+      q(1305),
       q(0),
       ],
    q(baga mboteni) => [
-      q(1175),
+      q(1171),
       q(0),
       ],
    q(baga sitemu) => [
-      q(1465),
+      q(1460),
       q(0),
       ],
    q(baga sobane) => [
-      q(1471),
+      q(1466),
       q(0),
       ],
    q(bagheli) => [
-      q(1162),
+      q(1158),
       q(0),
       ],
    q(bagirmi) => [
-      q(1314),
+      q(1310),
       q(0),
       ],
    q(bagirmi fulfulde) => [
-      q(2392),
+      q(2385),
       q(0),
       ],
    q(bago-kusuntu) => [
-      q(1407),
+      q(1402),
       q(0),
       ],
    q(bagri) => [
-      q(1179),
+      q(1175),
       q(0),
       ],
    q(bagupi) => [
-      q(1384),
+      q(1379),
       q(0),
       ],
    q(bagusa) => [
-      q(1403),
+      q(1398),
       q(0),
       ],
    q(bagvalal) => [
-      q(3674),
+      q(3666),
       q(0),
       ],
    q(baha buyang) => [
-      q(7656),
+      q(7641),
       q(0),
       ],
    q(baham) => [
-      q(1114),
+      q(1110),
       q(0),
       ],
    q(bahamas creole english) => [
-      q(1031),
+      q(1027),
       q(0),
       ],
    q(baharna arabic) => [
-      q(0580),
+      q(0579),
       q(0),
       ],
    q(bahau) => [
-      q(1208),
+      q(1204),
       q(0),
       ],
    q(bahinemo) => [
-      q(1240),
+      q(1236),
       q(0),
       ],
    q(bahing) => [
-      q(1198),
+      q(1194),
       q(0),
       ],
    q(bahnar) => [
-      q(1108),
+      q(1104),
       q(0),
       ],
    q(bahonsuai) => [
-      q(1470),
+      q(1465),
       q(0),
       ],
    q(bai) => [
-      q(1101),
+      q(1097),
       q(0),
       ],
    q(baibai) => [
-      q(1046),
+      q(1042),
       q(0),
       ],
    q(baikeno) => [
-      q(1279),
+      q(1275),
       q(0),
       ],
    q(baima) => [
-      q(1408),
+      q(1403),
       q(0),
       ],
    q(baimak) => [
-      q(1329),
+      q(1325),
       q(0),
       ],
    q(bainouk-gunyaamolo) => [
-      q(1091),
+      q(1087),
       q(0),
       ],
    q(bainouk-gunyuno) => [
-      q(1026),
+      q(1022),
       q(0),
       ],
    q(bainouk-samik) => [
-      q(1068),
+      q(1064),
       q(0),
       ],
    q(baiso) => [
-      q(1472),
+      q(1467),
       q(0),
       ],
    q(baissa fali) => [
-      q(2333),
+      q(2326),
       q(0),
       ],
    q(bajan) => [
-      q(1250),
+      q(1246),
       q(0),
       ],
    q(bajelani) => [
-      q(1245),
+      q(1241),
       q(0),
       ],
    q(baka (cameroon)) => [
-      q(1259),
+      q(1255),
       q(0),
       ],
    q(baka (sudan)) => [
-      q(1099),
+      q(1095),
       q(0),
       ],
    q(bakairi) => [
-      q(1272),
+      q(1268),
       q(0),
       ],
    q(bakaka) => [
-      q(1426),
+      q(1421),
       q(0),
       ],
    q(bakhtiari) => [
-      q(1409),
+      q(1404),
       q(0),
       ],
    q(baki) => [
-      q(1264),
+      q(1260),
       q(0),
       ],
    q(bakoko) => [
-      q(1263),
+      q(1259),
       q(0),
       ],
    q(bakole) => [
-      q(3464),
+      q(3457),
       q(0),
       ],
    q(bakpinka) => [
-      q(1059),
+      q(1055),
       q(0),
       ],
    q(bakumpai) => [
-      q(1273),
+      q(1269),
       q(0),
       ],
    q(bakwe) => [
-      q(1254),
+      q(1250),
       q(0),
       ],
    q(balaesang) => [
-      q(1299),
+      q(1295),
       q(0),
       ],
    q(balangao) => [
-      q(1302),
+      q(1298),
       q(0),
       ],
    q(balangingi) => [
-      q(6244),
+      q(6232),
       q(0),
       ],
    q(balanta-ganja) => [
-      q(1251),
+      q(1247),
       q(0),
       ],
    q(balanta-kentohe) => [
-      q(1285),
+      q(1281),
       q(0),
       ],
    q(balantak) => [
-      q(1305),
+      q(1301),
       q(0),
       ],
    q(balau) => [
-      q(1287),
+      q(1283),
       q(0),
       ],
    q(baldemu) => [
-      q(1105),
+      q(1101),
       q(0),
       ],
    q(bali (democratic republic of congo)) => [
-      q(1082),
+      q(1078),
       q(0),
       ],
    q(bali (nigeria)) => [
-      q(1080),
+      q(1076),
       q(0),
       ],
    q(balinese) => [
@@ -26812,27 +26766,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(balinese malay) => [
-      q(4299),
+      q(4288),
       q(0),
       ],
    q(balkan gagauz turkish) => [
-      q(1186),
+      q(1182),
       q(0),
       ],
    q(balkan romani) => [
-      q(5828),
+      q(5816),
       q(0),
       ],
    q(balo) => [
-      q(1415),
+      q(1410),
       q(0),
       ],
    q(baloi) => [
-      q(1233),
+      q(1229),
       q(0),
       ],
    q(balti) => [
-      q(1158),
+      q(1154),
       q(0),
       ],
    q(baltic languages) => [
@@ -26840,11 +26794,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(baltic romani) => [
-      q(5826),
+      q(5814),
       q(0),
       ],
    q(baluan-pam) => [
-      q(1297),
+      q(1293),
       q(0),
       ],
    q(baluchi) => [
@@ -26852,19 +26806,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bamako sign language) => [
-      q(1360),
+      q(1355),
       q(0),
       ],
    q(bamali) => [
-      q(1057),
+      q(1053),
       q(0),
       ],
    q(bambalang) => [
-      q(1320),
+      q(1316),
       q(0),
       ],
    q(bambam) => [
-      q(5648),
+      q(5636),
       q(0),
       ],
    q(bambara) => [
@@ -26872,15 +26826,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bambassi) => [
-      q(4688),
+      q(4676),
       q(0),
       ],
    q(bambili-bambui) => [
-      q(1038),
+      q(1034),
       q(0),
       ],
    q(bamenyam) => [
-      q(1071),
+      q(1067),
       q(0),
       ],
    q(bamileke languages) => [
@@ -26888,47 +26842,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bamu) => [
-      q(1072),
+      q(1068),
       q(0),
       ],
    q(bamukumbit) => [
-      q(1420),
+      q(1415),
       q(0),
       ],
    q(bamun) => [
-      q(1039),
+      q(1035),
       q(0),
       ],
    q(bamunka) => [
-      q(1533),
+      q(1528),
       q(0),
       ],
    q(bamwe) => [
-      q(1312),
+      q(1308),
       q(0),
       ],
    q(ban khor sign language) => [
-      q(1149),
+      q(1145),
       q(0),
       ],
    q(bana) => [
-      q(1089),
+      q(1085),
       q(0),
       ],
    q(banam bay) => [
-      q(7059),
+      q(7046),
       q(1),
       ],
    q(banao itneg) => [
-      q(1255),
+      q(1251),
       q(0),
       ],
    q(banaro) => [
-      q(1618),
+      q(1611),
       q(0),
       ],
    q(banda (indonesia)) => [
-      q(1335),
+      q(1330),
       q(0),
       ],
    q(banda languages) => [
@@ -26936,135 +26890,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(banda malay) => [
-      q(1392),
+      q(1387),
       q(0),
       ],
    q(banda-bambari) => [
-      q(3940),
+      q(3929),
       q(0),
       ],
    q(banda-banda) => [
-      q(1381),
+      q(1376),
       q(0),
       ],
    q(banda-mbres) => [
-      q(1411),
+      q(1406),
       q(0),
       ],
    q(banda-ndele) => [
-      q(1150),
+      q(1146),
       q(0),
       ],
    q(banda-yangere) => [
-      q(7597),
+      q(7583),
       q(0),
       ],
    q(bandi) => [
-      q(1619),
+      q(1612),
       q(0),
       ],
    q(bandial) => [
-      q(1410),
+      q(1405),
       q(0),
       ],
    q(bandjalang) => [
-      q(1116),
+      q(1112),
       q(0),
       ],
    q(bangala) => [
-      q(1577),
+      q(1572),
       q(0),
       ],
    q(bangandu) => [
-      q(1169),
+      q(1165),
       q(0),
       ],
    q(bangba) => [
-      q(1045),
+      q(1041),
       q(0),
       ],
    q(banggai) => [
-      q(1188),
+      q(1184),
       q(0),
       ],
    q(banggarla) => [
-      q(1235),
+      q(1231),
       q(0),
       ],
    q(bangi) => [
-      q(1339),
+      q(1334),
       q(0),
       ],
    q(bangime) => [
-      q(1961),
+      q(1955),
       q(0),
       ],
    q(bangingih sama) => [
-      q(6244),
+      q(6232),
       q(1),
       ],
    q(bangka) => [
-      q(4236),
+      q(4225),
       q(0),
       ],
    q(bangolan) => [
-      q(1172),
+      q(1168),
       q(0),
       ],
    q(bangubangu) => [
-      q(1353),
+      q(1348),
       q(0),
       ],
    q(bangwinji) => [
-      q(1459),
+      q(1454),
       q(0),
       ],
    q(baniva) => [
-      q(1541),
+      q(1536),
       q(0),
       ],
    q(baniwa) => [
-      q(1554),
+      q(1549),
       q(0),
       ],
    q(banjar) => [
-      q(1246),
+      q(1242),
       q(0),
       ],
    q(bankagooma) => [
-      q(1592),
+      q(1587),
       q(0),
       ],
    q(bankal) => [
-      q(3115),
+      q(3108),
       q(0),
       ],
    q(bankan tey dogon) => [
-      q(1979),
+      q(1973),
       q(0),
       ],
    q(bankon) => [
-      q(0561),
+      q(0560),
       q(0),
       ],
    q(bannoni) => [
-      q(1079),
+      q(1075),
       q(0),
       ],
    q(bantawa) => [
-      q(1034),
+      q(1030),
       q(0),
       ],
    q(bantayanon) => [
-      q(1161),
+      q(1157),
       q(0),
       ],
    q(bantik) => [
-      q(1347),
+      q(1342),
       q(0),
       ],
    q(bantoanon) => [
-      q(1345),
+      q(1340),
       q(0),
       ],
    q(bantu (other)) => [
@@ -27076,139 +27030,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(baoule) => [
-      q(1075),
+      q(1071),
       q(0),
       ],
    q(bara malagasy) => [
-      q(1204),
+      q(1200),
       q(0),
       ],
    q(baraamu) => [
-      q(1429),
+      q(1424),
       q(0),
       ],
    q(barababaraba) => [
-      q(5772),
+      q(5760),
       q(0),
       ],
    q(barai) => [
-      q(1042),
+      q(1038),
       q(0),
       ],
    q(barakai) => [
-      q(1032),
+      q(1028),
       q(0),
       ],
    q(baram kayan) => [
-      q(3769),
+      q(3759),
       q(0),
       ],
    q(barama) => [
-      q(1047),
+      q(1043),
       q(0),
       ],
    q(barambu) => [
-      q(1437),
+      q(1432),
       q(0),
       ],
    q(baramu) => [
-      q(1331),
+      q(1326),
       q(0),
       ],
    q(barapasi) => [
-      q(1440),
+      q(1435),
       q(0),
       ],
    q(baras) => [
-      q(1443),
+      q(1438),
       q(0),
       ],
    q(barasana-eduria) => [
-      q(1463),
+      q(1458),
       q(0),
       ],
    q(barbacoas) => [
-      q(1380),
+      q(1375),
       q(0),
       ],
    q(barbaram) => [
-      q(7031),
+      q(7018),
       q(0),
       ],
    q(barbareno) => [
-      q(1362),
+      q(1357),
       q(0),
       ],
    q(barclayville grebo) => [
-      q(2637),
+      q(2630),
       q(0),
       ],
    q(bardi) => [
-      q(1076),
+      q(1072),
       q(0),
       ],
    q(bare) => [
-      q(1028),
+      q(1024),
       q(0),
       ],
    q(barein) => [
-      q(1521),
+      q(1516),
       q(0),
       ],
    q(bargam) => [
-      q(4391),
+      q(4380),
       q(0),
       ],
    q(bari) => [
-      q(1139),
+      q(1135),
       q(0),
       ],
    q(bariai) => [
-      q(1074),
+      q(1070),
       q(0),
       ],
    q(bariji) => [
-      q(1236),
+      q(1232),
       q(0),
       ],
    q(barikanchi) => [
-      q(1585),
+      q(1580),
       q(0),
       ],
    q(barikewa) => [
-      q(3071),
+      q(3063),
       q(0),
       ],
    q(barok) => [
-      q(1243),
+      q(1239),
       q(0),
       ],
    q(barombi) => [
-      q(1049),
+      q(1045),
       q(0),
       ],
    q(barro negro tunebo) => [
-      q(6403),
+      q(6392),
       q(0),
       ],
    q(barrow point) => [
-      q(1395),
+      q(1390),
       q(0),
       ],
    q(baruga) => [
-      q(1257),
+      q(1253),
       q(0),
       ],
    q(baruya) => [
-      q(1611),
+      q(1605),
       q(0),
       ],
    q(barwe) => [
-      q(1552),
+      q(1547),
       q(0),
       ],
    q(barzani jewish neo-aramaic) => [
-      q(1238),
+      q(1234),
       q(0),
       ],
    q(basa) => [
@@ -27220,27 +27174,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(basa (nigeria)) => [
-      q(1641),
+      q(1634),
       q(0),
       ],
    q(basa-gumna) => [
-      q(1461),
+      q(1456),
       q(0),
       ],
    q(basa-gurmana) => [
-      q(1506),
+      q(1501),
       q(0),
       ],
    q(basap) => [
-      q(1093),
+      q(1089),
       q(0),
       ],
    q(basay) => [
-      q(1610),
+      q(1604),
       q(0),
       ],
    q(bashkardi) => [
-      q(1456),
+      q(1451),
       q(0),
       ],
    q(bashkir) => [
@@ -27248,7 +27202,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(basketo) => [
-      q(1469),
+      q(1464),
       q(0),
       ],
    q(basque) => [
@@ -27260,47 +27214,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bassa) => [
-      q(1466),
+      q(1461),
       q(0),
       ],
    q(bassa-kontagora) => [
-      q(1467),
+      q(1462),
       q(0),
       ],
    q(bassari) => [
-      q(1453),
+      q(1448),
       q(0),
       ],
    q(bassossi) => [
-      q(1458),
+      q(1453),
       q(0),
       ],
    q(bata) => [
-      q(1475),
+      q(1470),
       q(0),
       ],
    q(batad ifugao) => [
-      q(2921),
+      q(2913),
       q(0),
       ],
    q(batak) => [
-      q(1595),
+      q(1589),
       q(0),
       ],
    q(batak alas-kluet) => [
-      q(1498),
+      q(1493),
       q(0),
       ],
    q(batak angkola) => [
-      q(0724),
+      q(0722),
       q(0),
       ],
    q(batak dairi) => [
-      q(1477),
+      q(1472),
       q(0),
       ],
    q(batak karo) => [
-      q(1496),
+      q(1491),
       q(0),
       ],
    q(batak languages) => [
@@ -27308,151 +27262,151 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(batak mandailing) => [
-      q(1485),
+      q(1480),
       q(0),
       ],
    q(batak simalungun) => [
-      q(1491),
+      q(1486),
       q(0),
       ],
    q(batak toba) => [
-      q(1043),
+      q(1039),
       q(0),
       ],
    q(batanga) => [
-      q(1343),
+      q(1338),
       q(0),
       ],
    q(batek) => [
-      q(1489),
+      q(1484),
       q(0),
       ],
    q(bateri) => [
-      q(1494),
+      q(1489),
       q(0),
       ],
    q(bathari) => [
-      q(1200),
+      q(1196),
       q(0),
       ],
    q(bati (cameroon)) => [
-      q(1476),
+      q(1471),
       q(0),
       ],
    q(bati (indonesia)) => [
-      q(1539),
+      q(1534),
       q(0),
       ],
    q(bats) => [
-      q(1052),
+      q(1048),
       q(0),
       ],
    q(batu) => [
-      q(1493),
+      q(1488),
       q(0),
       ],
    q(batui) => [
-      q(7846),
+      q(7829),
       q(0),
       ],
    q(batuley) => [
-      q(1040),
+      q(1036),
       q(0),
       ],
    q(batyala) => [
-      q(7319),
+      q(7306),
       q(0),
       ],
    q(bau) => [
-      q(1044),
+      q(1040),
       q(0),
       ],
    q(bau bidayuh) => [
-      q(6148),
+      q(6136),
       q(0),
       ],
    q(bauchi) => [
-      q(1455),
+      q(1450),
       q(0),
       ],
    q(baure) => [
-      q(1431),
+      q(1426),
       q(0),
       ],
    q(bauria) => [
-      q(1168),
+      q(1164),
       q(0),
       ],
    q(bauwaki) => [
-      q(1556),
+      q(1551),
       q(0),
       ],
    q(bauzi) => [
-      q(1545),
+      q(1540),
       q(0),
       ],
    q(bavarian) => [
-      q(1035),
+      q(1031),
       q(0),
       ],
    q(bawm chin) => [
-      q(1180),
+      q(1176),
       q(0),
       ],
    q(bay miwok) => [
-      q(4368),
+      q(4357),
       q(0),
       ],
    q(bayali) => [
-      q(1256),
+      q(1252),
       q(0),
       ],
    q(baybayanon) => [
-      q(1544),
+      q(1539),
       q(0),
       ],
    q(baygo) => [
-      q(1601),
+      q(1595),
       q(0),
       ],
    q(bayono) => [
-      q(1606),
+      q(1600),
       q(0),
       ],
    q(bayot) => [
-      q(1092),
+      q(1088),
       q(0),
       ],
    q(bayungu) => [
-      q(1580),
+      q(1575),
       q(0),
       ],
    q(bazigar) => [
-      q(1156),
+      q(1152),
       q(0),
       ],
    q(beami) => [
-      q(1128),
+      q(1124),
       q(0),
       ],
    q(beaver) => [
-      q(1118),
+      q(1114),
       q(0),
       ],
    q(beba) => [
-      q(1154),
+      q(1150),
       q(0),
       ],
    q(bebele) => [
-      q(1119),
+      q(1115),
       q(0),
       ],
    q(bebeli) => [
-      q(1127),
+      q(1123),
       q(0),
       ],
    q(bebil) => [
-      q(1586),
+      q(1581),
       q(0),
       ],
    q(bedawiyet) => [
@@ -27460,35 +27414,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(bedjond) => [
-      q(1253),
+      q(1249),
       q(0),
       ],
    q(bedoanas) => [
-      q(1121),
+      q(1117),
       q(0),
       ],
    q(beeke) => [
-      q(1261),
+      q(1257),
       q(0),
       ],
    q(beele) => [
-      q(1587),
+      q(1582),
       q(0),
       ],
    q(beembe) => [
-      q(1130),
+      q(1126),
       q(0),
       ],
    q(beezen) => [
-      q(1355),
+      q(1350),
       q(0),
       ],
    q(befang) => [
-      q(1065),
+      q(1061),
       q(0),
       ],
    q(begbere-ejar) => [
-      q(1422),
+      q(1417),
       q(1),
       ],
    q(beja) => [
@@ -27496,27 +27450,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bekati') => [
-      q(1126),
+      q(1122),
       q(0),
       ],
    q(bekwarra) => [
-      q(1277),
+      q(1273),
       q(0),
       ],
    q(bekwel) => [
-      q(1278),
+      q(1274),
       q(0),
       ],
    q(belait) => [
-      q(1124),
+      q(1120),
       q(0),
       ],
    q(belanda bor) => [
-      q(1572),
+      q(1567),
       q(0),
       ],
    q(belanda viri) => [
-      q(1529),
+      q(1524),
       q(0),
       ],
    q(belarusian) => [
@@ -27524,83 +27478,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(belhariya) => [
-      q(1615),
+      q(1609),
       q(0),
       ],
    q(beli (papua new guinea)) => [
-      q(1137),
+      q(1133),
       q(0),
       ],
    q(beli (sudan)) => [
-      q(1293),
+      q(1289),
       q(0),
       ],
    q(belize kriol english) => [
-      q(1628),
+      q(1621),
       q(0),
       ],
    q(bella coola) => [
-      q(1283),
+      q(1279),
       q(0),
       ],
    q(bellari) => [
-      q(1447),
+      q(1442),
       q(0),
       ],
    q(bemba) => [
       q(0049),
       q(0),
       ],
-   q(bemba (democratic republic of congo)) => [
-      q(1330),
-      q(0),
-      ],
    q(bemba (zambia)) => [
       q(0049),
       q(1),
       ],
    q(bembe) => [
-      q(1307),
+      q(1303),
       q(0),
       ],
    q(ben tey dogon) => [
-      q(1976),
+      q(1970),
       q(0),
       ],
    q(bena (nigeria)) => [
-      q(7789),
+      q(7772),
       q(0),
       ],
    q(bena (tanzania)) => [
-      q(1138),
+      q(1134),
       q(0),
       ],
    q(benabena) => [
-      q(1123),
+      q(1119),
       q(0),
       ],
    q(bench) => [
-      q(1083),
+      q(1079),
       q(0),
       ],
    q(bende) => [
-      q(1107),
+      q(1103),
       q(0),
       ],
    q(bendi) => [
-      q(1086),
+      q(1082),
       q(0),
       ],
    q(beneraf) => [
-      q(1351),
+      q(1346),
       q(1),
       ],
    q(beng) => [
-      q(4872),
+      q(4860),
       q(0),
       ],
    q(benga) => [
-      q(1338),
+      q(1333),
       q(0),
       ],
    q(bengali) => [
@@ -27608,39 +27558,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(benggoi) => [
-      q(1187),
+      q(1183),
       q(0),
       ],
    q(bengkala sign language) => [
-      q(1425),
+      q(1420),
       q(0),
       ],
    q(bentong) => [
-      q(1350),
+      q(1345),
       q(0),
       ],
    q(benyadu') => [
-      q(1598),
+      q(1592),
       q(0),
       ],
    q(beothuk) => [
-      q(1502),
+      q(1497),
       q(0),
       ],
    q(bepour) => [
-      q(1217),
+      q(1213),
       q(0),
       ],
    q(bera) => [
-      q(1430),
+      q(1425),
       q(0),
       ],
    q(berakou) => [
-      q(1591),
+      q(1586),
       q(0),
       ],
    q(berau malay) => [
-      q(1525),
+      q(1520),
       q(0),
       ],
    q(berber languages) => [
@@ -27648,107 +27598,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(berbice creole dutch) => [
-      q(1428),
+      q(1423),
       q(0),
       ],
    q(berik) => [
-      q(1267),
+      q(1263),
       q(0),
       ],
    q(berinomo) => [
-      q(1227),
+      q(1223),
       q(0),
       ],
    q(berom) => [
-      q(1366),
+      q(1361),
       q(0),
       ],
    q(berta) => [
-      q(7254),
+      q(7241),
       q(0),
       ],
    q(berti) => [
-      q(1613),
+      q(1607),
       q(0),
       ],
    q(besisi) => [
-      q(4289),
+      q(4278),
       q(0),
       ],
    q(besme) => [
-      q(1131),
+      q(1127),
       q(0),
       ],
    q(besoa) => [
-      q(1129),
+      q(1125),
       q(0),
       ],
    q(betaf) => [
-      q(1143),
+      q(1139),
       q(0),
       ],
    q(betawi) => [
-      q(1135),
+      q(1131),
       q(0),
       ],
    q(bete) => [
-      q(1600),
+      q(1594),
       q(0),
       ],
    q(bete-bendi) => [
-      q(1492),
+      q(1487),
       q(0),
       ],
    q(beti (cote d'ivoire)) => [
-      q(2285),
+      q(2278),
       q(0),
       ],
    q(betta kurumba) => [
-      q(7544),
+      q(7530),
       q(0),
       ],
    q(bezhta) => [
-      q(3186),
+      q(3179),
       q(0),
       ],
    q(bhadrawahi) => [
-      q(1192),
+      q(1188),
       q(0),
       ],
    q(bhalay) => [
-      q(1210),
+      q(1206),
       q(0),
       ],
    q(bharia) => [
-      q(1189),
+      q(1185),
       q(0),
       ],
    q(bhatola) => [
-      q(1484),
+      q(1479),
       q(0),
       ],
    q(bhatri) => [
-      q(1185),
+      q(1181),
       q(0),
       ],
    q(bhattiyali) => [
-      q(1206),
+      q(1202),
       q(0),
       ],
    q(bhaya) => [
-      q(1193),
+      q(1189),
       q(0),
       ],
    q(bhele) => [
-      q(1211),
+      q(1207),
       q(0),
       ],
    q(bhilali) => [
-      q(1197),
+      q(1193),
       q(0),
       ],
    q(bhili) => [
-      q(1190),
+      q(1186),
       q(0),
       ],
    q(bhojpuri) => [
@@ -27756,103 +27706,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bhoti kinnauri) => [
-      q(4834),
+      q(4822),
       q(0),
       ],
    q(bhujel) => [
-      q(1602),
+      q(1596),
       q(0),
       ],
    q(bhunjia) => [
-      q(1207),
+      q(1203),
       q(0),
       ],
    q(biafada) => [
-      q(1218),
+      q(1214),
       q(0),
       ],
    q(biage) => [
-      q(1097),
+      q(1093),
       q(0),
       ],
    q(biak) => [
-      q(1209),
+      q(1205),
       q(0),
       ],
    q(biali) => [
-      q(1125),
+      q(1121),
       q(0),
       ],
    q(bian marind) => [
-      q(1397),
+      q(1392),
       q(0),
       ],
    q(biangai) => [
-      q(1219),
+      q(1215),
       q(0),
       ],
    q(biao) => [
-      q(1605),
+      q(1599),
       q(0),
       ],
    q(biao mon) => [
-      q(1325),
+      q(1321),
       q(0),
       ],
    q(biao-jiao mien) => [
-      q(1237),
+      q(1233),
       q(0),
       ],
    q(biatah bidayuh) => [
-      q(1481),
+      q(1476),
       q(0),
       ],
    q(bibbulman) => [
-      q(7315),
+      q(7302),
       q(0),
       ],
    q(bidhawal) => [
-      q(2940),
+      q(2932),
       q(0),
       ],
    q(bidiyo) => [
-      q(1216),
+      q(1212),
       q(0),
       ],
    q(bidyara) => [
-      q(1607),
+      q(1601),
       q(0),
       ],
    q(bidyogo) => [
-      q(1239),
+      q(1235),
       q(0),
       ],
    q(biem) => [
-      q(1308),
+      q(1304),
       q(0),
       ],
    q(bierebo) => [
-      q(1341),
+      q(1336),
       q(0),
       ],
    q(bieria) => [
-      q(1434),
+      q(1429),
       q(0),
       ],
    q(biete) => [
-      q(1228),
+      q(1224),
       q(0),
       ],
    q(big nambas) => [
-      q(4974),
+      q(4962),
       q(0),
       ],
    q(biga) => [
-      q(1191),
+      q(1187),
       q(0),
       ],
    q(bigambal) => [
-      q(7308),
+      q(7295),
       q(0),
       ],
    q(bihari languages) => [
@@ -27860,11 +27810,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bijori) => [
-      q(1231),
+      q(1227),
       q(0),
       ],
    q(bikaru) => [
-      q(1215),
+      q(1211),
       q(0),
       ],
    q(bikol) => [
@@ -27872,31 +27822,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bikya) => [
-      q(1596),
+      q(1590),
       q(0),
       ],
    q(bila) => [
-      q(1224),
+      q(1220),
       q(0),
       ],
    q(bilakura) => [
-      q(1412),
+      q(1407),
       q(0),
       ],
    q(bilaspuri) => [
-      q(3308),
+      q(3300),
       q(0),
       ],
    q(bilba) => [
-      q(1401),
+      q(1396),
       q(0),
       ],
    q(bilbil) => [
-      q(1450),
+      q(1445),
       q(0),
       ],
    q(bile) => [
-      q(1221),
+      q(1217),
       q(0),
       ],
    q(bilin) => [
@@ -27904,55 +27854,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(bilma kanuri) => [
-      q(1324),
+      q(1320),
       q(0),
       ],
    q(biloxi) => [
-      q(1292),
+      q(1288),
       q(0),
       ],
    q(bilua) => [
-      q(1282),
+      q(1278),
       q(0),
       ],
    q(bilur) => [
-      q(1576),
+      q(1571),
       q(0),
       ],
    q(bima) => [
-      q(1202),
+      q(1198),
       q(0),
       ],
    q(bimin) => [
-      q(1199),
+      q(1195),
       q(0),
       ],
    q(bimoba) => [
-      q(1222),
+      q(1218),
       q(0),
       ],
    q(bina (nigeria)) => [
-      q(1604),
+      q(1598),
       q(0),
       ],
    q(bina (papua new guinea)) => [
-      q(1319),
+      q(1315),
       q(0),
       ],
    q(binahari) => [
-      q(1594),
+      q(1588),
       q(0),
       ],
    q(binandere) => [
-      q(1195),
+      q(1191),
       q(0),
       ],
    q(bindal) => [
-      q(7307),
+      q(7294),
       q(0),
       ],
    q(bine) => [
-      q(1367),
+      q(1362),
       q(0),
       ],
    q(bini) => [
@@ -27960,91 +27910,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(binji) => [
-      q(1385),
+      q(1380),
       q(0),
       ],
    q(binongan itneg) => [
-      q(3018),
+      q(3010),
       q(0),
       ],
    q(bintauna) => [
-      q(1336),
+      q(1331),
       q(0),
       ],
    q(bintulu) => [
-      q(1354),
+      q(1349),
       q(0),
       ],
    q(binukid) => [
-      q(1260),
+      q(1256),
       q(0),
       ],
    q(binumarien) => [
-      q(1249),
+      q(1245),
       q(0),
       ],
    q(bipi) => [
-      q(1225),
+      q(1221),
       q(0),
       ],
    q(birale) => [
-      q(1575),
+      q(1570),
       q(0),
       ],
    q(birao) => [
-      q(1442),
+      q(1437),
       q(0),
       ],
    q(birgit) => [
-      q(1479),
+      q(1474),
       q(0),
       ],
    q(birhor) => [
-      q(1232),
+      q(1228),
       q(0),
       ],
    q(biri) => [
-      q(1636),
+      q(1629),
       q(0),
       ],
    q(biritai) => [
-      q(1417),
+      q(1412),
       q(0),
       ],
    q(birked) => [
-      q(1435),
+      q(1430),
       q(0),
       ],
    q(birri) => [
-      q(1537),
+      q(1532),
       q(0),
       ],
    q(birrpayi) => [
-      q(7311),
+      q(7298),
       q(0),
       ],
    q(birwa) => [
-      q(1436),
+      q(1431),
       q(0),
       ],
    q(bisa) => [
-      q(1214),
+      q(1210),
       q(1),
       ],
    q(biseni) => [
-      q(2943),
+      q(2935),
       q(0),
       ],
    q(bishnupriya) => [
-      q(1400),
+      q(1395),
       q(0),
       ],
    q(bishuo) => [
-      q(1553),
+      q(1548),
       q(0),
       ],
    q(bisis) => [
-      q(1352),
+      q(1347),
       q(0),
       ],
    q(bislama) => [
@@ -28052,55 +28002,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bisorio) => [
-      q(1226),
+      q(1222),
       q(0),
       ],
    q(bissa) => [
-      q(1214),
+      q(1210),
       q(0),
       ],
    q(bisu) => [
-      q(1627),
+      q(1620),
       q(0),
       ],
    q(bit) => [
-      q(1173),
+      q(1169),
       q(0),
       ],
    q(bitare) => [
-      q(1444),
+      q(1439),
       q(0),
       ],
    q(bitur) => [
-      q(4165),
+      q(4154),
       q(0),
       ],
    q(biwat) => [
-      q(1558),
+      q(1553),
       q(0),
       ],
    q(biyo) => [
-      q(1608),
+      q(1602),
       q(0),
       ],
    q(biyom) => [
-      q(1388),
+      q(1383),
       q(0),
       ],
    q(blablanga) => [
-      q(1296),
+      q(1292),
       q(0),
       ],
    q(blafe) => [
-      q(1146),
+      q(1142),
       q(0),
       ],
    q(blagar) => [
-      q(1133),
+      q(1129),
       q(0),
       ],
    q(blang) => [
-      q(1298),
+      q(1294),
       q(0),
       ],
    q(blin) => [
@@ -28120,83 +28070,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bo (laos)) => [
-      q(1174),
+      q(1170),
       q(0),
       ],
    q(bo (papua new guinea)) => [
-      q(1398),
+      q(1393),
       q(0),
       ],
    q(bo-rukul) => [
-      q(4127),
+      q(4116),
       q(0),
       ],
    q(bo-ung) => [
-      q(4608),
+      q(4597),
       q(0),
       ],
    q(boano (maluku)) => [
-      q(1632),
+      q(1625),
       q(0),
       ],
    q(boano (sulawesi)) => [
-      q(1630),
+      q(1623),
       q(0),
       ],
    q(bobongko) => [
-      q(1165),
+      q(1161),
       q(0),
       ],
    q(bobot) => [
-      q(1497),
+      q(1492),
       q(0),
       ],
    q(bodo (central african republic)) => [
-      q(1377),
+      q(1372),
       q(0),
       ],
    q(bodo (india)) => [
-      q(1448),
+      q(1443),
       q(0),
       ],
    q(bodo gadaba) => [
-      q(2434),
+      q(2427),
       q(0),
       ],
    q(bodo parja) => [
-      q(1113),
+      q(1109),
       q(0),
       ],
    q(bofi) => [
-      q(1144),
+      q(1140),
       q(0),
       ],
    q(boga) => [
-      q(1542),
+      q(1537),
       q(0),
       ],
    q(bogaya) => [
-      q(1370),
+      q(1365),
       q(0),
       ],
    q(boghom) => [
-      q(1518),
+      q(1513),
       q(0),
       ],
    q(boguru) => [
-      q(1421),
+      q(1416),
       q(0),
       ],
    q(bohtan neo-aramaic) => [
-      q(1201),
+      q(1197),
       q(0),
       ],
    q(boikin) => [
-      q(1624),
+      q(1617),
       q(0),
       ],
    q(bokha) => [
-      q(7618),
+      q(7604),
       q(0),
       ],
    q(bokmal, norwegian) => [
@@ -28204,247 +28154,243 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(boko (benin)) => [
-      q(1404),
+      q(1399),
       q(0),
       ],
    q(boko (democratic republic of congo)) => [
-      q(1271),
+      q(1267),
       q(0),
       ],
    q(bokobaru) => [
-      q(1513),
+      q(1508),
       q(0),
       ],
    q(bokoto) => [
-      q(1111),
+      q(1107),
       q(0),
       ],
    q(bokyi) => [
-      q(1280),
+      q(1276),
       q(0),
       ],
    q(bola) => [
-      q(1346),
+      q(1341),
       q(0),
       ],
    q(bolango) => [
-      q(1284),
+      q(1280),
       q(0),
       ],
    q(bole) => [
-      q(1365),
+      q(1360),
       q(0),
       ],
    q(bolgarian) => [
-      q(7314),
+      q(7301),
       q(0),
       ],
    q(bolgo) => [
-      q(1535),
+      q(1530),
       q(0),
       ],
    q(bolia) => [
-      q(1289),
+      q(1285),
       q(0),
       ],
    q(bolinao) => [
-      q(6133),
+      q(6121),
       q(0),
       ],
    q(bolivian sign language) => [
-      q(1532),
+      q(1527),
       q(0),
       ],
    q(bolo) => [
-      q(1301),
+      q(1297),
       q(0),
       ],
    q(boloki) => [
-      q(1275),
+      q(1271),
       q(0),
       ],
    q(bolon) => [
-      q(1359),
+      q(1354),
       q(0),
       ],
    q(bolondo) => [
-      q(1631),
+      q(1624),
       q(0),
       ],
    q(bolongan) => [
-      q(1290),
+      q(1286),
       q(0),
       ],
    q(bolyu) => [
-      q(5516),
+      q(5505),
       q(0),
       ],
    q(bom) => [
-      q(1311),
+      q(1307),
       q(0),
       ],
    q(boma) => [
-      q(1361),
+      q(1356),
       q(0),
       ],
    q(bomboli) => [
-      q(1317),
+      q(1313),
       q(0),
       ],
    q(bomboma) => [
-      q(1564),
+      q(1559),
       q(0),
       ],
    q(bomitaba) => [
-      q(7914),
+      q(7897),
       q(0),
       ],
    q(bomu) => [
-      q(1322),
+      q(1318),
       q(0),
       ],
    q(bomwali) => [
-      q(1328),
+      q(1324),
       q(0),
       ],
    q(bon gula) => [
-      q(2549),
+      q(2542),
       q(0),
       ],
    q(bonan) => [
-      q(5421),
+      q(5409),
       q(0),
       ],
    q(bondei) => [
-      q(1373),
+      q(1368),
       q(0),
       ],
    q(bondo) => [
-      q(1160),
+      q(1156),
       q(0),
       ],
    q(bondoukou kulango) => [
-      q(3779),
+      q(3769),
       q(0),
       ],
    q(bondum dom dogon) => [
-      q(1977),
+      q(1971),
       q(0),
       ],
    q(bonerate) => [
-      q(1332),
+      q(1327),
       q(0),
       ],
    q(bonerif) => [
-      q(1351),
+      q(1346),
       q(0),
       ],
    q(bonggi) => [
-      q(1098),
+      q(1094),
       q(0),
       ],
    q(bonggo) => [
-      q(1382),
+      q(1377),
       q(0),
       ],
    q(bongili) => [
-      q(1505),
+      q(1500),
       q(0),
       ],
    q(bongo) => [
-      q(1372),
+      q(1367),
       q(0),
       ],
    q(bongu) => [
-      q(1396),
+      q(1391),
       q(0),
       ],
    q(bonjo) => [
-      q(1364),
+      q(1359),
       q(0),
       ],
    q(bonkeng) => [
-      q(1527),
+      q(1522),
       q(0),
       ],
    q(bonkiman) => [
-      q(1369),
+      q(1364),
       q(0),
       ],
    q(bontok) => [
-      q(1334),
+      q(1329),
       q(0),
       ],
    q(boo) => [
-      q(1404),
+      q(1399),
       q(1),
       ],
    q(bookan) => [
-      q(1333),
+      q(1328),
       q(0),
       ],
    q(boon) => [
-      q(1342),
+      q(1337),
       q(0),
       ],
    q(boor) => [
-      q(1526),
+      q(1521),
       q(0),
       ],
    q(bora) => [
-      q(1356),
+      q(1351),
       q(0),
       ],
    q(borana-arsi-guji oromo) => [
-      q(2425),
+      q(2418),
       q(0),
       ],
    q(border kuna) => [
-      q(3687),
+      q(3679),
       q(0),
       ],
    q(borei) => [
-      q(2411),
+      q(2404),
       q(0),
       ],
    q(borgu fulfulde) => [
-      q(2389),
-      q(0),
-      ],
-   q(borna (democratic republic of congo)) => [
-      q(1593),
+      q(2382),
       q(0),
       ],
    q(borna (ethiopia)) => [
-      q(1560),
+      q(1555),
       q(1),
       ],
    q(boro (ethiopia)) => [
-      q(1560),
+      q(1555),
       q(0),
       ],
    q(boro (ghana)) => [
-      q(7573),
+      q(7559),
       q(0),
       ],
    q(borong) => [
-      q(3618),
+      q(3610),
       q(0),
       ],
    q(bororo) => [
-      q(1371),
+      q(1366),
       q(0),
       ],
    q(boruca) => [
-      q(1438),
+      q(1433),
       q(0),
       ],
    q(boselewa) => [
-      q(1551),
+      q(1546),
       q(0),
       ],
    q(bosngun) => [
-      q(1419),
+      q(1414),
       q(0),
       ],
    q(bosnian) => [
@@ -28452,35 +28398,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bote-majhi) => [
-      q(1315),
+      q(1311),
       q(0),
       ],
    q(botlikh) => [
-      q(1383),
+      q(1378),
       q(0),
       ],
    q(botolan sambal) => [
-      q(5923),
+      q(5912),
       q(0),
       ],
    q(bouna kulango) => [
-      q(4952),
+      q(4940),
       q(0),
       ],
    q(bouyei) => [
-      q(5394),
+      q(5382),
       q(0),
       ],
    q(bozaba) => [
-      q(1633),
+      q(1626),
       q(0),
       ],
    q(bragat) => [
-      q(0821),
+      q(0819),
       q(0),
       ],
    q(brahui) => [
-      q(1432),
+      q(1427),
       q(0),
       ],
    q(braj) => [
@@ -28488,15 +28434,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(brazilian sign language) => [
-      q(1637),
+      q(1630),
       q(0),
       ],
    q(brem) => [
-      q(1512),
+      q(1507),
       q(0),
       ],
    q(breri) => [
-      q(1441),
+      q(1436),
       q(0),
       ],
    q(breton) => [
@@ -28504,115 +28450,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bribri) => [
-      q(1622),
+      q(1615),
       q(0),
       ],
    q(brithenig) => [
-      q(1638),
+      q(1631),
       q(0),
       ],
    q(british sign language) => [
-      q(1147),
+      q(1143),
       q(0),
       ],
    q(brokkat) => [
-      q(1439),
+      q(1434),
       q(0),
       ],
    q(brokpake) => [
-      q(6015),
+      q(6003),
       q(0),
       ],
    q(brokskat) => [
-      q(1266),
+      q(1262),
       q(0),
       ],
    q(brooke's point palawano) => [
-      q(5515),
+      q(5504),
       q(0),
       ],
    q(broome pearling lugger pidgin) => [
-      q(1387),
+      q(1382),
       q(0),
       ],
    q(brunei) => [
-      q(3729),
+      q(3720),
       q(0),
       ],
    q(brunei bisaya) => [
-      q(1452),
+      q(1447),
       q(0),
       ],
    q(bu) => [
-      q(3102),
+      q(3094),
       q(0),
       ],
    q(bu-nao bunu) => [
-      q(1568),
+      q(1563),
       q(0),
       ],
    q(bua) => [
-      q(1499),
+      q(1494),
       q(0),
       ],
    q(bualkhaw chin) => [
-      q(1675),
+      q(1668),
       q(0),
       ],
    q(buamu) => [
-      q(1376),
+      q(1371),
       q(0),
       ],
    q(bube) => [
-      q(1522),
+      q(1517),
       q(0),
       ],
    q(bubi) => [
-      q(1517),
+      q(1512),
       q(0),
       ],
    q(bubia) => [
-      q(1064),
+      q(1060),
       q(0),
       ],
    q(budeh stieng) => [
-      q(6283),
+      q(6271),
       q(0),
       ],
    q(budibud) => [
-      q(1488),
+      q(1483),
       q(0),
       ],
    q(budong-budong) => [
-      q(1115),
+      q(1111),
       q(0),
       ],
    q(budu) => [
-      q(1515),
+      q(1510),
       q(0),
       ],
    q(budukh) => [
-      q(1102),
+      q(1098),
       q(0),
       ],
    q(buduma) => [
-      q(1104),
+      q(1100),
       q(0),
       ],
    q(budza) => [
-      q(1234),
+      q(1230),
       q(0),
       ],
    q(bugan) => [
-      q(1048),
+      q(1044),
       q(0),
       ],
    q(bugawac) => [
-      q(1507),
+      q(1502),
       q(0),
       ],
    q(bughotu) => [
-      q(1182),
+      q(1178),
       q(0),
       ],
    q(buginese) => [
@@ -28620,59 +28566,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(buglere) => [
-      q(5897),
+      q(5886),
       q(0),
       ],
    q(bugun) => [
-      q(1170),
+      q(1166),
       q(0),
       ],
    q(buhi'non bikol) => [
-      q(6868),
+      q(6856),
       q(0),
       ],
    q(buhid) => [
-      q(1276),
+      q(1272),
       q(0),
       ],
    q(buhutu) => [
-      q(1578),
+      q(1573),
       q(0),
       ],
    q(bukar-sadung bidayuh) => [
-      q(5965),
+      q(5954),
       q(0),
       ],
    q(bukat) => [
-      q(1531),
+      q(1526),
       q(0),
       ],
    q(bukharic) => [
-      q(1196),
+      q(1192),
       q(0),
       ],
    q(bukit malay) => [
-      q(1540),
+      q(1535),
       q(0),
       ],
    q(bukitan) => [
-      q(1269),
+      q(1265),
       q(0),
       ],
    q(bukiyip) => [
-      q(0839),
+      q(0837),
       q(0),
       ],
    q(buksa) => [
-      q(6560),
+      q(6548),
       q(0),
       ],
    q(bukusu) => [
-      q(1581),
+      q(1576),
       q(0),
       ],
    q(bukwen) => [
-      q(1520),
+      q(1515),
       q(0),
       ],
    q(bulgarian) => [
@@ -28680,139 +28626,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bulgarian sign language) => [
-      q(1414),
+      q(1409),
       q(0),
       ],
    q(bulgebi) => [
-      q(1321),
+      q(1317),
       q(0),
       ],
    q(buli (ghana)) => [
-      q(1566),
+      q(1561),
       q(0),
       ],
    q(buli (indonesia)) => [
-      q(1635),
+      q(1628),
       q(0),
       ],
    q(bullom so) => [
-      q(1519),
+      q(1514),
       q(0),
       ],
    q(bulo stieng) => [
-      q(6272),
+      q(6260),
       q(0),
       ],
    q(bulu (cameroon)) => [
-      q(1508),
+      q(1503),
       q(0),
       ],
    q(bulu (papua new guinea)) => [
-      q(1244),
+      q(1240),
       q(0),
       ],
    q(bum) => [
-      q(1327),
+      q(1323),
       q(0),
       ],
    q(bumaji) => [
-      q(1609),
+      q(1603),
       q(0),
       ],
    q(bumang) => [
-      q(1536),
+      q(1531),
       q(0),
       ],
    q(bumbita arapesh) => [
-      q(0829),
+      q(0827),
       q(0),
       ],
    q(bumthangkha) => [
-      q(3408),
+      q(3401),
       q(0),
       ],
    q(bun) => [
-      q(1516),
+      q(1511),
       q(0),
       ],
    q(buna) => [
-      q(1534),
+      q(1529),
       q(0),
       ],
    q(bunaba) => [
-      q(1077),
+      q(1073),
       q(0),
       ],
    q(bunak) => [
-      q(1152),
+      q(1148),
       q(0),
       ],
    q(bunama) => [
-      q(1095),
+      q(1091),
       q(0),
       ],
    q(bundeli) => [
-      q(1349),
+      q(1344),
       q(0),
       ],
    q(bung) => [
-      q(1405),
+      q(1400),
       q(0),
       ],
    q(bungain) => [
-      q(1514),
+      q(1509),
       q(0),
       ],
    q(bunganditj) => [
-      q(7309),
+      q(7296),
       q(0),
       ],
    q(bungku) => [
-      q(1281),
+      q(1277),
       q(0),
       ],
    q(bungu) => [
-      q(7264),
+      q(7251),
       q(0),
       ],
    q(bunoge dogon) => [
-      q(2010),
+      q(2004),
       q(0),
       ],
    q(bunun) => [
-      q(1344),
+      q(1339),
       q(0),
       ],
    q(buol) => [
-      q(1286),
+      q(1282),
       q(0),
       ],
    q(bura-pabir) => [
-      q(1563),
+      q(1558),
       q(0),
       ],
    q(burak) => [
-      q(1612),
+      q(1606),
       q(0),
       ],
    q(buraka) => [
-      q(1262),
+      q(1258),
       q(0),
       ],
    q(burarra) => [
-      q(1538),
+      q(1533),
       q(0),
       ],
    q(burate) => [
-      q(1482),
+      q(1477),
       q(0),
       ],
    q(burduna) => [
-      q(1584),
+      q(1579),
       q(0),
       ],
    q(bure) => [
-      q(1528),
+      q(1523),
       q(0),
       ],
    q(buriat) => [
@@ -28820,11 +28766,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(burji) => [
-      q(1241),
+      q(1237),
       q(0),
       ],
    q(burmbar) => [
-      q(7059),
+      q(7046),
       q(0),
       ],
    q(burmese) => [
@@ -28832,191 +28778,187 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(burmeso) => [
-      q(1639),
+      q(1632),
       q(0),
       ],
    q(buru (indonesia)) => [
-      q(4302),
+      q(4291),
       q(0),
       ],
    q(buru (nigeria)) => [
-      q(1423),
+      q(1418),
       q(0),
       ],
    q(burui) => [
-      q(1449),
+      q(1444),
       q(0),
       ],
    q(burumakok) => [
-      q(0707),
+      q(0705),
       q(0),
       ],
    q(burun) => [
-      q(1100),
+      q(1096),
       q(0),
       ],
    q(burunge) => [
-      q(1110),
+      q(1106),
       q(0),
       ],
    q(burushaski) => [
-      q(1460),
+      q(1455),
       q(0),
       ],
    q(burusu) => [
-      q(1418),
+      q(1413),
       q(0),
       ],
    q(buruwai) => [
-      q(0895),
+      q(0893),
       q(0),
       ],
    q(busa) => [
-      q(1416),
+      q(1411),
       q(0),
       ],
    q(busam) => [
-      q(1589),
+      q(1584),
       q(0),
       ],
    q(busami) => [
-      q(1462),
+      q(1457),
       q(0),
       ],
    q(busang kayan) => [
-      q(1145),
+      q(1141),
       q(0),
       ],
    q(bushi) => [
-      q(1500),
+      q(1495),
       q(0),
       ],
    q(bushoong) => [
-      q(1503),
+      q(1498),
       q(0),
       ],
    q(businenge tongo) => [
-      q(2071),
+      q(2065),
       q(1),
       ],
    q(buso) => [
-      q(1464),
+      q(1459),
       q(0),
       ],
    q(busoa) => [
-      q(1511),
+      q(1506),
       q(0),
       ],
    q(bussa) => [
-      q(2135),
+      q(2129),
       q(0),
       ],
    q(busuu) => [
-      q(1252),
+      q(1248),
       q(0),
       ],
    q(butbut kalinga) => [
-      q(3752),
+      q(3742),
       q(0),
       ],
    q(butmas-tur) => [
-      q(1348),
+      q(1343),
       q(0),
       ],
    q(butuanon) => [
-      q(1495),
+      q(1490),
       q(0),
       ],
    q(buwal) => [
-      q(1205),
+      q(1201),
       q(0),
       ],
    q(buxinhua) => [
-      q(1173),
+      q(1169),
       q(1),
       ],
-   q(buya) => [
-      q(1617),
-      q(0),
-      ],
    q(buyu) => [
-      q(1603),
+      q(1597),
       q(0),
       ],
    q(buyuan jinuo) => [
-      q(3114),
+      q(3106),
       q(0),
       ],
    q(bwa) => [
-      q(1567),
+      q(1562),
       q(0),
       ],
    q(bwaidoka) => [
-      q(1549),
+      q(1544),
       q(0),
       ],
    q(bwanabwana) => [
-      q(6751),
+      q(6738),
       q(0),
       ],
    q(bwatoo) => [
-      q(1546),
+      q(1541),
       q(0),
       ],
    q(bwe karen) => [
-      q(1550),
+      q(1545),
       q(0),
       ],
    q(bwela) => [
-      q(1557),
+      q(1552),
       q(0),
       ],
    q(bwile) => [
-      q(1548),
+      q(1543),
       q(0),
       ],
    q(bwisi) => [
-      q(1570),
+      q(1565),
       q(0),
       ],
    q(byangsi) => [
-      q(1122),
+      q(1118),
       q(0),
       ],
    q(byep) => [
-      q(4362),
+      q(4351),
       q(0),
       ],
    q(c'lela) => [
-      q(2144),
+      q(2138),
       q(0),
       ],
    q(caac) => [
-      q(4556),
+      q(4545),
       q(0),
       ],
    q(cabecar) => [
-      q(1756),
+      q(1750),
       q(0),
       ],
    q(cabiyari) => [
-      q(1666),
+      q(1659),
       q(0),
       ],
    q(cacaloxtepec mixtec) => [
-      q(4326),
+      q(4315),
       q(0),
       ],
    q(cacaopera) => [
-      q(1696),
+      q(1690),
       q(0),
       ],
    q(cacgia roglai) => [
-      q(5849),
+      q(5837),
       q(0),
       ],
    q(cacua) => [
-      q(1682),
+      q(1676),
       q(0),
       ],
    q(caddo) => [
@@ -29028,211 +28970,215 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cafundo creole) => [
-      q(1687),
+      q(1681),
       q(0),
       ],
    q(cagua) => [
-      q(1671),
+      q(1664),
       q(0),
       ],
    q(cahuarano) => [
-      q(1651),
+      q(1644),
       q(0),
       ],
    q(cahuilla) => [
-      q(1729),
+      q(1723),
+      q(0),
+      ],
+   q(cahungwarya) => [
+      q(4734),
       q(0),
       ],
    q(cajamarca quechua) => [
-      q(5712),
+      q(5700),
       q(0),
       ],
    q(cajatambo north lima quechua) => [
-      q(5717),
+      q(5705),
       q(0),
       ],
    q(cajonos zapotec) => [
-      q(7823),
+      q(7806),
       q(0),
       ],
    q(cajun french) => [
-      q(2377),
+      q(2370),
       q(0),
       ],
    q(caka) => [
-      q(1771),
+      q(1765),
       q(0),
       ],
    q(cakchiquel) => [
-      q(1653),
+      q(1646),
       q(1),
       ],
    q(cakchiquel-quiche mixed language) => [
-      q(1773),
+      q(1767),
       q(0),
       ],
    q(cakfem-mushere) => [
-      q(1772),
+      q(1766),
       q(0),
       ],
    q(calamian tagbanwa) => [
-      q(6400),
+      q(6389),
       q(0),
       ],
    q(calderon highland quichua) => [
-      q(5693),
+      q(5681),
       q(0),
       ],
    q(callawalla) => [
-      q(1662),
+      q(1655),
       q(0),
       ],
    q(calo) => [
-      q(5831),
+      q(5819),
       q(0),
       ],
    q(caluyanun) => [
-      q(1786),
+      q(1780),
       q(0),
       ],
    q(cameroon mambila) => [
-      q(4183),
+      q(4172),
       q(0),
       ],
    q(cameroon pidgin) => [
-      q(7123),
+      q(7110),
       q(0),
       ],
    q(camling) => [
-      q(5748),
+      q(5736),
       q(0),
       ],
    q(campalagian) => [
-      q(1793),
+      q(1787),
       q(0),
       ],
    q(campidanese sardinian) => [
-      q(6231),
+      q(6219),
       q(0),
       ],
    q(camsa) => [
-      q(3197),
+      q(3189),
       q(0),
       ],
    q(camtho) => [
-      q(1799),
+      q(1793),
       q(0),
       ],
    q(camunic) => [
-      q(7321),
+      q(7308),
       q(0),
       ],
    q(canar highland quichua) => [
-      q(5740),
+      q(5728),
       q(0),
       ],
    q(candoshi-shapra) => [
-      q(1681),
+      q(1675),
       q(0),
       ],
    q(canela) => [
-      q(5757),
+      q(5745),
       q(0),
       ],
    q(canichana) => [
-      q(1665),
+      q(1658),
       q(0),
       ],
    q(cantonese) => [
-      q(7781),
+      q(7764),
       q(1),
       ],
    q(cao lan) => [
-      q(4380),
+      q(4369),
       q(0),
       ],
    q(cao miao) => [
-      q(1831),
+      q(1825),
       q(0),
       ],
    q(capanahua) => [
-      q(3187),
+      q(3180),
       q(0),
       ],
    q(capiznon) => [
-      q(1843),
+      q(1837),
       q(0),
       ],
    q(cappadocian greek) => [
-      q(1839),
+      q(1833),
       q(0),
       ],
    q(caquinte) => [
-      q(1829),
+      q(1823),
       q(0),
       ],
    q(car nicobarese) => [
-      q(1659),
+      q(1652),
       q(0),
       ],
    q(cara) => [
-      q(1717),
+      q(1711),
       q(0),
       ],
    q(carabayo) => [
-      q(1684),
+      q(1678),
       q(0),
       ],
    q(caramanta) => [
-      q(1853),
+      q(1847),
       q(0),
       ],
    q(carapana) => [
-      q(1667),
+      q(1660),
       q(0),
       ],
    q(carian) => [
-      q(7329),
+      q(7316),
       q(0),
       ],
    q(caribbean hindustani) => [
-      q(2816),
+      q(2808),
       q(0),
       ],
    q(caribbean javanese) => [
-      q(3172),
+      q(3165),
       q(0),
       ],
    q(carijona) => [
-      q(1668),
+      q(1661),
       q(0),
       ],
    q(carolina algonquian) => [
-      q(1863),
+      q(1857),
       q(0),
       ],
    q(carolinian) => [
-      q(1654),
+      q(1647),
       q(0),
       ],
    q(carpathian romani) => [
-      q(5818),
+      q(5806),
       q(0),
       ],
    q(carrier) => [
-      q(1868),
+      q(1862),
       q(0),
       ],
    q(cashibo-cacataibo) => [
-      q(1678),
+      q(1672),
       q(0),
       ],
    q(cashinahua) => [
-      q(1679),
+      q(1673),
       q(0),
       ],
    q(casiguran dumagat agta) => [
-      q(2011),
+      q(2005),
       q(0),
       ],
    q(castilian) => [
@@ -29240,7 +29186,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(casuarina coast asmat) => [
-      q(0889),
+      q(0887),
       q(0),
       ],
    q(catalan) => [
@@ -29248,15 +29194,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(catalan sign language) => [
-      q(1872),
+      q(1866),
       q(0),
       ],
    q(catawba) => [
-      q(1724),
+      q(1718),
       q(0),
       ],
    q(cauca) => [
-      q(1685),
+      q(1679),
       q(0),
       ],
    q(caucasian languages) => [
@@ -29264,23 +29210,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cavinena) => [
-      q(1661),
+      q(1654),
       q(0),
       ],
    q(cayubaba) => [
-      q(1936),
+      q(1930),
       q(0),
       ],
    q(cayuga) => [
-      q(1664),
+      q(1657),
       q(0),
       ],
    q(cayuse) => [
-      q(7334),
+      q(7321),
       q(0),
       ],
    q(cebaara senoufo) => [
-      q(5978),
+      q(5967),
       q(0),
       ],
    q(cebuano) => [
@@ -29288,7 +29234,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(celtiberian) => [
-      q(7322),
+      q(7309),
       q(0),
       ],
    q(celtic languages) => [
@@ -29296,11 +29242,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cemuhi) => [
-      q(1655),
+      q(1648),
       q(0),
       ],
    q(cen) => [
-      q(1714),
+      q(1708),
       q(0),
       ],
    q(central american indian languages) => [
@@ -29308,67 +29254,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(central asmat) => [
-      q(1809),
+      q(1803),
       q(0),
       ],
    q(central atlas tamazight) => [
-      q(6859),
+      q(6847),
       q(0),
       ],
    q(central awyu) => [
-      q(0983),
+      q(0979),
       q(0),
       ],
    q(central aymara) => [
-      q(1009),
+      q(1005),
       q(0),
       ],
    q(central bai) => [
-      q(1067),
+      q(1063),
       q(0),
       ],
    q(central berawan) => [
-      q(7844),
+      q(7827),
       q(0),
       ],
    q(central bikol) => [
-      q(1078),
+      q(1074),
       q(0),
       ],
    q(central bontok) => [
-      q(3830),
+      q(3820),
       q(0),
       ],
    q(central cagayan agta) => [
-      q(0672),
+      q(0670),
       q(0),
       ],
    q(central dusun) => [
-      q(2169),
+      q(2163),
       q(0),
       ],
    q(central grebo) => [
-      q(2634),
+      q(2627),
       q(0),
       ],
    q(central hongshuihe zhuang) => [
-      q(7849),
+      q(7832),
       q(0),
       ],
    q(central huasteca nahuatl) => [
-      q(4780),
+      q(4768),
       q(0),
       ],
    q(central huishui hmong) => [
-      q(2787),
+      q(2779),
       q(0),
       ],
    q(central huishui miao) => [
-      q(2787),
+      q(2779),
       q(1),
       ],
    q(central kanuri) => [
-      q(3488),
+      q(3481),
       q(0),
       ],
    q(central khmer) => [
@@ -29376,19 +29322,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(central kurdish) => [
-      q(1760),
+      q(1754),
       q(0),
       ],
    q(central lalo) => [
-      q(7806),
+      q(7789),
       q(1),
       ],
    q(central maewo) => [
-      q(4647),
+      q(4635),
       q(0),
       ],
    q(central malay) => [
-      q(5623),
+      q(5611),
       q(0),
       ],
    q(central malayo-polynesian languages) => [
@@ -29396,79 +29342,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(central masela) => [
-      q(4683),
+      q(4671),
       q(0),
       ],
    q(central mashan hmong) => [
-      q(2797),
+      q(2789),
       q(0),
       ],
    q(central mashan miao) => [
-      q(2797),
+      q(2789),
       q(1),
       ],
    q(central mazahua) => [
-      q(4137),
+      q(4126),
       q(0),
       ],
    q(central melanau) => [
-      q(4222),
+      q(4211),
       q(0),
       ],
    q(central mnong) => [
-      q(1796),
+      q(1790),
       q(0),
       ],
    q(central nahuatl) => [
-      q(4882),
+      q(4870),
       q(0),
       ],
    q(central nicobarese) => [
-      q(4774),
+      q(4762),
       q(0),
       ],
    q(central ojibwa) => [
-      q(5229),
+      q(5218),
       q(0),
       ],
    q(central okinawan) => [
-      q(5895),
+      q(5884),
       q(0),
       ],
    q(central palawano) => [
-      q(5498),
+      q(5487),
       q(0),
       ],
    q(central pame) => [
-      q(5387),
+      q(5375),
       q(0),
       ],
    q(central pashto) => [
-      q(5635),
+      q(5623),
       q(0),
       ],
    q(central pomo) => [
-      q(5574),
+      q(5562),
       q(0),
       ],
    q(central puebla nahuatl) => [
-      q(4793),
+      q(4781),
       q(0),
       ],
    q(central sama) => [
-      q(6134),
+      q(6122),
       q(0),
       ],
    q(central siberian yupik) => [
-      q(2306),
+      q(2299),
       q(0),
       ],
    q(central sierra miwok) => [
-      q(1882),
+      q(1876),
       q(0),
       ],
    q(central subanen) => [
-      q(6347),
+      q(6335),
       q(0),
       ],
    q(central sudanic languages) => [
@@ -29476,51 +29422,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(central tagbanwa) => [
-      q(6500),
+      q(6489),
       q(0),
       ],
    q(central tarahumara) => [
-      q(6382),
+      q(6371),
       q(0),
       ],
    q(central tunebo) => [
-      q(6777),
+      q(6764),
       q(0),
       ],
    q(central yupik) => [
-      q(2307),
+      q(2300),
       q(0),
       ],
    q(central-eastern niger fulfulde) => [
-      q(2396),
+      q(2389),
       q(0),
       ],
    q(centuum) => [
-      q(1715),
+      q(1709),
       q(0),
       ],
    q(cerma) => [
-      q(1790),
+      q(1784),
+      q(0),
+      ],
+   q(chabu) => [
+      q(5906),
       q(0),
       ],
    q(chachapoyas quechua) => [
-      q(5698),
+      q(5686),
       q(0),
       ],
    q(chachi) => [
-      q(1672),
+      q(1665),
       q(0),
       ],
    q(chacobo) => [
-      q(1657),
+      q(1650),
       q(0),
       ],
    q(chadian arabic) => [
-      q(6039),
+      q(6027),
       q(0),
       ],
    q(chadian sign language) => [
-      q(1708),
+      q(1702),
       q(0),
       ],
    q(chadic languages) => [
@@ -29528,7 +29478,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chadong) => [
-      q(1709),
+      q(1703),
       q(0),
       ],
    q(chagatai) => [
@@ -29536,51 +29486,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chaima) => [
-      q(1747),
+      q(1741),
       q(0),
       ],
    q(chak) => [
-      q(1761),
+      q(1755),
       q(0),
       ],
    q(chakali) => [
-      q(1779),
+      q(1773),
       q(0),
       ],
    q(chakma) => [
-      q(1695),
+      q(1689),
       q(0),
       ],
    q(chala) => [
-      q(1782),
+      q(1776),
       q(0),
       ],
    q(chaldean neo-aramaic) => [
-      q(1776),
+      q(1770),
       q(0),
       ],
    q(chalikha) => [
-      q(6490),
+      q(6479),
       q(0),
       ],
    q(chamacoco) => [
-      q(1712),
+      q(1706),
       q(0),
       ],
    q(chamalal) => [
-      q(1751),
+      q(1745),
       q(0),
       ],
    q(chamari) => [
-      q(1700),
+      q(1694),
       q(0),
       ],
    q(chambeali) => [
-      q(1701),
+      q(1695),
       q(0),
       ],
    q(chambri) => [
-      q(1656),
+      q(1649),
       q(0),
       ],
    q(chamic languages) => [
@@ -29588,7 +29538,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chamicuro) => [
-      q(1686),
+      q(1680),
       q(0),
       ],
    q(chamorro) => [
@@ -29596,55 +29546,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chane) => [
-      q(1652),
+      q(1645),
       q(0),
       ],
    q(chang naga) => [
-      q(4753),
+      q(4741),
       q(0),
       ],
    q(changriwa) => [
-      q(1720),
+      q(1714),
       q(0),
       ],
    q(changthang) => [
-      q(1800),
+      q(1794),
       q(0),
       ],
    q(chantyal) => [
-      q(1733),
+      q(1727),
       q(0),
       ],
    q(chara) => [
-      q(1849),
+      q(1843),
       q(0),
       ],
    q(chaudangsi) => [
-      q(1705),
+      q(1699),
       q(0),
       ],
    q(chaura) => [
-      q(1866),
+      q(1860),
       q(0),
       ],
    q(chavacano) => [
-      q(1674),
+      q(1667),
       q(0),
       ],
    q(chayahuita) => [
-      q(1680),
+      q(1674),
       q(0),
       ],
    q(chayuco mixtec) => [
-      q(4315),
+      q(4304),
       q(0),
       ],
    q(chazumba mixtec) => [
-      q(7521),
+      q(7507),
       q(0),
       ],
    q(che) => [
-      q(5879),
+      q(5868),
       q(0),
       ],
    q(chechen) => [
@@ -29652,39 +29602,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cheke holo) => [
-      q(4528),
+      q(4517),
       q(0),
       ],
    q(chemakum) => [
-      q(7324),
+      q(7311),
       q(0),
       ],
    q(chenapian) => [
-      q(1754),
+      q(1748),
       q(0),
       ],
    q(chenchu) => [
-      q(1698),
+      q(1692),
       q(0),
       ],
    q(chenoua) => [
-      q(1811),
+      q(1805),
       q(0),
       ],
    q(chepang) => [
-      q(1704),
+      q(1698),
       q(0),
       ],
    q(chepya) => [
-      q(7628),
+      q(7614),
       q(0),
       ],
    q(cheq wong) => [
-      q(1933),
+      q(1927),
       q(1),
       ],
    q(cherepon) => [
-      q(1841),
+      q(1835),
       q(0),
       ],
    q(cherokee) => [
@@ -29692,11 +29642,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chesu) => [
-      q(7625),
+      q(7611),
       q(0),
       ],
    q(chetco) => [
-      q(1894),
+      q(1888),
       q(0),
       ],
    q(chewa) => [
@@ -29704,7 +29654,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(chewong) => [
-      q(1933),
+      q(1927),
       q(0),
       ],
    q(cheyenne) => [
@@ -29712,23 +29662,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chhattisgarhi) => [
-      q(2810),
+      q(2802),
       q(0),
       ],
    q(chhintange) => [
-      q(1901),
+      q(1895),
       q(0),
       ],
    q(chhulung) => [
-      q(1921),
+      q(1915),
       q(0),
       ],
    q(chiangmai sign language) => [
-      q(1873),
+      q(1867),
       q(0),
       ],
    q(chiapanec) => [
-      q(1744),
+      q(1738),
       q(0),
       ],
    q(chibcha) => [
@@ -29740,7 +29690,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chicahuaxtla triqui) => [
-      q(6716),
+      q(6704),
       q(0),
       ],
    q(chichewa) => [
@@ -29748,95 +29698,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chichicapan zapotec) => [
-      q(7950),
+      q(7933),
       q(0),
       ],
    q(chichimeca-jonaz) => [
-      q(5422),
+      q(5410),
       q(0),
       ],
    q(chichonyi-chidzihana-chikauma) => [
-      q(1821),
+      q(1815),
       q(1),
       ],
    q(chickasaw) => [
-      q(1737),
+      q(1731),
       q(0),
       ],
    q(chicomuceltec) => [
-      q(1815),
+      q(1809),
       q(0),
       ],
    q(chidigo) => [
-      q(2045),
+      q(2039),
       q(1),
       ],
    q(chiduruma) => [
-      q(2180),
+      q(2174),
       q(1),
       ],
    q(chiga) => [
-      q(1722),
+      q(1716),
       q(0),
       ],
    q(chigmecatitlan mixtec) => [
-      q(4316),
+      q(4305),
       q(0),
       ],
    q(chilcotin) => [
-      q(1775),
+      q(1769),
       q(0),
       ],
    q(chilean quechua) => [
-      q(1848),
+      q(1842),
       q(0),
       ],
    q(chilean sign language) => [
-      q(1876),
+      q(1870),
       q(0),
       ],
    q(chilisso) => [
-      q(1778),
+      q(1772),
       q(0),
       ],
    q(chiltepec chinantec) => [
-      q(1871),
+      q(1865),
       q(0),
       ],
    q(chimakum) => [
-      q(7324),
+      q(7311),
       q(1),
       ],
    q(chimalapa zoque) => [
-      q(7923),
+      q(7906),
       q(0),
       ],
    q(chimariko) => [
-      q(1738),
+      q(1732),
       q(0),
       ],
    q(chimborazo highland quichua) => [
-      q(5695),
+      q(5683),
       q(0),
       ],
    q(chimila) => [
-      q(1670),
+      q(1663),
       q(0),
       ],
    q(china buriat) => [
-      q(1590),
+      q(1585),
       q(0),
       ],
    q(chinali) => [
-      q(1740),
+      q(1734),
       q(0),
       ],
    q(chinbon chin) => [
-      q(1801),
+      q(1795),
       q(0),
       ],
    q(chincha quechua) => [
-      q(5733),
+      q(5721),
       q(0),
       ],
    q(chinese) => [
@@ -29848,19 +29798,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chinese pidgin english) => [
-      q(1840),
+      q(1834),
       q(0),
       ],
    q(chinese sign language) => [
-      q(1881),
+      q(1875),
       q(0),
       ],
    q(chini) => [
-      q(0645),
+      q(0643),
       q(1),
       ],
    q(chinook) => [
-      q(1727),
+      q(1721),
       q(0),
       ],
    q(chinook jargon) => [
@@ -29868,7 +29818,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chipaya) => [
-      q(1658),
+      q(1651),
       q(0),
       ],
    q(chipewyan) => [
@@ -29876,59 +29826,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chipiajes) => [
-      q(1669),
+      q(1662),
       q(0),
       ],
    q(chippewa) => [
-      q(1746),
+      q(1740),
       q(0),
       ],
    q(chiquian ancash quechua) => [
-      q(5732),
+      q(5720),
       q(0),
       ],
    q(chiquihuitlan mazatec) => [
-      q(4131),
+      q(4120),
       q(0),
       ],
    q(chiquitano) => [
-      q(1663),
+      q(1656),
       q(0),
       ],
    q(chiripa) => [
-      q(4874),
+      q(4862),
       q(0),
       ],
    q(chiru) => [
-      q(1699),
+      q(1693),
       q(0),
       ],
    q(chitimacha) => [
-      q(1900),
+      q(1894),
       q(0),
       ],
    q(chitkuli kinnauri) => [
-      q(1741),
+      q(1735),
       q(0),
       ],
    q(chittagonian) => [
-      q(1897),
+      q(1891),
       q(0),
       ],
    q(chitwania tharu) => [
-      q(6509),
+      q(6498),
       q(0),
       ],
    q(choapan zapotec) => [
-      q(7931),
+      q(7914),
       q(0),
       ],
    q(chocangacakha) => [
-      q(1723),
+      q(1717),
       q(0),
       ],
    q(chochotec) => [
-      q(1835),
+      q(1829),
       q(0),
       ],
    q(choctaw) => [
@@ -29936,59 +29886,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chodri) => [
-      q(1702),
+      q(1696),
       q(0),
       ],
    q(chokri naga) => [
-      q(5066),
+      q(5054),
       q(0),
       ],
    q(chokwe) => [
-      q(1752),
+      q(1746),
       q(0),
       ],
    q(chol) => [
-      q(1906),
+      q(1900),
       q(0),
       ],
    q(cholon) => [
-      q(1731),
+      q(1725),
       q(0),
       ],
    q(chong) => [
-      q(1820),
+      q(1814),
       q(0),
       ],
    q(choni) => [
-      q(1697),
+      q(1691),
       q(0),
       ],
    q(chonyi-dzihana-kauma) => [
-      q(1821),
+      q(1815),
       q(0),
       ],
    q(chopi) => [
-      q(1688),
+      q(1682),
       q(0),
       ],
    q(chorasmian) => [
-      q(7328),
+      q(7315),
       q(0),
       ],
    q(chorti) => [
-      q(1645),
+      q(1638),
       q(0),
       ],
    q(chothe naga) => [
-      q(4791),
+      q(4779),
       q(0),
       ],
    q(chrau) => [
-      q(1867),
+      q(1861),
       q(0),
       ],
    q(chru) => [
-      q(1749),
+      q(1743),
       q(0),
       ],
    q(chuang) => [
@@ -29996,43 +29946,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(chuanqiandian cluster miao) => [
-      q(1847),
+      q(1841),
       q(0),
       ],
    q(chuave) => [
-      q(1758),
+      q(1752),
       q(0),
       ],
    q(chug) => [
-      q(1927),
+      q(1921),
       q(0),
       ],
    q(chuj) => [
-      q(1647),
+      q(1640),
       q(0),
       ],
    q(chuka) => [
-      q(1912),
+      q(1906),
       q(0),
       ],
    q(chukot) => [
-      q(1768),
+      q(1762),
       q(0),
       ],
    q(chukwa) => [
-      q(1925),
+      q(1919),
       q(0),
       ],
    q(chulym) => [
-      q(1787),
+      q(1781),
       q(0),
       ],
    q(chumburung) => [
-      q(4792),
+      q(4780),
       q(0),
       ],
    q(churahi) => [
-      q(1703),
+      q(1697),
       q(0),
       ],
    q(church slavic) => [
@@ -30044,7 +29994,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(chut) => [
-      q(5938),
+      q(5927),
       q(0),
       ],
    q(chuukese) => [
@@ -30052,7 +30002,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chuvantsy) => [
-      q(7332),
+      q(7319),
       q(0),
       ],
    q(chuvash) => [
@@ -30060,75 +30010,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chuwabu) => [
-      q(1732),
+      q(1726),
       q(0),
       ],
    q(ci gbe) => [
-      q(1736),
+      q(1730),
       q(0),
       ],
    q(cia-cia) => [
-      q(1735),
+      q(1729),
       q(0),
       ],
    q(cibak) => [
-      q(1762),
+      q(1756),
       q(0),
       ],
    q(cicipu) => [
-      q(0971),
+      q(0967),
       q(0),
       ],
    q(cimbrian) => [
-      q(1742),
+      q(1736),
       q(0),
       ],
    q(cinda-regi-tiyal) => [
-      q(1707),
+      q(1701),
       q(0),
       ],
    q(cineni) => [
-      q(1739),
+      q(1733),
       q(0),
       ],
    q(cinta larga) => [
-      q(1743),
+      q(1737),
       q(0),
       ],
    q(cisalpine gaulish) => [
-      q(7323),
+      q(7310),
       q(0),
       ],
    q(cishingini) => [
-      q(0893),
+      q(0891),
       q(0),
       ],
    q(citak) => [
-      q(6837),
+      q(6825),
       q(0),
       ],
    q(ciwogai) => [
-      q(6488),
+      q(6477),
       q(0),
       ],
    q(clallam) => [
-      q(1783),
+      q(1777),
       q(0),
       ],
    q(classical armenian) => [
-      q(7325),
+      q(7312),
       q(0),
       ],
    q(classical mandaic) => [
-      q(4704),
+      q(4692),
       q(0),
       ],
    q(classical mongolian) => [
-      q(1791),
+      q(1785),
       q(0),
       ],
    q(classical nahuatl) => [
-      q(4781),
+      q(4769),
       q(0),
       ],
    q(classical nepal bhasa) => [
@@ -30140,7 +30090,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(classical quechua) => [
-      q(5727),
+      q(5715),
       q(0),
       ],
    q(classical syriac) => [
@@ -30148,119 +30098,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(classical tibetan) => [
-      q(7330),
+      q(7317),
       q(0),
       ],
    q(coahuilteco) => [
-      q(7333),
+      q(7320),
       q(0),
       ],
    q(coast miwok) => [
-      q(1878),
+      q(1872),
       q(0),
       ],
    q(coastal kadazan) => [
-      q(3785),
+      q(3775),
       q(0),
       ],
    q(coastal konjo) => [
-      q(3387),
+      q(3379),
       q(0),
       ],
    q(coatecas altas zapotec) => [
-      q(7848),
+      q(7831),
       q(0),
       ],
    q(coatepec nahuatl) => [
-      q(4750),
+      q(4738),
       q(0),
       ],
    q(coatlan mixe) => [
-      q(4177),
+      q(4166),
       q(0),
       ],
    q(coatlan zapotec) => [
-      q(7947),
+      q(7930),
       q(0),
       ],
    q(coatzospan mixtec) => [
-      q(4330),
+      q(4319),
       q(0),
       ],
    q(cocama-cocamilla) => [
-      q(1817),
+      q(1811),
       q(0),
       ],
    q(cochimi) => [
-      q(1822),
+      q(1816),
       q(0),
       ],
    q(cocopa) => [
-      q(1816),
+      q(1810),
       q(0),
       ],
    q(cocos islands malay) => [
-      q(1814),
+      q(1808),
       q(0),
       ],
    q(coeur d'alene) => [
-      q(1852),
+      q(1846),
       q(0),
       ],
    q(cofan) => [
-      q(1826),
+      q(1820),
       q(0),
       ],
    q(cogui) => [
-      q(3516),
+      q(3509),
       q(0),
       ],
    q(col) => [
-      q(3938),
+      q(3927),
       q(0),
       ],
    q(colombian sign language) => [
-      q(1883),
+      q(1877),
       q(0),
       ],
    q(colonia tovar german) => [
-      q(2457),
+      q(2450),
       q(0),
       ],
    q(colorado) => [
-      q(1819),
+      q(1813),
       q(0),
       ],
    q(columbia-wenatchi) => [
-      q(1824),
+      q(1818),
       q(0),
       ],
    q(comaltepec chinantec) => [
-      q(1694),
+      q(1688),
       q(0),
       ],
    q(comanche) => [
-      q(1825),
+      q(1819),
       q(0),
       ],
    q(comecrudo) => [
-      q(7326),
+      q(7313),
       q(0),
       ],
    q(como karim) => [
-      q(1718),
+      q(1712),
       q(0),
       ],
    q(comox) => [
-      q(1827),
+      q(1821),
       q(0),
       ],
    q(con) => [
-      q(1808),
+      q(1802),
       q(0),
       ],
    q(congo swahili) => [
-      q(6312),
+      q(6300),
       q(0),
       ],
    q(cook islands maori) => [
@@ -30268,19 +30218,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(coong) => [
-      q(1802),
+      q(1796),
       q(0),
       ],
    q(coos) => [
-      q(1892),
+      q(1886),
       q(0),
       ],
    q(copainala zoque) => [
-      q(7922),
+      q(7905),
       q(0),
       ],
    q(copala triqui) => [
-      q(6701),
+      q(6689),
       q(0),
       ],
    q(coptic) => [
@@ -30288,11 +30238,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(coquille) => [
-      q(1828),
+      q(1822),
       q(0),
       ],
    q(cori) => [
-      q(1869),
+      q(1863),
       q(0),
       ],
    q(cornish) => [
@@ -30300,7 +30250,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(corongo ancash quechua) => [
-      q(5726),
+      q(5714),
       q(0),
       ],
    q(corsican) => [
@@ -30308,35 +30258,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(costa rican sign language) => [
-      q(1886),
+      q(1880),
       q(0),
       ],
    q(cotabato manobo) => [
-      q(4565),
+      q(4554),
       q(0),
       ],
    q(cotoname) => [
-      q(7327),
+      q(7314),
       q(0),
       ],
    q(cowlitz) => [
-      q(1832),
+      q(1826),
       q(0),
       ],
    q(coxima) => [
-      q(3528),
+      q(3520),
       q(0),
       ],
    q(coyaima) => [
-      q(1834),
+      q(1828),
       q(0),
       ],
    q(coyotepec popoloca) => [
-      q(5378),
+      q(5366),
       q(0),
       ],
    q(coyutla totonac) => [
-      q(6647),
+      q(6635),
       q(0),
       ],
    q(cree) => [
@@ -30388,7 +30338,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(croatia sign language) => [
-      q(1885),
+      q(1879),
       q(0),
       ],
    q(croatian) => [
@@ -30396,75 +30346,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cross river mbembe) => [
-      q(4248),
+      q(4237),
       q(0),
       ],
    q(crow) => [
-      q(1861),
+      q(1855),
       q(0),
       ],
    q(cruzeno) => [
-      q(1870),
+      q(1864),
       q(0),
       ],
    q(cua) => [
-      q(1908),
+      q(1902),
       q(0),
       ],
+   q(cuba) => [
+      q(1671),
+      q(1),
+      ],
    q(cuba sign language) => [
-      q(1875),
+      q(1869),
       q(0),
       ],
    q(cubeo) => [
-      q(1909),
+      q(1903),
       q(0),
       ],
    q(cuiba) => [
-      q(1913),
+      q(1907),
       q(0),
       ],
    q(culina) => [
-      q(1916),
+      q(1910),
       q(0),
       ],
    q(cumanagoto) => [
-      q(1918),
+      q(1912),
       q(0),
       ],
    q(cumbric) => [
-      q(7320),
+      q(7307),
       q(0),
       ],
    q(cumeral) => [
-      q(1917),
+      q(1911),
       q(0),
       ],
    q(cun) => [
-      q(1920),
+      q(1914),
       q(0),
       ],
    q(cuneiform luwian) => [
-      q(7417),
+      q(7404),
       q(0),
       ],
    q(cung) => [
-      q(1911),
+      q(1905),
       q(0),
       ],
    q(cupeno) => [
-      q(1919),
+      q(1913),
       q(0),
       ],
    q(curonian) => [
-      q(7331),
+      q(7318),
       q(0),
       ],
    q(curripaco) => [
-      q(3533),
+      q(3525),
       q(0),
       ],
    q(cusco quechua) => [
-      q(5710),
+      q(5698),
       q(0),
       ],
    q(cushitic languages) => [
@@ -30472,27 +30426,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cutchi-swahili) => [
-      q(1692),
+      q(1686),
       q(0),
       ],
    q(cuvok) => [
-      q(1924),
+      q(1918),
       q(0),
       ],
    q(cuyamecalco mixtec) => [
-      q(7538),
+      q(7524),
       q(0),
       ],
    q(cuyonon) => [
-      q(1937),
+      q(1931),
       q(0),
       ],
    q(cwi bwamu) => [
-      q(1569),
+      q(1564),
       q(0),
       ],
    q(cypriot arabic) => [
-      q(0603),
+      q(0602),
       q(0),
       ],
    q(czech) => [
@@ -30500,111 +30454,111 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(czech sign language) => [
-      q(1874),
+      q(1868),
       q(0),
       ],
    q(da'a kaili) => [
-      q(3782),
+      q(3772),
       q(0),
       ],
    q(da-hua miao) => [
-      q(2788),
+      q(2780),
       q(2),
       ],
    q(daai chin) => [
-      q(1953),
+      q(1947),
       q(0),
       ],
    q(daakaka) => [
-      q(1379),
+      q(1374),
       q(0),
       ],
    q(daantanai') => [
-      q(4014),
+      q(4003),
       q(0),
       ],
    q(daasanach) => [
-      q(2155),
+      q(2149),
       q(0),
       ],
    q(daba) => [
-      q(1974),
+      q(1968),
       q(0),
       ],
    q(dabarre) => [
-      q(1975),
+      q(1969),
       q(0),
       ],
    q(dabe) => [
-      q(1964),
+      q(1958),
       q(0),
       ],
    q(dacian) => [
-      q(7336),
+      q(7323),
       q(0),
       ],
    q(dadi dadi) => [
-      q(1983),
+      q(1977),
       q(0),
       ],
    q(dadibi) => [
-      q(4483),
+      q(4472),
       q(0),
       ],
    q(dadiya) => [
-      q(1963),
+      q(1957),
       q(0),
       ],
    q(daga) => [
-      q(2026),
+      q(2020),
       q(0),
       ],
    q(dagaari dioula) => [
-      q(2012),
+      q(2006),
       q(0),
       ],
    q(dagba) => [
-      q(2017),
+      q(2011),
       q(0),
       ],
    q(dagbani) => [
-      q(1947),
+      q(1941),
       q(0),
       ],
    q(dagik) => [
-      q(1994),
+      q(1988),
       q(0),
       ],
    q(dagoman) => [
-      q(2019),
+      q(2013),
       q(0),
       ],
    q(dahalik) => [
-      q(2084),
+      q(2078),
       q(0),
       ],
    q(dahalo) => [
-      q(1951),
+      q(1945),
       q(0),
       ],
    q(daho-doo) => [
-      q(1955),
+      q(1949),
       q(0),
       ],
    q(dai) => [
-      q(2048),
+      q(2042),
       q(0),
       ],
    q(dai zhuang) => [
-      q(7860),
+      q(7843),
       q(0),
       ],
    q(dair) => [
-      q(2139),
+      q(2133),
       q(0),
       ],
    q(dakka) => [
-      q(2079),
+      q(2073),
       q(0),
       ],
    q(dakota) => [
@@ -30612,67 +30566,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dakpakha) => [
-      q(2078),
+      q(2072),
       q(0),
       ],
    q(dalabon) => [
-      q(4855),
+      q(4843),
       q(0),
       ],
    q(dalmatian) => [
-      q(2085),
+      q(2079),
       q(0),
       ],
    q(daloa bete) => [
-      q(1134),
+      q(1130),
       q(0),
       ],
    q(dama) => [
-      q(2095),
+      q(2089),
       q(0),
       ],
    q(damakawa) => [
-      q(1952),
+      q(1946),
       q(0),
       ],
    q(damal) => [
-      q(6887),
+      q(6875),
       q(0),
       ],
    q(dambi) => [
-      q(1944),
+      q(1938),
       q(0),
       ],
    q(dameli) => [
-      q(2094),
+      q(2088),
       q(0),
       ],
    q(dampelas) => [
-      q(2098),
+      q(2092),
       q(0),
       ],
    q(dan) => [
-      q(2109),
+      q(2103),
       q(0),
       ],
    q(danaru) => [
-      q(2112),
+      q(2106),
       q(0),
       ],
    q(danau) => [
-      q(2114),
+      q(2108),
       q(0),
       ],
    q(dandami maria) => [
-      q(1954),
+      q(1948),
       q(0),
       ],
    q(dangaleat) => [
-      q(1943),
+      q(1937),
       q(0),
       ],
    q(dangaura tharu) => [
-      q(6514),
+      q(6503),
       q(0),
       ],
    q(danish) => [
@@ -30680,43 +30634,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(danish sign language) => [
-      q(2157),
+      q(2151),
       q(0),
       ],
    q(dano) => [
-      q(0900),
+      q(0898),
       q(0),
       ],
    q(danu) => [
-      q(2115),
+      q(2109),
       q(0),
       ],
    q(dao) => [
-      q(1960),
+      q(1954),
       q(0),
       ],
    q(daonda) => [
-      q(2105),
+      q(2099),
       q(0),
       ],
    q(dar daju daju) => [
-      q(2065),
+      q(2059),
       q(0),
       ],
    q(dar fur daju) => [
-      q(1950),
+      q(1944),
       q(0),
       ],
    q(dar sila daju) => [
-      q(1956),
+      q(1950),
       q(0),
       ],
    q(darai) => [
-      q(2153),
+      q(2147),
       q(0),
       ],
    q(darang deng) => [
-      q(4304),
+      q(4293),
       q(1),
       ],
    q(dargwa) => [
@@ -30724,131 +30678,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dari) => [
-      q(5613),
+      q(5601),
       q(0),
       ],
    q(darkinyung) => [
-      q(7335),
+      q(7322),
       q(0),
       ],
    q(darlong) => [
-      q(2086),
+      q(2080),
       q(0),
       ],
    q(darmiya) => [
-      q(2141),
+      q(2135),
       q(0),
       ],
    q(daro-matu melanau) => [
-      q(2147),
+      q(2141),
       q(0),
       ],
    q(dass) => [
-      q(2132),
+      q(2126),
       q(0),
       ],
    q(datooga) => [
-      q(6417),
+      q(6406),
       q(0),
       ],
    q(daungwurrung) => [
-      q(2024),
+      q(2018),
       q(0),
       ],
    q(daur) => [
-      q(2161),
+      q(2155),
       q(0),
       ],
    q(davawenyo) => [
-      q(1958),
+      q(1952),
       q(0),
       ],
    q(daw) => [
-      q(3700),
+      q(3692),
       q(0),
       ],
    q(dawawa) => [
-      q(2202),
+      q(2196),
       q(0),
       ],
    q(dawera-daweloor) => [
-      q(1993),
+      q(1987),
       q(0),
       ],
    q(dawida) => [
-      q(1957),
+      q(1951),
       q(1),
       ],
    q(dawro) => [
-      q(2200),
+      q(2194),
       q(0),
       ],
    q(day) => [
-      q(1949),
+      q(1943),
       q(0),
       ],
    q(dayi) => [
-      q(1959),
-      q(0),
-      ],
-   q(daza) => [
-      q(2213),
+      q(1953),
       q(0),
       ],
    q(dazaga) => [
-      q(2215),
+      q(2208),
       q(0),
       ],
    q(deccan) => [
-      q(1981),
+      q(1975),
       q(0),
       ],
    q(dedua) => [
-      q(1995),
+      q(1989),
       q(0),
       ],
    q(defaka) => [
-      q(0647),
+      q(0645),
       q(0),
       ],
    q(defi gbe) => [
-      q(2432),
+      q(2425),
       q(0),
       ],
    q(deg) => [
-      q(4726),
+      q(4714),
       q(0),
       ],
    q(degaru) => [
-      q(2023),
+      q(2017),
       q(0),
       ],
    q(degema) => [
-      q(1998),
+      q(1992),
       q(0),
       ],
    q(degenan) => [
-      q(2013),
+      q(2007),
       q(0),
       ],
    q(degexit'an) => [
-      q(2978),
+      q(2970),
       q(0),
       ],
    q(dehu) => [
-      q(2037),
+      q(2031),
       q(0),
       ],
    q(dehwari) => [
-      q(1999),
+      q(1993),
       q(0),
       ],
    q(dek) => [
-      q(2001),
+      q(1995),
       q(0),
       ],
    q(dela-oenale) => [
-      q(5859),
+      q(5847),
       q(0),
       ],
    q(delaware) => [
@@ -30856,31 +30806,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(delo) => [
-      q(5108),
+      q(5096),
       q(0),
       ],
    q(dem) => [
-      q(2002),
+      q(1996),
       q(0),
       ],
    q(dema) => [
-      q(2102),
+      q(2096),
       q(0),
       ],
    q(demisa) => [
-      q(2000),
+      q(1994),
       q(0),
       ],
    q(demta) => [
-      q(2103),
+      q(2097),
       q(0),
       ],
    q(dendi (benin)) => [
-      q(1989),
+      q(1983),
       q(0),
       ],
    q(dendi (central african republic)) => [
-      q(2004),
+      q(1998),
       q(0),
       ],
    q(dene suline) => [
@@ -30888,99 +30838,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(dengese) => [
-      q(2008),
+      q(2002),
       q(0),
       ],
    q(dengka) => [
-      q(2110),
+      q(2104),
       q(0),
       ],
    q(deni) => [
-      q(2117),
+      q(2111),
       q(0),
       ],
    q(deno) => [
-      q(1962),
+      q(1956),
       q(0),
       ],
    q(denya) => [
-      q(0811),
+      q(0809),
       q(0),
       ],
    q(deori) => [
-      q(2005),
+      q(1999),
       q(0),
       ],
    q(dera (indonesia)) => [
-      q(3211),
+      q(3203),
       q(0),
       ],
    q(dera (nigeria)) => [
-      q(3486),
+      q(3479),
       q(0),
       ],
    q(desano) => [
-      q(2006),
+      q(2000),
       q(0),
       ],
    q(desiya) => [
-      q(2159),
+      q(2153),
       q(0),
       ],
    q(dewoin) => [
-      q(1996),
+      q(1990),
       q(0),
       ],
    q(dezfuli) => [
-      q(1997),
+      q(1991),
       q(0),
       ],
    q(dghwede) => [
-      q(2015),
+      q(2009),
       q(0),
       ],
    q(dhaiso) => [
-      q(2035),
+      q(2029),
       q(0),
       ],
    q(dhalandji) => [
-      q(2030),
+      q(2024),
       q(0),
       ],
    q(dhangu) => [
-      q(2028),
+      q(2022),
       q(0),
       ],
    q(dhanki) => [
-      q(2032),
+      q(2026),
       q(0),
       ],
    q(dhanwar (nepal)) => [
-      q(2038),
+      q(2032),
       q(0),
       ],
    q(dhao) => [
-      q(4841),
+      q(4829),
       q(0),
       ],
    q(dhargari) => [
-      q(2034),
+      q(2028),
       q(0),
       ],
    q(dharuk) => [
-      q(7337),
+      q(7324),
       q(0),
       ],
    q(dharumbal) => [
-      q(7358),
+      q(7345),
       q(0),
       ],
    q(dhatki) => [
-      q(4360),
+      q(4349),
       q(0),
       ],
    q(dhimal) => [
-      q(2029),
+      q(2023),
       q(0),
       ],
    q(dhivehi) => [
@@ -30988,11 +30938,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(dhodia) => [
-      q(2033),
+      q(2027),
       q(0),
       ],
    q(dhofari arabic) => [
-      q(0608),
+      q(0607),
       q(0),
       ],
    q(dholuo) => [
@@ -31000,99 +30950,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(dhudhuroa) => [
-      q(1991),
+      q(1985),
       q(0),
       ],
    q(dhundari) => [
-      q(2027),
+      q(2021),
       q(0),
       ],
    q(dhungaloo) => [
-      q(2039),
+      q(2033),
       q(0),
       ],
    q(dhurga) => [
-      q(2036),
+      q(2030),
       q(0),
       ],
    q(dhuwal) => [
-      q(2183),
+      q(2177),
       q(0),
       ],
    q(dia) => [
-      q(2040),
+      q(2034),
       q(0),
       ],
    q(dibabawon manobo) => [
-      q(4141),
+      q(4130),
       q(0),
       ],
    q(dibiyaso) => [
-      q(1980),
+      q(1974),
       q(0),
       ],
    q(dibo) => [
-      q(2052),
+      q(2046),
       q(0),
       ],
    q(dibole) => [
-      q(1543),
+      q(1538),
       q(0),
       ],
    q(dicamay agta) => [
-      q(2196),
+      q(2190),
       q(0),
       ],
    q(didinga) => [
-      q(2043),
+      q(2037),
       q(0),
       ],
    q(dido) => [
-      q(1990),
+      q(1984),
       q(0),
       ],
    q(diebroud) => [
-      q(6405),
+      q(6394),
       q(1),
       ],
    q(dieri) => [
-      q(2044),
+      q(2038),
       q(0),
       ],
    q(digaro-mishmi) => [
-      q(4304),
+      q(4293),
       q(0),
       ],
    q(digo) => [
-      q(2045),
+      q(2039),
       q(0),
       ],
    q(dii) => [
-      q(2190),
+      q(2184),
       q(0),
       ],
    q(dijim-bwilim) => [
-      q(1716),
+      q(1710),
       q(0),
       ],
    q(dilling) => [
-      q(2050),
+      q(2044),
       q(0),
       ],
    q(dima) => [
-      q(3123),
+      q(3116),
       q(0),
       ],
    q(dimasa) => [
-      q(2056),
+      q(2050),
       q(0),
       ],
    q(dimbong) => [
-      q(2047),
+      q(2041),
       q(0),
       ],
    q(dime) => [
-      q(2051),
+      q(2045),
       q(0),
       ],
    q(dimili) => [
@@ -31104,7 +31054,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(dimli (individual language)) => [
-      q(2054),
+      q(2048),
       q(0),
       ],
    q(dimli (macrolanguage)) => [
@@ -31112,11 +31062,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(6),
       ],
    q(dineor) => [
-      q(4538),
+      q(4527),
       q(1),
       ],
    q(ding) => [
-      q(2062),
+      q(2056),
       q(0),
       ],
    q(dinka) => [
@@ -31124,43 +31074,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dirari) => [
-      q(2057),
+      q(2051),
       q(0),
       ],
    q(dirasha) => [
-      q(2469),
+      q(2462),
       q(0),
       ],
    q(diri) => [
-      q(2199),
+      q(2193),
       q(0),
       ],
    q(diriku) => [
-      q(2058),
+      q(2052),
       q(0),
       ],
    q(dirim) => [
-      q(2055),
+      q(2049),
       q(0),
       ],
    q(disa) => [
-      q(2156),
+      q(2150),
       q(0),
       ],
    q(ditammari) => [
-      q(6414),
+      q(6403),
       q(0),
       ],
    q(ditidaht) => [
-      q(2163),
+      q(2157),
       q(0),
       ],
    q(diuwe) => [
-      q(2061),
+      q(2055),
       q(0),
       ],
    q(diuxi-tilantongo mixtec) => [
-      q(7523),
+      q(7509),
       q(0),
       ],
    q(divehi) => [
@@ -31168,95 +31118,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dixon reef) => [
-      q(2060),
+      q(2054),
       q(0),
       ],
    q(dizin) => [
-      q(4209),
+      q(4198),
       q(0),
       ],
    q(djabwurrung) => [
-      q(6558),
+      q(6546),
       q(0),
       ],
    q(djadjawurrung) => [
-      q(2063),
+      q(2057),
       q(0),
       ],
    q(djambarrpuyngu) => [
-      q(2075),
+      q(2069),
       q(0),
       ],
    q(djamindjung) => [
-      q(2066),
+      q(2060),
       q(0),
       ],
    q(djangu) => [
-      q(2028),
+      q(2022),
       q(1),
       ],
    q(djangun) => [
-      q(2068),
+      q(2062),
       q(0),
       ],
    q(djauan) => [
-      q(2073),
+      q(2067),
       q(0),
       ],
    q(djawi) => [
-      q(2077),
+      q(2071),
       q(0),
       ],
    q(djeebbana) => [
-      q(2070),
+      q(2064),
       q(0),
       ],
    q(djimini senoufo) => [
-      q(2207),
+      q(2201),
       q(0),
       ],
    q(djinang) => [
-      q(2069),
+      q(2063),
       q(0),
       ],
    q(djinba) => [
-      q(2064),
+      q(2058),
       q(0),
       ],
    q(djingili) => [
-      q(3104),
+      q(3096),
       q(0),
       ],
    q(djiwarli) => [
-      q(2214),
+      q(2207),
       q(0),
       ],
    q(dobel) => [
-      q(3688),
+      q(3680),
       q(0),
       ],
    q(dobu) => [
-      q(2119),
+      q(2113),
       q(0),
       ],
    q(doe) => [
-      q(2121),
+      q(2115),
       q(0),
       ],
    q(doga) => [
-      q(2014),
+      q(2008),
       q(0),
       ],
    q(doghoro) => [
-      q(2025),
+      q(2019),
       q(0),
       ],
    q(dogose) => [
-      q(2131),
+      q(2125),
       q(0),
       ],
    q(dogoso) => [
-      q(2021),
+      q(2015),
       q(0),
       ],
    q(dogri) => [
@@ -31264,7 +31214,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dogri (individual language)) => [
-      q(2020),
+      q(2014),
       q(0),
       ],
    q(dogri (macrolanguage)) => [
@@ -31276,127 +31226,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dogul dom dogon) => [
-      q(1966),
+      q(1960),
       q(0),
       ],
    q(doka) => [
-      q(1967),
+      q(1961),
       q(0),
       ],
    q(doko-uyanga) => [
-      q(6979),
+      q(6966),
       q(0),
       ],
    q(dolgan) => [
-      q(2083),
+      q(2077),
       q(0),
       ],
    q(dolpo) => [
-      q(2142),
+      q(2136),
       q(0),
       ],
    q(dom) => [
-      q(2118),
+      q(2112),
       q(0),
       ],
    q(domaaki) => [
-      q(2093),
+      q(2087),
       q(0),
       ],
    q(domari) => [
-      q(5833),
+      q(5821),
       q(0),
       ],
    q(dombe) => [
-      q(2133),
+      q(2127),
       q(0),
       ],
    q(dominican sign language) => [
-      q(2129),
+      q(2123),
       q(0),
       ],
    q(dompo) => [
-      q(2136),
+      q(2130),
       q(0),
       ],
    q(domu) => [
-      q(2122),
+      q(2116),
       q(0),
       ],
    q(domung) => [
-      q(2007),
+      q(2001),
       q(0),
       ],
    q(dondo) => [
-      q(2124),
+      q(2118),
       q(0),
       ],
    q(dong) => [
-      q(2123),
+      q(2117),
       q(0),
       ],
    q(dongo) => [
-      q(2127),
+      q(2121),
       q(0),
       ],
    q(dongolawi) => [
-      q(2018),
+      q(2012),
       q(1),
       ],
    q(dongotono) => [
-      q(1984),
+      q(1978),
       q(0),
       ],
    q(dongshanba lalo) => [
-      q(7664),
+      q(7649),
       q(0),
       ],
    q(dongxiang) => [
-      q(5939),
+      q(5928),
       q(0),
       ],
    q(donno so dogon) => [
-      q(1992),
+      q(1986),
       q(0),
       ],
    q(doondo) => [
-      q(1985),
+      q(1979),
       q(0),
       ],
    q(dori'o) => [
-      q(2130),
+      q(2124),
       q(0),
       ],
    q(dorig) => [
-      q(7273),
+      q(7260),
       q(1),
       ],
    q(doromu-koki) => [
-      q(3557),
+      q(3549),
       q(0),
       ],
    q(dororo) => [
-      q(2149),
+      q(2143),
       q(0),
       ],
    q(dorze) => [
-      q(2137),
+      q(2131),
       q(0),
       ],
    q(doso) => [
-      q(2125),
+      q(2119),
       q(0),
       ],
    q(dotyali) => [
-      q(2174),
+      q(2168),
       q(0),
       ],
    q(doutai) => [
-      q(6454),
+      q(6443),
       q(0),
       ],
    q(doyayo) => [
-      q(2134),
+      q(2128),
       q(0),
       ],
    q(dravidian languages) => [
@@ -31404,19 +31354,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(drehu) => [
-      q(2037),
+      q(2031),
       q(1),
       ],
    q(drents) => [
-      q(2151),
+      q(2145),
       q(0),
       ],
    q(drubea) => [
-      q(2179),
+      q(2173),
       q(1),
       ],
    q(drung) => [
-      q(2192),
+      q(2186),
       q(0),
       ],
    q(duala) => [
@@ -31424,127 +31374,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(duano) => [
-      q(2188),
+      q(2182),
       q(0),
       ],
    q(duau) => [
-      q(2198),
+      q(2192),
       q(0),
       ],
    q(dubli) => [
-      q(2175),
+      q(2169),
       q(0),
       ],
    q(dubu) => [
-      q(2099),
+      q(2093),
       q(0),
       ],
    q(dugun) => [
-      q(4812),
+      q(4800),
       q(0),
       ],
    q(duguri) => [
-      q(1970),
+      q(1964),
       q(0),
       ],
    q(dugwor) => [
-      q(2091),
+      q(2085),
       q(0),
       ],
    q(duhwa) => [
-      q(3215),
+      q(3207),
       q(0),
       ],
    q(duke) => [
-      q(4937),
+      q(4925),
       q(0),
       ],
    q(dulbu) => [
-      q(1972),
+      q(1966),
       q(0),
       ],
    q(duli) => [
-      q(2197),
+      q(2191),
       q(0),
       ],
    q(duma) => [
-      q(2087),
+      q(2081),
       q(0),
       ],
    q(dumbea) => [
-      q(2179),
+      q(2173),
       q(0),
       ],
    q(dumi) => [
-      q(2191),
+      q(2185),
       q(0),
       ],
    q(dumpas) => [
-      q(2100),
+      q(2094),
       q(0),
       ],
    q(dumun) => [
-      q(2182),
+      q(2176),
       q(0),
       ],
    q(duna) => [
-      q(2176),
+      q(2170),
       q(0),
       ],
    q(dungan) => [
-      q(2107),
+      q(2101),
       q(0),
       ],
    q(dungmali) => [
-      q(5747),
+      q(5735),
       q(0),
       ],
    q(dungra bhil) => [
-      q(2181),
+      q(2175),
       q(0),
       ],
    q(dungu) => [
-      q(1978),
+      q(1972),
       q(0),
       ],
    q(dupaninan agta) => [
-      q(2187),
+      q(2181),
       q(0),
       ],
    q(dura) => [
-      q(2148),
+      q(2142),
       q(0),
       ],
    q(duri) => [
-      q(4624),
+      q(4613),
       q(0),
       ],
    q(duriankere) => [
-      q(1971),
+      q(1965),
       q(0),
       ],
    q(duruma) => [
-      q(2180),
+      q(2174),
       q(0),
       ],
    q(duruwa) => [
-      q(5400),
+      q(5388),
       q(0),
       ],
    q(dusner) => [
-      q(2158),
+      q(2152),
       q(0),
       ],
    q(dusun deyah) => [
-      q(2186),
+      q(2180),
       q(0),
       ],
    q(dusun malang) => [
-      q(2189),
+      q(2183),
       q(0),
       ],
    q(dusun witu) => [
-      q(2194),
+      q(2188),
       q(0),
       ],
    q(dutch) => [
@@ -31552,7 +31502,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dutch sign language) => [
-      q(2154),
+      q(2148),
       q(0),
       ],
    q(dutch, middle (ca.1050-1350)) => [
@@ -31560,59 +31510,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dutton world speedwords) => [
-      q(2201),
+      q(2195),
       q(0),
       ],
    q(duungooma) => [
-      q(2195),
+      q(2189),
       q(0),
       ],
    q(duupa) => [
-      q(1946),
+      q(1940),
       q(0),
       ],
    q(duvle) => [
-      q(2193),
+      q(2187),
       q(0),
       ],
    q(duwai) => [
-      q(1973),
+      q(1967),
       q(0),
       ],
    q(duwet) => [
-      q(2676),
+      q(2668),
       q(0),
       ],
    q(duya) => [
-      q(3856),
+      q(3846),
       q(0),
       ],
    q(dwang) => [
-      q(5018),
+      q(5006),
       q(0),
       ],
    q(dyaabugay) => [
-      q(2211),
+      q(2205),
       q(0),
       ],
    q(dyaberdyaber) => [
-      q(2204),
+      q(2198),
       q(0),
       ],
    q(dyan) => [
-      q(2203),
+      q(2197),
       q(0),
       ],
    q(dyangadi) => [
-      q(2209),
+      q(2203),
       q(0),
       ],
    q(dyirbal) => [
-      q(1969),
+      q(1963),
       q(0),
       ],
    q(dyugun) => [
-      q(2205),
+      q(2199),
       q(0),
       ],
    q(dyula) => [
@@ -31620,23 +31570,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dza) => [
-      q(3089),
+      q(3081),
       q(0),
       ],
    q(dzalakha) => [
-      q(2216),
+      q(2209),
       q(0),
       ],
    q(dzando) => [
-      q(2217),
+      q(2210),
       q(0),
       ],
    q(dzao min) => [
-      q(1389),
+      q(1384),
       q(0),
       ],
    q(dzodinka) => [
-      q(0606),
+      q(0605),
       q(0),
       ],
    q(dzongkha) => [
@@ -31644,39 +31594,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dzuungoo) => [
-      q(2111),
+      q(2105),
       q(0),
       ],
    q(e) => [
-      q(2227),
+      q(2220),
       q(0),
       ],
    q(e'ma buyang) => [
-      q(7818),
+      q(7801),
       q(0),
       ],
    q(e'napa woromaipu) => [
-      q(5380),
+      q(5368),
       q(0),
       ],
    q(early tripuri) => [
-      q(7535),
+      q(7521),
       q(0),
       ],
    q(east ambae) => [
-      q(5262),
+      q(5251),
       q(0),
       ],
    q(east berawan) => [
-      q(7845),
+      q(7828),
       q(0),
       ],
    q(east damar) => [
-      q(2097),
+      q(2091),
       q(0),
       ],
    q(east futuna) => [
-      q(2388),
+      q(2381),
       q(0),
       ],
    q(east germanic languages) => [
@@ -31684,23 +31634,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(east kewa) => [
-      q(3403),
+      q(3395),
       q(0),
       ],
    q(east limba) => [
-      q(3986),
+      q(3975),
       q(0),
       ],
    q(east makian) => [
-      q(4376),
+      q(4365),
       q(0),
       ],
    q(east masela) => [
-      q(7034),
+      q(7021),
       q(0),
       ],
    q(east nyala) => [
-      q(4959),
+      q(4947),
       q(0),
       ],
    q(east slavic languages) => [
@@ -31708,59 +31658,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(east tarangan) => [
-      q(6703),
+      q(6691),
       q(0),
       ],
    q(east yugur) => [
-      q(7796),
+      q(7779),
       q(0),
       ],
    q(eastern abnaki) => [
-      q(0553),
+      q(0552),
       q(0),
       ],
    q(eastern acipa) => [
-      q(0594),
+      q(0593),
       q(0),
       ],
    q(eastern apurimac quechua) => [
-      q(5713),
+      q(5701),
       q(0),
       ],
    q(eastern arrernte) => [
-      q(0635),
+      q(0633),
       q(0),
       ],
    q(eastern balochi) => [
-      q(1178),
+      q(1174),
       q(0),
       ],
    q(eastern bolivian guarani) => [
-      q(2658),
+      q(2650),
       q(0),
       ],
    q(eastern bontok) => [
-      q(2220),
+      q(2213),
       q(0),
       ],
    q(eastern bru) => [
-      q(1445),
+      q(1440),
       q(0),
       ],
    q(eastern canadian inuktitut) => [
-      q(2947),
+      q(2939),
       q(0),
       ],
    q(eastern cham) => [
-      q(1753),
+      q(1747),
       q(0),
       ],
    q(eastern durango nahuatl) => [
-      q(1017),
+      q(1013),
       q(0),
       ],
    q(eastern egyptian bedawi arabic) => [
-      q(0962),
+      q(0958),
       q(0),
       ],
    q(eastern frisian) => [
@@ -31768,75 +31718,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eastern gorkha tamang) => [
-      q(6489),
+      q(6478),
       q(0),
       ],
    q(eastern gurung) => [
-      q(2505),
+      q(2497),
       q(0),
       ],
    q(eastern highland chatino) => [
-      q(1788),
+      q(1782),
       q(0),
       ],
    q(eastern highland otomi) => [
-      q(5333),
+      q(5322),
       q(0),
       ],
    q(eastern hongshuihe zhuang) => [
-      q(7853),
+      q(7836),
       q(0),
       ],
    q(eastern huasteca nahuatl) => [
-      q(4875),
+      q(4863),
       q(0),
       ],
    q(eastern huishui hmong) => [
-      q(2789),
+      q(2781),
       q(0),
       ],
    q(eastern huishui miao) => [
-      q(2789),
+      q(2781),
       q(1),
       ],
    q(eastern karaboro) => [
-      q(7489),
+      q(7476),
       q(0),
       ],
    q(eastern karnic) => [
-      q(2238),
+      q(2231),
       q(0),
       ],
    q(eastern katu) => [
-      q(3648),
+      q(3640),
       q(0),
       ],
    q(eastern kayah) => [
-      q(2248),
+      q(2241),
       q(0),
       ],
    q(eastern keres) => [
-      q(3268),
+      q(3260),
       q(0),
       ],
    q(eastern khumi chin) => [
-      q(1713),
+      q(1707),
       q(0),
       ],
    q(eastern krahn) => [
-      q(3569),
+      q(3561),
       q(0),
       ],
    q(eastern lalu) => [
-      q(7672),
+      q(7657),
       q(0),
       ],
    q(eastern lawa) => [
-      q(4112),
+      q(4101),
       q(0),
       ],
    q(eastern magar) => [
-      q(4275),
+      q(4264),
       q(0),
       ],
    q(eastern malayo-polynesian languages) => [
@@ -31844,63 +31794,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eastern maninkakan) => [
-      q(2261),
+      q(2254),
       q(0),
       ],
    q(eastern mari) => [
-      q(4301),
+      q(4290),
       q(0),
       ],
    q(eastern maroon creole) => [
-      q(2071),
+      q(2065),
       q(0),
       ],
    q(eastern meohang) => [
-      q(2259),
+      q(2252),
       q(0),
       ],
    q(eastern mnong) => [
-      q(4430),
+      q(4419),
       q(0),
       ],
    q(eastern muria) => [
-      q(2266),
+      q(2259),
       q(0),
       ],
    q(eastern ngad'a) => [
-      q(4818),
+      q(4806),
       q(0),
       ],
    q(eastern nisu) => [
-      q(5037),
+      q(5024),
       q(0),
       ],
    q(eastern ojibwa) => [
-      q(5230),
+      q(5219),
       q(0),
       ],
    q(eastern oromo) => [
-      q(2722),
+      q(2714),
       q(0),
       ],
    q(eastern parbate kham) => [
-      q(3367),
+      q(3359),
       q(0),
       ],
    q(eastern penan) => [
-      q(5433),
+      q(5421),
       q(0),
       ],
    q(eastern pomo) => [
-      q(5416),
+      q(5404),
       q(0),
       ],
    q(eastern qiandong miao) => [
-      q(2799),
+      q(2791),
       q(0),
       ],
    q(eastern subanen) => [
-      q(5997),
+      q(5986),
       q(0),
       ],
    q(eastern sudanic languages) => [
@@ -31908,63 +31858,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eastern tamang) => [
-      q(6375),
+      q(6364),
       q(0),
       ],
    q(eastern tawbuid) => [
-      q(1340),
+      q(1335),
       q(0),
       ],
    q(eastern xiangxi miao) => [
-      q(4603),
+      q(4592),
       q(0),
       ],
    q(eastern xwla gbe) => [
-      q(2447),
+      q(2440),
       q(0),
       ],
    q(eastern yiddish) => [
-      q(7630),
+      q(7616),
       q(0),
       ],
    q(ebira) => [
-      q(2928),
+      q(2920),
       q(0),
       ],
    q(eblan) => [
-      q(7340),
+      q(7327),
       q(0),
       ],
    q(ebrie) => [
-      q(2222),
+      q(2215),
       q(0),
       ],
    q(ebughu) => [
-      q(2219),
+      q(2212),
       q(0),
       ],
    q(ecuadorian sign language) => [
-      q(2225),
+      q(2218),
       q(0),
       ],
    q(ede cabe) => [
-      q(1673),
+      q(1666),
       q(0),
       ],
    q(ede ica) => [
-      q(2906),
+      q(2898),
       q(0),
       ],
    q(ede idaca) => [
-      q(2913),
+      q(2905),
       q(0),
       ],
    q(ede ije) => [
-      q(2944),
+      q(2936),
       q(0),
       ],
    q(edera awyu) => [
-      q(0987),
+      q(0983),
       q(0),
       ],
    q(edo) => [
@@ -31972,27 +31922,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(edolo) => [
-      q(2314),
+      q(2307),
       q(0),
       ],
    q(edomite) => [
-      q(7338),
+      q(7325),
       q(0),
       ],
    q(edopi) => [
-      q(1965),
+      q(1959),
       q(0),
       ],
    q(edwas) => [
-      q(1351),
+      q(1346),
       q(2),
       ],
    q(efai) => [
-      q(2228),
+      q(2221),
       q(0),
       ],
    q(efe) => [
-      q(2229),
+      q(2222),
       q(0),
       ],
    q(efik) => [
@@ -32000,19 +31950,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(efutop) => [
-      q(5217),
+      q(5206),
       q(0),
       ],
    q(ega) => [
-      q(2230),
+      q(2223),
       q(0),
       ],
    q(eggon) => [
-      q(2232),
+      q(2225),
       q(0),
       ],
    q(egypt sign language) => [
-      q(2301),
+      q(2294),
       q(0),
       ],
    q(egyptian (ancient)) => [
@@ -32020,7 +31970,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(egyptian arabic) => [
-      q(0886),
+      q(0884),
       q(0),
       ],
    q(egyptian languages) => [
@@ -32028,23 +31978,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ehueun) => [
-      q(2233),
+      q(2226),
       q(0),
       ],
    q(eipomek) => [
-      q(2234),
+      q(2227),
       q(0),
       ],
    q(eitiep) => [
-      q(2235),
+      q(2228),
       q(0),
       ],
    q(ejagham) => [
-      q(2317),
+      q(2310),
       q(0),
       ],
    q(ejamat) => [
-      q(2237),
+      q(2230),
       q(0),
       ],
    q(ekajuk) => [
@@ -32052,39 +32002,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ekari) => [
-      q(2240),
+      q(2233),
       q(0),
       ],
    q(ekegusii) => [
-      q(2673),
+      q(2665),
       q(1),
       ],
    q(eki) => [
-      q(2241),
+      q(2234),
       q(0),
       ],
    q(ekit) => [
-      q(2239),
+      q(2232),
       q(0),
       ],
    q(ekpeye) => [
-      q(2246),
+      q(2239),
       q(0),
       ],
    q(el alto zapotec) => [
-      q(7944),
+      q(7927),
       q(0),
       ],
    q(el hugeirat) => [
-      q(2250),
+      q(2243),
       q(0),
       ],
    q(el molo) => [
-      q(2254),
+      q(2247),
       q(0),
       ],
    q(el nayar cora) => [
-      q(1860),
+      q(1854),
       q(0),
       ],
    q(elamite) => [
@@ -32092,123 +32042,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eleme) => [
-      q(2253),
+      q(2246),
       q(0),
       ],
    q(elepi) => [
-      q(2249),
+      q(2242),
       q(0),
       ],
    q(elip) => [
-      q(2244),
+      q(2237),
       q(0),
       ],
    q(elkei) => [
-      q(2252),
+      q(2245),
       q(0),
       ],
    q(elotepec zapotec) => [
-      q(7968),
+      q(7951),
       q(0),
       ],
    q(eloyi) => [
-      q(0648),
+      q(0646),
       q(0),
       ],
    q(elseng) => [
-      q(4521),
+      q(4510),
       q(0),
       ],
    q(elu) => [
-      q(2255),
+      q(2248),
       q(0),
       ],
    q(elymian) => [
-      q(7418),
+      q(7405),
       q(0),
       ],
    q(emae) => [
-      q(4421),
+      q(4410),
       q(0),
       ],
    q(emai-iuleha-ora) => [
-      q(2256),
+      q(2249),
       q(0),
       ],
    q(eman) => [
-      q(2263),
+      q(2256),
       q(0),
       ],
    q(embaloh) => [
-      q(2257),
+      q(2250),
       q(0),
       ],
    q(embera-baudo) => [
-      q(1094),
+      q(1090),
       q(0),
       ],
    q(embera-catio) => [
-      q(1902),
+      q(1896),
       q(0),
       ],
    q(embera-chami) => [
-      q(1792),
+      q(1786),
       q(0),
       ],
    q(embera-tado) => [
-      q(6440),
+      q(6429),
       q(0),
       ],
    q(embu) => [
-      q(2223),
+      q(2216),
       q(0),
       ],
    q(emem) => [
-      q(2280),
+      q(2273),
       q(1),
       ],
    q(emerillon) => [
-      q(2258),
+      q(2251),
       q(0),
       ],
    q(emilian) => [
-      q(2231),
+      q(2224),
       q(0),
       ],
    q(emplawas) => [
-      q(2267),
+      q(2260),
       q(0),
       ],
    q(emumu) => [
-      q(2280),
+      q(2273),
       q(0),
       ],
    q(en) => [
-      q(2272),
+      q(2265),
       q(0),
       ],
    q(enawene-nawe) => [
-      q(6928),
+      q(6916),
       q(0),
       ],
    q(ende) => [
-      q(2273),
+      q(2266),
       q(0),
       ],
    q(enga) => [
-      q(2279),
+      q(2272),
       q(0),
       ],
    q(engdewu) => [
-      q(4862),
+      q(4850),
       q(0),
       ],
    q(engenni) => [
-      q(2277),
+      q(2270),
       q(0),
       ],
    q(enggano) => [
-      q(2278),
+      q(2271),
       q(0),
       ],
    q(english) => [
@@ -32228,83 +32178,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(enlhet) => [
-      q(2276),
+      q(2269),
       q(0),
       ],
    q(enrekang) => [
-      q(5647),
+      q(5635),
       q(0),
       ],
    q(enu) => [
-      q(2281),
+      q(2274),
       q(0),
       ],
    q(enwan (akwa ibom state)) => [
-      q(2283),
+      q(2276),
       q(0),
       ],
    q(enwan (edu state)) => [
-      q(2282),
+      q(2275),
       q(0),
       ],
    q(enxet) => [
-      q(2284),
+      q(2277),
       q(0),
       ],
    q(enya) => [
-      q(2494),
+      q(2487),
       q(0),
       ],
    q(epena) => [
-      q(6066),
+      q(6054),
       q(0),
       ],
    q(epi-olmec) => [
-      q(7345),
+      q(7332),
       q(0),
       ],
    q(epie) => [
-      q(2286),
+      q(2279),
       q(0),
       ],
    q(epigraphic mayan) => [
-      q(2269),
+      q(2262),
       q(0),
       ],
    q(eravallan) => [
-      q(2287),
+      q(2280),
       q(0),
       ],
    q(erave) => [
-      q(3407),
+      q(3400),
       q(0),
       ],
    q(ere) => [
-      q(6816),
+      q(6803),
       q(0),
       ],
    q(eritai) => [
-      q(2295),
+      q(2288),
       q(0),
       ],
    q(erokwanas) => [
-      q(2296),
+      q(2289),
       q(0),
       ],
    q(erre) => [
-      q(2293),
+      q(2286),
       q(0),
       ],
    q(erromintxela) => [
-      q(2268),
+      q(2261),
       q(0),
       ],
    q(ersu) => [
-      q(2294),
+      q(2287),
       q(0),
       ],
    q(eruwa) => [
-      q(2289),
+      q(2282),
       q(0),
       ],
    q(erzya) => [
@@ -32312,27 +32262,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(esan) => [
-      q(3009),
+      q(3001),
       q(0),
       ],
    q(ese) => [
-      q(4179),
+      q(4168),
       q(0),
       ],
    q(ese ejja) => [
-      q(2297),
+      q(2290),
       q(0),
       ],
    q(eshtehardi) => [
-      q(2298),
+      q(2291),
       q(0),
       ],
    q(esimbi) => [
-      q(0671),
+      q(0669),
       q(0),
       ],
    q(eskayan) => [
-      q(2308),
+      q(2301),
       q(0),
       ],
    q(eskimo-aleut languages) => [
@@ -32344,11 +32294,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(esselen) => [
-      q(2305),
+      q(2298),
       q(0),
       ],
    q(estado de mexico otomi) => [
-      q(5337),
+      q(5326),
       q(0),
       ],
    q(estonian) => [
@@ -32356,75 +32306,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(estonian sign language) => [
-      q(2304),
+      q(2297),
       q(0),
       ],
    q(esuma) => [
-      q(2302),
+      q(2295),
       q(0),
       ],
    q(etchemin) => [
-      q(2310),
+      q(2303),
       q(0),
       ],
    q(etebi) => [
-      q(2309),
+      q(2302),
       q(0),
       ],
    q(eten) => [
-      q(2318),
+      q(2311),
       q(0),
       ],
    q(eteocretan) => [
-      q(2224),
+      q(2217),
       q(0),
       ],
    q(eteocypriot) => [
-      q(2226),
+      q(2219),
       q(0),
       ],
    q(ethiopian sign language) => [
-      q(2311),
+      q(2304),
       q(0),
       ],
    q(etkywan) => [
-      q(2907),
+      q(2899),
       q(0),
       ],
    q(eton (cameroon)) => [
-      q(2313),
+      q(2306),
       q(0),
       ],
    q(eton (vanuatu)) => [
-      q(2312),
+      q(2305),
       q(0),
       ],
    q(etruscan) => [
-      q(2316),
+      q(2309),
       q(0),
       ],
    q(etulo) => [
-      q(6969),
+      q(6956),
       q(0),
       ],
    q(evant) => [
-      q(1644),
+      q(1637),
       q(0),
       ],
    q(even) => [
-      q(2320),
+      q(2313),
       q(0),
       ],
    q(evenki) => [
-      q(2322),
+      q(2315),
       q(0),
       ],
    q(eviya) => [
-      q(2491),
+      q(2484),
       q(0),
       ],
    q(ewage-notu) => [
-      q(5039),
+      q(5026),
       q(0),
       ],
    q(ewe) => [
@@ -32436,67 +32386,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(extremaduran) => [
-      q(2323),
+      q(2316),
       q(0),
       ],
    q(eyak) => [
-      q(2324),
+      q(2317),
       q(0),
       ],
    q(ezaa) => [
-      q(2326),
+      q(2319),
       q(0),
       ],
    q(fa d'ambu) => [
-      q(2329),
+      q(2322),
       q(0),
       ],
    q(fagani) => [
-      q(2331),
+      q(2324),
       q(0),
       ],
    q(fagauvea) => [
-      q(6975),
+      q(6962),
       q(1),
       ],
    q(faire atta) => [
-      q(1023),
+      q(1019),
       q(0),
       ],
    q(faita) => [
-      q(2335),
+      q(2328),
       q(0),
       ],
    q(faiwol) => [
-      q(2334),
+      q(2327),
       q(0),
       ],
    q(fala) => [
-      q(2342),
+      q(2335),
       q(0),
       ],
    q(falam chin) => [
-      q(1719),
+      q(1713),
       q(0),
       ],
    q(fali) => [
-      q(2361),
+      q(2354),
       q(0),
       ],
    q(faliscan) => [
-      q(7350),
+      q(7337),
       q(0),
       ],
    q(fam) => [
-      q(2338),
+      q(2331),
       q(0),
       ],
    q(fanagalo) => [
-      q(2368),
+      q(2361),
       q(0),
       ],
    q(fanamaket) => [
-      q(1248),
+      q(1244),
       q(0),
       ],
    q(fang) => [
@@ -32504,7 +32454,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fang (cameroon)) => [
-      q(2336),
+      q(2329),
       q(0),
       ],
    q(fang (equatorial guinea)) => [
@@ -32512,7 +32462,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(fania) => [
-      q(2369),
+      q(2362),
       q(0),
       ],
    q(fanti) => [
@@ -32520,11 +32470,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(far western muria) => [
-      q(2367),
+      q(2360),
       q(0),
       ],
    q(farefare) => [
-      q(2666),
+      q(2658),
       q(0),
       ],
    q(faroese) => [
@@ -32532,47 +32482,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fas) => [
-      q(2376),
+      q(2369),
       q(0),
       ],
    q(fasu) => [
-      q(2328),
+      q(2321),
       q(0),
       ],
    q(fataleka) => [
-      q(2340),
+      q(2333),
       q(0),
       ],
    q(fataluku) => [
-      q(1986),
+      q(1980),
       q(0),
       ],
    q(fayu) => [
-      q(2341),
+      q(2334),
       q(0),
       ],
    q(fe'fe') => [
-      q(2366),
+      q(2359),
       q(0),
       ],
    q(fedan) => [
-      q(5411),
+      q(5399),
       q(1),
       ],
    q(fembe) => [
-      q(0665),
+      q(0663),
       q(0),
       ],
    q(fernando po creole english) => [
-      q(2375),
+      q(2368),
       q(0),
       ],
    q(feroge) => [
-      q(2347),
+      q(2340),
       q(0),
       ],
    q(fiji hindi) => [
-      q(2764),
+      q(2756),
       q(0),
       ],
    q(fijian) => [
@@ -32584,15 +32534,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(filomena mata-coahuitlan totonac) => [
-      q(6589),
+      q(6577),
       q(0),
       ],
    q(finland-swedish sign language) => [
-      q(2385),
+      q(2378),
       q(0),
       ],
    q(finlandssvenskt teckensprak) => [
-      q(2385),
+      q(2378),
       q(1),
       ],
    q(finnish) => [
@@ -32600,7 +32550,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(finnish sign language) => [
-      q(2383),
+      q(2376),
       q(0),
       ],
    q(finno-ugrian languages) => [
@@ -32608,23 +32558,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(finongan) => [
-      q(2332),
+      q(2325),
       q(0),
       ],
    q(fipa) => [
-      q(2353),
+      q(2346),
       q(0),
       ],
    q(firan) => [
-      q(2354),
+      q(2347),
       q(0),
       ],
    q(fiwaga) => [
-      q(2356),
+      q(2349),
       q(0),
       ],
    q(flaaitaal) => [
-      q(2365),
+      q(2358),
       q(0),
       ],
    q(flemish) => [
@@ -32632,31 +32582,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(flemish sign language) => [
-      q(7008),
+      q(6995),
       q(1),
       ],
    q(flinders island) => [
-      q(2363),
+      q(2356),
       q(0),
       ],
    q(foau) => [
-      q(2360),
+      q(2353),
       q(0),
       ],
    q(foi) => [
-      q(2371),
+      q(2364),
       q(0),
       ],
    q(foia foia) => [
-      q(2348),
+      q(2341),
       q(0),
       ],
    q(folopa) => [
-      q(5590),
+      q(5578),
       q(0),
       ],
    q(foma) => [
-      q(2372),
+      q(2365),
       q(0),
       ],
    q(fon) => [
@@ -32664,27 +32614,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fongoro) => [
-      q(2350),
+      q(2343),
       q(0),
       ],
    q(foodo) => [
-      q(2370),
+      q(2363),
       q(0),
       ],
    q(forak) => [
-      q(2381),
+      q(2374),
       q(0),
       ],
    q(fordata) => [
-      q(2378),
+      q(2371),
       q(0),
       ],
    q(fore) => [
-      q(2373),
+      q(2366),
       q(0),
       ],
    q(forest enets) => [
-      q(2274),
+      q(2267),
       q(0),
       ],
    q(formosan languages) => [
@@ -32692,19 +32642,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fortsenal) => [
-      q(2382),
+      q(2375),
       q(0),
       ],
    q(francisco leon zoque) => [
-      q(7928),
+      q(7911),
       q(0),
       ],
    q(francoprovencal) => [
-      q(2380),
+      q(2373),
       q(1),
       ],
    q(frankish) => [
-      q(2379),
+      q(2372),
       q(0),
       ],
    q(french) => [
@@ -32712,11 +32662,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(french belgian sign language) => [
-      q(5996),
+      q(5985),
       q(1),
       ],
    q(french sign language) => [
-      q(2384),
+      q(2377),
       q(0),
       ],
    q(french, middle (ca.1400-1600)) => [
@@ -32740,51 +32690,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fuliiru) => [
-      q(2364),
+      q(2357),
       q(0),
       ],
    q(fulnio) => [
-      q(2395),
+      q(2388),
       q(0),
       ],
    q(fum) => [
-      q(2394),
+      q(2387),
       q(0),
       ],
    q(fungwa) => [
-      q(6901),
+      q(6889),
       q(0),
       ],
    q(fur) => [
-      q(2401),
+      q(2394),
       q(0),
       ],
    q(furu) => [
-      q(2398),
+      q(2391),
       q(0),
       ],
    q(futuna-aniwa) => [
-      q(2397),
+      q(2390),
       q(0),
       ],
    q(fuyug) => [
-      q(2400),
+      q(2393),
       q(0),
       ],
    q(fwai) => [
-      q(2402),
+      q(2395),
       q(0),
       ],
    q(fwe) => [
-      q(2403),
+      q(2396),
       q(0),
       ],
    q(fyam) => [
-      q(5683),
+      q(5671),
       q(0),
       ],
    q(fyer) => [
-      q(2352),
+      q(2345),
       q(0),
       ],
    q(ga) => [
@@ -32792,59 +32742,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ga'anda) => [
-      q(2616),
+      q(2609),
       q(0),
       ],
    q(ga'dang) => [
-      q(2464),
+      q(2457),
       q(0),
       ],
    q(gaa) => [
-      q(6748),
+      q(6735),
       q(0),
       ],
    q(gaam) => [
-      q(6398),
+      q(6387),
       q(0),
       ],
    q(gabi-gabi) => [
-      q(2446),
+      q(2439),
       q(0),
       ],
    q(gabri) => [
-      q(2404),
+      q(2397),
       q(0),
       ],
    q(gabrielino-fernandeno) => [
-      q(7354),
+      q(7341),
       q(0),
       ],
    q(gadang) => [
-      q(2468),
+      q(2461),
       q(0),
       ],
    q(gaddang) => [
-      q(2406),
+      q(2399),
       q(0),
       ],
    q(gaddi) => [
-      q(2435),
+      q(2428),
       q(0),
       ],
    q(gade) => [
-      q(2482),
+      q(2475),
       q(0),
       ],
    q(gade lohar) => [
-      q(2458),
+      q(2451),
       q(0),
       ],
    q(gadjerawang) => [
-      q(2465),
+      q(2458),
       q(0),
       ],
    q(gadsup) => [
-      q(2412),
+      q(2405),
       q(0),
       ],
    q(gaelic) => [
@@ -32852,59 +32802,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gafat) => [
-      q(2496),
+      q(2489),
       q(0),
       ],
    q(gagadu) => [
-      q(2444),
+      q(2437),
       q(0),
       ],
    q(gagauz) => [
-      q(2409),
+      q(2402),
       q(0),
       ],
    q(gagnoa bete) => [
-      q(1480),
+      q(1475),
       q(0),
       ],
    q(gagu) => [
-      q(2508),
+      q(2500),
       q(0),
       ],
    q(gahri) => [
-      q(1159),
+      q(1155),
       q(0),
       ],
    q(gaikundi) => [
-      q(2430),
+      q(2423),
       q(0),
       ],
    q(gail) => [
-      q(2523),
+      q(2515),
       q(0),
       ],
    q(gaina) => [
-      q(2455),
+      q(2448),
       q(0),
       ],
    q(gal) => [
-      q(2418),
+      q(2411),
       q(0),
       ],
    q(galambu) => [
-      q(2556),
+      q(2549),
       q(0),
       ],
    q(galatian) => [
-      q(7351),
+      q(7338),
       q(0),
       ],
    q(galela) => [
-      q(2433),
+      q(2426),
       q(0),
       ],
    q(galeya) => [
-      q(2420),
+      q(2413),
       q(0),
       ],
    q(galibi carib) => [
@@ -32912,7 +32862,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(galice) => [
-      q(2452),
+      q(2445),
       q(0),
       ],
    q(galician) => [
@@ -32920,175 +32870,179 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(galindan) => [
-      q(7357),
+      q(7344),
       q(0),
       ],
    q(gallurese sardinian) => [
-      q(5964),
+      q(5953),
       q(0),
       ],
    q(galo) => [
-      q(0613),
+      q(0612),
       q(0),
       ],
    q(galolen) => [
-      q(2414),
+      q(2407),
       q(0),
       ],
    q(gamale kham) => [
-      q(3324),
+      q(3316),
       q(0),
       ],
    q(gambera) => [
-      q(2561),
+      q(2554),
       q(0),
       ],
    q(gambian wolof) => [
-      q(7213),
+      q(7200),
       q(0),
       ],
    q(gamilaraay) => [
-      q(3438),
+      q(3431),
       q(0),
       ],
    q(gamit) => [
-      q(2436),
+      q(2429),
       q(0),
       ],
    q(gamkonora) => [
-      q(2413),
+      q(2406),
       q(0),
       ],
    q(gamo) => [
-      q(2569),
+      q(2562),
       q(0),
       ],
    q(gamo-ningi) => [
-      q(1478),
+      q(1473),
       q(0),
       ],
    q(gan chinese) => [
-      q(2416),
+      q(2409),
       q(0),
       ],
    q(gana) => [
-      q(2586),
+      q(2579),
       q(0),
       ],
    q(ganang) => [
-      q(2577),
+      q(2570),
       q(0),
       ],
    q(ganda) => [
       q(0257),
       q(0),
       ],
+   q(gandhari) => [
+      q(5426),
+      q(0),
+      ],
    q(gane) => [
-      q(2717),
+      q(2709),
       q(0),
       ],
    q(ganggalida) => [
-      q(2451),
+      q(2444),
       q(0),
       ],
    q(ganglau) => [
-      q(2504),
+      q(2496),
       q(0),
       ],
    q(gangte) => [
-      q(2574),
+      q(2567),
       q(0),
       ],
    q(gangulu) => [
-      q(2582),
+      q(2575),
       q(0),
       ],
    q(gants) => [
-      q(2417),
+      q(2410),
       q(0),
       ],
    q(ganza) => [
-      q(2715),
+      q(2707),
       q(0),
       ],
    q(ganzi) => [
-      q(2591),
+      q(2584),
       q(0),
       ],
    q(gao) => [
-      q(2498),
+      q(2490),
       q(0),
       ],
    q(gapapaiwa) => [
-      q(5674),
+      q(5662),
       q(0),
       ],
    q(garhwali) => [
-      q(2437),
+      q(2430),
       q(0),
       ],
    q(garifuna) => [
-      q(1646),
+      q(1639),
       q(0),
       ],
    q(garig-ilgar) => [
-      q(2961),
+      q(2954),
       q(0),
       ],
    q(garingbal) => [
-      q(7356),
+      q(7343),
       q(0),
       ],
    q(garlali) => [
-      q(2555),
+      q(2548),
       q(0),
       ],
    q(garo) => [
-      q(2632),
+      q(2625),
       q(0),
       ],
    q(garre) => [
-      q(2493),
+      q(2486),
       q(0),
       ],
    q(garrwa) => [
-      q(7231),
+      q(7218),
       q(0),
       ],
    q(garus) => [
-      q(2704),
+      q(2696),
       q(0),
       ],
    q(garza) => [
-      q(7359),
+      q(7346),
       q(0),
       ],
    q(gata') => [
-      q(2419),
+      q(2412),
       q(0),
       ],
    q(gavak) => [
-      q(2089),
+      q(2083),
       q(0),
       ],
    q(gavar) => [
-      q(2608),
+      q(2601),
       q(0),
       ],
    q(gaviao do jiparana) => [
-      q(2682),
+      q(2674),
       q(0),
       ],
    q(gawar-bati) => [
-      q(2698),
+      q(2690),
       q(0),
       ],
    q(gawwada) => [
-      q(2690),
+      q(2682),
       q(0),
       ],
    q(gayil) => [
-      q(2710),
+      q(2702),
       q(0),
       ],
    q(gayo) => [
@@ -33096,31 +33050,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gazi) => [
-      q(2716),
+      q(2708),
       q(0),
       ],
    q(gbagyi) => [
-      q(2442),
+      q(2435),
       q(0),
       ],
    q(gban) => [
-      q(2508),
+      q(2500),
       q(1),
       ],
    q(gbanu) => [
-      q(2445),
+      q(2438),
       q(0),
       ],
    q(gbanziri) => [
-      q(2431),
+      q(2424),
       q(0),
       ],
    q(gbari) => [
-      q(2448),
-      q(0),
-      ],
-   q(gbati-ri) => [
-      q(2648),
+      q(2441),
       q(0),
       ],
    q(gbaya) => [
@@ -33132,63 +33082,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(gbaya (sudan)) => [
-      q(3594),
+      q(3586),
       q(0),
       ],
    q(gbaya-bossangoa) => [
-      q(2440),
+      q(2433),
       q(0),
       ],
    q(gbaya-bozoum) => [
-      q(2441),
+      q(2434),
       q(0),
       ],
    q(gbaya-mbodomo) => [
-      q(2566),
+      q(2559),
       q(0),
       ],
    q(gbayi) => [
-      q(2708),
+      q(2700),
       q(0),
       ],
    q(gbesi gbe) => [
-      q(2443),
+      q(2436),
       q(0),
       ],
    q(gbii) => [
-      q(2499),
+      q(2491),
       q(0),
       ],
    q(gbin) => [
-      q(7352),
+      q(7339),
       q(0),
       ],
    q(gbiri-niragu) => [
-      q(2624),
+      q(2617),
       q(0),
       ],
    q(gboloo grebo) => [
-      q(2481),
+      q(2474),
       q(0),
       ],
    q(ge) => [
-      q(2794),
+      q(2786),
       q(0),
       ],
    q(geba karen) => [
-      q(3690),
+      q(3682),
       q(0),
       ],
    q(gebe) => [
-      q(2485),
+      q(2478),
       q(0),
       ],
    q(gedaged) => [
-      q(2461),
+      q(2454),
       q(0),
       ],
    q(gedeo) => [
-      q(2150),
+      q(2144),
       q(0),
       ],
    q(geez) => [
@@ -33196,39 +33146,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(geji) => [
-      q(2539),
+      q(2531),
       q(0),
       ],
    q(gejia) => [
-      q(2794),
+      q(2786),
       q(1),
       ],
    q(geko karen) => [
-      q(2514),
+      q(2506),
       q(0),
       ],
    q(gela) => [
-      q(4960),
+      q(4948),
       q(0),
       ],
    q(geman deng) => [
-      q(4667),
+      q(4655),
       q(1),
       ],
    q(geme) => [
-      q(2489),
+      q(2482),
       q(0),
       ],
    q(gen) => [
-      q(2486),
+      q(2479),
       q(0),
       ],
    q(gende) => [
-      q(2408),
+      q(2401),
       q(0),
       ],
    q(gengle) => [
-      q(2483),
+      q(2476),
       q(0),
       ],
    q(georgian) => [
@@ -33236,15 +33186,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gepo) => [
-      q(7651),
+      q(7636),
       q(0),
       ],
    q(gera) => [
-      q(2492),
+      q(2485),
       q(0),
       ],
    q(gergiko) => [
-      q(4465),
+      q(4454),
       q(1),
       ],
    q(german) => [
@@ -33252,7 +33202,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(german sign language) => [
-      q(2640),
+      q(2633),
       q(0),
       ],
    q(german, low) => [
@@ -33272,63 +33222,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(geruma) => [
-      q(2479),
+      q(2472),
       q(0),
       ],
    q(geser-gorom) => [
-      q(2490),
+      q(2483),
       q(0),
       ],
    q(gey) => [
-      q(2670),
+      q(2662),
       q(0),
       ],
    q(ghadames) => [
-      q(2510),
+      q(2502),
       q(0),
       ],
    q(ghanaian pidgin english) => [
-      q(2614),
+      q(2607),
       q(0),
       ],
    q(ghanaian sign language) => [
-      q(2639),
+      q(2632),
       q(0),
       ],
    q(ghandruk sign language) => [
-      q(2475),
+      q(2468),
       q(0),
       ],
    q(ghanongga) => [
-      q(2516),
+      q(2508),
       q(0),
       ],
    q(ghari) => [
-      q(2625),
+      q(2618),
       q(0),
       ],
    q(ghayavi) => [
-      q(1316),
+      q(1312),
       q(0),
       ],
    q(gheg albanian) => [
-      q(0757),
+      q(0755),
       q(0),
       ],
    q(ghera) => [
-      q(2518),
+      q(2510),
       q(0),
       ],
    q(ghodoberi) => [
-      q(2472),
+      q(2465),
       q(0),
       ],
    q(ghomala') => [
-      q(1050),
+      q(1046),
       q(0),
       ],
    q(ghomara) => [
-      q(2517),
+      q(2509),
       q(0),
       ],
    q(ghotuo) => [
@@ -33336,27 +33286,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ghulfan) => [
-      q(2515),
+      q(2507),
       q(0),
       ],
    q(giangan) => [
-      q(1171),
+      q(1167),
       q(0),
       ],
    q(gibanawa) => [
-      q(2522),
+      q(2514),
       q(0),
       ],
    q(gichuka) => [
-      q(1912),
+      q(1906),
       q(1),
       ],
    q(gidar) => [
-      q(2524),
+      q(2516),
       q(0),
       ],
    q(giiwo) => [
-      q(3427),
+      q(3420),
       q(0),
       ],
    q(gikuyu) => [
@@ -33364,11 +33314,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(gikyode) => [
-      q(0587),
+      q(0586),
       q(0),
       ],
    q(gilaki) => [
-      q(2554),
+      q(2547),
       q(0),
       ],
    q(gilbertese) => [
@@ -33376,139 +33326,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gilima) => [
-      q(2536),
+      q(2528),
       q(0),
       ],
    q(gilyak) => [
-      q(4911),
+      q(4899),
       q(0),
       ],
    q(gimi (eastern highlands)) => [
-      q(2527),
+      q(2519),
       q(0),
       ],
    q(gimi (west new britain)) => [
-      q(2529),
+      q(2521),
       q(0),
       ],
    q(gimme) => [
-      q(3475),
+      q(3468),
       q(0),
       ],
    q(gimnime) => [
-      q(2567),
+      q(2560),
       q(0),
       ],
    q(ginuman) => [
-      q(2583),
+      q(2576),
       q(0),
       ],
    q(ginyanga) => [
-      q(1000),
+      q(0996),
       q(0),
       ],
    q(girawa) => [
-      q(1058),
+      q(1054),
       q(0),
       ],
    q(giryama) => [
-      q(5170),
+      q(5159),
       q(0),
       ],
    q(githabul) => [
-      q(2526),
+      q(2518),
       q(0),
       ],
    q(gitonga) => [
-      q(6651),
+      q(6639),
       q(0),
       ],
    q(gitua) => [
-      q(2507),
+      q(2499),
       q(0),
       ],
    q(gitxsan) => [
-      q(2533),
+      q(2525),
       q(0),
       ],
    q(giyug) => [
-      q(2537),
+      q(2529),
       q(0),
       ],
    q(gizrra) => [
-      q(6650),
+      q(6638),
       q(0),
       ],
    q(glaro-twabo) => [
-      q(2557),
+      q(2550),
       q(0),
       ],
    q(glavda) => [
-      q(2559),
+      q(2552),
       q(0),
       ],
    q(glio-oubi) => [
-      q(5345),
+      q(5334),
       q(0),
       ],
    q(gnau) => [
-      q(2589),
+      q(2582),
       q(0),
       ],
    q(goan konkani) => [
-      q(2603),
+      q(2596),
       q(0),
       ],
    q(goaria) => [
-      q(2525),
+      q(2517),
       q(0),
       ],
    q(gobasi) => [
-      q(2599),
+      q(2592),
       q(0),
       ],
    q(gobu) => [
-      q(2610),
+      q(2603),
       q(0),
       ],
    q(godie) => [
-      q(2595),
+      q(2588),
       q(0),
       ],
    q(godwari) => [
-      q(2478),
+      q(2471),
       q(0),
       ],
    q(goemai) => [
-      q(0801),
+      q(0799),
       q(0),
       ],
    q(gofa) => [
-      q(2597),
+      q(2590),
       q(0),
       ],
    q(gogo) => [
-      q(2598),
+      q(2591),
       q(0),
       ],
    q(gogodala) => [
-      q(2509),
+      q(2501),
       q(0),
       ],
    q(gokana) => [
-      q(2546),
+      q(2538),
       q(0),
       ],
    q(gola) => [
-      q(2602),
+      q(2595),
       q(0),
       ],
    q(golin) => [
-      q(2677),
+      q(2669),
       q(0),
       ],
    q(golpa) => [
-      q(3942),
+      q(3931),
       q(0),
       ],
    q(gondi) => [
@@ -33516,35 +33466,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gone dau) => [
-      q(2604),
+      q(2597),
       q(0),
       ],
    q(gongduk) => [
-      q(2596),
+      q(2589),
       q(0),
       ],
    q(gonja) => [
-      q(2542),
+      q(2534),
       q(0),
       ],
    q(gooniyandi) => [
-      q(2580),
+      q(2573),
       q(0),
       ],
    q(gor) => [
-      q(2619),
+      q(2612),
       q(0),
       ],
    q(gorakor) => [
-      q(2594),
+      q(2587),
       q(0),
       ],
    q(gorap) => [
-      q(2606),
+      q(2599),
       q(0),
       ],
    q(goreng) => [
-      q(7355),
+      q(7342),
       q(0),
       ],
    q(gorontalo) => [
@@ -33552,11 +33502,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gorovu) => [
-      q(2629),
+      q(2622),
       q(0),
       ],
    q(gorowa) => [
-      q(2609),
+      q(2602),
       q(0),
       ],
    q(gothic) => [
@@ -33564,35 +33514,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(goundo) => [
-      q(2611),
+      q(2604),
       q(0),
       ],
    q(gourmanchema) => [
-      q(2672),
+      q(2664),
       q(0),
       ],
    q(gowlan) => [
-      q(2600),
+      q(2593),
       q(0),
       ],
    q(gowli) => [
-      q(2601),
+      q(2594),
       q(0),
       ],
    q(gowro) => [
-      q(2692),
+      q(2684),
       q(0),
       ],
    q(gozarkhani) => [
-      q(2612),
+      q(2605),
       q(0),
       ],
    q(grangali) => [
-      q(4961),
+      q(4949),
       q(0),
       ],
    q(grass koiari) => [
-      q(3200),
+      q(3192),
       q(0),
       ],
    q(grebo) => [
@@ -33608,7 +33558,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(greek sign language) => [
-      q(2646),
+      q(2639),
       q(0),
       ],
    q(greek, ancient (to 1453)) => [
@@ -33620,7 +33570,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(green gelao) => [
-      q(2530),
+      q(2522),
       q(0),
       ],
    q(greenlandic) => [
@@ -33628,67 +33578,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(grenadian creole english) => [
-      q(2454),
+      q(2447),
       q(0),
       ],
    q(gresi) => [
-      q(2631),
+      q(2624),
       q(0),
       ],
    q(groma) => [
-      q(2628),
+      q(2621),
       q(0),
       ],
    q(gronings) => [
-      q(2607),
+      q(2600),
       q(0),
       ],
    q(gros ventre) => [
-      q(0927),
+      q(0924),
       q(0),
       ],
    q(gua) => [
-      q(2701),
+      q(2693),
       q(0),
       ],
    q(guadeloupean creole french) => [
-      q(2453),
+      q(2446),
       q(0),
       ],
    q(guahibo) => [
-      q(2657),
+      q(2649),
       q(0),
       ],
    q(guaja) => [
-      q(2678),
+      q(2670),
       q(0),
       ],
    q(guajajara) => [
-      q(2651),
+      q(2643),
       q(0),
       ],
    q(guambiano) => [
-      q(2661),
+      q(2653),
       q(0),
       ],
    q(guana (brazil)) => [
-      q(2618),
+      q(2611),
       q(0),
       ],
    q(guana (paraguay)) => [
-      q(2674),
+      q(2666),
       q(0),
       ],
    q(guanano) => [
-      q(2675),
+      q(2667),
       q(0),
       ],
    q(guanche) => [
-      q(2575),
+      q(2568),
       q(0),
       ],
    q(guanyinqiao) => [
-      q(3110),
+      q(3102),
       q(0),
       ],
    q(guarani) => [
@@ -33696,111 +33646,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(guarayu) => [
-      q(2713),
+      q(2705),
       q(0),
       ],
    q(guarequena) => [
-      q(2407),
+      q(2400),
       q(0),
       ],
    q(guatemalan sign language) => [
-      q(2642),
+      q(2635),
       q(0),
       ],
    q(guato) => [
-      q(2647),
+      q(2640),
       q(0),
       ],
    q(guayabero) => [
-      q(2663),
+      q(2655),
       q(0),
       ],
    q(gudang) => [
-      q(7353),
+      q(7340),
       q(0),
       ],
    q(gudanji) => [
-      q(4920),
+      q(4908),
       q(0),
       ],
    q(gude) => [
-      q(2462),
+      q(2455),
       q(0),
       ],
    q(gudu) => [
-      q(2477),
+      q(2470),
       q(0),
       ],
    q(guduf-gava) => [
-      q(2463),
+      q(2456),
       q(0),
       ],
+   q(guernesiais) => [
+      q(5052),
+      q(1),
+      ],
    q(guerrero amuzgo) => [
-      q(0786),
+      q(0784),
       q(0),
       ],
    q(guerrero nahuatl) => [
-      q(4865),
+      q(4853),
       q(0),
       ],
    q(guevea de humboldt zapotec) => [
-      q(7935),
+      q(7918),
       q(0),
       ],
    q(gugadj) => [
-      q(2500),
+      q(2492),
       q(0),
       ],
    q(gugu badhun) => [
-      q(2460),
+      q(2453),
       q(0),
       ],
    q(gugu warra) => [
-      q(7241),
+      q(7228),
       q(0),
       ],
    q(gugubera) => [
-      q(3424),
+      q(3417),
       q(0),
       ],
    q(guguyimidjir) => [
-      q(3433),
+      q(3426),
       q(0),
       ],
    q(guhu-samane) => [
-      q(2519),
+      q(2511),
       q(0),
       ],
    q(guianese creole french) => [
-      q(2456),
+      q(2449),
       q(0),
       ],
    q(guibei zhuang) => [
-      q(7855),
+      q(7838),
       q(0),
       ],
    q(guiberoua bete) => [
-      q(1132),
+      q(1128),
       q(0),
       ],
    q(guibian zhuang) => [
-      q(7857),
+      q(7840),
       q(0),
       ],
    q(guila zapotec) => [
-      q(7977),
+      q(7960),
       q(0),
       ],
    q(guinea kpelle) => [
-      q(2548),
+      q(2540),
       q(0),
       ],
    q(guinean sign language) => [
-      q(2667),
+      q(2659),
       q(0),
       ],
    q(guiqiong) => [
-      q(2617),
+      q(2610),
       q(0),
       ],
    q(gujarati) => [
@@ -33808,215 +33762,215 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gujari) => [
-      q(2543),
+      q(2535),
       q(0),
       ],
    q(gula (central african republic)) => [
-      q(3228),
+      q(3220),
       q(0),
       ],
    q(gula (chad)) => [
-      q(2558),
+      q(2551),
       q(0),
       ],
    q(gula iro) => [
-      q(2553),
+      q(2546),
       q(0),
       ],
    q(gula'alaa) => [
-      q(2562),
+      q(2555),
       q(0),
       ],
    q(gulay) => [
-      q(2679),
+      q(2671),
       q(0),
       ],
    q(gule) => [
-      q(2560),
+      q(2553),
       q(0),
       ],
    q(gulf arabic) => [
-      q(0641),
+      q(0639),
       q(0),
       ],
    q(guliguli) => [
-      q(2552),
+      q(2545),
       q(0),
       ],
    q(gumalu) => [
-      q(2568),
+      q(2561),
       q(0),
       ],
    q(gumatj) => [
-      q(2584),
+      q(2577),
       q(0),
       ],
    q(gumawana) => [
-      q(2685),
+      q(2677),
       q(0),
       ],
    q(gumuz) => [
-      q(2659),
+      q(2651),
       q(0),
       ],
    q(gun) => [
-      q(2671),
+      q(2663),
       q(0),
       ],
    q(gundi) => [
-      q(2466),
+      q(2459),
       q(0),
       ],
    q(gunditjmara) => [
-      q(2541),
+      q(2533),
       q(0),
       ],
    q(gundungurra) => [
-      q(7490),
+      q(7477),
       q(0),
       ],
    q(gungabula) => [
-      q(2707),
+      q(2699),
       q(0),
       ],
    q(gungu) => [
-      q(5872),
+      q(5861),
       q(0),
       ],
    q(guntai) => [
-      q(2588),
+      q(2581),
       q(0),
       ],
    q(gunwinggu) => [
-      q(2664),
+      q(2656),
       q(0),
       ],
    q(gunya) => [
-      q(2714),
+      q(2706),
       q(0),
       ],
    q(gupa-abawa) => [
-      q(2613),
+      q(2606),
       q(0),
       ],
    q(gupapuyngu) => [
-      q(2655),
+      q(2647),
       q(0),
       ],
    q(guragone) => [
-      q(2501),
+      q(2493),
       q(0),
       ],
    q(guramalum) => [
-      q(2638),
+      q(2631),
       q(0),
       ],
    q(gurani) => [
-      q(2720),
+      q(2712),
       q(0),
       ],
    q(gurdjar) => [
-      q(2467),
+      q(2460),
       q(0),
       ],
    q(gureng gureng) => [
-      q(2587),
+      q(2580),
       q(0),
       ],
    q(gurgula) => [
-      q(2502),
+      q(2494),
       q(0),
       ],
    q(guriaso) => [
-      q(2636),
+      q(2629),
       q(0),
       ],
    q(gurinji) => [
-      q(2654),
+      q(2646),
       q(0),
       ],
    q(gurmana) => [
-      q(2680),
+      q(2672),
       q(0),
       ],
    q(guro) => [
-      q(2592),
+      q(2585),
       q(0),
       ],
    q(guruntum-mbaaru) => [
-      q(2622),
+      q(2615),
       q(0),
       ],
    q(gusan) => [
-      q(2643),
+      q(2636),
       q(0),
       ],
    q(gusii) => [
-      q(2673),
+      q(2665),
       q(0),
       ],
    q(gusilay) => [
-      q(2641),
+      q(2634),
       q(0),
       ],
    q(guwa) => [
-      q(7361),
+      q(7348),
       q(0),
       ],
    q(guwamu) => [
-      q(2699),
+      q(2691),
       q(0),
       ],
    q(guwinmal) => [
-      q(7358),
+      q(7345),
       q(1),
       ],
    q(guya) => [
-      q(2544),
+      q(2536),
       q(0),
       ],
    q(guyanese creole english) => [
-      q(2712),
+      q(2704),
       q(0),
       ],
    q(guyani) => [
-      q(2686),
+      q(2678),
       q(0),
       ],
    q(gvoko) => [
-      q(4863),
+      q(4851),
       q(0),
       ],
    q(gwa) => [
-      q(2688),
+      q(2680),
       q(0),
       ],
    q(gwahatike) => [
-      q(1948),
+      q(1942),
       q(0),
       ],
    q(gwak) => [
-      q(3095),
+      q(3087),
       q(0),
       ],
    q(gwamhi-wuri) => [
-      q(1164),
+      q(1160),
       q(0),
       ],
    q(gwandara) => [
-      q(2696),
+      q(2688),
       q(0),
       ],
    q(gweda) => [
-      q(2635),
+      q(2628),
       q(0),
       ],
    q(gweno) => [
-      q(2691),
+      q(2683),
       q(0),
       ],
    q(gwere) => [
-      q(2697),
+      q(2689),
       q(0),
       ],
    q(gwich'in) => [
@@ -34024,51 +33978,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gyele) => [
-      q(2709),
+      q(2701),
       q(0),
       ],
    q(gyem) => [
-      q(2706),
+      q(2698),
       q(0),
       ],
    q(ha) => [
-      q(2733),
+      q(2725),
       q(0),
       ],
    q(habu) => [
-      q(2744),
+      q(2736),
       q(0),
       ],
    q(hadiyya) => [
-      q(2749),
+      q(2741),
       q(0),
       ],
    q(hadothi) => [
-      q(2825),
+      q(2817),
       q(0),
       ],
    q(hadrami) => [
-      q(7364),
+      q(7351),
       q(0),
       ],
    q(hadrami arabic) => [
-      q(1001),
+      q(0997),
       q(0),
       ],
    q(hadza) => [
-      q(2857),
+      q(2849),
       q(0),
       ],
    q(haeke) => [
-      q(0630),
+      q(0628),
       q(0),
       ],
    q(hahon) => [
-      q(2725),
+      q(2717),
       q(0),
       ],
    q(hai//om) => [
-      q(2756),
+      q(2748),
       q(0),
       ],
    q(haida) => [
@@ -34076,15 +34030,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(haigwai) => [
-      q(2757),
+      q(2749),
       q(0),
       ],
    q(haiphong sign language) => [
-      q(2723),
+      q(2715),
       q(0),
       ],
    q(haisla) => [
-      q(2735),
+      q(2727),
       q(0),
       ],
    q(haitian) => [
@@ -34096,159 +34050,159 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(haitian vodoun culture language) => [
-      q(2883),
+      q(2875),
       q(0),
       ],
    q(haji) => [
-      q(2774),
+      q(2766),
       q(0),
       ],
    q(hajong) => [
-      q(2726),
+      q(2718),
       q(0),
       ],
    q(haka chin) => [
-      q(1804),
+      q(1798),
       q(0),
       ],
    q(hakka chinese) => [
-      q(2727),
+      q(2719),
       q(0),
       ],
    q(hako) => [
-      q(2731),
+      q(2723),
       q(0),
       ],
    q(halang) => [
-      q(2728),
+      q(2720),
       q(0),
       ],
    q(halang doan) => [
-      q(2781),
+      q(2773),
       q(0),
       ],
    q(halbi) => [
-      q(2780),
+      q(2772),
       q(0),
       ],
    q(halh mongolian) => [
-      q(3348),
+      q(3340),
       q(0),
       ],
    q(halia) => [
-      q(2779),
+      q(2771),
       q(0),
       ],
    q(halkomelem) => [
-      q(2874),
+      q(2866),
       q(0),
       ],
    q(hamap) => [
-      q(2803),
+      q(2795),
       q(0),
       ],
    q(hamba) => [
-      q(2740),
+      q(2732),
       q(0),
       ],
    q(hamea) => [
-      q(1745),
+      q(1739),
       q(1),
       ],
    q(hamer-banna) => [
-      q(0772),
+      q(0770),
       q(0),
       ],
    q(hamtai) => [
-      q(2802),
+      q(2794),
       q(0),
       ],
    q(han) => [
-      q(2718),
+      q(2710),
       q(0),
       ],
    q(hanga) => [
-      q(2724),
+      q(2716),
       q(0),
       ],
    q(hanga hundi) => [
-      q(7221),
+      q(7208),
       q(0),
       ],
    q(hangaza) => [
-      q(2730),
+      q(2722),
       q(0),
       ],
    q(hani) => [
-      q(2812),
+      q(2804),
       q(0),
       ],
    q(hano) => [
-      q(3997),
+      q(3986),
       q(0),
       ],
    q(hanoi sign language) => [
-      q(2719),
+      q(2711),
       q(0),
       ],
    q(hanunoo) => [
-      q(2814),
+      q(2806),
       q(0),
       ],
    q(harami) => [
-      q(7362),
+      q(7349),
       q(0),
       ],
    q(harari) => [
-      q(2734),
+      q(2726),
       q(0),
       ],
    q(harijan kinnauri) => [
-      q(3399),
+      q(3391),
       q(0),
       ],
    q(haroi) => [
-      q(2844),
+      q(2836),
       q(0),
       ],
    q(haroti) => [
-      q(2825),
+      q(2817),
       q(1),
       ],
    q(harsusi) => [
-      q(2854),
+      q(2846),
       q(0),
       ],
    q(haruai) => [
-      q(6601),
+      q(6589),
       q(0),
       ],
    q(haruku) => [
-      q(2842),
+      q(2834),
       q(0),
       ],
    q(haryanvi) => [
-      q(1166),
+      q(1162),
       q(0),
       ],
    q(harzani) => [
-      q(2850),
+      q(2842),
       q(0),
       ],
    q(hasha) => [
-      q(7617),
+      q(7603),
       q(0),
       ],
    q(hassaniyya) => [
-      q(4233),
+      q(4222),
       q(0),
       ],
    q(hatam) => [
-      q(2721),
+      q(2713),
       q(0),
       ],
    q(hattic) => [
-      q(7367),
+      q(7354),
       q(0),
       ],
    q(hausa) => [
@@ -34256,35 +34210,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hausa sign language) => [
-      q(2852),
+      q(2844),
       q(0),
       ],
    q(havasupai-walapai-yavapai) => [
-      q(7782),
+      q(7765),
       q(0),
       ],
    q(haveke) => [
-      q(2885),
+      q(2877),
       q(0),
       ],
    q(havu) => [
-      q(2736),
+      q(2728),
       q(0),
       ],
    q(hawai'i creole english) => [
-      q(2889),
+      q(2881),
       q(0),
       ],
    q(hawai'i pidgin) => [
-      q(2889),
+      q(2881),
       q(1),
       ],
    q(hawai'i pidgin sign language) => [
-      q(2838),
+      q(2830),
       q(1),
       ],
    q(hawai'i sign language (hsl)) => [
-      q(2838),
+      q(2830),
       q(0),
       ],
    q(hawaiian) => [
@@ -34292,15 +34246,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(haya) => [
-      q(2738),
+      q(2730),
       q(0),
       ],
    q(hazaragi) => [
-      q(2739),
+      q(2731),
       q(0),
       ],
    q(hdi) => [
-      q(7341),
+      q(7328),
       q(0),
       ],
    q(hebrew) => [
@@ -34308,35 +34262,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hehe) => [
-      q(2753),
+      q(2745),
       q(0),
       ],
    q(heiban) => [
-      q(2742),
+      q(2734),
       q(0),
       ],
    q(heiltsuk) => [
-      q(2754),
+      q(2746),
       q(0),
       ],
    q(helambu sherpa) => [
-      q(5946),
+      q(5935),
       q(0),
       ],
    q(helong) => [
-      q(2752),
+      q(2744),
       q(0),
       ],
    q(hema) => [
-      q(4913),
+      q(4901),
       q(0),
       ],
    q(hemba) => [
-      q(2755),
+      q(2747),
       q(0),
       ],
    q(herde) => [
-      q(2751),
+      q(2743),
       q(0),
       ],
    q(herero) => [
@@ -34344,75 +34298,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hermit) => [
-      q(3971),
+      q(3960),
       q(0),
       ],
    q(hernican) => [
-      q(7366),
+      q(7353),
       q(0),
       ],
    q(hertevin) => [
-      q(2846),
+      q(2838),
       q(0),
       ],
    q(heung kong sau yue) => [
-      q(2778),
+      q(2770),
       q(1),
       ],
    q(hewa) => [
-      q(2729),
+      q(2721),
       q(0),
       ],
    q(heyo) => [
-      q(0944),
+      q(0940),
       q(0),
       ],
    q(hiberno-scottish gaelic) => [
-      q(2511),
+      q(2503),
       q(0),
       ],
    q(hibito) => [
-      q(2762),
+      q(2754),
       q(0),
       ],
    q(hidatsa) => [
-      q(2763),
+      q(2755),
       q(0),
       ],
    q(hieroglyphic luwian) => [
-      q(2784),
+      q(2776),
       q(0),
       ],
    q(higaonon) => [
-      q(4138),
+      q(4127),
       q(0),
       ],
    q(highland konjo) => [
-      q(3395),
+      q(3387),
       q(0),
       ],
    q(highland oaxaca chontal) => [
-      q(1725),
+      q(1719),
       q(0),
       ],
    q(highland popoluca) => [
-      q(5571),
+      q(5559),
       q(0),
       ],
    q(highland puebla nahuatl) => [
-      q(1024),
+      q(1020),
       q(0),
       ],
    q(highland totonac) => [
-      q(6660),
+      q(6648),
       q(0),
       ],
    q(hijazi arabic) => [
-      q(0601),
+      q(0600),
       q(0),
       ],
    q(hijuk) => [
-      q(2768),
+      q(2760),
       q(0),
       ],
    q(hiligaynon) => [
@@ -34424,7 +34378,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(himarima) => [
-      q(2771),
+      q(2763),
       q(0),
       ],
    q(hindi) => [
@@ -34432,11 +34386,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hinduri) => [
-      q(2767),
+      q(2759),
       q(0),
       ],
    q(hinukh) => [
-      q(2528),
+      q(2520),
       q(0),
       ],
    q(hiri motu) => [
@@ -34448,31 +34402,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hitu) => [
-      q(2858),
+      q(2850),
       q(0),
       ],
    q(hiw) => [
-      q(2772),
+      q(2764),
       q(0),
       ],
    q(hixkaryana) => [
-      q(2773),
+      q(2765),
       q(0),
       ],
    q(hlai) => [
-      q(3921),
+      q(3911),
       q(0),
       ],
    q(hlepho phowa) => [
-      q(7658),
+      q(7643),
       q(0),
       ],
    q(hlersu) => [
-      q(2782),
+      q(2774),
       q(0),
       ],
    q(hmar) => [
-      q(2800),
+      q(2792),
       q(0),
       ],
    q(hmong) => [
@@ -34480,23 +34434,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hmong daw) => [
-      q(4654),
+      q(4642),
       q(0),
       ],
    q(hmong do) => [
-      q(2804),
+      q(2796),
       q(0),
       ],
    q(hmong don) => [
-      q(2790),
+      q(2782),
       q(0),
       ],
    q(hmong njua) => [
-      q(2813),
+      q(2805),
       q(0),
       ],
    q(hmong shua) => [
-      q(2807),
+      q(2799),
       q(0),
       ],
    q(hmong-mien languages) => [
@@ -34504,31 +34458,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hmwaveke) => [
-      q(4525),
+      q(4514),
       q(0),
       ],
    q(ho) => [
-      q(2820),
+      q(2812),
       q(0),
       ],
    q(ho chi minh city sign language) => [
-      q(2831),
+      q(2823),
       q(0),
       ],
    q(ho-chunk) => [
-      q(7150),
+      q(7137),
       q(0),
       ],
    q(hoava) => [
-      q(2818),
+      q(2810),
       q(0),
       ],
    q(hobyot) => [
-      q(2823),
+      q(2815),
       q(0),
       ],
    q(hoia hoia) => [
-      q(2758),
+      q(2750),
       q(0),
       ],
    q(hokan languages) => [
@@ -34536,219 +34490,219 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(holikachuk) => [
-      q(2824),
+      q(2816),
       q(0),
       ],
    q(holiya) => [
-      q(2835),
+      q(2827),
       q(0),
       ],
    q(holma) => [
-      q(2821),
+      q(2813),
       q(0),
       ],
    q(holoholo) => [
-      q(2828),
+      q(2820),
       q(0),
       ],
    q(holu) => [
-      q(2826),
+      q(2818),
       q(0),
       ],
    q(homa) => [
-      q(2827),
+      q(2819),
       q(0),
       ],
    q(honduras sign language) => [
-      q(2748),
+      q(2740),
       q(0),
       ],
    q(hone) => [
-      q(3157),
+      q(3150),
       q(0),
       ],
    q(hong kong sign language) => [
-      q(2778),
+      q(2770),
       q(0),
       ],
    q(honi) => [
-      q(2834),
+      q(2826),
       q(0),
       ],
    q(hopi) => [
-      q(2829),
+      q(2821),
       q(0),
       ],
    q(horned miao) => [
-      q(2843),
+      q(2835),
       q(0),
       ],
    q(horo) => [
-      q(2830),
+      q(2822),
       q(0),
       ],
    q(horom) => [
-      q(2822),
+      q(2814),
       q(0),
       ],
    q(horpa) => [
-      q(2292),
+      q(2285),
       q(0),
       ],
    q(hote) => [
-      q(2832),
+      q(2824),
       q(0),
       ],
    q(hoti) => [
-      q(2855),
+      q(2847),
       q(0),
       ],
    q(hovongan) => [
-      q(2833),
+      q(2825),
       q(0),
       ],
    q(hoyahoya) => [
-      q(2760),
+      q(2752),
       q(0),
       ],
    q(hozo) => [
-      q(2836),
+      q(2828),
       q(0),
       ],
    q(hpon) => [
-      q(2837),
+      q(2829),
       q(0),
       ],
    q(hrangkhol) => [
-      q(2839),
+      q(2831),
       q(0),
       ],
    q(hre) => [
-      q(2841),
+      q(2833),
       q(0),
       ],
    q(hruso) => [
-      q(2847),
+      q(2839),
       q(0),
       ],
    q(hu) => [
-      q(2872),
+      q(2864),
       q(0),
       ],
    q(huachipaeri) => [
-      q(2865),
+      q(2857),
       q(0),
       ],
    q(huallaga huanuco quechua) => [
-      q(5691),
+      q(5679),
       q(0),
       ],
    q(huamalies-dos de mayo huanuco quechua) => [
-      q(5714),
+      q(5702),
       q(0),
       ],
    q(huambisa) => [
-      q(2860),
+      q(2852),
       q(0),
       ],
    q(huarijio) => [
-      q(6993),
+      q(6980),
       q(0),
       ],
    q(huastec) => [
-      q(2875),
+      q(2867),
       q(0),
       ],
    q(huaulu) => [
-      q(2862),
+      q(2854),
       q(0),
       ],
    q(huautla mazatec) => [
-      q(4133),
+      q(4122),
       q(0),
       ],
    q(huaxcaleca nahuatl) => [
-      q(4885),
+      q(4873),
       q(0),
       ],
    q(huaylas ancash quechua) => [
-      q(5728),
+      q(5716),
       q(0),
       ],
    q(huaylla wanca quechua) => [
-      q(5723),
+      q(5711),
       q(0),
       ],
    q(huba) => [
-      q(2741),
+      q(2733),
       q(0),
       ],
    q(huehuetla tepehua) => [
-      q(6464),
+      q(6453),
       q(0),
       ],
    q(huichol) => [
-      q(2746),
+      q(2738),
       q(0),
       ],
    q(huilliche) => [
-      q(2866),
+      q(2858),
       q(0),
       ],
    q(huitepec mixtec) => [
-      q(4676),
+      q(4664),
       q(0),
       ],
    q(huizhou chinese) => [
-      q(1938),
+      q(1932),
       q(0),
       ],
    q(hukumina) => [
-      q(2879),
+      q(2871),
       q(0),
       ],
    q(hula) => [
-      q(2870),
+      q(2862),
       q(0),
       ],
    q(hulaula) => [
-      q(2881),
+      q(2873),
       q(0),
       ],
    q(huli) => [
-      q(2867),
+      q(2859),
       q(0),
       ],
    q(hulung) => [
-      q(2869),
+      q(2861),
       q(0),
       ],
    q(humburi senni songhay) => [
-      q(2786),
+      q(2778),
       q(0),
       ],
    q(humene) => [
-      q(2864),
+      q(2856),
       q(0),
       ],
    q(humla) => [
-      q(2876),
+      q(2868),
       q(0),
       ],
    q(hun-saare) => [
-      q(2177),
+      q(2171),
       q(0),
       ],
    q(hunde) => [
-      q(2776),
+      q(2768),
       q(0),
       ],
    q(hung) => [
-      q(2817),
+      q(2809),
       q(0),
       ],
    q(hungana) => [
-      q(2871),
+      q(2863),
       q(0),
       ],
    q(hungarian) => [
@@ -34756,27 +34710,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hungarian sign language) => [
-      q(2851),
+      q(2843),
       q(0),
       ],
    q(hungworo) => [
-      q(4746),
-      q(0),
+      q(4734),
+      q(1),
       ],
    q(hunjara-kaina ke) => [
-      q(2777),
+      q(2769),
       q(0),
       ],
    q(hunnic) => [
-      q(7363),
+      q(7350),
       q(0),
       ],
    q(hunsrik) => [
-      q(2849),
+      q(2841),
       q(0),
       ],
    q(hunzib) => [
-      q(2882),
+      q(2874),
       q(0),
       ],
    q(hupa) => [
@@ -34784,71 +34738,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hupde) => [
-      q(3164),
+      q(3157),
       q(0),
       ],
    q(hupla) => [
-      q(2732),
+      q(2724),
       q(0),
       ],
    q(hurrian) => [
-      q(7368),
+      q(7355),
       q(0),
       ],
    q(hutterisch) => [
-      q(2484),
+      q(2477),
       q(1),
       ],
    q(hutterite german) => [
-      q(2484),
+      q(2477),
       q(0),
       ],
    q(hwana) => [
-      q(2890),
+      q(2882),
       q(0),
       ],
    q(hya) => [
-      q(2891),
+      q(2883),
       q(0),
       ],
    q(hyam) => [
-      q(3049),
+      q(3041),
       q(0),
       ],
    q(i'saka) => [
-      q(3609),
+      q(3601),
       q(1),
       ],
    q(i-wak) => [
-      q(3036),
+      q(3028),
       q(0),
       ],
    q(iaai) => [
-      q(2892),
+      q(2884),
       q(0),
       ],
    q(iamalele) => [
-      q(7709),
+      q(7694),
       q(0),
       ],
    q(iapama) => [
-      q(2894),
+      q(2886),
       q(0),
       ],
    q(iatmul) => [
-      q(2893),
+      q(2885),
       q(0),
       ],
    q(iau) => [
-      q(6617),
+      q(6605),
       q(0),
       ],
    q(ibali teke) => [
-      q(6469),
+      q(6458),
       q(0),
       ],
    q(ibaloi) => [
-      q(2900),
+      q(2892),
       q(0),
       ],
    q(iban) => [
@@ -34856,35 +34810,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ibanag) => [
-      q(2899),
+      q(2891),
       q(0),
       ],
    q(ibani) => [
-      q(2905),
+      q(2897),
       q(0),
       ],
    q(ibatan) => [
-      q(3034),
+      q(3026),
       q(0),
       ],
    q(iberian) => [
-      q(7370),
+      q(7357),
       q(0),
       ],
    q(ibibio) => [
-      q(2896),
+      q(2888),
       q(0),
       ],
    q(ibino) => [
-      q(2902),
+      q(2894),
       q(0),
       ],
    q(ibu) => [
-      q(2904),
+      q(2896),
       q(0),
       ],
    q(ibuoro) => [
-      q(2903),
+      q(2895),
       q(0),
       ],
    q(icelandic) => [
@@ -34892,35 +34846,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(icelandic sign language) => [
-      q(2908),
+      q(2900),
       q(0),
       ],
    q(iceve-maci) => [
-      q(1120),
+      q(1116),
       q(0),
       ],
    q(ida'an) => [
-      q(1968),
+      q(1962),
       q(0),
       ],
    q(idakho-isukha-tiriki) => [
-      q(2910),
+      q(2902),
       q(0),
       ],
    q(idate) => [
-      q(2918),
+      q(2910),
       q(0),
       ],
    q(idere) => [
-      q(2914),
+      q(2906),
       q(0),
       ],
    q(idesa) => [
-      q(2917),
+      q(2909),
       q(0),
       ],
    q(idi) => [
-      q(2915),
+      q(2907),
       q(0),
       ],
    q(ido) => [
@@ -34928,35 +34882,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(idoma) => [
-      q(2919),
+      q(2911),
       q(0),
       ],
    q(idon) => [
-      q(2912),
+      q(2904),
       q(0),
       ],
    q(idu-mishmi) => [
-      q(1781),
+      q(1775),
       q(0),
       ],
    q(iduna) => [
-      q(7017),
+      q(7004),
       q(0),
       ],
    q(ife) => [
-      q(2922),
+      q(2914),
       q(0),
       ],
    q(ifo) => [
-      q(2923),
+      q(2915),
       q(0),
       ],
    q(igala) => [
-      q(2931),
+      q(2923),
       q(0),
       ],
    q(igana) => [
-      q(2930),
+      q(2922),
       q(0),
       ],
    q(igbo) => [
@@ -34964,39 +34918,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(igede) => [
-      q(2929),
+      q(2921),
       q(0),
       ],
    q(ignaciano) => [
-      q(2933),
+      q(2925),
       q(0),
       ],
    q(igo) => [
-      q(0685),
+      q(0683),
       q(0),
       ],
    q(iguta) => [
-      q(4744),
+      q(4732),
       q(0),
       ],
    q(igwe) => [
-      q(2936),
+      q(2928),
       q(0),
       ],
    q(iha) => [
-      q(2939),
+      q(2931),
       q(0),
       ],
    q(iha based pidgin) => [
-      q(2937),
+      q(2929),
       q(0),
       ],
    q(ihievbe) => [
-      q(2938),
+      q(2930),
       q(0),
       ],
    q(ija-zuba) => [
-      q(7019),
+      q(7006),
       q(0),
       ],
    q(ijo languages) => [
@@ -35004,83 +34958,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ik) => [
-      q(2957),
+      q(2950),
       q(0),
       ],
    q(ika) => [
-      q(2949),
+      q(2941),
       q(0),
       ],
    q(ikaranggal) => [
-      q(2953),
+      q(2945),
       q(0),
       ],
    q(ikizu) => [
-      q(2958),
+      q(2951),
       q(0),
       ],
    q(iko) => [
-      q(2948),
+      q(2940),
       q(0),
       ],
    q(ikobi) => [
-      q(4213),
+      q(4202),
       q(0),
       ],
    q(ikoma-nata-isenye) => [
-      q(5104),
+      q(5092),
       q(0),
       ],
    q(ikpeng) => [
-      q(6830),
+      q(6817),
       q(0),
       ],
    q(ikpeshi) => [
-      q(2952),
+      q(2944),
       q(0),
       ],
    q(ikposo) => [
-      q(3544),
+      q(3536),
       q(0),
       ],
    q(iku-gora-ankwa) => [
-      q(2955),
+      q(2948),
       q(0),
       ],
    q(ikulu) => [
-      q(2950),
+      q(2942),
       q(0),
       ],
    q(ikwere) => [
-      q(2956),
+      q(2949),
       q(0),
       ],
    q(ikwo) => [
-      q(2994),
+      q(2986),
       q(0),
       ],
    q(ila) => [
-      q(2960),
+      q(2953),
       q(0),
       ],
    q(ile ape) => [
-      q(2959),
+      q(2952),
       q(0),
       ],
    q(ili turki) => [
-      q(2962),
+      q(2955),
       q(0),
       ],
    q(ili'uun) => [
-      q(2966),
+      q(2959),
       q(0),
       ],
    q(ilianen manobo) => [
-      q(4145),
+      q(4134),
       q(0),
       ],
    q(illyrian) => [
-      q(7372),
+      q(7359),
       q(0),
       ],
    q(iloko) => [
@@ -35088,31 +35042,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ilongot) => [
-      q(2963),
+      q(2956),
       q(0),
       ],
    q(ilue) => [
-      q(2967),
+      q(2960),
       q(0),
       ],
    q(ilwana) => [
-      q(4386),
+      q(4375),
       q(0),
       ],
    q(imbabura highland quichua) => [
-      q(5715),
+      q(5703),
       q(0),
       ],
    q(imbongu) => [
-      q(2973),
-      q(0),
-      ],
-   q(imeraguen) => [
-      q(2969),
+      q(2965),
       q(0),
       ],
    q(imonda) => [
-      q(2972),
+      q(2964),
       q(0),
       ],
    q(imperial aramaic (700-300 bce)) => [
@@ -35120,19 +35070,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(imroing) => [
-      q(2974),
+      q(2966),
       q(0),
       ],
    q(inabaknon) => [
-      q(0582),
+      q(0581),
       q(0),
       ],
    q(inapang) => [
-      q(4724),
+      q(4712),
       q(0),
       ],
    q(inapari) => [
-      q(2984),
+      q(2976),
       q(0),
       ],
    q(inari sami) => [
@@ -35140,7 +35090,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(indian sign language) => [
-      q(2985),
+      q(2977),
       q(0),
       ],
    q(indic languages) => [
@@ -35156,7 +35106,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(indo-portuguese) => [
-      q(2911),
+      q(2903),
       q(0),
       ],
    q(indonesian) => [
@@ -35164,39 +35114,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(indonesian bajau) => [
-      q(1103),
+      q(1099),
       q(0),
       ],
    q(indonesian sign language) => [
-      q(2980),
+      q(2972),
       q(0),
       ],
    q(indri) => [
-      q(2916),
+      q(2908),
       q(0),
       ],
    q(indus kohistani) => [
-      q(4633),
+      q(4622),
       q(0),
       ],
    q(indus valley language) => [
-      q(7377),
+      q(7364),
       q(0),
       ],
    q(inebu one) => [
-      q(5227),
+      q(5216),
       q(0),
       ],
    q(ineseno) => [
-      q(2987),
+      q(2979),
       q(0),
       ],
    q(inga) => [
-      q(2977),
+      q(2969),
       q(0),
       ],
    q(ingrian) => [
-      q(3045),
+      q(3037),
       q(0),
       ],
    q(ingush) => [
@@ -35204,27 +35154,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(inlaod itneg) => [
-      q(3020),
+      q(3012),
       q(0),
       ],
    q(inoke-yate) => [
-      q(2983),
+      q(2975),
       q(0),
       ],
    q(inonhan) => [
-      q(4026),
+      q(4015),
       q(0),
       ],
    q(inor) => [
-      q(2988),
+      q(2980),
       q(0),
       ],
    q(inpui naga) => [
-      q(4938),
+      q(4926),
       q(0),
       ],
    q(interglossa) => [
-      q(2935),
+      q(2927),
       q(0),
       ],
    q(interlingua (international auxiliary language association)) => [
@@ -35236,15 +35186,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(international sign) => [
-      q(2965),
+      q(2958),
       q(0),
       ],
    q(intha) => [
-      q(2986),
+      q(2978),
       q(0),
       ],
    q(inuinnaqtun) => [
-      q(2954),
+      q(2947),
+      q(0),
+      ],
+   q(inuit sign language) => [
+      q(2946),
       q(0),
       ],
    q(inuktitut) => [
@@ -35256,31 +35210,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(iowa-oto) => [
-      q(2990),
+      q(2982),
       q(0),
       ],
    q(ipalapa amuzgo) => [
-      q(1020),
+      q(1016),
       q(0),
       ],
    q(ipiko) => [
-      q(2992),
+      q(2984),
       q(0),
       ],
    q(ipili) => [
-      q(2991),
+      q(2983),
       q(0),
       ],
    q(ipulo) => [
-      q(0904),
+      q(0902),
       q(0),
       ],
    q(iquito) => [
-      q(2993),
+      q(2985),
       q(0),
       ],
    q(ir) => [
-      q(3000),
+      q(2992),
       q(0),
       ],
    q(iranian languages) => [
@@ -35288,35 +35242,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(iranian persian) => [
-      q(5429),
+      q(5417),
       q(0),
       ],
    q(irantxe) => [
-      q(2999),
+      q(2991),
       q(0),
       ],
    q(iranun) => [
-      q(2964),
+      q(2957),
       q(0),
       ],
    q(iraqw) => [
-      q(2998),
+      q(2990),
       q(0),
       ],
    q(irarutu) => [
-      q(2996),
+      q(2988),
       q(0),
       ],
    q(iraya) => [
-      q(3003),
+      q(2995),
       q(0),
       ],
    q(iresim) => [
-      q(2995),
+      q(2987),
       q(0),
       ],
    q(irigwe) => [
-      q(2997),
+      q(2989),
       q(0),
       ],
    q(irish) => [
@@ -35324,7 +35278,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(irish sign language) => [
-      q(3008),
+      q(3000),
       q(0),
       ],
    q(irish, middle (900-1200)) => [
@@ -35340,99 +35294,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(irula) => [
-      q(3001),
+      q(2993),
       q(0),
       ],
    q(isabi) => [
-      q(3004),
+      q(2996),
       q(0),
       ],
    q(isanzu) => [
-      q(3013),
+      q(3005),
       q(0),
       ],
    q(isarog agta) => [
-      q(0664),
+      q(0662),
       q(0),
       ],
    q(isconahua) => [
-      q(3005),
+      q(2997),
       q(0),
       ],
    q(isebe) => [
-      q(2934),
+      q(2926),
       q(0),
       ],
    q(isekiri) => [
-      q(3026),
+      q(3018),
       q(0),
       ],
    q(ishkashimi) => [
-      q(3011),
+      q(3003),
       q(0),
       ],
    q(isinai) => [
-      q(2982),
+      q(2974),
       q(0),
       ],
    q(isirawa) => [
-      q(6229),
+      q(6217),
       q(0),
       ],
    q(island carib) => [
-      q(1850),
+      q(1844),
       q(0),
       ],
    q(islander creole english) => [
-      q(2909),
+      q(2901),
       q(0),
       ],
    q(isnag) => [
-      q(3006),
+      q(2998),
       q(0),
       ],
    q(isoko) => [
-      q(3014),
+      q(3006),
       q(0),
       ],
    q(israeli sign language) => [
-      q(3015),
+      q(3007),
       q(0),
       ],
    q(isthmus mixe) => [
-      q(4324),
+      q(4313),
       q(0),
       ],
    q(isthmus zapotec) => [
-      q(7828),
+      q(7811),
       q(0),
       ],
    q(isthmus-cosoleacaque nahuatl) => [
-      q(4880),
+      q(4868),
       q(0),
       ],
    q(isthmus-mecayapan nahuatl) => [
-      q(4891),
+      q(4879),
       q(0),
       ],
    q(isthmus-pajapan nahuatl) => [
-      q(4884),
+      q(4872),
       q(0),
       ],
    q(istriot) => [
-      q(3016),
+      q(3008),
       q(0),
       ],
    q(istro romanian) => [
-      q(5880),
+      q(5869),
       q(0),
       ],
    q(isu (fako division)) => [
-      q(6366),
+      q(6355),
       q(0),
       ],
    q(isu (menchum division)) => [
-      q(3017),
+      q(3009),
       q(0),
       ],
    q(italian) => [
@@ -35440,7 +35394,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(italian sign language) => [
-      q(3007),
+      q(2999),
       q(0),
       ],
    q(italic languages) => [
@@ -35448,223 +35402,223 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(itawit) => [
-      q(3028),
+      q(3020),
       q(0),
       ],
    q(itelmen) => [
-      q(3022),
+      q(3014),
       q(0),
       ],
    q(itene) => [
-      q(3019),
+      q(3011),
       q(0),
       ],
    q(iteri) => [
-      q(3025),
+      q(3017),
       q(0),
       ],
    q(itik) => [
-      q(3030),
+      q(3022),
       q(0),
       ],
    q(ito) => [
-      q(3029),
+      q(3021),
       q(0),
       ],
    q(itonama) => [
-      q(3024),
+      q(3016),
       q(0),
       ],
    q(itu mbon uzo) => [
-      q(3023),
+      q(3015),
       q(0),
       ],
    q(itundujia mixtec) => [
-      q(4167),
+      q(4156),
       q(0),
       ],
    q(itza) => [
-      q(3032),
+      q(3024),
       q(0),
       ],
    q(iu mien) => [
-      q(3033),
+      q(3025),
       q(0),
       ],
    q(ivatan) => [
-      q(3035),
+      q(3027),
       q(0),
       ],
    q(ivbie north-okpela-arhe) => [
-      q(0916),
+      q(0914),
       q(0),
       ],
    q(iwaidja) => [
-      q(2897),
+      q(2889),
       q(0),
       ],
    q(iwal) => [
-      q(3202),
+      q(3194),
       q(0),
       ],
    q(iwam) => [
-      q(3037),
+      q(3029),
       q(0),
       ],
    q(iwur) => [
-      q(3038),
+      q(3030),
       q(0),
       ],
    q(ixcatec) => [
-      q(3040),
+      q(3032),
       q(0),
       ],
    q(ixcatlan mazatec) => [
-      q(4712),
+      q(4700),
       q(0),
       ],
    q(ixil) => [
-      q(3041),
+      q(3033),
       q(0),
       ],
    q(ixtayutla mixtec) => [
-      q(7039),
+      q(7026),
       q(0),
       ],
    q(ixtenco otomi) => [
-      q(5343),
+      q(5332),
       q(0),
       ],
    q(iyayu) => [
-      q(3042),
+      q(3034),
       q(0),
       ],
    q(iyive) => [
-      q(6889),
+      q(6877),
       q(0),
       ],
    q(iyo) => [
-      q(4773),
+      q(4761),
       q(0),
       ],
    q(iyo'wujwa chorote) => [
-      q(1862),
+      q(1856),
       q(0),
       ],
    q(iyojwa'ja chorote) => [
-      q(1865),
+      q(1859),
       q(0),
       ],
    q(izere) => [
-      q(3046),
+      q(3038),
       q(0),
       ],
    q(izii) => [
-      q(3047),
+      q(3039),
       q(0),
       ],
    q(izon) => [
-      q(2942),
+      q(2934),
       q(0),
       ],
    q(izora) => [
-      q(1677),
+      q(1670),
       q(0),
       ],
    q(jabuti) => [
-      q(3074),
+      q(3066),
       q(0),
       ],
    q(jad) => [
-      q(3079),
+      q(3071),
       q(0),
       ],
    q(jadgali) => [
-      q(3080),
+      q(3072),
       q(0),
       ],
    q(jah hut) => [
-      q(3054),
+      q(3046),
       q(0),
       ],
    q(jahanka) => [
-      q(3051),
+      q(3043),
       q(0),
       ],
    q(jair awyu) => [
-      q(0984),
+      q(0980),
       q(0),
       ],
    q(jaitmatang) => [
-      q(7380),
+      q(7367),
       q(0),
       ],
    q(jakalteko) => [
-      q(3050),
+      q(3042),
       q(1),
       ],
    q(jakati) => [
-      q(3063),
+      q(3055),
       q(0),
       ],
    q(jakun) => [
-      q(3056),
+      q(3048),
       q(0),
       ],
    q(jalapa de diaz mazatec) => [
-      q(4129),
+      q(4118),
       q(0),
       ],
    q(jalkunan) => [
-      q(1582),
+      q(1577),
       q(0),
       ],
    q(jamaican country sign language) => [
-      q(3077),
+      q(3069),
       q(0),
       ],
    q(jamaican creole english) => [
-      q(3058),
+      q(3050),
       q(0),
       ],
    q(jamaican sign language) => [
-      q(3122),
+      q(3115),
       q(0),
       ],
    q(jamamadi) => [
-      q(3048),
+      q(3040),
       q(0),
       ],
    q(jambi malay) => [
-      q(3065),
+      q(3057),
       q(0),
       ],
    q(jamiltepec mixtec) => [
-      q(4677),
+      q(4665),
       q(0),
       ],
    q(jamsay dogon) => [
-      q(2072),
+      q(2066),
       q(0),
       ],
    q(jandai) => [
-      q(3059),
+      q(3051),
       q(0),
       ],
    q(jandavra) => [
-      q(3135),
+      q(3128),
       q(0),
       ],
    q(jangkang) => [
-      q(2074),
+      q(2068),
       q(0),
       ],
    q(jangshung) => [
-      q(3134),
+      q(3127),
       q(0),
       ],
    q(janji) => [
-      q(3137),
+      q(3130),
       q(0),
       ],
    q(japanese) => [
@@ -35676,39 +35630,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(japanese sign language) => [
-      q(3152),
+      q(3145),
       q(0),
       ],
    q(japreria) => [
-      q(3151),
+      q(3144),
       q(0),
       ],
    q(jaqaru) => [
-      q(3147),
+      q(3140),
       q(0),
       ],
    q(jara) => [
-      q(3053),
+      q(3045),
       q(0),
       ],
    q(jarai) => [
-      q(3148),
+      q(3141),
       q(0),
       ],
    q(jarawa (india)) => [
-      q(0806),
+      q(0804),
       q(0),
       ],
    q(jaru) => [
-      q(1988),
+      q(1982),
       q(0),
       ],
    q(jauja wanca quechua) => [
-      q(5744),
+      q(5732),
       q(0),
       ],
    q(jaunsari) => [
-      q(3140),
+      q(3133),
       q(0),
       ],
    q(javanese) => [
@@ -35716,111 +35670,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(javindo) => [
-      q(3171),
+      q(3164),
       q(0),
       ],
    q(jawe) => [
-      q(3067),
+      q(3059),
       q(0),
       ],
    q(jaya) => [
-      q(3176),
+      q(3169),
       q(0),
       ],
    q(jebero) => [
-      q(3082),
+      q(3074),
       q(0),
       ],
    q(jeh) => [
-      q(3085),
+      q(3077),
       q(0),
       ],
    q(jehai) => [
-      q(3097),
+      q(3089),
+      q(0),
+      ],
+   q(jejueo) => [
+      q(3107),
       q(0),
       ],
    q(jemez) => [
-      q(6663),
+      q(6651),
       q(0),
       ],
    q(jenaama bozo) => [
-      q(1623),
+      q(1616),
       q(0),
       ],
    q(jeng) => [
-      q(3084),
+      q(3076),
       q(0),
       ],
    q(jennu kurumba) => [
-      q(7547),
+      q(7533),
       q(0),
       ],
    q(jere) => [
-      q(3090),
+      q(3082),
       q(0),
       ],
    q(jeri kuo) => [
-      q(3087),
+      q(3079),
+      q(0),
+      ],
+   q(jerriais) => [
+      q(5052),
       q(0),
       ],
    q(jerung) => [
-      q(3083),
+      q(3075),
       q(0),
       ],
    q(jewish babylonian aramaic (ca. 200-1200 ce)) => [
-      q(6614),
+      q(6602),
       q(0),
       ],
    q(jewish palestinian aramaic) => [
-      q(3146),
+      q(3139),
       q(0),
       ],
    q(jhankot sign language) => [
-      q(3098),
+      q(3090),
       q(0),
       ],
    q(jiamao) => [
-      q(3109),
+      q(3101),
       q(0),
       ],
    q(jiarong) => [
-      q(3174),
+      q(3167),
       q(0),
       ],
    q(jiba) => [
-      q(3163),
+      q(3156),
       q(0),
       ],
    q(jibu) => [
-      q(3100),
+      q(3092),
       q(0),
       ],
    q(jicarilla apache) => [
-      q(0844),
+      q(0842),
       q(0),
       ],
    q(jiiddu) => [
-      q(3106),
+      q(3098),
       q(0),
       ],
    q(jilbe) => [
-      q(3103),
+      q(3095),
       q(0),
       ],
    q(jilim) => [
-      q(3107),
+      q(3099),
       q(0),
       ],
    q(jimi (cameroon)) => [
-      q(3108),
+      q(3100),
       q(0),
       ],
    q(jimi (nigeria)) => [
-      q(3127),
+      q(3120),
       q(0),
       ],
    q(jina) => [
-      q(3099),
+      q(3091),
       q(0),
       ],
    q(jingpho) => [
@@ -35828,75 +35790,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(jinyu chinese) => [
-      q(1759),
+      q(1753),
       q(0),
       ],
    q(jiongnai bunu) => [
-      q(5559),
+      q(5547),
       q(0),
       ],
    q(jirel) => [
-      q(3160),
+      q(3153),
       q(0),
       ],
    q(jiru) => [
-      q(3149),
+      q(3142),
       q(0),
       ],
    q(jita) => [
-      q(3111),
+      q(3103),
       q(0),
       ],
    q(jju) => [
-      q(3183),
+      q(3176),
       q(0),
       ],
    q(joba) => [
-      q(3141),
+      q(3134),
       q(0),
       ],
    q(jofotek-bromnya) => [
-      q(3073),
+      q(3065),
       q(0),
       ],
    q(jola-fonyi) => [
-      q(2210),
+      q(2204),
       q(0),
       ],
    q(jola-kasa) => [
-      q(1880),
+      q(1874),
       q(0),
       ],
    q(jonkor bourmataguil) => [
-      q(3092),
+      q(3084),
       q(0),
       ],
    q(jora) => [
-      q(3143),
+      q(3136),
       q(0),
       ],
    q(jordanian sign language) => [
-      q(3144),
+      q(3137),
       q(0),
       ],
    q(jorto) => [
-      q(3150),
+      q(3143),
       q(0),
       ],
    q(jowulu) => [
-      q(3145),
+      q(3138),
       q(0),
       ],
    q(ju) => [
-      q(3168),
+      q(3161),
       q(0),
       ],
    q(ju/'hoan) => [
-      q(3652),
+      q(3644),
       q(0),
       ],
    q(juang) => [
-      q(3162),
+      q(3155),
       q(0),
       ],
    q(judeo-arabic) => [
@@ -35904,23 +35866,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(judeo-berber) => [
-      q(3068),
+      q(3060),
       q(0),
       ],
    q(judeo-georgian) => [
-      q(3094),
+      q(3086),
       q(0),
       ],
    q(judeo-iraqi arabic) => [
-      q(7657),
+      q(7642),
       q(0),
       ],
    q(judeo-italian) => [
-      q(3021),
+      q(3013),
       q(0),
       ],
    q(judeo-moroccan arabic) => [
-      q(0721),
+      q(0719),
       q(0),
       ],
    q(judeo-persian) => [
@@ -35928,115 +35890,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(judeo-tat) => [
-      q(3081),
+      q(3073),
       q(0),
       ],
    q(judeo-tripolitanian arabic) => [
-      q(7780),
+      q(7763),
       q(0),
       ],
    q(judeo-tunisian arabic) => [
-      q(0720),
+      q(0718),
       q(0),
       ],
    q(judeo-yemeni arabic) => [
-      q(3175),
+      q(3168),
       q(0),
       ],
    q(jukun takum) => [
-      q(3075),
+      q(3067),
       q(0),
       ],
    q(juma) => [
-      q(3153),
+      q(3146),
       q(0),
       ],
    q(jumjum) => [
-      q(3161),
+      q(3154),
       q(0),
       ],
    q(jumla sign language) => [
-      q(3166),
+      q(3159),
       q(0),
       ],
    q(jumli) => [
-      q(3128),
+      q(3121),
       q(0),
       ],
    q(jungle inga) => [
-      q(2979),
+      q(2971),
       q(0),
       ],
    q(juquila mixe) => [
-      q(4674),
+      q(4662),
       q(0),
       ],
    q(jur modo) => [
-      q(1136),
+      q(1132),
       q(0),
       ],
    q(juray) => [
-      q(3170),
+      q(3163),
       q(0),
       ],
    q(jurchen) => [
-      q(3155),
+      q(3148),
       q(0),
       ],
    q(juruna) => [
-      q(3165),
+      q(3158),
       q(0),
       ],
    q(jutish) => [
-      q(3167),
+      q(3160),
       q(0),
       ],
    q(juwal) => [
-      q(4636),
+      q(4625),
       q(0),
       ],
    q(juxtlahuaca mixtec) => [
-      q(7032),
+      q(7019),
       q(0),
       ],
    q(jwira-pepesa) => [
-      q(3173),
+      q(3166),
       q(0),
       ],
    q(k'iche') => [
-      q(5692),
+      q(5680),
       q(0),
       ],
    q(kaamba) => [
-      q(7400),
+      q(7387),
       q(0),
       ],
    q(kaan) => [
-      q(3863),
+      q(3853),
       q(0),
       ],
    q(kaang chin) => [
-      q(1763),
+      q(1757),
       q(0),
       ],
    q(kaansa) => [
-      q(2573),
+      q(2566),
       q(0),
       ],
    q(kaapor) => [
-      q(6939),
+      q(6926),
       q(1),
       ],
    q(kaapor sign language) => [
-      q(6897),
+      q(6885),
       q(1),
       ],
    q(kaba) => [
-      q(3616),
+      q(3608),
       q(0),
       ],
    q(kabalai) => [
-      q(3679),
+      q(3671),
       q(0),
       ],
    q(kabardian) => [
@@ -36044,47 +36006,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kabatei) => [
-      q(7395),
+      q(7382),
       q(0),
       ],
    q(kabixi) => [
-      q(7318),
+      q(7305),
       q(0),
       ],
    q(kabiye) => [
-      q(3205),
+      q(3197),
       q(0),
       ],
    q(kabola) => [
-      q(3460),
+      q(3453),
       q(0),
       ],
    q(kabore one) => [
-      q(5283),
+      q(5272),
       q(0),
       ],
    q(kabras) => [
-      q(3950),
+      q(3939),
       q(0),
       ],
    q(kaburi) => [
-      q(6891),
+      q(6879),
       q(0),
       ],
    q(kabutra) => [
-      q(3210),
+      q(3202),
       q(0),
       ],
    q(kabuverdianu) => [
-      q(3264),
+      q(3256),
       q(0),
       ],
    q(kabwa) => [
-      q(1929),
+      q(1923),
       q(0),
       ],
    q(kabwari) => [
-      q(3238),
+      q(3230),
       q(0),
       ],
    q(kabyle) => [
@@ -36092,19 +36054,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kachama-ganjule) => [
-      q(3239),
+      q(3231),
       q(0),
       ],
    q(kachari) => [
-      q(7286),
+      q(7273),
       q(0),
       ],
    q(kachchi) => [
-      q(3307),
+      q(3299),
       q(0),
       ],
    q(kachi koli) => [
-      q(2540),
+      q(2532),
       q(0),
       ],
    q(kachin) => [
@@ -36112,195 +36074,191 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kacipo-balesi) => [
-      q(3514),
+      q(3507),
       q(0),
       ],
    q(kaco') => [
-      q(7391),
+      q(7378),
       q(0),
       ],
    q(kadai) => [
-      q(3780),
+      q(3770),
       q(0),
       ],
    q(kadar) => [
-      q(3273),
+      q(3265),
       q(0),
       ],
    q(kadaru) => [
-      q(3259),
+      q(3251),
       q(0),
       ],
    q(kadiweu) => [
-      q(3193),
+      q(3186),
       q(0),
       ],
    q(kadu) => [
-      q(7875),
+      q(7858),
       q(0),
       ],
    q(kaduo) => [
-      q(3642),
+      q(3634),
       q(0),
       ],
    q(kafa) => [
-      q(3207),
+      q(3199),
       q(0),
       ],
    q(kafoa) => [
-      q(3549),
+      q(3541),
       q(0),
       ],
    q(kagan kalagan) => [
-      q(3446),
+      q(3439),
       q(0),
       ],
    q(kagate) => [
-      q(6355),
+      q(6343),
       q(0),
       ],
    q(kagayanen) => [
-      q(1721),
+      q(1715),
       q(0),
       ],
    q(kagoma) => [
-      q(3253),
+      q(3245),
       q(0),
       ],
    q(kagoro) => [
-      q(7387),
+      q(7374),
       q(0),
       ],
    q(kagulu) => [
-      q(3417),
+      q(3410),
       q(0),
       ],
    q(kahe) => [
-      q(2775),
+      q(2767),
       q(0),
       ],
    q(kahua) => [
-      q(0675),
+      q(0673),
       q(0),
       ],
    q(kaian) => [
-      q(3235),
+      q(3227),
       q(0),
       ],
    q(kaibobo) => [
-      q(3778),
+      q(3768),
       q(0),
       ],
    q(kaidipang) => [
-      q(3791),
+      q(3781),
       q(0),
       ],
    q(kaiep) => [
-      q(3212),
+      q(3204),
       q(0),
       ],
    q(kaikadi) => [
-      q(3279),
+      q(3271),
+      q(0),
+      ],
+   q(kaikavian literary language) => [
+      q(3398),
       q(0),
       ],
    q(kaike) => [
-      q(3792),
+      q(3782),
       q(0),
       ],
    q(kaiku) => [
-      q(3425),
+      q(3418),
       q(0),
       ],
    q(kaimbe) => [
-      q(7290),
+      q(7277),
       q(0),
       ],
    q(kaimbulawa) => [
-      q(7873),
+      q(7856),
       q(0),
       ],
    q(kaingang) => [
-      q(3330),
+      q(3322),
       q(0),
       ],
    q(kairak) => [
-      q(1766),
+      q(1760),
       q(0),
       ],
    q(kairiru) => [
-      q(3726),
+      q(3717),
       q(0),
       ],
    q(kairui-midiki) => [
-      q(3583),
+      q(3575),
       q(0),
       ],
    q(kais) => [
-      q(3788),
+      q(3778),
       q(0),
       ],
    q(kaivi) => [
-      q(3220),
+      q(3212),
       q(0),
       ],
    q(kaiwa) => [
-      q(3325),
+      q(3317),
       q(0),
       ],
    q(kaiy) => [
-      q(6430),
+      q(6419),
       q(0),
       ],
    q(kajakse) => [
-      q(1765),
+      q(1759),
       q(0),
       ],
    q(kajali) => [
-      q(7390),
+      q(7377),
       q(0),
       ],
    q(kajaman) => [
-      q(3180),
+      q(3173),
       q(0),
       ],
    q(kakabai) => [
-      q(3560),
+      q(3552),
       q(0),
       ],
    q(kakabe) => [
-      q(3413),
+      q(3406),
       q(0),
       ],
    q(kakanda) => [
-      q(3409),
-      q(0),
-      ],
-   q(kakauhua) => [
-      q(3195),
+      q(3402),
       q(0),
       ],
    q(kaki ae) => [
-      q(6393),
-      q(0),
-      ],
-   q(kakihum) => [
-      q(3730),
+      q(6382),
       q(0),
       ],
    q(kako) => [
-      q(3418),
+      q(3411),
       q(0),
       ],
    q(kakwa) => [
-      q(3278),
+      q(3270),
       q(0),
       ],
    q(kala) => [
-      q(3227),
+      q(3219),
       q(1),
       ],
    q(kala lagaw ya) => [
-      q(4648),
+      q(4636),
       q(0),
       ],
    q(kalaallisut) => [
@@ -36308,79 +36266,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kalaamaya) => [
-      q(3958),
+      q(3947),
       q(0),
       ],
    q(kalabakan) => [
-      q(3678),
+      q(3670),
       q(0),
       ],
    q(kalabari) => [
-      q(2945),
+      q(2937),
       q(0),
       ],
    q(kalabra) => [
-      q(3801),
+      q(3791),
       q(0),
       ],
    q(kalagan) => [
-      q(3559),
+      q(3551),
       q(0),
       ],
    q(kalaktang monpa) => [
-      q(3414),
+      q(3407),
       q(0),
       ],
    q(kalam) => [
-      q(3467),
+      q(3460),
       q(0),
       ],
    q(kalami) => [
-      q(2689),
+      q(2681),
       q(0),
       ],
    q(kalamse) => [
-      q(3510),
+      q(3503),
       q(0),
       ],
    q(kalanadi) => [
-      q(7160),
+      q(7147),
       q(0),
       ],
    q(kalanga) => [
-      q(3226),
+      q(3218),
       q(0),
       ],
    q(kalao) => [
-      q(3459),
+      q(3452),
       q(0),
       ],
    q(kalapuya) => [
-      q(3762),
+      q(3752),
       q(0),
       ],
    q(kalarko) => [
-      q(3191),
+      q(3184),
       q(0),
       ],
    q(kalasha) => [
-      q(3453),
+      q(3446),
       q(0),
       ],
    q(kalenjin) => [
-      q(3448),
+      q(3441),
       q(0),
       ],
    q(kalispel-pend d'oreille) => [
-      q(2359),
+      q(2352),
       q(0),
       ],
    q(kalkoti) => [
-      q(7381),
+      q(7368),
       q(0),
       ],
    q(kalkutung) => [
-      q(3633),
+      q(3625),
       q(0),
       ],
    q(kalmyk) => [
@@ -36388,75 +36346,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kalo finnish romani) => [
-      q(5821),
+      q(5809),
       q(0),
       ],
    q(kalou) => [
-      q(7800),
+      q(7783),
       q(0),
       ],
    q(kaluli) => [
-      q(1081),
+      q(1077),
       q(0),
       ],
    q(kalumpang) => [
-      q(3443),
+      q(3436),
       q(0),
       ],
    q(kam) => [
-      q(3261),
+      q(3253),
       q(0),
       ],
    q(kamakan) => [
-      q(7023),
+      q(7010),
       q(0),
       ],
    q(kamang) => [
-      q(7215),
+      q(7202),
       q(0),
       ],
    q(kamano) => [
-      q(3206),
+      q(3198),
       q(0),
       ],
    q(kamantan) => [
-      q(3224),
+      q(3216),
       q(0),
       ],
    q(kamar) => [
-      q(3280),
+      q(3272),
       q(0),
       ],
    q(kamara) => [
-      q(3130),
+      q(3123),
       q(0),
       ],
    q(kamarian) => [
-      q(3799),
+      q(3789),
       q(0),
       ],
    q(kamaru) => [
-      q(3338),
+      q(3330),
       q(0),
       ],
    q(kamas) => [
-      q(7298),
+      q(7285),
       q(0),
       ],
    q(kamasa) => [
-      q(3450),
+      q(3443),
       q(0),
       ],
    q(kamasau) => [
-      q(3478),
+      q(3471),
       q(0),
       ],
    q(kamayo) => [
-      q(3761),
+      q(3751),
       q(0),
       ],
    q(kamayura) => [
-      q(3190),
+      q(3183),
       q(0),
       ],
    q(kamba) => [
@@ -36464,7 +36422,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kamba (brazil)) => [
-      q(7304),
+      q(7291),
       q(0),
       ],
    q(kamba (kenya)) => [
@@ -36472,175 +36430,175 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(kambaata) => [
-      q(3628),
+      q(3620),
       q(0),
       ],
    q(kambaira) => [
-      q(3775),
+      q(3765),
       q(0),
       ],
    q(kambera) => [
-      q(7316),
+      q(7303),
       q(0),
       ],
    q(kamberau) => [
-      q(3002),
+      q(2994),
       q(0),
       ],
    q(kambiwa) => [
-      q(7317),
+      q(7304),
       q(0),
       ],
    q(kami (nigeria)) => [
-      q(3468),
+      q(3461),
       q(0),
       ],
    q(kami (tanzania)) => [
-      q(3236),
+      q(3228),
       q(0),
       ],
    q(kamo) => [
-      q(3232),
+      q(3224),
       q(0),
       ],
    q(kamoro) => [
-      q(3331),
+      q(3323),
       q(0),
       ],
    q(kamta) => [
-      q(5814),
+      q(5802),
       q(1),
       ],
    q(kamu) => [
-      q(7438),
+      q(7425),
       q(0),
       ],
    q(kamula) => [
-      q(7406),
+      q(7393),
       q(0),
       ],
    q(kamviri) => [
-      q(7557),
+      q(7543),
       q(0),
       ],
    q(kamwe) => [
-      q(2765),
+      q(2757),
       q(0),
       ],
    q(kanakanabu) => [
-      q(7445),
+      q(7432),
       q(0),
       ],
    q(kanamari) => [
-      q(3497),
+      q(3490),
       q(0),
       ],
    q(kanan) => [
-      q(7879),
+      q(7862),
       q(0),
       ],
    q(kanashi) => [
-      q(7453),
+      q(7440),
       q(0),
       ],
    q(kanasi) => [
-      q(6180),
+      q(6168),
       q(0),
       ],
    q(kanauji) => [
-      q(1242),
+      q(1238),
       q(0),
       ],
    q(kandas) => [
-      q(3577),
+      q(3569),
       q(0),
       ],
    q(kandawo) => [
-      q(2415),
+      q(2408),
       q(0),
       ],
    q(kande) => [
-      q(3208),
+      q(3200),
       q(0),
       ],
    q(kanembu) => [
-      q(3201),
+      q(3193),
       q(0),
       ],
    q(kang) => [
-      q(3766),
+      q(3756),
       q(0),
       ],
    q(kanga) => [
-      q(3231),
+      q(3223),
       q(0),
       ],
    q(kangean) => [
-      q(3430),
+      q(3423),
       q(0),
       ],
    q(kanggape) => [
-      q(2932),
+      q(2924),
       q(0),
       ],
    q(kangjia) => [
-      q(3743),
+      q(3733),
       q(0),
       ],
    q(kango (bas-uele district)) => [
-      q(3651),
+      q(3643),
       q(0),
       ],
    q(kango (tshopo district)) => [
-      q(3800),
+      q(3790),
       q(0),
       ],
    q(kangri) => [
-      q(7452),
+      q(7439),
       q(0),
       ],
    q(kaniet) => [
-      q(3637),
+      q(3629),
       q(0),
       ],
    q(kanikkaran) => [
-      q(3285),
+      q(3277),
       q(0),
       ],
    q(kaningdon-nindem) => [
-      q(3255),
+      q(3247),
       q(0),
       ],
    q(kaningi) => [
-      q(3790),
+      q(3780),
       q(0),
       ],
    q(kaningra) => [
-      q(3502),
+      q(3495),
       q(0),
       ],
    q(kaninuwa) => [
-      q(7083),
+      q(7070),
       q(0),
       ],
    q(kanite) => [
-      q(3480),
+      q(3473),
       q(0),
       ],
    q(kanjari) => [
-      q(3309),
+      q(3301),
       q(0),
       ],
    q(kanjobal) => [
-      q(3386),
+      q(3378),
       q(1),
       ],
    q(kanju) => [
-      q(3194),
+      q(3187),
       q(0),
       ],
    q(kankanaey) => [
-      q(3490),
+      q(3483),
       q(0),
       ],
    q(kannada) => [
@@ -36648,31 +36606,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kannada kurumba) => [
-      q(3298),
+      q(3290),
       q(0),
       ],
    q(kanoe) => [
-      q(3739),
+      q(3729),
       q(0),
       ],
    q(kanowit-tanjong melanau) => [
-      q(3738),
+      q(3728),
       q(0),
       ],
    q(kansa) => [
-      q(3611),
+      q(3603),
       q(0),
       ],
    q(kantosi) => [
-      q(7399),
+      q(7386),
       q(0),
       ],
    q(kanu) => [
-      q(3359),
+      q(3351),
       q(0),
       ],
    q(kanufi) => [
-      q(3493),
+      q(3486),
       q(0),
       ],
    q(kanuri) => [
@@ -36680,19 +36638,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kanyok) => [
-      q(3509),
+      q(3502),
       q(0),
       ],
    q(kao) => [
-      q(3189),
+      q(3182),
       q(0),
       ],
    q(kaonde) => [
-      q(3568),
+      q(3560),
       q(0),
       ],
    q(kap) => [
-      q(7682),
+      q(7667),
       q(0),
       ],
    q(kapampangan) => [
@@ -36700,55 +36658,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(kapauri) => [
-      q(3351),
+      q(3343),
       q(1),
       ],
    q(kapin) => [
-      q(6412),
+      q(6401),
       q(0),
       ],
    q(kapinawa) => [
-      q(7477),
+      q(7464),
       q(0),
       ],
    q(kapingamarangi) => [
-      q(3536),
+      q(3528),
       q(0),
       ],
    q(kapori) => [
-      q(3351),
+      q(3343),
       q(0),
       ],
    q(kapriman) => [
-      q(2076),
+      q(2070),
       q(0),
       ],
    q(kaptiau) => [
-      q(3198),
+      q(3190),
       q(0),
       ],
    q(kapya) => [
-      q(3449),
+      q(3442),
       q(0),
       ],
    q(kaqchikel) => [
-      q(1653),
+      q(1646),
       q(0),
       ],
    q(kara (central african republic)) => [
-      q(3181),
+      q(3174),
       q(0),
       ],
    q(kara (korea)) => [
-      q(7956),
+      q(7939),
       q(0),
       ],
    q(kara (papua new guinea)) => [
-      q(3888),
+      q(3878),
       q(0),
       ],
    q(kara (tanzania)) => [
-      q(5778),
+      q(5766),
       q(0),
       ],
    q(kara-kalpak) => [
@@ -36760,79 +36718,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(karadjeri) => [
-      q(2428),
+      q(2421),
       q(0),
       ],
    q(karagas) => [
-      q(3373),
+      q(3365),
       q(0),
       ],
    q(karahawyana) => [
-      q(7388),
+      q(7375),
       q(0),
       ],
    q(karaim) => [
-      q(3257),
+      q(3249),
       q(0),
       ],
    q(karaja) => [
-      q(3539),
+      q(3531),
       q(0),
       ],
    q(karakhanid) => [
-      q(7486),
+      q(7473),
       q(0),
       ],
    q(karami) => [
-      q(7297),
+      q(7284),
       q(0),
       ],
    q(karamojong) => [
-      q(3250),
+      q(3242),
       q(0),
       ],
    q(karang) => [
-      q(3793),
+      q(3783),
       q(0),
       ],
    q(karanga) => [
-      q(3634),
+      q(3626),
       q(0),
       ],
    q(karankawa) => [
-      q(7878),
+      q(7861),
       q(0),
       ],
    q(karao) => [
-      q(3760),
+      q(3750),
       q(0),
       ],
    q(karas) => [
-      q(3336),
+      q(3328),
       q(0),
       ],
    q(karata) => [
-      q(3548),
+      q(3540),
       q(0),
       ],
    q(karawa) => [
-      q(7500),
+      q(7487),
       q(0),
       ],
    q(karbi) => [
-      q(4350),
+      q(4339),
       q(0),
       ],
    q(kare (central african republic)) => [
-      q(3203),
+      q(3195),
       q(0),
       ],
    q(kare (papua new guinea)) => [
-      q(3465),
+      q(3458),
       q(0),
       ],
    q(karekare) => [
-      q(3182),
+      q(3175),
       q(0),
       ],
    q(karelian) => [
@@ -36844,103 +36802,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(karenggapa) => [
-      q(2218),
+      q(2211),
       q(0),
       ],
    q(karey) => [
-      q(3754),
+      q(3744),
       q(0),
       ],
    q(kari) => [
-      q(3199),
+      q(3191),
       q(0),
       ],
    q(karingani) => [
-      q(3328),
+      q(3320),
       q(0),
       ],
    q(karipuna) => [
-      q(3327),
+      q(3319),
       q(0),
       ],
    q(karipuna creole french) => [
-      q(3481),
+      q(3474),
       q(0),
       ],
    q(kariri-xoco) => [
-      q(3798),
+      q(3788),
       q(0),
       ],
    q(karitiana) => [
-      q(3640),
+      q(3632),
       q(0),
       ],
    q(kariya) => [
-      q(3372),
+      q(3364),
       q(0),
       ],
    q(kariyarra) => [
-      q(7018),
+      q(7005),
       q(0),
       ],
    q(karkar-yuri) => [
-      q(7785),
+      q(7768),
       q(0),
       ],
    q(karkin) => [
-      q(3582),
+      q(3574),
       q(0),
       ],
    q(karko) => [
-      q(3423),
+      q(3416),
       q(0),
       ],
    q(karnai) => [
-      q(1062),
+      q(1058),
       q(0),
       ],
    q(karo (brazil)) => [
-      q(0880),
+      q(0878),
       q(0),
       ],
    q(karo (ethiopia)) => [
-      q(3732),
+      q(3722),
       q(0),
       ],
    q(karok) => [
-      q(3758),
+      q(3748),
       q(0),
       ],
    q(karon) => [
-      q(3598),
+      q(3590),
       q(0),
       ],
    q(karon dori) => [
-      q(3337),
+      q(3329),
       q(0),
       ],
    q(karore) => [
-      q(7403),
+      q(7390),
       q(0),
       ],
    q(karranga) => [
-      q(7496),
+      q(7483),
       q(0),
       ],
    q(karuwali) => [
-      q(5892),
+      q(5881),
       q(0),
       ],
    q(kasanga) => [
-      q(1691),
+      q(1685),
       q(0),
       ],
    q(kasem) => [
-      q(7510),
+      q(7496),
       q(0),
       ],
    q(kashaya) => [
-      q(3405),
+      q(3397),
       q(0),
       ],
    q(kashmiri) => [
@@ -36952,123 +36910,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kasiguranin) => [
-      q(3614),
+      q(3606),
       q(0),
       ],
    q(kaska) => [
-      q(3434),
+      q(3427),
       q(0),
       ],
    q(kaskean) => [
-      q(7963),
+      q(7946),
       q(0),
       ],
    q(kasseng) => [
-      q(3318),
+      q(3310),
       q(0),
       ],
    q(kasua) => [
-      q(3354),
+      q(3346),
       q(0),
       ],
    q(kataang) => [
-      q(3319),
+      q(3311),
       q(0),
       ],
    q(katabaga) => [
-      q(3643),
+      q(3635),
       q(0),
       ],
    q(katawixi) => [
-      q(7299),
+      q(7286),
       q(0),
       ],
    q(katbol) => [
-      q(6599),
+      q(6587),
       q(0),
       ],
    q(katcha-kadugli-miri) => [
-      q(7522),
+      q(7508),
       q(0),
       ],
    q(kate) => [
-      q(3466),
+      q(3459),
       q(0),
       ],
    q(kathoriya tharu) => [
-      q(6571),
+      q(6559),
       q(0),
       ],
    q(kathu) => [
-      q(7686),
+      q(7671),
       q(0),
       ],
    q(kati) => [
-      q(1457),
+      q(1452),
       q(0),
       ],
    q(katkari) => [
-      q(3310),
+      q(3302),
       q(0),
       ],
    q(katla) => [
-      q(3233),
+      q(3225),
       q(0),
       ],
    q(kato) => [
-      q(3649),
+      q(3641),
       q(0),
       ],
    q(katso) => [
-      q(3179),
+      q(3172),
       q(0),
       ],
    q(katua) => [
-      q(3627),
+      q(3619),
       q(0),
       ],
    q(katukina) => [
-      q(3188),
+      q(3181),
       q(0),
       ],
    q(kaulong) => [
-      q(5634),
+      q(5622),
       q(0),
       ],
    q(kaur) => [
-      q(7021),
+      q(7008),
       q(0),
       ],
    q(kaure) => [
-      q(1391),
+      q(1386),
       q(0),
       ],
    q(kaurna) => [
-      q(7884),
+      q(7867),
       q(0),
       ],
    q(kauwera) => [
-      q(7300),
+      q(7287),
       q(0),
       ],
    q(kavalan) => [
-      q(1770),
+      q(1764),
       q(0),
       ],
    q(kavet) => [
-      q(3596),
+      q(3588),
       q(0),
       ],
    q(kawacha) => [
-      q(3217),
+      q(3209),
       q(0),
       ],
    q(kawaiisu) => [
-      q(7302),
+      q(7289),
       q(0),
       ],
    q(kawe) => [
-      q(3317),
+      q(3309),
       q(0),
       ],
    q(kawi) => [
@@ -37076,67 +37034,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kaxarari) => [
-      q(3650),
+      q(3642),
       q(0),
       ],
    q(kaxuiana) => [
-      q(3192),
+      q(3185),
       q(0),
       ],
    q(kayabi) => [
-      q(3776),
+      q(3766),
       q(0),
       ],
    q(kayagar) => [
-      q(3770),
+      q(3760),
       q(0),
       ],
    q(kayan) => [
-      q(5414),
+      q(5402),
       q(0),
       ],
    q(kayan mahakam) => [
-      q(7303),
+      q(7290),
       q(0),
       ],
    q(kayan river kayan) => [
-      q(7393),
+      q(7380),
       q(0),
       ],
    q(kayapa kallahan) => [
-      q(3184),
+      q(3177),
       q(0),
       ],
    q(kayapo) => [
-      q(6838),
+      q(6826),
       q(0),
       ],
    q(kayardild) => [
-      q(2705),
+      q(2697),
       q(0),
       ],
    q(kayaw) => [
-      q(3685),
+      q(3677),
       q(0),
       ],
    q(kayeli) => [
-      q(3787),
+      q(3777),
       q(0),
       ],
    q(kayong) => [
-      q(3749),
+      q(3739),
       q(0),
       ],
    q(kayort) => [
-      q(3772),
+      q(3762),
       q(0),
       ],
    q(kaytetye) => [
-      q(2427),
+      q(2420),
       q(0),
       ],
    q(kayupulau) => [
-      q(3796),
+      q(3786),
       q(0),
       ],
    q(kazakh) => [
@@ -37144,323 +37102,323 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kazukuru) => [
-      q(3786),
+      q(3776),
       q(0),
       ],
    q(ke'o) => [
-      q(7574),
+      q(7560),
       q(0),
       ],
    q(keak) => [
-      q(3271),
+      q(3263),
       q(0),
       ],
    q(keapara) => [
-      q(3361),
+      q(3353),
       q(0),
       ],
    q(kedah malay) => [
-      q(4224),
+      q(4213),
       q(0),
       ],
    q(kedang) => [
-      q(3624),
+      q(3616),
       q(0),
       ],
    q(keder) => [
-      q(3262),
+      q(3254),
       q(0),
       ],
    q(kehu) => [
-      q(3346),
+      q(3338),
       q(0),
       ],
    q(kei) => [
-      q(3272),
+      q(3264),
       q(0),
       ],
    q(keiga) => [
-      q(3266),
+      q(3258),
       q(0),
       ],
    q(keijar) => [
-      q(3262),
+      q(3254),
       q(1),
       ],
    q(kein) => [
-      q(1313),
+      q(1309),
       q(0),
       ],
    q(keiyo) => [
-      q(2325),
+      q(2318),
       q(0),
       ],
    q(kekchi) => [
-      q(3274),
+      q(3266),
       q(0),
       ],
    q(kela (democratic republic of congo)) => [
-      q(3275),
+      q(3267),
       q(0),
       ],
    q(kela (papua new guinea)) => [
-      q(3227),
+      q(3219),
       q(0),
       ],
    q(kelabit) => [
-      q(3784),
+      q(3774),
       q(0),
       ],
    q(kele) => [
-      q(3265),
+      q(3257),
       q(0),
       ],
    q(kele (democratic republic of congo)) => [
-      q(3360),
+      q(3352),
       q(0),
       ],
    q(kele (papua new guinea)) => [
-      q(5914),
+      q(5903),
       q(0),
       ],
    q(kelengazxo bozo) => [
-      q(1642),
+      q(1635),
       q(0),
       ],
    q(keley-i kallahan) => [
-      q(2927),
+      q(2919),
       q(0),
       ],
    q(keliko) => [
-      q(3204),
+      q(3196),
       q(0),
       ],
    q(kelo) => [
-      q(7343),
+      q(7330),
       q(0),
       ],
    q(kelon) => [
-      q(3765),
+      q(3755),
       q(0),
       ],
    q(kemak) => [
-      q(3276),
+      q(3268),
       q(0),
       ],
    q(kembayan) => [
-      q(7344),
+      q(7331),
       q(0),
       ],
    q(kemberano) => [
-      q(1634),
+      q(1627),
       q(0),
       ],
    q(kembra) => [
-      q(7402),
+      q(7389),
       q(0),
       ],
    q(kemedzung) => [
-      q(2096),
+      q(2090),
       q(0),
       ],
    q(kemi sami) => [
-      q(6071),
+      q(6059),
       q(0),
       ],
    q(kemiehua) => [
-      q(3299),
+      q(3291),
       q(0),
       ],
    q(kemtuik) => [
-      q(3479),
+      q(3472),
       q(0),
       ],
    q(kenaboi) => [
-      q(7313),
+      q(7300),
       q(0),
       ],
    q(kenati) => [
-      q(2422),
+      q(2415),
       q(0),
       ],
    q(kendayan) => [
-      q(3508),
+      q(3501),
       q(0),
       ],
    q(kendeje) => [
-      q(3440),
+      q(3433),
       q(0),
       ],
    q(kendem) => [
-      q(3686),
+      q(3678),
       q(0),
       ],
    q(kenga) => [
-      q(3767),
+      q(3757),
       q(0),
       ],
    q(keningau murut) => [
-      q(3733),
+      q(3723),
       q(0),
       ],
    q(keninjal) => [
-      q(3496),
+      q(3489),
       q(0),
       ],
    q(kensiu) => [
-      q(3503),
+      q(3496),
       q(0),
       ],
    q(kenswei nsei) => [
-      q(4796),
+      q(4784),
       q(0),
       ],
    q(kenyan sign language) => [
-      q(7389),
+      q(7376),
       q(0),
       ],
    q(kenyang) => [
-      q(3277),
+      q(3269),
       q(0),
       ],
    q(kenyi) => [
-      q(3953),
+      q(3942),
       q(0),
       ],
    q(kenzi) => [
-      q(7457),
+      q(7444),
       q(0),
       ],
    q(keoru-ahia) => [
-      q(7349),
+      q(7336),
       q(0),
       ],
    q(kepkiriwat) => [
-      q(3543),
+      q(3535),
       q(0),
       ],
    q(kepo') => [
-      q(3662),
+      q(3654),
       q(0),
       ],
    q(kera) => [
-      q(3281),
+      q(3273),
       q(0),
       ],
    q(kerak) => [
-      q(2759),
+      q(2751),
       q(0),
       ],
    q(kereho) => [
-      q(7385),
+      q(7372),
       q(0),
       ],
    q(kerek) => [
-      q(3589),
+      q(3581),
       q(0),
       ],
    q(kerewe) => [
-      q(3267),
+      q(3259),
       q(0),
       ],
    q(kerewo) => [
-      q(3750),
+      q(3740),
       q(0),
       ],
    q(kerinci) => [
-      q(3691),
+      q(3683),
       q(0),
       ],
    q(kesawai) => [
-      q(7347),
+      q(7334),
       q(0),
       ],
    q(ket) => [
-      q(3283),
+      q(3275),
       q(0),
       ],
    q(ketangalan) => [
-      q(3178),
+      q(3171),
       q(0),
       ],
    q(kete) => [
-      q(3237),
+      q(3229),
       q(0),
       ],
    q(ketengban) => [
-      q(7524),
+      q(7510),
       q(0),
       ],
    q(ketum) => [
-      q(3646),
+      q(3638),
       q(0),
       ],
    q(keyagana) => [
-      q(3757),
+      q(3747),
       q(0),
       ],
    q(kgalagadi) => [
-      q(7401),
+      q(7388),
       q(0),
       ],
    q(khakas) => [
-      q(3392),
+      q(3384),
       q(0),
       ],
    q(khalaj) => [
-      q(3390),
+      q(3382),
       q(0),
       ],
    q(khaling) => [
-      q(3452),
+      q(3445),
       q(0),
       ],
    q(khamba) => [
-      q(3196),
+      q(3188),
       q(0),
       ],
    q(khams tibetan) => [
-      q(3345),
+      q(3337),
       q(0),
       ],
    q(khamti) => [
-      q(3355),
+      q(3347),
       q(0),
       ],
    q(khamyang) => [
-      q(3621),
+      q(3613),
       q(0),
       ],
    q(khana) => [
-      q(5222),
+      q(5211),
       q(0),
       ],
    q(khandesi) => [
-      q(3350),
+      q(3342),
       q(0),
       ],
    q(khang) => [
-      q(3397),
+      q(3389),
       q(0),
       ],
    q(khanty) => [
-      q(3216),
+      q(3208),
       q(0),
       ],
    q(khao) => [
-      q(7294),
+      q(7281),
       q(0),
       ],
    q(kharam naga) => [
-      q(3312),
+      q(3304),
       q(0),
       ],
    q(kharia) => [
-      q(3353),
+      q(3345),
       q(0),
       ],
    q(kharia thar) => [
-      q(3625),
+      q(3617),
       q(0),
       ],
    q(khasi) => [
@@ -37468,67 +37426,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(khayo) => [
-      q(3960),
+      q(3949),
       q(0),
       ],
    q(khazar) => [
-      q(7886),
+      q(7869),
       q(0),
       ],
    q(khe) => [
-      q(3561),
+      q(3553),
       q(0),
       ],
    q(khehek) => [
-      q(6596),
+      q(6584),
       q(0),
       ],
    q(khengkha) => [
-      q(7386),
+      q(7373),
       q(0),
       ],
    q(khetrani) => [
-      q(7365),
+      q(7352),
       q(0),
       ],
    q(khezha naga) => [
-      q(4940),
+      q(4928),
       q(0),
       ],
    q(khiamniungan naga) => [
-      q(3382),
+      q(3374),
       q(0),
       ],
    q(khinalugh) => [
-      q(3394),
+      q(3386),
       q(0),
       ],
    q(khirwar) => [
-      q(3723),
+      q(3714),
       q(0),
       ],
    q(khisa) => [
-      q(3567),
+      q(3559),
       q(0),
       ],
    q(khlor) => [
-      q(3980),
+      q(3969),
       q(0),
       ],
    q(khlula) => [
-      q(7681),
+      q(7666),
       q(0),
       ],
    q(khmu) => [
-      q(3391),
+      q(3383),
       q(0),
       ],
    q(kho'ini) => [
-      q(7383),
+      q(7370),
+      q(0),
+      ],
+   q(khoekhoe) => [
+      q(4731),
       q(0),
       ],
    q(khoibu naga) => [
-      q(4934),
+      q(4922),
       q(0),
       ],
    q(khoisan languages) => [
@@ -37536,19 +37498,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kholok) => [
-      q(3629),
+      q(3621),
       q(0),
       ],
    q(khonso) => [
-      q(3728),
+      q(3719),
       q(1),
       ],
    q(khorasani turkish) => [
-      q(3485),
+      q(3478),
       q(0),
       ],
    q(khorezmian) => [
-      q(7877),
+      q(7860),
       q(0),
       ],
    q(khotanese) => [
@@ -37556,55 +37518,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(khowar) => [
-      q(3358),
+      q(3350),
       q(0),
       ],
    q(khua) => [
-      q(7369),
+      q(7356),
       q(0),
       ],
    q(khuen) => [
-      q(3344),
+      q(3336),
       q(0),
       ],
    q(khumi chin) => [
-      q(1806),
+      q(1800),
       q(0),
       ],
    q(khun) => [
-      q(3416),
+      q(3409),
       q(0),
       ],
    q(khunsari) => [
-      q(3302),
+      q(3294),
       q(0),
       ],
    q(khvarshi) => [
-      q(3357),
+      q(3349),
       q(0),
       ],
    q(kibet) => [
-      q(3366),
+      q(3358),
       q(0),
       ],
    q(kibiri) => [
-      q(5608),
+      q(5596),
       q(0),
       ],
    q(kickapoo) => [
-      q(3364),
+      q(3356),
       q(0),
       ],
    q(kiembu) => [
-      q(2223),
+      q(2216),
       q(1),
       ],
    q(kigiryama) => [
-      q(5170),
+      q(5159),
       q(1),
       ],
    q(kikai) => [
-      q(3783),
+      q(3773),
       q(0),
       ],
    q(kikuyu) => [
@@ -37612,43 +37574,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kildin sami) => [
-      q(6068),
+      q(6056),
       q(0),
       ],
    q(kilivila) => [
-      q(3371),
+      q(3363),
       q(0),
       ],
    q(kiliwa) => [
-      q(3436),
+      q(3429),
       q(0),
       ],
    q(kilmeri) => [
-      q(3369),
+      q(3361),
       q(0),
       ],
    q(kim) => [
-      q(3362),
+      q(3354),
       q(0),
       ],
    q(kim mun) => [
-      q(4336),
+      q(4325),
       q(0),
       ],
    q(kimaama) => [
-      q(3368),
+      q(3360),
       q(0),
       ],
    q(kimaghima) => [
-      q(3368),
+      q(3360),
       q(1),
       ],
    q(kimaragang) => [
-      q(3572),
+      q(3564),
       q(0),
       ],
    q(kimbu) => [
-      q(3380),
+      q(3372),
       q(0),
       ],
    q(kimbundu) => [
@@ -37656,43 +37618,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kimki) => [
-      q(5931),
+      q(5920),
       q(0),
       ],
    q(kimre) => [
-      q(3570),
+      q(3562),
       q(0),
       ],
    q(kinabalian) => [
-      q(1683),
+      q(1677),
       q(0),
       ],
    q(kinalakna) => [
-      q(3230),
+      q(3222),
       q(0),
       ],
    q(kinamiging manobo) => [
-      q(4375),
+      q(4364),
       q(0),
       ],
    q(kinaray-a) => [
-      q(3588),
+      q(3580),
       q(0),
       ],
    q(kinga) => [
-      q(7854),
+      q(7837),
       q(0),
       ],
    q(kinnauri) => [
-      q(3300),
+      q(3292),
       q(0),
       ],
    q(kintaq) => [
-      q(3501),
+      q(3494),
       q(0),
       ],
    q(kinuku) => [
-      q(3412),
+      q(3405),
       q(0),
       ],
    q(kinyarwanda) => [
@@ -37700,39 +37662,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kioko) => [
-      q(6879),
+      q(6867),
       q(0),
       ],
    q(kiong) => [
-      q(3421),
+      q(3414),
       q(0),
       ],
    q(kiorr) => [
-      q(7394),
+      q(7381),
       q(0),
       ],
    q(kiowa) => [
-      q(3374),
+      q(3366),
       q(0),
       ],
    q(kiowa apache) => [
-      q(0845),
+      q(0843),
       q(0),
       ],
    q(kipfokomo) => [
-      q(5485),
+      q(5474),
       q(1),
       ],
    q(kipsigis) => [
-      q(6002),
+      q(5991),
       q(0),
       ],
    q(kiput) => [
-      q(3759),
+      q(3749),
       q(0),
       ],
    q(kir-balar) => [
-      q(3426),
+      q(3419),
       q(0),
       ],
    q(kirdki) => [
@@ -37740,7 +37702,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(3),
       ],
    q(kire) => [
-      q(2480),
+      q(2473),
       q(0),
       ],
    q(kirghiz) => [
@@ -37748,11 +37710,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kirike) => [
-      q(5248),
+      q(5237),
       q(0),
       ],
    q(kirikiri) => [
-      q(3383),
+      q(3375),
       q(0),
       ],
    q(kirmanjki) => [
@@ -37760,7 +37722,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(4),
       ],
    q(kirmanjki (individual language)) => [
-      q(3379),
+      q(3371),
       q(0),
       ],
    q(kirmanjki (macrolanguage)) => [
@@ -37768,91 +37730,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(7),
       ],
    q(kirya-konzel) => [
-      q(2357),
+      q(2350),
       q(0),
       ],
    q(kis) => [
-      q(3377),
+      q(3369),
       q(0),
       ],
    q(kisa) => [
-      q(3962),
+      q(3951),
       q(0),
       ],
    q(kisan) => [
-      q(7376),
+      q(7363),
       q(0),
       ],
    q(kisankasa) => [
-      q(3562),
+      q(3554),
       q(0),
       ],
    q(kisar) => [
-      q(3389),
+      q(3381),
       q(0),
       ],
    q(kisi) => [
-      q(3384),
+      q(3376),
       q(0),
       ],
    q(kistane) => [
-      q(2633),
+      q(2626),
       q(0),
       ],
    q(kiswahili) => [
-      q(6315),
+      q(6303),
       q(1),
       ],
    q(kita maninkakan) => [
-      q(4644),
+      q(4632),
       q(0),
       ],
    q(kitan) => [
-      q(7883),
+      q(7866),
       q(0),
       ],
    q(kitharaka) => [
-      q(6513),
+      q(6502),
       q(1),
       ],
    q(kitja) => [
-      q(2521),
+      q(2513),
       q(0),
       ],
    q(kitsai) => [
-      q(3370),
+      q(3362),
       q(0),
       ],
    q(kituba (congo)) => [
-      q(4374),
+      q(4363),
       q(0),
       ],
    q(kituba (democratic republic of congo)) => [
-      q(3647),
+      q(3639),
       q(0),
       ],
    q(kiunum) => [
-      q(7118),
+      q(7105),
       q(0),
       ],
    q(kiwilwana) => [
-      q(4386),
+      q(4375),
       q(1),
       ],
    q(kla-dan) => [
-      q(3855),
+      q(3845),
       q(0),
       ],
    q(klamath-modoc) => [
-      q(3435),
+      q(3428),
       q(0),
       ],
    q(klao) => [
-      q(3455),
+      q(3448),
       q(0),
       ],
    q(klias river kadazan) => [
-      q(3574),
+      q(3566),
       q(0),
       ],
    q(klingon) => [
@@ -37860,227 +37822,227 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(knaanic) => [
-      q(1939),
+      q(1933),
       q(0),
       ],
    q(ko) => [
-      q(2393),
+      q(2386),
       q(0),
       ],
    q(koalib) => [
-      q(3363),
+      q(3355),
       q(0),
       ],
    q(koasati) => [
-      q(1769),
+      q(1763),
       q(0),
       ],
    q(koba) => [
-      q(3534),
+      q(3526),
       q(0),
       ],
    q(kobiana) => [
-      q(3225),
+      q(3217),
       q(0),
       ],
    q(kobol) => [
-      q(3335),
+      q(3327),
       q(0),
       ],
    q(kobon) => [
-      q(3551),
+      q(3543),
       q(0),
       ],
    q(koch) => [
-      q(3256),
+      q(3248),
       q(0),
       ],
    q(kochila tharu) => [
-      q(6518),
+      q(6507),
       q(0),
       ],
    q(koda) => [
-      q(1710),
+      q(1704),
       q(0),
       ],
    q(kodaku) => [
-      q(3626),
+      q(3618),
       q(0),
       ],
    q(kodava) => [
-      q(3290),
+      q(3282),
       q(0),
       ],
    q(kodeoha) => [
-      q(7024),
+      q(7011),
       q(0),
       ],
    q(kodi) => [
-      q(3513),
+      q(3506),
       q(0),
       ],
    q(kodia) => [
-      q(3715),
+      q(3707),
       q(0),
       ],
    q(koenoem) => [
-      q(3234),
+      q(3226),
       q(0),
       ],
    q(kofa) => [
-      q(3615),
+      q(3607),
       q(0),
       ],
    q(kofei) => [
-      q(3538),
+      q(3530),
       q(0),
       ],
    q(kofyar) => [
-      q(3711),
+      q(3703),
       q(0),
       ],
    q(kogi) => [
-      q(3516),
+      q(3509),
       q(1),
       ],
    q(koguryo) => [
-      q(7876),
+      q(7859),
       q(0),
       ],
    q(kohin) => [
-      q(3432),
+      q(3425),
       q(0),
       ],
    q(kohistani shina) => [
-      q(5504),
+      q(5493),
       q(0),
       ],
    q(koho) => [
-      q(3542),
+      q(3534),
       q(0),
       ],
    q(kohumono) => [
-      q(1085),
+      q(1081),
       q(0),
       ],
    q(koi) => [
-      q(3428),
+      q(3421),
       q(0),
       ],
    q(koibal) => [
-      q(7874),
+      q(7857),
       q(0),
       ],
    q(koireng) => [
-      q(4936),
+      q(4924),
       q(0),
       ],
    q(koitabu) => [
-      q(3563),
+      q(3555),
       q(0),
       ],
    q(koiwat) => [
-      q(3744),
+      q(3734),
       q(0),
       ],
    q(kok borok) => [
-      q(6713),
+      q(6701),
       q(0),
       ],
    q(kok-nar) => [
-      q(2547),
+      q(2539),
       q(0),
       ],
    q(kokata) => [
-      q(3630),
+      q(3622),
       q(0),
       ],
    q(koke) => [
-      q(3525),
+      q(3517),
       q(0),
       ],
    q(koki naga) => [
-      q(5158),
+      q(5146),
       q(0),
       ],
    q(koko babangk) => [
-      q(5239),
+      q(5228),
       q(0),
       ],
    q(kokoda) => [
-      q(7459),
+      q(7446),
       q(0),
       ],
    q(kokola) => [
-      q(3789),
+      q(3779),
       q(0),
       ],
    q(kokota) => [
-      q(3419),
+      q(3412),
       q(0),
       ],
    q(kol) => [
-      q(2243),
+      q(2236),
       q(1),
       ],
    q(kol (bangladesh)) => [
-      q(2243),
+      q(2236),
       q(0),
       ],
    q(kol (cameroon)) => [
-      q(1230),
+      q(1226),
       q(0),
       ],
    q(kol (papua new guinea)) => [
-      q(3520),
+      q(3512),
       q(0),
       ],
    q(kola) => [
-      q(3695),
+      q(3687),
       q(0),
       ],
    q(kolbila) => [
-      q(3437),
+      q(3430),
       q(0),
       ],
    q(kolibugan subanon) => [
-      q(6094),
+      q(6082),
       q(0),
       ],
    q(kolsch) => [
-      q(3608),
+      q(3600),
       q(0),
       ],
    q(koluwawa) => [
-      q(3458),
+      q(3451),
       q(0),
       ],
    q(kom (cameroon)) => [
-      q(1268),
+      q(1264),
       q(0),
       ],
    q(kom (india)) => [
-      q(3472),
+      q(3465),
       q(0),
       ],
    q(koma) => [
-      q(3484),
+      q(3477),
       q(0),
       ],
    q(komba) => [
-      q(3535),
+      q(3527),
       q(0),
       ],
    q(kombai) => [
-      q(6847),
+      q(6835),
       q(0),
       ],
    q(kombio) => [
-      q(7310),
+      q(7297),
       q(0),
       ],
    q(komering) => [
-      q(3320),
+      q(3312),
       q(0),
       ],
    q(komi) => [
@@ -38088,59 +38050,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(komi-permyak) => [
-      q(3518),
+      q(3511),
       q(0),
       ],
    q(komi-zyrian) => [
-      q(3550),
+      q(3542),
       q(0),
       ],
    q(kominimung) => [
-      q(7461),
+      q(7448),
       q(0),
       ],
    q(komo (democratic republic of congo)) => [
-      q(3482),
+      q(3475),
       q(0),
       ],
    q(komo (sudan)) => [
-      q(7463),
+      q(7450),
       q(0),
       ],
    q(komodo) => [
-      q(3681),
+      q(3673),
       q(0),
       ],
    q(kompane) => [
-      q(3689),
+      q(3681),
       q(0),
       ],
    q(komyandaret) => [
-      q(3797),
+      q(3787),
       q(0),
       ],
    q(kon keu) => [
-      q(3422),
+      q(3415),
       q(0),
       ],
    q(konabere) => [
-      q(1055),
+      q(1051),
       q(1),
       ],
    q(konai) => [
-      q(3747),
+      q(3737),
       q(0),
       ],
    q(konda) => [
-      q(3489),
+      q(3482),
       q(0),
       ],
    q(konda-dora) => [
-      q(3292),
+      q(3284),
       q(0),
       ],
    q(koneraw) => [
-      q(3260),
+      q(3252),
       q(0),
       ],
    q(kongo) => [
@@ -38152,7 +38114,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(konkani (individual language)) => [
-      q(3498),
+      q(3491),
       q(0),
       ],
    q(konkani (macrolanguage)) => [
@@ -38160,83 +38122,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(konkomba) => [
-      q(7464),
+      q(7451),
       q(0),
       ],
    q(konni) => [
-      q(3461),
+      q(3454),
       q(0),
       ],
    q(kono (guinea)) => [
-      q(3505),
+      q(3498),
       q(0),
       ],
    q(kono (nigeria)) => [
-      q(3445),
+      q(3438),
       q(0),
       ],
    q(kono (sierra leone)) => [
-      q(3499),
+      q(3492),
       q(0),
       ],
    q(konomala) => [
-      q(3511),
+      q(3504),
       q(0),
       ],
    q(konongo) => [
-      q(3241),
+      q(3233),
       q(0),
       ],
    q(konso) => [
-      q(3728),
+      q(3719),
       q(0),
       ],
    q(konyak naga) => [
-      q(4755),
+      q(4743),
       q(0),
       ],
    q(konyanka maninka) => [
-      q(4372),
+      q(4361),
       q(0),
       ],
    q(konzo) => [
-      q(3521),
+      q(3513),
       q(0),
       ],
    q(koongo) => [
-      q(3492),
+      q(3485),
       q(0),
       ],
    q(koonzime) => [
-      q(5356),
+      q(5344),
       q(0),
       ],
    q(koorete) => [
-      q(3579),
+      q(3571),
       q(0),
       ],
    q(kopar) => [
-      q(7466),
+      q(7453),
       q(0),
       ],
    q(kopkaka) => [
-      q(5299),
+      q(5288),
       q(0),
       ],
    q(korafe-yegha) => [
-      q(3546),
+      q(3538),
       q(0),
       ],
    q(korak) => [
-      q(3530),
+      q(3522),
       q(0),
       ],
    q(korana) => [
-      q(3580),
+      q(3572),
       q(0),
       ],
    q(korandje) => [
-      q(3240),
+      q(3232),
       q(0),
       ],
    q(kordofanian languages) => [
@@ -38248,123 +38210,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(korean sign language) => [
-      q(3684),
+      q(3676),
       q(0),
       ],
    q(koreguaje) => [
-      q(1818),
+      q(1812),
       q(0),
       ],
    q(koresh-e rostam) => [
-      q(5240),
+      q(5229),
       q(0),
       ],
    q(korku) => [
-      q(3306),
+      q(3298),
       q(0),
       ],
    q(korlai creole portuguese) => [
-      q(7025),
+      q(7012),
       q(0),
       ],
    q(koro (cote d'ivoire)) => [
-      q(3304),
+      q(3296),
       q(0),
       ],
    q(koro (india)) => [
-      q(3119),
+      q(3112),
       q(0),
       ],
    q(koro (papua new guinea)) => [
-      q(3742),
+      q(3732),
       q(0),
       ],
    q(koro (vanuatu)) => [
-      q(3585),
+      q(3577),
       q(0),
       ],
    q(koro wachi) => [
-      q(1422),
+      q(1417),
       q(0),
       ],
    q(koromfe) => [
-      q(3315),
+      q(3307),
       q(0),
       ],
    q(koromira) => [
-      q(3564),
+      q(3556),
       q(0),
       ],
    q(koronadal blaan) => [
-      q(1393),
+      q(1388),
       q(0),
       ],
    q(koroni) => [
-      q(7396),
+      q(7383),
       q(0),
       ],
    q(korop) => [
-      q(3592),
+      q(3584),
       q(0),
       ],
    q(koropo) => [
-      q(7576),
+      q(7562),
       q(0),
       ],
    q(koroshi) => [
-      q(3638),
+      q(3630),
       q(0),
       ],
    q(korowai) => [
-      q(3343),
+      q(3335),
       q(0),
       ],
    q(korra koraga) => [
-      q(3293),
+      q(3285),
       q(0),
       ],
    q(korubo) => [
-      q(7467),
+      q(7454),
       q(0),
       ],
    q(korupun-sela) => [
-      q(3545),
+      q(3537),
       q(0),
       ],
    q(korur) => [
-      q(0950),
+      q(0946),
       q(1),
       ],
    q(korwa) => [
-      q(3305),
+      q(3297),
       q(0),
       ],
    q(koryak) => [
-      q(3553),
+      q(3545),
       q(0),
       ],
    q(kosadle) => [
-      q(3376),
+      q(3368),
       q(0),
       ],
    q(kosare) => [
-      q(3376),
+      q(3368),
       q(1),
       ],
    q(kosarek yale) => [
-      q(3420),
+      q(3413),
       q(0),
       ],
    q(kosena) => [
-      q(3781),
+      q(3771),
       q(0),
       ],
    q(koshin) => [
-      q(3365),
+      q(3357),
       q(0),
       ],
    q(kosli) => [
-      q(6206),
+      q(6194),
       q(1),
       ],
    q(kosraean) => [
@@ -38372,115 +38334,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kota (gabon)) => [
-      q(3523),
+      q(3515),
       q(0),
       ],
    q(kota (india)) => [
-      q(3294),
+      q(3286),
       q(0),
       ],
    q(kota bangun kutai malay) => [
-      q(4496),
+      q(4485),
       q(0),
       ],
    q(kota marudu talantang) => [
-      q(2627),
+      q(2620),
       q(0),
       ],
    q(kota marudu tinagas) => [
-      q(3644),
+      q(3636),
       q(0),
       ],
    q(kotafon gbe) => [
-      q(3565),
+      q(3557),
       q(0),
       ],
    q(kotava) => [
-      q(0961),
+      q(0957),
       q(0),
       ],
    q(koti) => [
-      q(2245),
+      q(2238),
       q(0),
       ],
    q(kott) => [
-      q(7880),
+      q(7863),
       q(0),
       ],
    q(kouya) => [
-      q(3756),
+      q(3746),
       q(0),
       ],
    q(kovai) => [
-      q(3556),
+      q(3548),
       q(0),
       ],
    q(kove) => [
-      q(3676),
+      q(3668),
       q(0),
       ],
    q(kowaki) => [
-      q(7468),
+      q(7455),
       q(0),
       ],
    q(kowiai) => [
-      q(3707),
+      q(3699),
       q(0),
       ],
    q(koy sanjaq surat) => [
-      q(3558),
+      q(3550),
       q(0),
       ],
    q(koya) => [
-      q(3295),
+      q(3287),
       q(0),
       ],
    q(koyaga) => [
-      q(3316),
+      q(3308),
       q(0),
       ],
    q(koyo) => [
-      q(3517),
+      q(3510),
       q(0),
       ],
    q(koyra chiini songhay) => [
-      q(3352),
+      q(3344),
       q(0),
       ],
    q(koyraboro senni songhai) => [
-      q(5989),
+      q(5978),
       q(0),
       ],
    q(koyukon) => [
-      q(3529),
+      q(3521),
       q(0),
       ],
    q(kpagua) => [
-      q(3670),
+      q(3662),
       q(0),
       ],
    q(kpala) => [
-      q(3541),
+      q(3533),
       q(0),
       ],
    q(kpan) => [
-      q(3540),
+      q(3532),
       q(0),
       ],
    q(kpasam) => [
-      q(5383),
+      q(5371),
       q(0),
       ],
    q(kpati) => [
-      q(3512),
+      q(3505),
       q(0),
       ],
    q(kpatili) => [
-      q(3763),
+      q(3753),
       q(0),
       ],
    q(kpeego) => [
-      q(1842),
+      q(1836),
       q(0),
       ],
    q(kpelle) => [
@@ -38488,63 +38450,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kpessi) => [
-      q(3269),
+      q(3261),
       q(0),
       ],
    q(kplang) => [
-      q(3537),
+      q(3529),
       q(0),
       ],
    q(krache) => [
-      q(3755),
+      q(3745),
       q(0),
       ],
    q(kraho) => [
-      q(7488),
+      q(7475),
       q(0),
       ],
    q(kraol) => [
-      q(5809),
+      q(5797),
       q(0),
       ],
    q(krenak) => [
-      q(3571),
+      q(3563),
       q(0),
       ],
    q(krevinian) => [
-      q(7885),
+      q(7868),
       q(0),
       ],
    q(kreye) => [
-      q(7491),
+      q(7478),
       q(0),
       ],
    q(krikati-timbira) => [
-      q(7493),
+      q(7480),
       q(0),
       ],
    q(krim) => [
-      q(3590),
+      q(3582),
       q(0),
       ],
    q(krio) => [
-      q(3587),
+      q(3579),
       q(0),
       ],
    q(kriol) => [
-      q(5856),
+      q(5844),
       q(0),
       ],
    q(krisa) => [
-      q(3609),
+      q(3601),
       q(0),
       ],
    q(krobu) => [
-      q(3727),
+      q(3718),
       q(0),
       ],
    q(krongo) => [
-      q(3329),
+      q(3321),
       q(0),
       ],
    q(kru languages) => [
@@ -38552,39 +38514,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kru'ng 2) => [
-      q(3593),
+      q(3585),
       q(0),
       ],
    q(krymchak) => [
-      q(3078),
+      q(3070),
       q(0),
       ],
    q(kryts) => [
-      q(3599),
+      q(3591),
       q(0),
       ],
    q(kua) => [
-      q(6852),
+      q(6840),
       q(0),
       ],
    q(kua-nsi) => [
-      q(7683),
+      q(7668),
       q(0),
       ],
    q(kuamasi) => [
-      q(7687),
+      q(7672),
       q(0),
       ],
    q(kuan) => [
-      q(6864),
+      q(6852),
       q(0),
       ],
    q(kuanhua) => [
-      q(7447),
+      q(7434),
       q(0),
       ],
    q(kuanua) => [
-      q(3604),
+      q(3596),
       q(0),
       ],
    q(kuanyama) => [
@@ -38592,199 +38554,199 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kube) => [
-      q(3321),
+      q(3313),
       q(0),
       ],
    q(kubi) => [
-      q(3515),
+      q(3508),
       q(0),
       ],
    q(kubo) => [
-      q(3117),
+      q(3110),
       q(0),
       ],
    q(kubu) => [
-      q(3675),
+      q(3667),
       q(0),
       ],
    q(kucong) => [
-      q(3951),
+      q(3940),
       q(0),
       ],
    q(kudiya) => [
-      q(3296),
+      q(3288),
       q(0),
       ],
    q(kudmali) => [
-      q(3773),
+      q(3763),
       q(0),
       ],
    q(kudu-camo) => [
-      q(3526),
+      q(3518),
       q(0),
       ],
    q(kugama) => [
-      q(3527),
+      q(3519),
       q(0),
       ],
    q(kugbo) => [
-      q(3282),
+      q(3274),
       q(0),
       ],
    q(kui (india)) => [
-      q(3745),
+      q(3735),
       q(0),
       ],
    q(kui (indonesia)) => [
-      q(3677),
+      q(3669),
       q(0),
       ],
    q(kuijau) => [
-      q(2080),
+      q(2074),
       q(0),
       ],
    q(kuikuro-kalapalo) => [
-      q(3660),
+      q(3652),
       q(0),
       ],
    q(kujarge) => [
-      q(7020),
+      q(7007),
       q(0),
       ],
    q(kuk) => [
-      q(3303),
+      q(3295),
       q(0),
       ],
    q(kukatja) => [
-      q(3671),
+      q(3663),
       q(0),
       ],
    q(kuke) => [
-      q(2520),
+      q(2512),
       q(0),
       ],
    q(kukele) => [
-      q(3289),
+      q(3281),
       q(0),
       ],
    q(kukna) => [
-      q(3287),
+      q(3279),
       q(0),
       ],
    q(kuku-mangk) => [
-      q(7434),
+      q(7421),
       q(0),
       ],
    q(kuku-mu'inh) => [
-      q(7433),
+      q(7420),
       q(0),
       ],
    q(kuku-muminh) => [
-      q(7426),
+      q(7413),
       q(0),
       ],
    q(kuku-ugbanh) => [
-      q(6881),
+      q(6869),
       q(0),
       ],
    q(kuku-uwanh) => [
-      q(6978),
+      q(6965),
       q(0),
       ],
    q(kuku-yalanji) => [
-      q(2681),
+      q(2673),
       q(0),
       ],
    q(kula) => [
-      q(6671),
+      q(6659),
       q(0),
       ],
    q(kulere) => [
-      q(3663),
+      q(3655),
       q(0),
       ],
    q(kulfa) => [
-      q(3734),
+      q(3724),
       q(0),
       ],
    q(kulina) => [
-      q(1916),
+      q(1910),
       q(1),
       ],
    q(kulina pano) => [
-      q(7475),
+      q(7462),
       q(0),
       ],
    q(kulisusu) => [
-      q(7022),
+      q(7009),
       q(0),
       ],
    q(kullu pahari) => [
-      q(3313),
+      q(3305),
       q(0),
       ],
    q(kulon-pazeh) => [
-      q(6972),
+      q(6959),
       q(0),
       ],
    q(kulung (nepal)) => [
-      q(3439),
+      q(3432),
       q(0),
       ],
    q(kulung (nigeria)) => [
-      q(1061),
+      q(1057),
       q(0),
       ],
    q(kumalu) => [
-      q(3612),
+      q(3604),
       q(0),
       ],
    q(kumam) => [
-      q(3249),
+      q(3241),
       q(0),
       ],
-   q(kuman) => [
-      q(3656),
+   q(kuman (papua new guinea)) => [
+      q(3648),
       q(0),
       ],
    q(kuman (russia)) => [
-      q(5729),
+      q(5717),
       q(0),
       ],
    q(kumaoni) => [
-      q(3314),
+      q(3306),
       q(0),
       ],
    q(kumarbhag paharia) => [
-      q(3469),
+      q(3462),
       q(0),
       ],
    q(kumba) => [
-      q(3613),
+      q(3605),
       q(0),
       ],
    q(kumbainggar) => [
-      q(3333),
+      q(3325),
       q(0),
       ],
    q(kumbaran) => [
-      q(7158),
+      q(7145),
       q(0),
       ],
    q(kumbewaha) => [
-      q(7398),
+      q(7385),
       q(0),
       ],
    q(kumhali) => [
-      q(3581),
+      q(3573),
       q(0),
       ],
    q(kumiai) => [
-      q(2046),
+      q(2040),
       q(0),
       ],
    q(kumukio) => [
-      q(3665),
+      q(3657),
       q(0),
       ],
    q(kumyk) => [
@@ -38792,127 +38754,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kumzari) => [
-      q(7982),
+      q(7965),
       q(0),
       ],
    q(kunama) => [
-      q(3664),
+      q(3656),
       q(0),
       ],
    q(kunbarlang) => [
-      q(7167),
+      q(7154),
       q(0),
       ],
    q(kunda) => [
-      q(3254),
+      q(3246),
       q(0),
       ],
    q(kundal shahi) => [
-      q(6024),
+      q(6012),
       q(0),
       ],
    q(kunduvadi) => [
-      q(7161),
+      q(7148),
       q(0),
       ],
    q(kung) => [
-      q(3301),
+      q(3293),
       q(0),
       ],
    q(kung-ekoka) => [
-      q(3507),
+      q(3500),
       q(0),
       ],
    q(kungarakany) => [
-      q(2503),
+      q(2495),
       q(0),
       ],
    q(kungardutyi) => [
-      q(2476),
+      q(2469),
       q(0),
       ],
    q(kunggara) => [
-      q(3692),
+      q(3684),
       q(0),
       ],
    q(kunggari) => [
-      q(3326),
+      q(3318),
       q(0),
       ],
    q(kungkari) => [
-      q(3964),
+      q(3953),
       q(0),
       ],
    q(kuni) => [
-      q(3605),
+      q(3597),
       q(0),
       ],
    q(kuni-boazi) => [
-      q(3680),
+      q(3672),
       q(0),
       ],
    q(kunigami) => [
-      q(7546),
+      q(7532),
       q(0),
       ],
    q(kunimaipa) => [
-      q(3666),
+      q(3658),
       q(0),
       ],
    q(kunja) => [
-      q(5427),
+      q(5415),
       q(0),
       ],
    q(kunjen) => [
-      q(3398),
+      q(3390),
       q(0),
       ],
    q(kunyi) => [
-      q(4930),
+      q(4918),
       q(0),
       ],
    q(kunza) => [
-      q(3673),
+      q(3665),
       q(0),
       ],
    q(kuo) => [
-      q(7551),
+      q(7537),
       q(0),
       ],
    q(kuot) => [
-      q(3641),
+      q(3633),
       q(0),
       ],
    q(kupa) => [
-      q(3658),
+      q(3650),
       q(0),
       ],
    q(kupang malay) => [
-      q(4365),
+      q(4354),
       q(0),
       ],
    q(kupia) => [
-      q(3288),
+      q(3280),
       q(0),
       ],
    q(kupsabiny) => [
-      q(3554),
+      q(3546),
       q(0),
       ],
    q(kur) => [
-      q(3669),
+      q(3661),
       q(0),
       ],
    q(kura ede nago) => [
-      q(5056),
+      q(5043),
       q(0),
       ],
    q(kurama) => [
-      q(3586),
+      q(3578),
       q(0),
       ],
    q(kuranko) => [
-      q(3495),
+      q(3488),
       q(0),
       ],
    q(kurdish) => [
@@ -38920,43 +38882,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kuri) => [
-      q(4762),
+      q(4750),
       q(0),
       ],
    q(kuria) => [
-      q(3661),
+      q(3653),
       q(0),
       ],
    q(kurichiya) => [
-      q(3297),
+      q(3289),
       q(0),
       ],
    q(kurmukar) => [
-      q(3311),
+      q(3303),
       q(0),
       ],
    q(kurnai) => [
-      q(6930),
+      q(6918),
       q(0),
       ],
    q(kurrama) => [
-      q(7027),
+      q(7014),
       q(0),
       ],
    q(kurti) => [
-      q(3639),
+      q(3631),
       q(0),
       ],
    q(kurtokha) => [
-      q(7405),
+      q(7392),
       q(0),
       ],
    q(kuruaya) => [
-      q(3768),
+      q(3758),
       q(0),
       ],
    q(kurudu) => [
-      q(3402),
+      q(3394),
       q(0),
       ],
    q(kurukh) => [
@@ -38964,27 +38926,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kusaal) => [
-      q(3667),
+      q(3659),
       q(0),
       ],
    q(kusaghe) => [
-      q(3607),
+      q(3599),
       q(0),
       ],
    q(kushi) => [
-      q(3659),
+      q(3651),
       q(0),
       ],
    q(kusu) => [
-      q(3622),
+      q(3614),
       q(0),
       ],
    q(kusunda) => [
-      q(3322),
+      q(3314),
       q(0),
       ],
    q(kutang ghale) => [
-      q(2520),
+      q(2512),
       q(1),
       ],
    q(kutenai) => [
@@ -38992,135 +38954,131 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kutep) => [
-      q(3653),
+      q(3645),
       q(0),
       ],
    q(kuthant) => [
-      q(7554),
+      q(7540),
       q(0),
       ],
    q(kutong) => [
-      q(6093),
+      q(6081),
       q(0),
       ],
    q(kutto) => [
-      q(3531),
+      q(3523),
       q(0),
       ],
    q(kutu) => [
-      q(3243),
+      q(3235),
       q(0),
       ],
    q(kuturmi) => [
-      q(3347),
+      q(3339),
       q(0),
       ],
    q(kuuk-yak) => [
-      q(6900),
+      q(6888),
       q(0),
       ],
    q(kuuku-ya'u) => [
-      q(3672),
+      q(3664),
       q(0),
       ],
    q(kuvi) => [
-      q(3746),
+      q(3736),
       q(0),
       ],
    q(kuwaa) => [
-      q(1288),
+      q(1284),
       q(0),
       ],
    q(kuwaataay) => [
-      q(1934),
+      q(1928),
       q(0),
       ],
    q(kuy) => [
-      q(3258),
+      q(3250),
       q(0),
       ],
    q(kven finnish) => [
-      q(2358),
+      q(2351),
       q(0),
       ],
    q(kw'adza) => [
-      q(7157),
+      q(7144),
       q(0),
       ],
    q(kwa) => [
-      q(3701),
+      q(3693),
       q(0),
       ],
    q(kwa') => [
-      q(1270),
+      q(1266),
       q(0),
       ],
    q(kwaami) => [
-      q(3617),
+      q(3609),
       q(0),
       ],
    q(kwadi) => [
-      q(3725),
+      q(3716),
       q(0),
       ],
    q(kwaio) => [
-      q(3703),
+      q(3695),
       q(0),
       ],
    q(kwaja) => [
-      q(3263),
-      q(0),
-      ],
-   q(kwak) => [
-      q(3716),
+      q(3255),
       q(0),
       ],
    q(kwakiutl) => [
-      q(3710),
+      q(3702),
       q(0),
       ],
    q(kwakum) => [
-      q(3720),
+      q(3711),
       q(0),
       ],
    q(kwalhioqua-tlatskanai) => [
-      q(5731),
+      q(5719),
       q(0),
       ],
    q(kwama) => [
-      q(3476),
+      q(3469),
       q(0),
       ],
    q(kwambi) => [
-      q(3712),
+      q(3704),
       q(0),
       ],
    q(kwamera) => [
-      q(6630),
+      q(6618),
       q(0),
       ],
    q(kwami) => [
-      q(3632),
+      q(3624),
       q(0),
       ],
    q(kwamtim one) => [
-      q(5243),
+      q(5232),
       q(0),
       ],
    q(kwang) => [
-      q(3682),
+      q(3674),
       q(0),
       ],
    q(kwanga) => [
-      q(3709),
+      q(3701),
       q(0),
       ],
    q(kwangali) => [
-      q(3713),
+      q(3705),
       q(0),
       ],
    q(kwanja) => [
-      q(3500),
+      q(3493),
       q(0),
       ],
    q(kwanyama) => [
@@ -39128,103 +39086,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(kwara'ae) => [
-      q(3705),
+      q(3697),
       q(0),
       ],
    q(kwasio) => [
-      q(4979),
+      q(4967),
       q(0),
       ],
    q(kwaya) => [
-      q(3751),
+      q(3741),
       q(0),
       ],
    q(kwaza) => [
-      q(7561),
+      q(7547),
       q(0),
       ],
    q(kwegu) => [
-      q(7565),
+      q(7551),
       q(0),
       ],
    q(kwenyi) => [
-      q(3251),
+      q(3243),
       q(1),
       ],
    q(kwer) => [
-      q(3717),
+      q(3708),
       q(0),
       ],
    q(kwerba) => [
-      q(3704),
+      q(3696),
       q(0),
       ],
    q(kwerba mamberamo) => [
-      q(7570),
+      q(7556),
       q(0),
       ],
    q(kwere) => [
-      q(1932),
+      q(1926),
       q(0),
       ],
    q(kwerisa) => [
-      q(3410),
+      q(3403),
       q(0),
       ],
    q(kwese) => [
-      q(3718),
+      q(3709),
       q(0),
       ],
    q(kwesten) => [
-      q(3719),
+      q(3710),
       q(0),
       ],
    q(kwini) => [
-      q(2700),
+      q(2692),
       q(0),
       ],
    q(kwinsu) => [
-      q(3654),
+      q(3646),
       q(0),
       ],
    q(kwinti) => [
-      q(3722),
+      q(3713),
       q(0),
       ],
    q(kwoma) => [
-      q(3474),
+      q(3467),
       q(0),
       ],
    q(kwomtari) => [
-      q(3714),
+      q(3706),
       q(0),
       ],
    q(kxoe) => [
-      q(7555),
+      q(7541),
       q(0),
       ],
    q(kyak) => [
-      q(1258),
+      q(1254),
       q(0),
       ],
    q(kyaka) => [
-      q(3753),
+      q(3743),
       q(0),
       ],
    q(kyan-karyaw naga) => [
-      q(5059),
+      q(5046),
       q(0),
       ],
    q(kyanga) => [
-      q(6842),
+      q(6830),
       q(0),
       ],
    q(kyenele) => [
-      q(3566),
+      q(3558),
       q(0),
       ],
    q(kyerung) => [
-      q(3339),
+      q(3331),
       q(0),
       ],
    q(kyrgyz) => [
@@ -39232,79 +39190,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(la'bi) => [
-      q(3828),
+      q(3818),
       q(0),
       ],
    q(laa laa bwamu) => [
-      q(1555),
+      q(1550),
       q(0),
       ],
    q(laadan) => [
-      q(3865),
+      q(3855),
       q(0),
       ],
    q(laal) => [
-      q(2470),
+      q(2463),
       q(0),
       ],
    q(laalaa) => [
-      q(1648),
+      q(1641),
       q(1),
       ],
    q(laari) => [
-      q(3860),
+      q(3850),
       q(0),
       ],
    q(laba) => [
-      q(3817),
+      q(3807),
       q(0),
       ],
    q(label) => [
-      q(3823),
+      q(3813),
       q(0),
       ],
    q(labir) => [
-      q(3120),
+      q(3113),
       q(0),
       ],
    q(labo) => [
-      q(4642),
+      q(4631),
       q(0),
       ],
    q(labo phowa) => [
-      q(7743),
+      q(7726),
       q(0),
       ],
    q(labu) => [
-      q(3839),
+      q(3829),
       q(0),
       ],
    q(labuk-kinabatangan kadazan) => [
-      q(2162),
+      q(2156),
       q(0),
       ],
    q(lacandon) => [
-      q(3804),
+      q(3794),
       q(0),
       ],
    q(lachi) => [
-      q(3838),
+      q(3828),
       q(0),
       ],
    q(lachiguiri zapotec) => [
-      q(7929),
+      q(7912),
       q(0),
       ],
    q(lachixio zapotec) => [
-      q(7940),
+      q(7923),
       q(0),
       ],
    q(ladakhi) => [
-      q(3829),
+      q(3819),
       q(0),
       ],
    q(ladin) => [
-      q(3969),
+      q(3958),
       q(0),
       ],
    q(ladino) => [
@@ -39312,39 +39270,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ladji ladji) => [
-      q(3975),
+      q(3964),
       q(0),
       ],
    q(laeko-libuat) => [
-      q(3957),
+      q(3946),
       q(0),
       ],
    q(lafofa) => [
-      q(3806),
+      q(3796),
       q(0),
       ],
    q(laghu) => [
-      q(3896),
+      q(3886),
       q(0),
       ],
    q(laghuu) => [
-      q(3898),
+      q(3888),
       q(0),
       ],
    q(lagwan) => [
-      q(3524),
+      q(3516),
       q(0),
       ],
    q(laha (indonesia)) => [
-      q(3910),
+      q(3900),
       q(0),
       ],
    q(laha (viet nam)) => [
-      q(3909),
+      q(3899),
       q(0),
       ],
    q(lahanan) => [
-      q(3914),
+      q(3904),
       q(0),
       ],
    q(lahnda) => [
@@ -39352,127 +39310,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lahta) => [
-      q(3693),
+      q(3685),
       q(1),
       ],
    q(lahta karen) => [
-      q(3693),
+      q(3685),
       q(0),
       ],
    q(lahu) => [
-      q(3918),
+      q(3908),
       q(0),
       ],
    q(lahu shi) => [
-      q(3911),
+      q(3901),
       q(0),
       ],
    q(lahul lohar) => [
-      q(3912),
+      q(3902),
       q(0),
       ],
    q(laimbue) => [
-      q(4006),
+      q(3995),
       q(0),
       ],
    q(laitu chin) => [
-      q(1780),
+      q(1774),
       q(0),
       ],
    q(laiyolo) => [
-      q(3944),
+      q(3933),
       q(0),
       ],
    q(lak) => [
-      q(3825),
+      q(3815),
       q(0),
       ],
    q(laka (chad)) => [
-      q(3813),
+      q(3803),
       q(0),
       ],
    q(laka (nigeria)) => [
-      q(3810),
+      q(3800),
       q(0),
       ],
    q(lakalei) => [
-      q(3949),
+      q(3938),
       q(0),
       ],
    q(lake miwok) => [
-      q(4005),
+      q(3994),
       q(0),
       ],
    q(lakha) => [
-      q(3954),
+      q(3943),
       q(0),
       ],
    q(laki) => [
-      q(3955),
+      q(3944),
       q(0),
       ],
    q(lakkia) => [
-      q(3824),
+      q(3814),
       q(0),
       ],
    q(lakon) => [
-      q(3959),
+      q(3948),
       q(0),
       ],
    q(lakonde) => [
-      q(3952),
+      q(3941),
       q(0),
       ],
    q(lakota) => [
-      q(3963),
+      q(3952),
       q(0),
       ],
    q(lakota dida) => [
-      q(2042),
+      q(2036),
       q(0),
       ],
    q(lala) => [
-      q(5076),
+      q(5064),
       q(0),
       ],
    q(lala-bisa) => [
-      q(3870),
+      q(3860),
       q(0),
       ],
    q(lala-roba) => [
-      q(3966),
+      q(3955),
       q(0),
       ],
    q(lalana chinantec) => [
-      q(1807),
+      q(1801),
       q(0),
       ],
    q(lalia) => [
-      q(3811),
+      q(3801),
       q(0),
       ],
    q(lama (togo)) => [
-      q(3816),
+      q(3806),
       q(0),
       ],
    q(lama bai) => [
-      q(3820),
+      q(3810),
       q(0),
       ],
    q(lamaholot) => [
-      q(6117),
+      q(6105),
       q(0),
       ],
    q(lamalera) => [
-      q(4002),
+      q(3991),
       q(0),
       ],
    q(lamang) => [
-      q(2761),
+      q(2753),
       q(0),
       ],
    q(lamatuka) => [
-      q(4001),
+      q(3990),
       q(0),
       ],
    q(lamba) => [
@@ -39480,75 +39438,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lambadi) => [
-      q(3998),
+      q(3987),
       q(0),
       ],
    q(lambayeque quechua) => [
-      q(5694),
+      q(5682),
       q(0),
       ],
    q(lambichhong) => [
-      q(3993),
+      q(3982),
       q(0),
       ],
    q(lamboya) => [
-      q(4007),
+      q(3996),
       q(0),
       ],
    q(lambya) => [
-      q(3808),
+      q(3798),
       q(0),
       ],
    q(lame) => [
-      q(1306),
+      q(1302),
       q(0),
       ],
    q(lamenu) => [
-      q(4003),
+      q(3992),
       q(0),
       ],
    q(lamet) => [
-      q(3833),
+      q(3823),
       q(0),
       ],
    q(lamja-dengsa-tola) => [
-      q(3859),
+      q(3849),
       q(0),
       ],
    q(lamkang) => [
-      q(3996),
+      q(3985),
       q(0),
       ],
    q(lamma) => [
-      q(3889),
+      q(3879),
       q(0),
       ],
    q(lamnso') => [
-      q(4020),
+      q(4009),
       q(0),
       ],
    q(lamogai) => [
-      q(3992),
+      q(3981),
       q(0),
       ],
    q(lampung api) => [
-      q(3946),
+      q(3935),
       q(0),
       ],
    q(lampung nyo) => [
-      q(0570),
+      q(0569),
       q(0),
       ],
    q(lamu) => [
-      q(3973),
+      q(3962),
       q(0),
       ],
    q(lamu-lamu) => [
-      q(3843),
+      q(3833),
       q(0),
       ],
    q(lanas lobu) => [
-      q(5883),
+      q(5872),
       q(0),
       ],
    q(land dayak languages) => [
@@ -39556,51 +39514,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(landoma) => [
-      q(3864),
+      q(3854),
       q(0),
       ],
    q(lang'e) => [
-      q(7722),
+      q(7706),
       q(0),
       ],
    q(langam) => [
-      q(4017),
+      q(4006),
       q(0),
       ],
    q(langbashe) => [
-      q(4009),
+      q(3998),
       q(0),
       ],
    q(langi) => [
-      q(3807),
+      q(3797),
       q(0),
       ],
    q(langnian buyang) => [
-      q(7696),
+      q(7681),
       q(0),
       ],
    q(lango (sudan)) => [
-      q(4019),
+      q(4008),
       q(0),
       ],
    q(lango (uganda)) => [
-      q(3809),
+      q(3799),
       q(0),
       ],
    q(langobardic) => [
-      q(4012),
+      q(4001),
       q(0),
       ],
    q(langue des signes de belgique francophone) => [
-      q(5996),
+      q(5985),
       q(0),
       ],
    q(lanima) => [
-      q(4022),
+      q(4011),
       q(0),
       ],
    q(lanoh) => [
-      q(4013),
+      q(4002),
       q(0),
       ],
    q(lao) => [
@@ -39608,87 +39566,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lao naga) => [
-      q(4966),
+      q(4954),
       q(0),
       ],
    q(laomian) => [
-      q(4113),
+      q(4102),
       q(0),
       ],
    q(laopang) => [
-      q(3827),
+      q(3817),
       q(0),
       ],
    q(laos sign language) => [
-      q(4074),
+      q(4063),
       q(0),
       ],
    q(lapaguia-guivini zapotec) => [
-      q(7970),
+      q(7953),
       q(0),
       ],
    q(laragia) => [
-      q(4055),
+      q(4044),
       q(0),
       ],
    q(larantuka malay) => [
-      q(4063),
+      q(4052),
       q(0),
       ],
    q(lardil) => [
-      q(3844),
+      q(3834),
       q(0),
       ],
    q(larevat) => [
-      q(4064),
+      q(4053),
       q(0),
       ],
    q(large flowery miao) => [
-      q(2788),
+      q(2780),
       q(0),
       ],
    q(lari) => [
-      q(4058),
+      q(4047),
       q(0),
       ],
    q(larike-wakasihu) => [
-      q(0758),
+      q(0756),
       q(0),
       ],
    q(laro) => [
-      q(4061),
+      q(4050),
       q(0),
       ],
    q(larteh) => [
-      q(3815),
+      q(3805),
       q(0),
       ],
    q(laru) => [
-      q(3812),
+      q(3802),
       q(0),
       ],
    q(lasalimu) => [
-      q(3978),
+      q(3967),
       q(0),
       ],
    q(lasgerdi) => [
-      q(4066),
+      q(4055),
       q(0),
       ],
    q(lashi) => [
-      q(4071),
+      q(4060),
       q(0),
       ],
    q(lasi) => [
-      q(4077),
+      q(4066),
       q(0),
       ],
    q(late middle chinese) => [
-      q(4080),
+      q(4069),
       q(0),
       ],
    q(latgalian) => [
-      q(4081),
+      q(4070),
       q(0),
       ],
    q(latin) => [
@@ -39696,11 +39654,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(latu) => [
-      q(4086),
+      q(4075),
       q(0),
       ],
    q(latunde) => [
-      q(4083),
+      q(4072),
       q(0),
       ],
    q(latvian) => [
@@ -39708,235 +39666,235 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(latvian sign language) => [
-      q(4072),
+      q(4061),
       q(0),
       ],
    q(lau) => [
-      q(3984),
+      q(3973),
       q(0),
       ],
    q(laua) => [
-      q(4090),
+      q(4079),
       q(0),
       ],
    q(lauan) => [
-      q(3985),
+      q(3974),
       q(0),
       ],
    q(lauje) => [
-      q(3818),
+      q(3808),
       q(0),
       ],
    q(laura) => [
-      q(4097),
+      q(4086),
       q(0),
       ],
    q(laurentian) => [
-      q(4054),
+      q(4043),
       q(0),
       ],
    q(lautu chin) => [
-      q(1785),
+      q(1779),
       q(0),
       ],
    q(lavatbura-lamusong) => [
-      q(3840),
+      q(3830),
       q(0),
       ],
    q(lave) => [
-      q(1427),
+      q(1422),
       q(0),
       ],
    q(laven) => [
-      q(3834),
+      q(3824),
       q(0),
       ],
    q(lavrung) => [
-      q(3110),
+      q(3102),
       q(1),
       ],
    q(lavukaleve) => [
-      q(4105),
+      q(4094),
       q(0),
       ],
    q(lawangan) => [
-      q(3842),
+      q(3832),
       q(0),
       ],
    q(lawu) => [
-      q(4116),
+      q(4105),
       q(0),
       ],
    q(lawunuia) => [
-      q(6492),
+      q(6481),
       q(0),
       ],
    q(layakha) => [
-      q(4118),
+      q(4107),
       q(0),
       ],
    q(laz) => [
-      q(4124),
+      q(4113),
       q(0),
       ],
    q(lealao chinantec) => [
-      q(1777),
+      q(1771),
       q(0),
       ],
    q(leco) => [
-      q(3871),
+      q(3861),
       q(0),
       ],
    q(ledo kaili) => [
-      q(3890),
+      q(3880),
       q(0),
       ],
    q(leelau) => [
-      q(3862),
+      q(3852),
       q(0),
       ],
    q(lefa) => [
-      q(3893),
+      q(3883),
       q(0),
       ],
    q(lega-mwenga) => [
-      q(3902),
+      q(3892),
       q(0),
       ],
    q(lega-shabunda) => [
-      q(3869),
+      q(3859),
       q(0),
       ],
    q(legbo) => [
-      q(0655),
+      q(0653),
       q(0),
       ],
    q(legenyem) => [
-      q(3845),
+      q(3835),
       q(0),
       ],
    q(lehali) => [
-      q(6689),
+      q(6677),
       q(0),
       ],
    q(lehalurup) => [
-      q(6952),
+      q(6939),
       q(0),
       ],
    q(lehar) => [
-      q(1648),
+      q(1641),
       q(0),
       ],
    q(leinong naga) => [
-      q(4123),
+      q(4112),
       q(0),
       ],
    q(leipon) => [
-      q(3878),
+      q(3868),
       q(0),
       ],
    q(lelak) => [
-      q(3976),
+      q(3965),
       q(0),
       ],
    q(lele (chad)) => [
-      q(3979),
+      q(3968),
       q(0),
       ],
    q(lele (democratic republic of congo)) => [
-      q(3879),
+      q(3869),
       q(0),
       ],
    q(lele (guinea)) => [
-      q(3968),
+      q(3957),
       q(0),
       ],
    q(lele (papua new guinea)) => [
-      q(3970),
+      q(3959),
       q(0),
       ],
    q(lelemi) => [
-      q(3874),
+      q(3864),
       q(0),
       ],
    q(lelepa) => [
-      q(4047),
+      q(4036),
       q(0),
       ],
    q(lembena) => [
-      q(3884),
+      q(3874),
       q(0),
       ],
    q(lemerig) => [
-      q(4065),
+      q(4054),
       q(0),
       ],
    q(lemio) => [
-      q(3876),
+      q(3866),
       q(0),
       ],
    q(lemnian) => [
-      q(7410),
+      q(7397),
       q(0),
       ],
    q(lemolang) => [
-      q(3892),
+      q(3882),
       q(0),
       ],
    q(lemoro) => [
-      q(3861),
+      q(3851),
       q(0),
       ],
    q(lenakel) => [
-      q(6631),
+      q(6619),
       q(0),
       ],
    q(lenca) => [
-      q(3881),
+      q(3871),
       q(0),
       ],
    q(lendu) => [
-      q(3872),
+      q(3862),
       q(0),
       ],
    q(lengilu) => [
-      q(3899),
+      q(3889),
       q(0),
       ],
    q(lengo) => [
-      q(3905),
+      q(3895),
       q(0),
       ],
    q(lengola) => [
-      q(3877),
+      q(3867),
       q(0),
       ],
    q(lengua de senas catalana) => [
-      q(1872),
+      q(1866),
       q(1),
       ],
    q(lengua de senas del paraguay) => [
-      q(5685),
+      q(5673),
       q(1),
       ],
    q(lengua de senas panamenas) => [
-      q(4075),
+      q(4064),
       q(1),
       ],
    q(leningitij) => [
-      q(4015),
+      q(4004),
       q(0),
       ],
    q(lenje) => [
-      q(3875),
+      q(3865),
       q(0),
       ],
    q(lenkau) => [
-      q(3885),
+      q(3875),
       q(0),
       ],
    q(lenyima) => [
-      q(3858),
+      q(3848),
       q(0),
       ],
    q(leonese) => [
@@ -39944,39 +39902,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(lepcha) => [
-      q(3883),
+      q(3873),
       q(0),
       ],
    q(lepki) => [
-      q(4048),
+      q(4037),
       q(0),
       ],
    q(lepontic) => [
-      q(7415),
+      q(7402),
       q(0),
       ],
    q(lere) => [
-      q(2579),
+      q(2572),
       q(0),
       ],
    q(lese) => [
-      q(3886),
+      q(3876),
       q(0),
       ],
    q(lesing-gelimi) => [
-      q(3887),
+      q(3877),
       q(0),
       ],
    q(letemboi) => [
-      q(4991),
+      q(4979),
       q(0),
       ],
    q(leti (cameroon)) => [
-      q(3882),
+      q(3872),
       q(0),
       ],
    q(leti (indonesia)) => [
-      q(4082),
+      q(4071),
       q(0),
       ],
    q(letzeburgesch) => [
@@ -39984,23 +39942,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(levuka) => [
-      q(4107),
+      q(4096),
       q(0),
       ],
    q(lewo) => [
-      q(4117),
+      q(4106),
       q(0),
       ],
    q(lewo eleng) => [
-      q(4109),
+      q(4098),
       q(0),
       ],
    q(lewotobi) => [
-      q(4115),
+      q(4104),
       q(0),
       ],
    q(leyigha) => [
-      q(1002),
+      q(0998),
       q(0),
       ],
    q(lezghian) => [
@@ -40008,135 +39966,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lhaovo) => [
-      q(4306),
+      q(4295),
       q(1),
       ],
    q(lhokpu) => [
-      q(3915),
+      q(3905),
       q(0),
       ],
    q(lhomi) => [
-      q(3913),
+      q(3903),
       q(0),
       ],
    q(li'o) => [
-      q(3945),
+      q(3934),
       q(0),
       ],
    q(liabuku) => [
-      q(3939),
+      q(3928),
       q(0),
       ],
    q(liana-seti) => [
-      q(6268),
+      q(6256),
       q(0),
       ],
    q(liangmai naga) => [
-      q(4924),
+      q(4912),
       q(0),
       ],
    q(lianshan zhuang) => [
-      q(7889),
+      q(7872),
       q(0),
       ],
    q(liberia kpelle) => [
-      q(7471),
+      q(7458),
       q(0),
       ],
    q(liberian english) => [
-      q(3934),
+      q(3923),
       q(0),
       ],
    q(libido) => [
-      q(3933),
+      q(3922),
       q(0),
       ],
    q(libinza) => [
-      q(3941),
+      q(3930),
       q(0),
       ],
    q(libon bikol) => [
-      q(3831),
+      q(3821),
       q(0),
       ],
    q(liburnian) => [
-      q(7412),
+      q(7399),
       q(0),
       ],
    q(libyan arabic) => [
-      q(1004),
+      q(1000),
       q(0),
       ],
    q(libyan sign language) => [
-      q(3837),
+      q(3827),
       q(0),
       ],
    q(ligbi) => [
-      q(3925),
+      q(3915),
       q(0),
       ],
    q(ligenza) => [
-      q(3908),
+      q(3898),
       q(0),
       ],
    q(ligurian) => [
-      q(3928),
+      q(3917),
       q(0),
       ],
    q(ligurian (ancient)) => [
-      q(7411),
+      q(7398),
       q(0),
       ],
    q(lihir) => [
-      q(3926),
+      q(3916),
       q(0),
       ],
    q(lijili) => [
-      q(4268),
+      q(4257),
       q(0),
       ],
    q(lika) => [
-      q(3929),
+      q(3918),
       q(0),
       ],
    q(liki) => [
-      q(3931),
+      q(3920),
       q(0),
       ],
    q(likila) => [
-      q(3923),
+      q(3913),
       q(0),
       ],
    q(likuba) => [
-      q(3748),
+      q(3738),
       q(0),
       ],
    q(likum) => [
-      q(3920),
+      q(3910),
       q(0),
       ],
    q(likwala) => [
-      q(3702),
+      q(3694),
       q(0),
       ],
    q(lilau) => [
-      q(3977),
+      q(3966),
       q(0),
       ],
    q(lillooet) => [
-      q(3930),
+      q(3919),
       q(0),
       ],
    q(limassa) => [
-      q(1310),
+      q(1306),
       q(0),
       ],
    q(limbu) => [
-      q(3924),
+      q(3914),
       q(0),
       ],
    q(limbum) => [
-      q(4000),
+      q(3989),
       q(0),
       ],
    q(limburgan) => [
@@ -40152,23 +40110,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(limi) => [
-      q(7695),
+      q(7680),
       q(0),
       ],
    q(limilngan) => [
-      q(3988),
+      q(3977),
       q(0),
       ],
    q(limos kalinga) => [
-      q(3470),
+      q(3463),
       q(0),
       ],
    q(lindu) => [
-      q(3457),
+      q(3450),
       q(0),
       ],
    q(linear a) => [
-      q(3803),
+      q(3793),
       q(0),
       ],
    q(lingala) => [
@@ -40176,63 +40134,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lingao) => [
-      q(5278),
+      q(5267),
       q(0),
       ],
    q(lingarak) => [
-      q(3900),
-      q(0),
-      ],
-   q(lingkhim) => [
-      q(3927),
+      q(3890),
       q(0),
       ],
    q(lingua franca) => [
-      q(5528),
+      q(5517),
       q(0),
       ],
    q(lingua franca nova) => [
-      q(3894),
+      q(3884),
       q(0),
       ],
    q(lipan apache) => [
-      q(0846),
+      q(0844),
       q(0),
       ],
    q(lipo) => [
-      q(4050),
+      q(4039),
       q(0),
       ],
    q(lisabata-nuniali) => [
-      q(3854),
+      q(3844),
       q(0),
       ],
    q(lisela) => [
-      q(3850),
+      q(3840),
       q(0),
       ],
    q(lish) => [
-      q(4070),
+      q(4059),
       q(0),
       ],
    q(lishan didan) => [
-      q(6705),
+      q(6693),
       q(0),
       ],
    q(lishana deni) => [
-      q(4067),
+      q(4056),
       q(0),
       ],
    q(lishanid noshan) => [
-      q(0702),
+      q(0700),
       q(0),
       ],
    q(lisu) => [
-      q(3935),
+      q(3924),
       q(0),
       ],
    q(literary chinese) => [
-      q(4121),
+      q(4110),
       q(0),
       ],
    q(lithuanian) => [
@@ -40240,87 +40194,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lithuanian sign language) => [
-      q(3983),
+      q(3972),
       q(0),
       ],
    q(litzlitz) => [
-      q(4122),
+      q(4111),
       q(0),
       ],
    q(liujiang zhuang) => [
-      q(7887),
+      q(7870),
       q(0),
       ],
    q(liuqian zhuang) => [
-      q(7890),
+      q(7873),
       q(0),
       ],
    q(liv) => [
-      q(3937),
+      q(3926),
       q(0),
       ],
    q(livvi) => [
-      q(5258),
+      q(5247),
       q(0),
       ],
    q(llengua de signes catalana) => [
-      q(1872),
+      q(1866),
       q(2),
       ],
    q(llengua de signes valenciana) => [
-      q(7062),
+      q(7049),
       q(1),
       ],
    q(lo-toga) => [
-      q(3917),
+      q(3907),
       q(0),
       ],
    q(loarki) => [
-      q(4057),
+      q(4046),
       q(0),
       ],
    q(lobala) => [
-      q(4038),
+      q(4027),
       q(0),
       ],
    q(lobi) => [
-      q(4025),
+      q(4014),
       q(0),
       ],
    q(lodhi) => [
-      q(3832),
+      q(3822),
       q(0),
       ],
    q(logba) => [
-      q(3904),
+      q(3894),
       q(0),
       ],
    q(logo) => [
-      q(4029),
+      q(4018),
       q(0),
       ],
    q(logol) => [
-      q(4028),
+      q(4017),
       q(0),
       ],
    q(logooli) => [
-      q(5752),
+      q(5740),
       q(0),
       ],
    q(logorik) => [
-      q(3936),
+      q(3925),
       q(0),
       ],
    q(logudorese sardinian) => [
-      q(6222),
+      q(6210),
       q(0),
       ],
    q(lohorung) => [
-      q(3836),
+      q(3826),
       q(0),
       ],
    q(loja highland quichua) => [
-      q(5716),
+      q(5704),
       q(0),
       ],
    q(lojban) => [
@@ -40328,175 +40282,175 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lokaa) => [
-      q(7611),
+      q(7597),
       q(0),
       ],
    q(loke) => [
-      q(4046),
+      q(4035),
       q(0),
       ],
    q(loko) => [
-      q(4033),
+      q(4022),
       q(0),
       ],
    q(lokoya) => [
-      q(3965),
+      q(3954),
       q(0),
       ],
    q(lola) => [
-      q(3846),
+      q(3836),
       q(0),
       ],
    q(lolak) => [
-      q(3982),
+      q(3971),
       q(0),
       ],
    q(lole) => [
-      q(3972),
+      q(3961),
       q(0),
       ],
    q(lolo) => [
-      q(3967),
+      q(3956),
       q(0),
       ],
    q(loloda) => [
-      q(4024),
+      q(4013),
       q(0),
       ],
    q(lolopo) => [
-      q(7626),
+      q(7612),
       q(0),
       ],
    q(loma (cote d'ivoire)) => [
-      q(4031),
+      q(4020),
       q(0),
       ],
    q(loma (liberia)) => [
-      q(4034),
+      q(4023),
       q(0),
       ],
    q(lomaiviti) => [
-      q(4004),
+      q(3993),
       q(0),
       ],
    q(lomavren) => [
-      q(5824),
+      q(5812),
       q(0),
       ],
    q(lombard) => [
-      q(3999),
+      q(3988),
       q(0),
       ],
    q(lombi) => [
-      q(3994),
+      q(3983),
       q(0),
       ],
    q(lombo) => [
-      q(4036),
+      q(4025),
       q(0),
       ],
    q(lomwe) => [
-      q(4856),
+      q(4844),
       q(0),
       ],
    q(loncong) => [
-      q(3847),
+      q(3837),
       q(0),
       ],
    q(long phuri naga) => [
-      q(4049),
+      q(4038),
       q(0),
       ],
    q(long wat) => [
-      q(6769),
+      q(6756),
       q(0),
       ],
    q(longgu) => [
-      q(3907),
+      q(3897),
       q(0),
       ],
    q(longto) => [
-      q(7216),
+      q(7203),
       q(0),
       ],
    q(longuda) => [
-      q(4021),
+      q(4010),
       q(0),
       ],
    q(loniu) => [
-      q(4040),
+      q(4029),
       q(0),
       ],
    q(lonwolwol) => [
-      q(1851),
+      q(1845),
       q(0),
       ],
    q(lonzo) => [
-      q(4023),
+      q(4012),
       q(0),
       ],
    q(loo) => [
-      q(3866),
+      q(3856),
       q(0),
       ],
    q(lopa) => [
-      q(4037),
+      q(4026),
       q(0),
       ],
    q(lopi) => [
-      q(4043),
+      q(4032),
       q(0),
       ],
    q(lopit) => [
-      q(4051),
+      q(4040),
       q(0),
       ],
    q(lorang) => [
-      q(4060),
+      q(4049),
       q(0),
       ],
    q(lorediakarkar) => [
-      q(4018),
+      q(4007),
       q(0),
       ],
    q(loreto-ucayali spanish) => [
-      q(6201),
+      q(6189),
       q(0),
       ],
    q(lote) => [
-      q(6977),
+      q(6964),
       q(0),
       ],
    q(lotha naga) => [
-      q(4919),
+      q(4907),
       q(0),
       ],
    q(lotud) => [
-      q(2170),
+      q(2164),
       q(0),
       ],
    q(lou) => [
-      q(4032),
+      q(4021),
       q(0),
       ],
    q(louisiana creole french) => [
-      q(4042),
+      q(4031),
       q(0),
       ],
    q(loun) => [
-      q(4045),
+      q(4034),
       q(0),
       ],
    q(loup a) => [
-      q(7414),
+      q(7401),
       q(0),
       ],
    q(loup b) => [
-      q(7407),
+      q(7394),
       q(0),
       ],
    q(lovono) => [
-      q(7053),
+      q(7040),
       q(1),
       ],
    q(low german) => [
@@ -40508,19 +40462,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(lower burdekin) => [
-      q(7305),
+      q(7292),
       q(0),
       ],
    q(lower chehalis) => [
-      q(1711),
+      q(1705),
       q(0),
       ],
    q(lower grand valley dani) => [
-      q(2108),
+      q(2102),
       q(0),
       ],
    q(lower silesian) => [
-      q(6112),
+      q(6100),
       q(0),
       ],
    q(lower sorbian) => [
@@ -40528,31 +40482,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lower southern aranda) => [
-      q(0992),
+      q(0988),
       q(0),
       ],
    q(lower ta'oih) => [
-      q(6761),
+      q(6748),
       q(0),
       ],
    q(lower tanana) => [
-      q(6368),
+      q(6357),
       q(0),
       ],
    q(lowland oaxaca chontal) => [
-      q(1784),
+      q(1778),
       q(0),
       ],
    q(lowland tarahumara) => [
-      q(6370),
+      q(6359),
       q(0),
       ],
    q(loxicha zapotec) => [
-      q(7973),
+      q(7956),
       q(0),
       ],
    q(loyop) => [
-      q(6952),
+      q(6939),
       q(1),
       ],
    q(lozi) => [
@@ -40560,15 +40514,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lu) => [
-      q(3340),
+      q(3332),
       q(0),
       ],
    q(lua') => [
-      q(5598),
+      q(5586),
       q(0),
       ],
    q(luang) => [
-      q(3891),
+      q(3881),
       q(0),
       ],
    q(luba-katanga) => [
@@ -40580,59 +40534,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lubila) => [
-      q(3218),
+      q(3210),
       q(0),
       ],
    q(lubu) => [
-      q(3848),
+      q(3838),
       q(0),
       ],
    q(lubuagan kalinga) => [
-      q(3487),
+      q(3480),
       q(0),
       ],
    q(lubukusu) => [
-      q(1581),
+      q(1576),
       q(1),
       ],
    q(luchazi) => [
-      q(3849),
+      q(3839),
       q(0),
       ],
    q(lucumi) => [
-      q(4096),
+      q(4085),
       q(0),
       ],
    q(ludian) => [
-      q(4088),
+      q(4077),
       q(0),
       ],
    q(lufu) => [
-      q(3868),
+      q(3858),
       q(0),
       ],
    q(lugbara) => [
-      q(3897),
+      q(3887),
       q(0),
       ],
    q(luguru) => [
-      q(5875),
+      q(5864),
       q(0),
       ],
    q(luhu) => [
-      q(3853),
+      q(3843),
       q(0),
       ],
    q(lui) => [
-      q(3822),
+      q(3812),
       q(0),
       ],
    q(luidakho-luisukha-lutirichi) => [
-      q(2910),
+      q(2902),
       q(1),
       ],
    q(luimbi) => [
-      q(4094),
+      q(4083),
       q(0),
       ],
    q(luiseno) => [
@@ -40640,15 +40594,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lukabaras) => [
-      q(3950),
+      q(3939),
       q(1),
       ],
    q(lukpa) => [
-      q(2128),
+      q(2122),
       q(0),
       ],
    q(lule) => [
-      q(6904),
+      q(6892),
       q(0),
       ],
    q(lule sami) => [
@@ -40656,35 +40610,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lulogooli) => [
-      q(5752),
+      q(5740),
       q(1),
       ],
    q(lumba-yakkha) => [
-      q(4099),
+      q(4088),
       q(0),
       ],
    q(lumbee) => [
-      q(4008),
+      q(3997),
       q(0),
       ],
    q(lumbu) => [
-      q(4095),
+      q(4084),
       q(0),
       ],
    q(lumun) => [
-      q(3989),
+      q(3978),
       q(0),
       ],
    q(lun bawang) => [
-      q(4011),
+      q(4000),
       q(1),
       ],
    q(luna) => [
-      q(4091),
+      q(4080),
       q(0),
       ],
    q(lunanakha) => [
-      q(4092),
+      q(4081),
       q(0),
       ],
    q(lunda) => [
@@ -40692,19 +40646,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lundayeh) => [
-      q(4011),
+      q(4000),
       q(0),
       ],
    q(lungalunga) => [
-      q(7036),
+      q(7023),
       q(0),
       ],
    q(lungga) => [
-      q(3895),
+      q(3885),
       q(0),
       ],
    q(luo (cameroon)) => [
-      q(4101),
+      q(4090),
       q(0),
       ],
    q(luo (kenya and tanzania)) => [
@@ -40712,19 +40666,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(luopohe hmong) => [
-      q(2796),
+      q(2788),
       q(0),
       ],
    q(luopohe miao) => [
-      q(2796),
+      q(2788),
       q(1),
       ],
    q(luri) => [
-      q(3857),
+      q(3847),
       q(0),
       ],
    q(lusengo) => [
-      q(4068),
+      q(4057),
       q(0),
       ],
    q(lushai) => [
@@ -40732,35 +40686,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lushootseed) => [
-      q(4098),
+      q(4087),
       q(0),
       ],
    q(lusi) => [
-      q(3349),
+      q(3341),
       q(0),
       ],
    q(lusitanian) => [
-      q(7416),
+      q(7403),
       q(0),
       ],
    q(lutachoni) => [
-      q(4085),
+      q(4074),
       q(1),
       ],
    q(lutos) => [
-      q(4816),
+      q(4804),
       q(0),
       ],
    q(luvale) => [
-      q(4089),
+      q(4078),
       q(0),
       ],
    q(luwati) => [
-      q(4100),
+      q(4089),
       q(0),
       ],
    q(luwo) => [
-      q(4114),
+      q(4103),
       q(0),
       ],
    q(luxembourgish) => [
@@ -40768,115 +40722,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(luyana) => [
-      q(4120),
+      q(4109),
       q(0),
       ],
    q(luyia) => [
-      q(4102),
+      q(4091),
       q(0),
       ],
    q(lwalu) => [
-      q(4108),
+      q(4097),
       q(0),
       ],
    q(lycian) => [
-      q(7408),
+      q(7395),
       q(0),
       ],
    q(lydian) => [
-      q(7409),
+      q(7396),
       q(0),
       ],
    q(lyele) => [
-      q(3873),
+      q(3863),
       q(0),
       ],
    q(lyngngam) => [
-      q(4119),
+      q(4108),
       q(0),
       ],
    q(lyons sign language) => [
-      q(4069),
+      q(4058),
       q(0),
       ],
    q(ma (democratic republic of congo)) => [
-      q(4549),
+      q(4538),
       q(0),
       ],
    q(ma (papua new guinea)) => [
-      q(4341),
+      q(4330),
       q(0),
       ],
    q(ma manda) => [
-      q(6084),
+      q(6072),
       q(0),
       ],
    q(ma'anyan) => [
-      q(4307),
+      q(4296),
       q(0),
       ],
    q(ma'di) => [
-      q(4292),
+      q(4281),
       q(0),
       ],
    q(ma'ya) => [
-      q(6126),
+      q(6114),
       q(0),
       ],
    q(maa) => [
-      q(1789),
+      q(1783),
       q(0),
       ],
    q(maaka) => [
-      q(4232),
+      q(4221),
       q(0),
       ],
    q(maasina fulfulde) => [
-      q(2349),
+      q(2342),
       q(0),
       ],
    q(maay) => [
-      q(7710),
+      q(7695),
       q(0),
       ],
    q(maba (chad)) => [
-      q(4193),
+      q(4182),
       q(0),
       ],
    q(maba (indonesia)) => [
-      q(4491),
+      q(4480),
       q(0),
       ],
    q(mabaale) => [
-      q(4424),
+      q(4413),
       q(0),
       ],
    q(mabaan) => [
-      q(4260),
+      q(4249),
       q(0),
       ],
    q(mabaka valley kalinga) => [
-      q(3415),
+      q(3408),
       q(0),
       ],
    q(mabire) => [
-      q(4598),
+      q(4587),
       q(0),
       ],
    q(maca) => [
-      q(4163),
+      q(4152),
       q(0),
       ],
    q(macaguaje) => [
-      q(4174),
+      q(4163),
       q(0),
       ],
    q(macaguan) => [
-      q(4150),
+      q(4139),
       q(0),
       ],
    q(macanese) => [
-      q(4722),
+      q(4710),
       q(0),
       ],
    q(macedo-romanian) => [
@@ -40888,63 +40842,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(machame) => [
-      q(3125),
+      q(3118),
       q(0),
       ],
    q(machiguenga) => [
-      q(4164),
+      q(4153),
       q(0),
       ],
    q(machinere) => [
-      q(4469),
+      q(4458),
       q(0),
       ],
    q(machinga) => [
-      q(4631),
+      q(4620),
       q(0),
       ],
    q(maco) => [
-      q(7224),
+      q(7211),
       q(0),
       ],
    q(macuna) => [
-      q(4703),
+      q(4691),
       q(0),
       ],
    q(macushi) => [
-      q(4140),
+      q(4129),
       q(0),
       ],
    q(mada (cameroon)) => [
-      q(4678),
+      q(4666),
       q(0),
       ],
    q(mada (nigeria)) => [
-      q(4189),
+      q(4178),
       q(0),
       ],
    q(madagascar sign language) => [
-      q(4707),
+      q(4695),
       q(0),
       ],
    q(madak) => [
-      q(4422),
+      q(4411),
       q(0),
       ],
    q(maden) => [
-      q(7441),
+      q(7428),
       q(0),
       ],
    q(madhi madhi) => [
-      q(2090),
+      q(2084),
       q(0),
       ],
    q(madi) => [
-      q(2623),
+      q(2616),
       q(0),
       ],
    q(madngele) => [
-      q(7902),
+      q(7885),
       q(0),
       ],
    q(madurese) => [
@@ -40952,31 +40906,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mae) => [
-      q(4404),
+      q(4393),
       q(0),
       ],
    q(maek) => [
-      q(2795),
+      q(2787),
       q(0),
       ],
    q(maeng itneg) => [
-      q(3027),
+      q(3019),
       q(0),
       ],
    q(mafa) => [
-      q(4128),
+      q(4117),
       q(0),
       ],
    q(mafea) => [
-      q(4373),
+      q(4362),
       q(0),
       ],
    q(mag-antsi ayta) => [
-      q(6001),
+      q(5990),
       q(0),
       ],
    q(mag-indi ayta) => [
-      q(1303),
+      q(1299),
       q(0),
       ],
    q(magahi) => [
@@ -40984,103 +40938,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(magbukun ayta) => [
-      q(1011),
+      q(1007),
       q(0),
       ],
    q(magdalena penasco mixtec) => [
-      q(7530),
+      q(7516),
       q(0),
       ],
    q(maghdi) => [
-      q(2563),
+      q(2556),
       q(0),
       ],
    q(magoma) => [
-      q(2570),
+      q(2563),
       q(0),
       ],
    q(magori) => [
-      q(7858),
+      q(7841),
       q(0),
       ],
    q(maguindanaon) => [
-      q(4195),
+      q(4184),
       q(0),
       ],
    q(magyi) => [
-      q(2564),
+      q(2557),
       q(0),
       ],
    q(mah meri) => [
-      q(4289),
+      q(4278),
       q(1),
       ],
    q(mahali) => [
-      q(4351),
+      q(4340),
       q(0),
       ],
    q(maharastri prakrit) => [
-      q(5524),
+      q(5513),
       q(0),
       ],
    q(mahasu pahari) => [
-      q(1163),
+      q(1159),
       q(0),
       ],
    q(mahican) => [
-      q(4352),
+      q(4341),
       q(0),
       ],
    q(mahongwe) => [
-      q(4286),
+      q(4275),
       q(0),
       ],
    q(mahou) => [
-      q(4681),
+      q(4669),
       q(0),
       ],
    q(mai brat) => [
-      q(1014),
+      q(1010),
       q(0),
       ],
    q(maia) => [
-      q(6099),
+      q(6087),
       q(0),
       ],
    q(maiadomu) => [
-      q(4729),
+      q(4717),
       q(0),
       ],
    q(maiani) => [
-      q(6628),
+      q(6616),
       q(0),
       ],
    q(maii) => [
-      q(4412),
+      q(4401),
       q(0),
       ],
    q(mailu) => [
-      q(4280),
+      q(4269),
       q(0),
       ],
    q(maindo) => [
-      q(1930),
+      q(1924),
       q(0),
       ],
    q(mainfrankisch) => [
-      q(7035),
+      q(7022),
       q(0),
       ],
    q(mainstream kenyah) => [
-      q(7392),
+      q(7379),
       q(0),
       ],
    q(mairasi) => [
-      q(7961),
+      q(7944),
       q(0),
       ],
    q(maisin) => [
-      q(4153),
+      q(4142),
       q(0),
       ],
    q(maithili) => [
@@ -41088,55 +41042,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(maiwa (indonesia)) => [
-      q(7187),
+      q(7174),
       q(0),
       ],
    q(maiwa (papua new guinea)) => [
-      q(4573),
+      q(4562),
       q(0),
       ],
    q(maiwala) => [
-      q(4600),
+      q(4589),
       q(0),
       ],
    q(majang) => [
-      q(4470),
+      q(4459),
       q(0),
       ],
    q(majera) => [
-      q(7427),
+      q(7414),
       q(0),
       ],
    q(majhi) => [
-      q(4353),
+      q(4342),
       q(0),
       ],
    q(majhwar) => [
-      q(4409),
+      q(4398),
       q(0),
       ],
    q(majukayang kalinga) => [
-      q(3463),
+      q(3456),
       q(0),
       ],
    q(mak (china)) => [
-      q(4359),
+      q(4348),
       q(0),
       ],
    q(mak (nigeria)) => [
-      q(5382),
+      q(5370),
       q(0),
       ],
    q(makaa) => [
-      q(4178),
+      q(4167),
       q(0),
       ],
    q(makah) => [
-      q(4690),
+      q(4678),
       q(0),
       ],
    q(makasae) => [
-      q(4377),
+      q(4366),
       q(0),
       ],
    q(makasar) => [
@@ -41144,95 +41098,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(makassar malay) => [
-      q(4250),
+      q(4239),
       q(0),
       ],
    q(makayam) => [
-      q(0949),
+      q(0945),
       q(0),
       ],
    q(makhuwa) => [
-      q(7049),
+      q(7036),
       q(0),
       ],
    q(makhuwa-marrevone) => [
-      q(7421),
+      q(7408),
       q(0),
       ],
    q(makhuwa-meetto) => [
-      q(4267),
+      q(4256),
       q(0),
       ],
    q(makhuwa-moniga) => [
-      q(4296),
+      q(4285),
       q(0),
       ],
    q(makhuwa-saka) => [
-      q(7514),
+      q(7500),
       q(0),
       ],
    q(makhuwa-shirima) => [
-      q(7040),
+      q(7027),
       q(0),
       ],
    q(maklew) => [
-      q(4265),
+      q(4254),
       q(0),
       ],
    q(makolkol) => [
-      q(7898),
+      q(7881),
       q(0),
       ],
    q(makonde) => [
-      q(3245),
+      q(3237),
       q(0),
       ],
    q(maku'a) => [
-      q(4104),
+      q(4093),
       q(0),
       ],
    q(makurap) => [
-      q(4485),
+      q(4474),
       q(0),
       ],
    q(makuri naga) => [
-      q(3129),
+      q(3122),
       q(0),
       ],
    q(makwe) => [
-      q(7708),
+      q(7693),
       q(0),
       ],
    q(makyan naga) => [
-      q(6919),
+      q(6907),
       q(0),
       ],
    q(mal) => [
-      q(4382),
+      q(4371),
       q(0),
       ],
    q(mal paharia) => [
-      q(4355),
+      q(4344),
       q(0),
       ],
    q(mala (nigeria)) => [
-      q(5884),
+      q(5873),
       q(0),
       ],
    q(mala (papua new guinea)) => [
-      q(5417),
+      q(5405),
       q(0),
       ],
    q(mala malasar) => [
-      q(2968),
+      q(2961),
       q(0),
       ],
    q(malaccan creole malay) => [
-      q(1693),
+      q(1687),
       q(0),
       ],
    q(malaccan creole portuguese) => [
-      q(4175),
+      q(4164),
       q(0),
       ],
    q(malagasy) => [
@@ -41240,43 +41194,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(malalamai) => [
-      q(4418),
+      q(4407),
       q(0),
       ],
    q(malango) => [
-      q(4389),
+      q(4378),
       q(0),
       ],
    q(malankuravan) => [
-      q(4342),
+      q(4331),
       q(0),
       ],
    q(malapandaram) => [
-      q(4343),
+      q(4332),
       q(0),
       ],
    q(malaryan) => [
-      q(4344),
+      q(4333),
       q(0),
       ],
    q(malas) => [
-      q(4369),
+      q(4358),
       q(0),
       ],
    q(malasar) => [
-      q(7715),
+      q(7700),
       q(0),
       ],
    q(malavedan) => [
-      q(4345),
+      q(4334),
       q(0),
       ],
    q(malawi lomwe) => [
-      q(4035),
+      q(4024),
       q(0),
       ],
    q(malawi sena) => [
-      q(6318),
+      q(6306),
       q(0),
       ],
    q(malay) => [
@@ -41284,7 +41238,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(malay (individual language)) => [
-      q(7888),
+      q(7871),
       q(0),
       ],
    q(malay (macrolanguage)) => [
@@ -41296,15 +41250,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(malayic dayak) => [
-      q(7339),
+      q(7326),
       q(0),
       ],
    q(malaynon) => [
-      q(4399),
+      q(4388),
       q(0),
       ],
    q(malayo) => [
-      q(4152),
+      q(4141),
       q(0),
       ],
    q(malayo-polynesian languages) => [
@@ -41312,11 +41266,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(malaysian sign language) => [
-      q(7429),
+      q(7416),
       q(0),
       ],
    q(malba birifor) => [
-      q(1153),
+      q(1149),
       q(0),
       ],
    q(maldivian) => [
@@ -41324,79 +41278,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(male) => [
-      q(2832),
+      q(2824),
       q(1),
       ],
    q(male (ethiopia)) => [
-      q(4210),
+      q(4199),
       q(0),
       ],
    q(male (papua new guinea)) => [
-      q(4191),
+      q(4180),
       q(0),
       ],
    q(malecite-passamaquoddy) => [
-      q(5597),
+      q(5585),
       q(0),
       ],
    q(maleku jaika) => [
-      q(2668),
+      q(2660),
       q(0),
       ],
    q(maleng) => [
-      q(5494),
+      q(5483),
       q(0),
       ],
    q(maleu-kilenge) => [
-      q(4271),
+      q(4260),
       q(0),
       ],
    q(malfaxal) => [
-      q(4398),
+      q(4387),
       q(0),
       ],
    q(malgana) => [
-      q(7041),
+      q(7028),
       q(0),
       ],
    q(malgbe) => [
-      q(4663),
+      q(4651),
       q(0),
       ],
    q(mali) => [
-      q(2450),
-      q(0),
-      ],
-   q(maligo) => [
-      q(4643),
+      q(2443),
       q(0),
       ],
    q(malila) => [
-      q(4276),
+      q(4265),
       q(0),
       ],
    q(malimba) => [
-      q(4708),
+      q(4696),
       q(0),
       ],
    q(malimpung) => [
-      q(4384),
+      q(4373),
       q(0),
       ],
    q(malinaltepec me'phaa) => [
-      q(6420),
+      q(6409),
       q(0),
       ],
    q(malinaltepec tlapanec) => [
-      q(6420),
+      q(6409),
       q(1),
       ],
    q(malo) => [
-      q(4378),
+      q(4367),
       q(0),
       ],
    q(malol) => [
-      q(4147),
+      q(4136),
       q(0),
       ],
    q(maltese) => [
@@ -41404,107 +41354,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(maltese sign language) => [
-      q(4199),
+      q(4188),
       q(0),
       ],
    q(malua bay) => [
-      q(4387),
+      q(4376),
       q(0),
       ],
    q(malvi) => [
-      q(4602),
+      q(4591),
       q(0),
       ],
    q(malyangapa) => [
-      q(7647),
+      q(7632),
       q(0),
       ],
    q(mam) => [
-      q(4130),
+      q(4119),
       q(0),
       ],
    q(mama) => [
-      q(4400),
+      q(4389),
       q(0),
       ],
    q(mamaa) => [
-      q(4290),
+      q(4279),
       q(0),
       ],
    q(mamainde) => [
-      q(7183),
+      q(7170),
       q(0),
       ],
    q(mamanwa) => [
-      q(4413),
+      q(4402),
       q(0),
       ],
    q(mamara senoufo) => [
-      q(4693),
+      q(4681),
       q(0),
       ],
    q(mamasa) => [
-      q(4499),
+      q(4488),
       q(0),
       ],
    q(mambae) => [
-      q(4272),
+      q(4261),
       q(0),
       ],
    q(mambai) => [
-      q(4181),
+      q(4170),
       q(0),
       ],
    q(mamboru) => [
-      q(4613),
+      q(4602),
       q(0),
       ],
    q(mambwe-lungu) => [
-      q(4277),
+      q(4266),
       q(0),
       ],
    q(mampruli) => [
-      q(4135),
+      q(4124),
       q(0),
       ],
    q(mamuju) => [
-      q(4513),
+      q(4502),
       q(0),
       ],
    q(mamulique) => [
-      q(2262),
+      q(2255),
       q(0),
       ],
    q(mamusi) => [
-      q(3246),
+      q(3238),
       q(0),
       ],
    q(mamvu) => [
-      q(4196),
+      q(4185),
       q(0),
       ],
    q(man met) => [
-      q(4411),
+      q(4400),
       q(0),
       ],
    q(manado malay) => [
-      q(7430),
+      q(7417),
       q(0),
       ],
    q(manam) => [
-      q(4611),
+      q(4600),
       q(0),
       ],
    q(manambu) => [
-      q(4381),
+      q(4370),
       q(0),
       ],
    q(manangba) => [
-      q(4985),
+      q(4973),
       q(0),
       ],
    q(manangkari) => [
-      q(7920),
+      q(7903),
       q(0),
       ],
    q(manchu) => [
@@ -41512,31 +41462,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(manda (australia)) => [
-      q(7891),
+      q(7874),
       q(0),
       ],
    q(manda (india)) => [
-      q(4285),
+      q(4274),
       q(0),
       ],
    q(manda (tanzania)) => [
-      q(4278),
+      q(4267),
       q(0),
       ],
    q(mandahuaca) => [
-      q(4303),
+      q(4292),
       q(0),
       ],
    q(mandaic) => [
-      q(4311),
+      q(4300),
       q(0),
       ],
    q(mandan) => [
-      q(4300),
+      q(4289),
       q(0),
       ],
    q(mandandanyi) => [
-      q(7901),
+      q(7884),
       q(0),
       ],
    q(mandar) => [
@@ -41544,19 +41494,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mandara) => [
-      q(6395),
+      q(6384),
       q(0),
       ],
    q(mandari) => [
-      q(4510),
+      q(4499),
       q(0),
       ],
    q(mandarin chinese) => [
-      q(1795),
+      q(1789),
       q(0),
       ],
    q(mandaya) => [
-      q(4539),
+      q(4528),
       q(0),
       ],
    q(mande languages) => [
@@ -41564,11 +41514,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mandeali) => [
-      q(4339),
+      q(4328),
       q(0),
       ],
    q(mander) => [
-      q(4507),
+      q(4496),
       q(0),
       ],
    q(manding) => [
@@ -41580,107 +41530,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mandinka) => [
-      q(4433),
+      q(4422),
       q(0),
       ],
    q(mandjak) => [
-      q(4256),
+      q(4245),
       q(0),
       ],
    q(mandobo atas) => [
-      q(0558),
+      q(0557),
       q(0),
       ],
    q(mandobo bawah) => [
-      q(1561),
+      q(1556),
       q(0),
       ],
    q(manem) => [
-      q(3091),
+      q(3083),
       q(0),
       ],
    q(mang) => [
-      q(7919),
+      q(7902),
       q(0),
       ],
    q(manga kanuri) => [
-      q(3214),
+      q(3206),
       q(0),
       ],
    q(mangala) => [
-      q(4223),
+      q(4212),
       q(0),
       ],
    q(mangarayi) => [
-      q(4468),
+      q(4457),
       q(0),
       ],
    q(mangareva) => [
-      q(4536),
+      q(4525),
       q(0),
       ],
    q(mangas) => [
-      q(7921),
+      q(7904),
       q(0),
       ],
    q(mangayat) => [
-      q(4692),
+      q(4680),
       q(0),
       ],
    q(mangbetu) => [
-      q(4197),
+      q(4186),
       q(0),
       ],
    q(mangbutu) => [
-      q(4198),
+      q(4187),
       q(0),
       ],
    q(mangerr) => [
-      q(7895),
-      q(0),
-      ],
-   q(mangetti dune !xung) => [
-      q(2497),
+      q(7878),
       q(0),
       ],
    q(mangga buang) => [
-      q(4414),
+      q(4403),
       q(0),
       ],
    q(manggarai) => [
-      q(4514),
+      q(4503),
       q(0),
       ],
    q(mango) => [
-      q(4264),
+      q(4253),
       q(0),
       ],
    q(mangole) => [
-      q(4493),
+      q(4482),
       q(0),
       ],
    q(mangseng) => [
-      q(4144),
+      q(4133),
       q(0),
       ],
    q(mangue) => [
-      q(4455),
+      q(4444),
       q(0),
       ],
    q(manichaean middle persian) => [
-      q(7431),
+      q(7418),
       q(0),
       ],
    q(manide) => [
-      q(0563),
+      q(0562),
       q(0),
       ],
    q(manikion) => [
-      q(4444),
+      q(4433),
       q(0),
       ],
    q(manipa) => [
-      q(4505),
+      q(4494),
       q(0),
       ],
    q(manipuri) => [
@@ -41688,19 +41634,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mankanya) => [
-      q(3491),
+      q(3484),
       q(0),
       ],
    q(manna-dora) => [
-      q(4348),
+      q(4337),
       q(0),
       ],
    q(mannan) => [
-      q(4349),
+      q(4338),
       q(0),
       ],
    q(mano) => [
-      q(4231),
+      q(4220),
       q(0),
       ],
    q(manobo languages) => [
@@ -41708,39 +41654,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(manombai) => [
-      q(7219),
+      q(7206),
       q(0),
       ],
    q(mansaka) => [
-      q(4550),
+      q(4539),
       q(0),
       ],
    q(mansi) => [
-      q(4440),
+      q(4429),
       q(0),
       ],
    q(mansoanka) => [
-      q(4561),
+      q(4550),
       q(0),
       ],
    q(manta) => [
-      q(4689),
+      q(4677),
       q(0),
       ],
    q(mantsi) => [
-      q(5113),
+      q(5101),
       q(0),
       ],
    q(manumanaw) => [
-      q(3731),
+      q(3721),
       q(1),
       ],
    q(manumanaw karen) => [
-      q(3731),
+      q(3721),
       q(0),
       ],
    q(manusela) => [
-      q(7135),
+      q(7122),
       q(0),
       ],
    q(manx) => [
@@ -41748,31 +41694,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(manya) => [
-      q(4713),
+      q(4701),
       q(0),
       ],
    q(manyawa) => [
-      q(4445),
+      q(4434),
       q(0),
       ],
    q(manyika) => [
-      q(4660),
+      q(4648),
       q(0),
       ],
    q(manza) => [
-      q(4725),
+      q(4713),
       q(0),
       ],
    q(mao naga) => [
-      q(4758),
+      q(4746),
       q(0),
       ],
    q(maonan) => [
-      q(4403),
+      q(4392),
       q(0),
       ],
    q(maore comorian) => [
-      q(6311),
+      q(6299),
       q(0),
       ],
    q(maori) => [
@@ -41780,27 +41726,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mape) => [
-      q(4383),
+      q(4372),
       q(0),
       ],
    q(mapena) => [
-      q(4435),
+      q(4424),
       q(0),
       ],
    q(mapia) => [
-      q(4489),
+      q(4478),
       q(0),
       ],
    q(mapidian) => [
-      q(4487),
+      q(4476),
       q(0),
       ],
    q(mapos buang) => [
-      q(1626),
+      q(1619),
       q(0),
       ],
    q(mapoyo) => [
-      q(4169),
+      q(4158),
       q(0),
       ],
    q(mapuche) => [
@@ -41812,59 +41758,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mapun) => [
-      q(6073),
+      q(6061),
       q(0),
       ],
    q(maquiritari) => [
-      q(4170),
+      q(4159),
       q(0),
       ],
    q(mara) => [
-      q(4214),
+      q(4203),
       q(0),
       ],
    q(mara chin) => [
-      q(4523),
+      q(4512),
       q(0),
       ],
    q(marachi) => [
-      q(4056),
+      q(4045),
       q(0),
       ],
    q(maraghei) => [
-      q(7037),
+      q(7024),
       q(0),
       ],
    q(maragus) => [
-      q(4533),
+      q(4522),
       q(0),
       ],
    q(maram naga) => [
-      q(4973),
+      q(4961),
       q(0),
       ],
    q(marama) => [
-      q(4059),
+      q(4048),
       q(0),
       ],
    q(maramba) => [
-      q(4686),
+      q(4674),
       q(0),
       ],
    q(maranao) => [
-      q(4537),
+      q(4526),
       q(0),
       ],
    q(marangis) => [
-      q(7087),
+      q(7074),
       q(1),
       ],
    q(maranunggu) => [
-      q(7908),
+      q(7891),
       q(0),
       ],
    q(mararit) => [
-      q(4261),
+      q(4250),
       q(0),
       ],
    q(marathi) => [
@@ -41872,43 +41818,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(marau) => [
-      q(4626),
+      q(4615),
       q(0),
       ],
    q(marba) => [
-      q(4471),
+      q(4460),
       q(0),
       ],
    q(maremgi) => [
-      q(4538),
+      q(4527),
       q(0),
       ],
    q(marenje) => [
-      q(7045),
+      q(7032),
       q(0),
       ],
    q(marfa) => [
-      q(4629),
+      q(4618),
       q(0),
       ],
    q(margany) => [
-      q(7893),
+      q(7876),
       q(0),
       ],
    q(marghi central) => [
-      q(4534),
+      q(4523),
       q(0),
       ],
    q(marghi south) => [
-      q(4247),
+      q(4236),
       q(0),
       ],
    q(margos-yarowilca-lauricocha quechua) => [
-      q(5718),
+      q(5706),
       q(0),
       ],
    q(margu) => [
-      q(4291),
+      q(4280),
       q(0),
       ],
    q(mari) => [
@@ -41916,11 +41862,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mari (east sepik province)) => [
-      q(4160),
+      q(4149),
       q(0),
       ],
    q(mari (madang province)) => [
-      q(2819),
+      q(2811),
       q(0),
       ],
    q(mari (russia)) => [
@@ -41928,95 +41874,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(maria (india)) => [
-      q(4532),
+      q(4521),
       q(0),
       ],
    q(maria (papua new guinea)) => [
-      q(4204),
+      q(4193),
       q(0),
       ],
    q(maricopa) => [
-      q(4518),
+      q(4507),
       q(0),
       ],
    q(maridan) => [
-      q(7894),
+      q(7877),
       q(0),
       ],
    q(maridjabin) => [
-      q(7900),
+      q(7883),
       q(0),
       ],
    q(marik) => [
-      q(1945),
+      q(1939),
       q(0),
       ],
    q(marimanindji) => [
-      q(7903),
+      q(7886),
       q(0),
       ],
    q(marind) => [
-      q(4540),
+      q(4529),
       q(0),
       ],
    q(maring) => [
-      q(4159),
+      q(4148),
       q(0),
       ],
    q(maring naga) => [
-      q(5005),
+      q(4993),
       q(0),
       ],
    q(maringarr) => [
-      q(7910),
+      q(7893),
       q(0),
       ],
    q(marino) => [
-      q(4517),
+      q(4506),
       q(0),
       ],
    q(mariri) => [
-      q(4498),
+      q(4487),
       q(0),
       ],
    q(marithiel) => [
-      q(4252),
+      q(4241),
       q(0),
       ],
    q(maritime sign language) => [
-      q(5091),
+      q(5079),
       q(0),
       ],
    q(maritsaua) => [
-      q(4555),
+      q(4544),
       q(0),
       ],
    q(mariyedi) => [
-      q(7915),
+      q(7898),
       q(0),
       ],
    q(marka) => [
-      q(5813),
+      q(5801),
       q(0),
       ],
    q(markweeta) => [
-      q(2271),
+      q(2264),
       q(0),
       ],
    q(marma) => [
-      q(5839),
+      q(5827),
       q(0),
       ],
    q(marovo) => [
-      q(4623),
+      q(4612),
       q(0),
       ],
    q(marriammu) => [
-      q(7499),
+      q(7486),
       q(0),
       ],
    q(marrucinian) => [
-      q(6914),
+      q(6902),
       q(0),
       ],
    q(marshallese) => [
@@ -42024,31 +41970,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(marsian) => [
-      q(2975),
+      q(2967),
       q(0),
       ],
    q(martha's vineyard sign language) => [
-      q(4520),
+      q(4509),
       q(0),
       ],
    q(marti ke) => [
-      q(7897),
+      q(7880),
       q(0),
       ],
    q(martu wangka) => [
-      q(4474),
+      q(4463),
       q(0),
       ],
    q(martuyhunira) => [
-      q(7030),
+      q(7017),
       q(0),
       ],
    q(maru) => [
-      q(4306),
+      q(4295),
       q(0),
       ],
    q(marubo) => [
-      q(4721),
+      q(4709),
       q(0),
       ],
    q(marwari) => [
@@ -42056,19 +42002,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(marwari (india)) => [
-      q(5890),
+      q(5879),
       q(0),
       ],
    q(marwari (pakistan)) => [
-      q(4614),
+      q(4603),
       q(0),
       ],
    q(masaaba) => [
-      q(4702),
+      q(4690),
       q(0),
       ],
    q(masadiit itneg) => [
-      q(6542),
+      q(6530),
       q(0),
       ],
    q(masai) => [
@@ -42076,195 +42022,191 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(masalit) => [
-      q(4394),
+      q(4383),
       q(0),
       ],
    q(masana) => [
-      q(4176),
+      q(4165),
       q(0),
       ],
    q(masbatenyo) => [
-      q(4541),
+      q(4530),
       q(0),
       ],
    q(mashco piro) => [
-      q(1914),
+      q(1908),
       q(0),
       ],
    q(mashi (nigeria)) => [
-      q(3131),
+      q(3124),
       q(0),
       ],
    q(mashi (zambia)) => [
-      q(4298),
+      q(4287),
       q(0),
       ],
    q(masikoro malagasy) => [
-      q(4547),
+      q(4536),
       q(0),
       ],
    q(masimasi) => [
-      q(3012),
+      q(3004),
       q(0),
       ],
    q(masiwang) => [
-      q(1337),
+      q(1332),
       q(0),
       ],
    q(maskelynes) => [
-      q(3456),
+      q(3449),
       q(0),
       ],
    q(maslam) => [
-      q(4560),
+      q(4549),
       q(0),
       ],
    q(masmaje) => [
-      q(4228),
+      q(4217),
       q(0),
       ],
    q(massalat) => [
-      q(4194),
+      q(4183),
       q(0),
       ],
    q(massep) => [
-      q(4627),
+      q(4616),
       q(0),
       ],
    q(matagalpa) => [
-      q(4578),
+      q(4567),
       q(0),
       ],
    q(matal) => [
-      q(4242),
+      q(4231),
       q(0),
       ],
    q(matbat) => [
-      q(7437),
+      q(7424),
       q(0),
       ],
    q(matengo) => [
-      q(4281),
+      q(4270),
       q(0),
       ],
    q(matepi) => [
-      q(4494),
+      q(4483),
       q(0),
       ],
    q(matigsalug manobo) => [
-      q(4156),
+      q(4145),
       q(0),
       ],
    q(matipuhy) => [
-      q(4718),
+      q(4706),
       q(0),
       ],
    q(matis) => [
-      q(4481),
+      q(4470),
       q(0),
       ],
    q(mato) => [
-      q(4229),
+      q(4218),
       q(0),
       ],
    q(mato grosso arara) => [
-      q(0990),
+      q(0986),
       q(0),
       ],
    q(mator) => [
-      q(4577),
-      q(0),
-      ],
-   q(mator-taygi-karagas) => [
-      q(7717),
+      q(4566),
       q(0),
       ],
    q(matses) => [
-      q(4168),
+      q(4157),
       q(0),
       ],
    q(mattoki) => [
-      q(7457),
+      q(7444),
       q(1),
       ],
    q(mattole) => [
-      q(4612),
+      q(4601),
       q(0),
       ],
    q(matu chin) => [
-      q(2783),
+      q(2775),
       q(0),
       ],
    q(matukar) => [
-      q(4338),
+      q(4327),
       q(0),
       ],
    q(matumbi) => [
-      q(4282),
+      q(4271),
       q(0),
       ],
    q(matya samo) => [
-      q(6273),
+      q(6261),
       q(0),
       ],
    q(maung) => [
-      q(4472),
+      q(4461),
       q(0),
       ],
    q(mauritian sign language) => [
-      q(4079),
+      q(4068),
       q(0),
       ],
    q(mauwake) => [
-      q(4295),
+      q(4284),
       q(0),
       ],
    q(mawa (chad)) => [
-      q(4185),
+      q(4174),
       q(0),
       ],
    q(mawa (nigeria)) => [
-      q(7180),
+      q(7167),
       q(0),
       ],
    q(mawak) => [
-      q(4337),
+      q(4326),
       q(0),
       ],
    q(mawan) => [
-      q(4188),
+      q(4177),
       q(0),
       ],
    q(mawayana) => [
-      q(4727),
+      q(4715),
       q(0),
       ],
    q(mawchi) => [
-      q(4357),
+      q(4346),
       q(0),
       ],
    q(mawes) => [
-      q(4270),
+      q(4259),
       q(0),
       ],
    q(mawukakan) => [
-      q(4681),
+      q(4669),
       q(1),
       ],
    q(maxakali) => [
-      q(4148),
+      q(4137),
       q(0),
       ],
    q(maxi gbe) => [
-      q(4669),
+      q(4657),
       q(0),
       ],
    q(maya samo) => [
-      q(6351),
+      q(6339),
       q(0),
       ],
    q(mayaguduna) => [
-      q(7442),
+      q(7429),
       q(0),
       ],
    q(mayan languages) => [
@@ -42272,323 +42214,323 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mayangna) => [
-      q(7601),
+      q(7587),
       q(0),
       ],
    q(mayawali) => [
-      q(7809),
+      q(7792),
       q(0),
       ],
    q(mayeka) => [
-      q(4685),
+      q(4673),
       q(0),
       ],
    q(mayi-kulan) => [
-      q(7581),
+      q(7567),
       q(0),
       ],
    q(mayi-thakurti) => [
-      q(7583),
+      q(7569),
       q(0),
       ],
    q(mayi-yapi) => [
-      q(7580),
+      q(7566),
       q(0),
       ],
    q(mayo) => [
-      q(4259),
+      q(4248),
       q(0),
       ],
    q(mayogo) => [
-      q(4200),
+      q(4189),
       q(0),
       ],
    q(mayoyao ifugao) => [
-      q(2926),
+      q(2918),
       q(0),
       ],
    q(mazagway) => [
-      q(2082),
+      q(2076),
       q(0),
       ],
    q(mazaltepec zapotec) => [
-      q(7953),
+      q(7936),
       q(0),
       ],
    q(mazanderani) => [
-      q(4717),
+      q(4705),
       q(0),
       ],
    q(mazatlan mazatec) => [
-      q(7052),
+      q(7039),
       q(0),
       ],
    q(mazatlan mixe) => [
-      q(4715),
+      q(4703),
       q(0),
       ],
    q(mba) => [
-      q(4237),
+      q(4226),
       q(0),
       ],
    q(mbala) => [
-      q(4202),
+      q(4191),
       q(0),
       ],
    q(mbalanhu) => [
-      q(4010),
+      q(3999),
       q(0),
       ],
    q(mbandja) => [
-      q(7916),
+      q(7899),
       q(0),
       ],
    q(mbangala) => [
-      q(4664),
+      q(4652),
       q(0),
       ],
    q(mbangi) => [
-      q(4273),
+      q(4262),
       q(0),
       ],
    q(mbangwe) => [
-      q(7904),
+      q(7887),
       q(0),
       ],
    q(mbara (australia)) => [
-      q(4620),
+      q(4609),
       q(0),
       ],
    q(mbara (chad)) => [
-      q(4475),
+      q(4464),
       q(0),
       ],
    q(mbariman-gudhinma) => [
-      q(7912),
+      q(7895),
       q(0),
       ],
    q(mbati) => [
-      q(4201),
+      q(4190),
       q(0),
       ],
    q(mbato) => [
-      q(2687),
+      q(2679),
       q(0),
       ],
    q(mbay) => [
-      q(4684),
+      q(4672),
       q(0),
       ],
    q(mbe) => [
-      q(4249),
+      q(4238),
       q(0),
       ],
    q(mbe') => [
-      q(4575),
+      q(4564),
       q(0),
       ],
    q(mbelime) => [
-      q(4501),
+      q(4490),
       q(0),
       ],
    q(mbere) => [
-      q(4205),
+      q(4194),
       q(0),
       ],
    q(mbesa) => [
-      q(7909),
+      q(7892),
       q(0),
       ],
    q(mbo (cameroon)) => [
-      q(4151),
+      q(4140),
       q(0),
       ],
    q(mbo (democratic republic of congo)) => [
-      q(7913),
+      q(7896),
       q(0),
       ],
    q(mboi) => [
-      q(4452),
+      q(4441),
       q(0),
       ],
    q(mboko) => [
-      q(4206),
+      q(4195),
       q(0),
       ],
    q(mbole) => [
-      q(4203),
+      q(4192),
       q(0),
       ],
    q(mbonga) => [
-      q(7420),
+      q(7407),
       q(0),
       ],
    q(mbongno) => [
-      q(1183),
+      q(1179),
       q(0),
       ],
    q(mbosi) => [
-      q(4208),
+      q(4197),
       q(0),
       ],
    q(mbowe) => [
-      q(4672),
+      q(4660),
       q(0),
       ],
    q(mbre) => [
-      q(4354),
+      q(4343),
       q(0),
       ],
    q(mbudum) => [
-      q(7422),
+      q(7409),
       q(0),
       ],
    q(mbugu) => [
-      q(4288),
+      q(4277),
       q(0),
       ],
    q(mbugwe) => [
-      q(4284),
+      q(4273),
       q(0),
       ],
    q(mbuko) => [
-      q(4492),
+      q(4481),
       q(0),
       ],
    q(mbukushu) => [
-      q(4305),
+      q(4294),
       q(0),
       ],
    q(mbula) => [
-      q(4425),
+      q(4414),
       q(0),
       ],
    q(mbula-bwazza) => [
-      q(4157),
+      q(4146),
       q(0),
       ],
    q(mbule) => [
-      q(4379),
+      q(4368),
       q(0),
       ],
    q(mbulungish) => [
-      q(4158),
+      q(4147),
       q(0),
       ],
    q(mbum) => [
-      q(4192),
+      q(4181),
       q(0),
       ],
    q(mbunda) => [
-      q(4173),
+      q(4162),
       q(0),
       ],
    q(mbunga) => [
-      q(4283),
+      q(4272),
       q(0),
       ],
    q(mburku) => [
-      q(1060),
+      q(1056),
       q(0),
       ],
    q(mbwela) => [
-      q(4255),
+      q(4244),
       q(0),
       ],
    q(mbya guarani) => [
-      q(2662),
+      q(2654),
       q(0),
       ],
    q(me'en) => [
-      q(4695),
+      q(4683),
       q(0),
       ],
    q(mea) => [
-      q(1745),
+      q(1739),
       q(2),
       ],
    q(medebur) => [
-      q(4340),
+      q(4329),
       q(0),
       ],
    q(media lengua) => [
-      q(4594),
+      q(4583),
       q(0),
       ],
    q(mediak) => [
-      q(4655),
+      q(4643),
       q(0),
       ],
    q(median) => [
-      q(7423),
+      q(7410),
       q(0),
       ],
    q(mednyj aleut) => [
-      q(4593),
+      q(4582),
       q(0),
       ],
    q(medumba) => [
-      q(1614),
+      q(1608),
       q(0),
       ],
    q(mefele) => [
-      q(4244),
+      q(4233),
       q(0),
       ],
    q(megam) => [
-      q(4217),
+      q(4206),
       q(0),
       ],
    q(megleno romanian) => [
-      q(5881),
+      q(5870),
       q(0),
       ],
    q(mehek) => [
-      q(5137),
+      q(5125),
       q(0),
       ],
    q(mehinaku) => [
-      q(4407),
+      q(4396),
       q(0),
       ],
    q(mehri) => [
-      q(2473),
+      q(2466),
       q(0),
       ],
    q(mekeo) => [
-      q(4221),
+      q(4210),
       q(0),
       ],
    q(mekmek) => [
-      q(4619),
+      q(4608),
       q(0),
       ],
    q(mekwei) => [
-      q(4545),
+      q(4534),
       q(0),
       ],
    q(mele-fila) => [
-      q(4662),
+      q(4650),
       q(0),
       ],
    q(melo) => [
-      q(4258),
+      q(4247),
       q(0),
       ],
    q(melpa) => [
-      q(4215),
+      q(4204),
       q(0),
       ],
    q(memoni) => [
-      q(4161),
+      q(4150),
       q(0),
       ],
    q(mendalam kayan) => [
-      q(7384),
+      q(7371),
       q(0),
       ],
    q(mendankwe-nkwen) => [
-      q(4238),
+      q(4227),
       q(0),
       ],
    q(mende) => [
@@ -42596,7 +42538,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mende (papua new guinea)) => [
-      q(6055),
+      q(6043),
       q(0),
       ],
    q(mende (sierra leone)) => [
@@ -42604,155 +42546,155 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(mengaka) => [
-      q(7425),
+      q(7412),
       q(0),
       ],
    q(mengen) => [
-      q(4216),
+      q(4205),
       q(0),
       ],
    q(mengisa) => [
-      q(4182),
+      q(4171),
       q(0),
       ],
    q(menik) => [
-      q(6637),
+      q(6625),
       q(0),
       ],
    q(menka) => [
-      q(4212),
+      q(4201),
       q(0),
       ],
    q(menominee) => [
-      q(4234),
+      q(4223),
       q(0),
       ],
    q(mentawai) => [
-      q(4653),
+      q(4641),
       q(0),
       ],
    q(menya) => [
-      q(4180),
+      q(4169),
       q(0),
       ],
    q(meoswar) => [
-      q(4632),
+      q(4621),
       q(0),
       ],
    q(mer) => [
-      q(4441),
+      q(4430),
       q(0),
       ],
    q(meramera) => [
-      q(4670),
+      q(4658),
       q(0),
       ],
    q(merei) => [
-      q(3987),
+      q(3976),
       q(0),
       ],
    q(merey) => [
-      q(4226),
+      q(4215),
       q(0),
       ],
    q(meriam) => [
-      q(6907),
+      q(6895),
       q(0),
       ],
    q(merlav) => [
-      q(4527),
+      q(4516),
       q(0),
       ],
    q(meroitic) => [
-      q(7435),
+      q(7422),
       q(0),
       ],
    q(meru) => [
-      q(4227),
+      q(4216),
       q(0),
       ],
    q(merwari) => [
-      q(7243),
+      q(7230),
       q(0),
       ],
    q(mesaka) => [
-      q(3043),
+      q(3035),
       q(0),
       ],
    q(mescalero-chiricahua apache) => [
-      q(0847),
+      q(0845),
       q(0),
       ],
    q(mese) => [
-      q(4171),
+      q(4160),
       q(0),
       ],
    q(meskwaki) => [
-      q(5898),
+      q(5887),
       q(0),
       ],
    q(mesme) => [
-      q(7868),
+      q(7851),
       q(0),
       ],
    q(mesmes) => [
-      q(4699),
+      q(4687),
       q(0),
       ],
    q(mesopotamian arabic) => [
-      q(0592),
+      q(0591),
       q(0),
       ],
    q(mesqan) => [
-      q(4634),
+      q(4623),
       q(0),
       ],
    q(messapic) => [
-      q(1798),
+      q(1792),
       q(0),
       ],
    q(meta') => [
-      q(4274),
+      q(4263),
       q(0),
       ],
    q(metlatonoc mixtec) => [
-      q(4679),
+      q(4667),
       q(0),
       ],
    q(mewari) => [
-      q(4582),
+      q(4571),
       q(0),
       ],
    q(mewati) => [
-      q(7256),
+      q(7243),
       q(0),
       ],
    q(mexican sign language) => [
-      q(4253),
+      q(4242),
       q(0),
       ],
    q(meyah) => [
-      q(4220),
+      q(4209),
       q(0),
       ],
    q(mezontla popoloca) => [
-      q(5377),
+      q(5365),
       q(0),
       ],
    q(mezquital otomi) => [
-      q(5329),
+      q(5318),
       q(0),
       ],
    q(mfinu) => [
-      q(7896),
+      q(7879),
       q(0),
       ],
    q(mfumte) => [
-      q(4845),
+      q(4833),
       q(0),
       ],
    q(mgbolizhia) => [
-      q(2572),
+      q(2565),
       q(0),
       ],
    q(mi'kmaq) => [
@@ -42760,35 +42702,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(miahuatlan zapotec) => [
-      q(7832),
+      q(7815),
       q(0),
       ],
    q(miami) => [
-      q(4309),
+      q(4298),
       q(0),
       ],
    q(mian) => [
-      q(4484),
+      q(4473),
       q(0),
       ],
    q(miani) => [
-      q(5496),
+      q(5485),
       q(0),
       ],
    q(michif) => [
-      q(1854),
+      q(1848),
       q(0),
       ],
    q(michigamea) => [
-      q(1794),
+      q(1788),
       q(0),
       ],
    q(michoacan mazahua) => [
-      q(4402),
+      q(4391),
       q(0),
       ],
    q(michoacan nahuatl) => [
-      q(4784),
+      q(4772),
       q(0),
       ],
    q(micmac) => [
@@ -42796,23 +42738,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(mid grand valley dani) => [
-      q(2113),
+      q(2107),
       q(0),
       ],
    q(mid-southern banda) => [
-      q(1247),
+      q(1243),
       q(0),
       ],
    q(middle armenian) => [
-      q(0993),
+      q(0989),
       q(0),
       ],
    q(middle breton) => [
-      q(7312),
+      q(7299),
       q(0),
       ],
    q(middle cornish) => [
-      q(1813),
+      q(1807),
       q(0),
       ],
    q(middle dutch (ca. 1050-1350)) => [
@@ -42832,7 +42774,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(middle hittite) => [
-      q(2859),
+      q(2851),
       q(0),
       ],
    q(middle irish (900-1200)) => [
@@ -42840,103 +42782,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(middle korean (10th-16th cent.)) => [
-      q(5245),
+      q(5234),
       q(0),
       ],
    q(middle low german) => [
-      q(2565),
+      q(2558),
       q(0),
       ],
    q(middle mongolian) => [
-      q(7446),
+      q(7433),
       q(0),
       ],
    q(middle newar) => [
-      q(5151),
+      q(5139),
       q(0),
       ],
    q(middle watut) => [
-      q(4476),
+      q(4465),
       q(0),
       ],
    q(middle welsh) => [
-      q(7171),
+      q(7158),
       q(0),
       ],
    q(midob) => [
-      q(4219),
+      q(4208),
       q(0),
       ],
    q(migaama) => [
-      q(4423),
+      q(4412),
       q(0),
       ],
    q(migabac) => [
-      q(4480),
+      q(4469),
       q(0),
       ],
    q(migum) => [
-      q(3447),
+      q(3440),
       q(0),
       ],
    q(miji) => [
-      q(6072),
+      q(6060),
       q(1),
       ],
    q(miju-mishmi) => [
-      q(4667),
+      q(4655),
       q(0),
       ],
    q(mikasuki) => [
-      q(4318),
+      q(4307),
       q(0),
       ],
    q(mili) => [
-      q(7706),
+      q(7691),
       q(0),
       ],
    q(miltu) => [
-      q(4385),
+      q(4374),
       q(0),
       ],
    q(miluk) => [
-      q(2971),
+      q(2963),
       q(0),
       ],
    q(milyan) => [
-      q(2976),
+      q(2968),
       q(0),
       ],
    q(min bei chinese) => [
-      q(4437),
+      q(4426),
       q(0),
       ],
    q(min dong chinese) => [
-      q(1706),
+      q(1700),
       q(0),
       ],
    q(min nan chinese) => [
-      q(4741),
+      q(4729),
       q(0),
       ],
    q(min zhong chinese) => [
-      q(1941),
+      q(1935),
       q(0),
       ],
    q(mina (cameroon)) => [
-      q(2808),
+      q(2800),
       q(0),
       ],
    q(mina (india)) => [
-      q(4691),
+      q(4679),
       q(0),
       ],
    q(minaean) => [
-      q(2981),
+      q(2973),
       q(0),
       ],
    q(minang) => [
-      q(7492),
+      q(7479),
       q(0),
       ],
    q(minangkabau) => [
@@ -42944,71 +42886,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(minanibai) => [
-      q(4184),
+      q(4173),
       q(0),
       ],
    q(minaveha) => [
-      q(4622),
+      q(4611),
       q(0),
       ],
    q(minderico) => [
-      q(2140),
+      q(2134),
       q(0),
       ],
    q(mindiri) => [
-      q(4478),
+      q(4467),
       q(0),
       ],
    q(mingang doso) => [
-      q(4366),
+      q(4355),
       q(0),
       ],
    q(mingrelian) => [
-      q(7424),
+      q(7411),
       q(0),
       ],
    q(minica huitoto) => [
-      q(2856),
+      q(2848),
       q(0),
       ],
    q(minidien) => [
-      q(7145),
+      q(7132),
       q(0),
       ],
    q(minigir) => [
-      q(1576),
+      q(1571),
       q(1),
       ],
    q(minjungbal) => [
-      q(7379),
+      q(7366),
       q(0),
       ],
    q(minkin) => [
-      q(7575),
+      q(7561),
       q(0),
       ],
    q(minoan) => [
-      q(5269),
+      q(5258),
       q(0),
       ],
    q(minokok) => [
-      q(4506),
+      q(4495),
       q(0),
       ],
    q(minriq) => [
-      q(4438),
+      q(4427),
       q(0),
       ],
    q(mintil) => [
-      q(4723),
+      q(4711),
       q(0),
       ],
    q(minz zhuang) => [
-      q(7856),
+      q(7839),
       q(0),
       ],
    q(miqie) => [
-      q(7669),
+      q(7654),
       q(0),
       ],
    q(mirandese) => [
@@ -43016,163 +42958,159 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(miraya bikol) => [
-      q(5771),
+      q(5759),
       q(0),
       ],
    q(mirgan) => [
-      q(7957),
+      q(7940),
       q(0),
       ],
    q(miriti) => [
-      q(4420),
+      q(4409),
       q(0),
       ],
    q(miriwung) => [
-      q(4225),
-      q(0),
-      ],
-   q(mirpur panjabi) => [
-      q(5536),
+      q(4214),
       q(0),
       ],
    q(miship) => [
-      q(4346),
+      q(4335),
       q(0),
       ],
    q(misima-panaeati) => [
-      q(4488),
+      q(4477),
       q(0),
       ],
    q(mising) => [
-      q(4522),
+      q(4511),
       q(0),
       ],
    q(miskito) => [
-      q(4323),
+      q(4312),
       q(0),
       ],
    q(mitla zapotec) => [
-      q(7840),
+      q(7823),
       q(0),
       ],
    q(mitlatongo mixtec) => [
-      q(7042),
+      q(7029),
       q(0),
       ],
    q(mittu) => [
-      q(4652),
+      q(4640),
       q(0),
       ],
    q(mituku) => [
-      q(7907),
+      q(7890),
       q(0),
       ],
    q(miu) => [
-      q(4479),
+      q(4468),
       q(0),
       ],
    q(miwa) => [
-      q(7038),
+      q(7025),
       q(0),
       ],
    q(mixed great andamanese) => [
-      q(2405),
+      q(2398),
       q(0),
       ],
    q(mixtepec mixtec) => [
-      q(4328),
+      q(4317),
       q(0),
       ],
    q(mixtepec zapotec) => [
-      q(7941),
+      q(7924),
       q(0),
       ],
    q(miya) => [
-      q(4358),
+      q(4347),
       q(0),
       ],
    q(miyako) => [
-      q(4618),
+      q(4607),
       q(0),
       ],
    q(miyobe) => [
-      q(6187),
+      q(6175),
       q(0),
       ],
    q(mlabri) => [
-      q(4516),
+      q(4505),
       q(0),
       ],
    q(mlahso) => [
-      q(3916),
+      q(3906),
       q(0),
       ],
    q(mlap) => [
-      q(3385),
+      q(3377),
       q(0),
       ],
    q(mlomp) => [
-      q(4390),
+      q(4379),
       q(0),
       ],
    q(mmaala) => [
-      q(4419),
+      q(4408),
       q(0),
       ],
    q(mmen) => [
-      q(1151),
+      q(1147),
       q(0),
       ],
    q(mo) => [
-      q(7159),
+      q(7146),
       q(1),
       ],
    q(mo'da) => [
-      q(2438),
+      q(2431),
       q(0),
       ],
    q(moabite) => [
-      q(5202),
+      q(5191),
       q(0),
       ],
    q(moba) => [
-      q(4251),
+      q(4240),
       q(0),
       ],
    q(mobilian) => [
-      q(4449),
+      q(4438),
       q(0),
       ],
    q(mobumrin aizi) => [
-      q(0686),
+      q(0684),
       q(0),
       ],
    q(mobwa karen) => [
-      q(3116),
+      q(3109),
       q(0),
       ],
    q(mocheno) => [
-      q(4297),
+      q(4286),
       q(0),
       ],
    q(mochi) => [
-      q(5254),
+      q(5243),
       q(0),
       ],
    q(mochica) => [
-      q(5263),
+      q(5252),
       q(0),
       ],
    q(mocho) => [
-      q(4287),
+      q(4276),
       q(0),
       ],
    q(mocovi) => [
-      q(4448),
+      q(4437),
       q(0),
       ],
    q(modang) => [
-      q(4661),
+      q(4649),
       q(0),
       ],
    q(modern greek (1453-)) => [
@@ -43180,31 +43118,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(modole) => [
-      q(4504),
+      q(4493),
       q(0),
       ],
    q(moere) => [
-      q(4625),
+      q(4614),
       q(0),
       ],
    q(mofu-gudur) => [
-      q(4313),
+      q(4302),
       q(0),
       ],
    q(mogholi) => [
-      q(4293),
+      q(4282),
       q(0),
       ],
    q(mogofin) => [
-      q(4241),
+      q(4230),
       q(0),
       ],
    q(mogum) => [
-      q(4460),
+      q(4449),
       q(0),
       ],
    q(mohave) => [
-      q(4461),
+      q(4450),
       q(0),
       ],
    q(mohawk) => [
@@ -43212,59 +43150,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mohegan-pequot) => [
-      q(7480),
+      q(7467),
       q(0),
       ],
    q(moi (congo)) => [
-      q(4462),
+      q(4451),
       q(0),
       ],
    q(moi (indonesia)) => [
-      q(4671),
+      q(4659),
       q(0),
       ],
    q(moikodi) => [
-      q(4367),
+      q(4356),
       q(0),
       ],
    q(moingi) => [
-      q(4657),
+      q(4645),
       q(0),
       ],
    q(moji) => [
-      q(7707),
+      q(7692),
       q(0),
       ],
    q(mok) => [
-      q(4509),
+      q(4498),
       q(0),
       ],
    q(moken) => [
-      q(4651),
+      q(4639),
       q(0),
       ],
    q(mokerang) => [
-      q(4254),
+      q(4243),
       q(0),
       ],
    q(mokilese) => [
-      q(4361),
+      q(4350),
       q(0),
       ],
    q(moklen) => [
-      q(4364),
+      q(4353),
       q(0),
       ],
    q(mokole) => [
-      q(4363),
+      q(4352),
       q(0),
       ],
    q(mokpwe) => [
-      q(1433),
+      q(1428),
       q(0),
       ],
    q(moksela) => [
-      q(7046),
+      q(7033),
       q(0),
       ],
    q(moksha) => [
@@ -43272,11 +43210,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(molale) => [
-      q(4142),
+      q(4131),
       q(0),
       ],
    q(molbog) => [
-      q(5676),
+      q(5664),
       q(0),
       ],
    q(moldavian) => [
@@ -43284,7 +43222,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(moldova sign language) => [
-      q(7060),
+      q(7047),
       q(0),
       ],
    q(moldovan) => [
@@ -43292,59 +43230,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(molengue) => [
-      q(1573),
+      q(1568),
       q(0),
       ],
    q(molima) => [
-      q(4463),
+      q(4452),
       q(0),
       ],
    q(molmo one) => [
-      q(0947),
+      q(0943),
       q(0),
       ],
    q(molo) => [
-      q(7905),
+      q(7888),
       q(0),
       ],
    q(molof) => [
-      q(4551),
+      q(4540),
       q(0),
       ],
    q(moloko) => [
-      q(4397),
+      q(4386),
       q(0),
       ],
    q(mom jango) => [
-      q(7006),
+      q(6993),
       q(0),
       ],
    q(moma) => [
-      q(4694),
+      q(4682),
       q(0),
       ],
    q(momare) => [
-      q(4564),
+      q(4553),
       q(0),
       ],
    q(mombo dogon) => [
-      q(2088),
+      q(2082),
       q(0),
       ],
    q(mombum) => [
-      q(4554),
+      q(4543),
       q(0),
       ],
    q(momina) => [
-      q(4401),
+      q(4390),
       q(0),
       ],
    q(momuna) => [
-      q(4495),
+      q(4484),
       q(0),
       ],
    q(mon) => [
-      q(4443),
+      q(4432),
       q(0),
       ],
    q(mon-khmer languages) => [
@@ -43352,15 +43290,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(monastic sign language) => [
-      q(4710),
+      q(4698),
       q(0),
       ],
    q(monde) => [
-      q(4427),
+      q(4416),
       q(0),
       ],
    q(mondropolon) => [
-      q(5050),
+      q(5037),
       q(0),
       ],
    q(mong) => [
@@ -43368,11 +43306,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(mong leng) => [
-      q(2813),
+      q(2805),
       q(1),
       ],
    q(mong njua) => [
-      q(2813),
+      q(2805),
       q(2),
       ],
    q(mongo) => [
@@ -43380,11 +43318,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mongol) => [
-      q(4279),
+      q(4268),
       q(0),
       ],
    q(mongolia buriat) => [
-      q(1583),
+      q(1578),
       q(0),
       ],
    q(mongolian) => [
@@ -43396,163 +43334,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mongolian sign language) => [
-      q(4557),
+      q(4546),
       q(0),
       ],
    q(mongondow) => [
-      q(4451),
+      q(4440),
       q(0),
       ],
    q(moni) => [
-      q(4446),
+      q(4435),
       q(0),
       ],
    q(mono (cameroon)) => [
-      q(4535),
+      q(4524),
       q(0),
       ],
    q(mono (democratic republic of congo)) => [
-      q(4431),
+      q(4420),
       q(0),
       ],
    q(mono (solomon islands)) => [
-      q(4569),
+      q(4558),
       q(0),
       ],
    q(mono (usa)) => [
-      q(4439),
+      q(4428),
       q(0),
       ],
    q(monom) => [
-      q(4456),
+      q(4445),
       q(0),
       ],
    q(monsang naga) => [
-      q(4980),
+      q(4968),
       q(0),
       ],
    q(montagnais) => [
-      q(4450),
+      q(4439),
       q(0),
       ],
    q(montol) => [
-      q(4576),
+      q(4565),
       q(0),
       ],
    q(monumbo) => [
-      q(4668),
+      q(4656),
       q(0),
       ],
    q(monzombo) => [
-      q(4453),
+      q(4442),
       q(0),
       ],
    q(moo) => [
-      q(2693),
+      q(2685),
       q(0),
       ],
    q(moose cree) => [
-      q(1859),
+      q(1853),
       q(0),
       ],
    q(mopan maya) => [
-      q(4457),
+      q(4446),
       q(0),
       ],
    q(mor (bomberai peninsula)) => [
-      q(4458),
+      q(4447),
       q(0),
       ],
    q(mor (mor islands)) => [
-      q(4308),
+      q(4297),
       q(0),
       ],
    q(moraid) => [
-      q(4546),
+      q(4535),
       q(0),
       ],
    q(morawa) => [
-      q(4709),
+      q(4697),
       q(0),
       ],
    q(morelos nahuatl) => [
-      q(4881),
+      q(4869),
       q(0),
       ],
    q(morerebi) => [
-      q(7432),
+      q(7419),
       q(0),
       ],
    q(moresada) => [
-      q(4562),
+      q(4551),
       q(0),
       ],
    q(mori atas) => [
-      q(4720),
+      q(4708),
       q(0),
       ],
    q(mori bawah) => [
-      q(7443),
+      q(7430),
       q(0),
       ],
    q(morigi) => [
-      q(4190),
+      q(4179),
       q(0),
       ],
    q(morisyen) => [
-      q(4239),
+      q(4228),
       q(0),
       ],
    q(moro) => [
-      q(4459),
+      q(4448),
       q(0),
       ],
    q(moroccan arabic) => [
-      q(0885),
+      q(0883),
       q(0),
       ],
    q(moroccan sign language) => [
-      q(7436),
+      q(7423),
       q(0),
       ],
    q(morokodo) => [
-      q(4262),
+      q(4251),
       q(0),
       ],
    q(morom) => [
-      q(1106),
+      q(1102),
       q(0),
       ],
    q(moronene) => [
-      q(4503),
+      q(4492),
       q(0),
       ],
    q(morori) => [
-      q(4454),
+      q(4443),
       q(0),
       ],
    q(morouas) => [
-      q(4530),
+      q(4519),
       q(0),
       ],
    q(mortlockese) => [
-      q(4526),
+      q(4515),
       q(0),
       ],
    q(moru) => [
-      q(4263),
+      q(4252),
       q(0),
       ],
    q(mosimo) => [
-      q(4511),
+      q(4500),
       q(0),
       ],
    q(mosiro) => [
-      q(4656),
+      q(4644),
       q(0),
       ],
    q(moskona) => [
-      q(4574),
+      q(4563),
       q(0),
       ],
    q(mossi) => [
@@ -43560,179 +43498,179 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mota) => [
-      q(4584),
+      q(4573),
       q(0),
       ],
    q(motlav) => [
-      q(4396),
+      q(4385),
       q(0),
       ],
    q(motu) => [
-      q(4230),
+      q(4219),
       q(0),
       ],
    q(mouk-aria) => [
-      q(4641),
+      q(4630),
       q(0),
       ],
    q(mountain koiali) => [
-      q(3552),
+      q(3544),
       q(0),
       ],
    q(mouwase) => [
-      q(3132),
+      q(3125),
       q(0),
       ],
    q(movima) => [
-      q(4719),
+      q(4707),
       q(0),
       ],
    q(moyadan itneg) => [
-      q(3031),
+      q(3023),
       q(0),
       ],
    q(moyon naga) => [
-      q(4987),
+      q(4975),
       q(0),
       ],
    q(mozambican sign language) => [
-      q(4728),
+      q(4716),
       q(0),
       ],
    q(mozarabic) => [
-      q(4666),
+      q(4654),
       q(0),
       ],
    q(mpade) => [
-      q(4473),
+      q(4462),
       q(0),
       ],
    q(mpalitjanh) => [
-      q(7474),
+      q(7461),
       q(0),
       ],
    q(mpi) => [
-      q(4490),
+      q(4479),
       q(0),
       ],
    q(mpiemo) => [
-      q(4186),
+      q(4175),
       q(0),
       ],
    q(mpoto) => [
-      q(4466),
+      q(4455),
       q(0),
       ],
    q(mpotovoro) => [
-      q(4628),
+      q(4617),
       q(0),
       ],
    q(mpumpong) => [
-      q(4266),
+      q(4255),
       q(0),
       ],
    q(mpuono) => [
-      q(7906),
+      q(7889),
       q(0),
       ],
    q(mpur) => [
-      q(0725),
+      q(0723),
       q(0),
       ],
    q(mro-khimi chin) => [
-      q(1797),
+      q(1791),
       q(0),
       ],
    q(mru) => [
-      q(4529),
+      q(4518),
       q(0),
       ],
    q(mser) => [
-      q(3578),
+      q(3570),
       q(0),
       ],
    q(mt. iraya agta) => [
-      q(0920),
+      q(0918),
       q(0),
       ],
    q(mt. iriga agta) => [
-      q(0678),
+      q(0676),
       q(0),
       ],
    q(mualang) => [
-      q(4568),
+      q(4557),
       q(0),
       ],
    q(mubami) => [
-      q(6744),
+      q(6731),
       q(0),
       ],
    q(mubi) => [
-      q(4591),
+      q(4580),
       q(0),
       ],
    q(muda) => [
-      q(7703),
+      q(7688),
       q(0),
       ],
    q(mudburra) => [
-      q(2101),
+      q(2095),
       q(0),
       ],
    q(mudhili gadaba) => [
-      q(2423),
+      q(2416),
       q(0),
       ],
    q(mudu koraga) => [
-      q(7033),
+      q(7020),
       q(0),
       ],
    q(muduga) => [
-      q(6874),
+      q(6862),
       q(0),
       ],
    q(mufian) => [
-      q(0825),
+      q(0823),
       q(0),
       ],
    q(mugom) => [
-      q(4599),
+      q(4588),
       q(0),
       ],
    q(muinane) => [
-      q(1323),
+      q(1319),
       q(0),
       ],
    q(mukha-dora) => [
-      q(4410),
+      q(4399),
       q(0),
       ],
    q(mukulu) => [
-      q(4465),
+      q(4454),
       q(0),
       ],
    q(mulaha) => [
-      q(4257),
+      q(4246),
       q(0),
       ],
    q(mulam) => [
-      q(4388),
+      q(4377),
       q(0),
       ],
    q(mulao) => [
-      q(2534),
+      q(2526),
       q(0),
       ],
    q(mulgi) => [
-      q(4617),
+      q(4606),
       q(0),
       ],
    q(mullu kurumba) => [
-      q(3532),
+      q(3524),
       q(0),
       ],
    q(mullukmulluk) => [
-      q(4467),
+      q(4456),
       q(0),
       ],
    q(multiple languages) => [
@@ -43740,27 +43678,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(muluridyi) => [
-      q(7047),
+      q(7034),
       q(0),
       ],
    q(mum) => [
-      q(3555),
+      q(3547),
       q(0),
       ],
    q(mumuye) => [
-      q(4716),
+      q(4704),
       q(0),
       ],
    q(mun chin) => [
-      q(4649),
+      q(4637),
       q(0),
       ],
    q(muna) => [
-      q(4426),
+      q(4415),
       q(0),
       ],
    q(munda) => [
-      q(6933),
+      q(6921),
       q(0),
       ],
    q(munda languages) => [
@@ -43768,243 +43706,243 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mundabli) => [
-      q(1358),
+      q(1353),
       q(0),
       ],
    q(mundang) => [
-      q(4590),
+      q(4579),
       q(0),
       ],
    q(mundani) => [
-      q(4429),
+      q(4418),
       q(0),
       ],
    q(mundari) => [
-      q(6931),
+      q(6919),
       q(0),
       ],
    q(mundat) => [
-      q(4405),
+      q(4394),
       q(0),
       ],
    q(mundu) => [
-      q(4596),
+      q(4585),
       q(0),
       ],
    q(munduruku) => [
-      q(4700),
+      q(4688),
       q(0),
       ],
    q(mungaka) => [
-      q(4294),
+      q(4283),
       q(0),
       ],
    q(mungbam) => [
-      q(4317),
+      q(4306),
       q(1),
       ],
    q(munggui) => [
-      q(4572),
+      q(4561),
       q(0),
       ],
    q(mungkip) => [
-      q(4486),
+      q(4475),
       q(0),
       ],
    q(muniche) => [
-      q(4698),
+      q(4686),
       q(0),
       ],
    q(munit) => [
-      q(4567),
+      q(4556),
       q(0),
       ],
    q(munji) => [
-      q(4432),
+      q(4421),
       q(0),
       ],
    q(munsee) => [
-      q(6924),
+      q(6912),
       q(0),
       ],
    q(muong) => [
-      q(4581),
+      q(4570),
       q(0),
       ],
    q(mur pano) => [
-      q(6573),
+      q(6561),
       q(0),
       ],
    q(muratayak) => [
-      q(0908),
+      q(0906),
       q(0),
       ],
    q(murik (malaysia)) => [
-      q(4675),
+      q(4663),
       q(0),
       ],
    q(murik (papua new guinea)) => [
-      q(4570),
+      q(4559),
       q(0),
       ],
    q(murkim) => [
-      q(5823),
+      q(5811),
       q(0),
       ],
    q(murle) => [
-      q(4604),
+      q(4593),
       q(0),
       ],
    q(murrinh-patha) => [
-      q(4639),
+      q(4628),
       q(0),
       ],
    q(mursi) => [
-      q(4610),
+      q(4599),
       q(0),
       ],
    q(murui huitoto) => [
-      q(2877),
+      q(2869),
       q(0),
       ],
    q(murupi) => [
-      q(4512),
+      q(4501),
       q(0),
       ],
    q(muruwari) => [
-      q(7911),
+      q(7894),
       q(0),
       ],
    q(musak) => [
-      q(4416),
+      q(4405),
       q(0),
       ],
    q(musar) => [
-      q(4408),
+      q(4397),
       q(0),
       ],
    q(musasa) => [
-      q(6135),
+      q(6123),
       q(0),
       ],
    q(musey) => [
-      q(4544),
+      q(4533),
       q(0),
       ],
    q(musgu) => [
-      q(4595),
+      q(4584),
       q(0),
       ],
    q(mushungulu) => [
-      q(7419),
+      q(7406),
       q(0),
       ],
    q(musi) => [
-      q(4597),
+      q(4586),
       q(0),
       ],
    q(muskum) => [
-      q(4333),
+      q(4322),
       q(0),
       ],
    q(muslim tat) => [
-      q(6766),
+      q(6753),
       q(0),
       ],
    q(musom) => [
-      q(4559),
+      q(4548),
       q(0),
       ],
    q(mussau-emira) => [
-      q(2260),
+      q(2253),
       q(0),
       ],
    q(muthuvan) => [
-      q(4607),
+      q(4596),
       q(0),
       ],
    q(mutu) => [
-      q(6774),
+      q(6761),
       q(0),
       ],
    q(muya) => [
-      q(4621),
+      q(4610),
       q(0),
       ],
    q(muyang) => [
-      q(4609),
+      q(4598),
       q(0),
       ],
    q(muyuw) => [
-      q(4701),
+      q(4689),
       q(0),
       ],
    q(muzi) => [
-      q(7719),
+      q(7703),
       q(0),
       ],
    q(mvanip) => [
-      q(4172),
+      q(4161),
       q(0),
       ],
    q(mvuba) => [
-      q(4665),
+      q(4653),
       q(0),
       ],
    q(mwaghavul) => [
-      q(6296),
+      q(6284),
       q(0),
       ],
    q(mwali comorian) => [
-      q(7165),
+      q(7152),
       q(0),
       ],
    q(mwan) => [
-      q(4447),
+      q(4436),
       q(0),
       ],
    q(mwani) => [
-      q(7192),
+      q(7179),
       q(0),
       ],
    q(mwatebu) => [
-      q(4635),
+      q(4624),
       q(0),
       ],
    q(mwera (chimwera)) => [
-      q(4638),
+      q(4627),
       q(0),
       ],
    q(mwera (nyasa)) => [
-      q(4335),
+      q(4324),
       q(0),
       ],
    q(mwerlap) => [
-      q(4527),
+      q(4516),
       q(1),
       ],
    q(mwimbi-muthambi) => [
-      q(4650),
+      q(4638),
       q(0),
       ],
    q(mwotlap) => [
-      q(4396),
+      q(4385),
       q(1),
       ],
    q(mycenaean greek) => [
-      q(2571),
+      q(2564),
       q(0),
       ],
    q(myene) => [
-      q(4687),
+      q(4675),
       q(0),
       ],
    q(mysian) => [
-      q(7716),
+      q(7701),
       q(0),
       ],
    q(mzieme naga) => [
-      q(4977),
+      q(4965),
       q(0),
       ],
    q(n'ko) => [
@@ -44012,11 +43950,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(n/u) => [
-      q(4852),
+      q(4840),
       q(0),
       ],
    q(na) => [
-      q(4768),
+      q(4756),
       q(0),
       ],
    q(na-dene languages) => [
@@ -44024,91 +43962,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(na-meo) => [
-      q(4831),
+      q(4819),
       q(0),
       ],
    q(naaba) => [
-      q(4742),
+      q(4730),
       q(0),
       ],
    q(naami) => [
-      q(1640),
+      q(1633),
       q(0),
       ],
    q(naasioi) => [
-      q(4745),
+      q(4733),
       q(0),
       ],
    q(naba) => [
-      q(4428),
+      q(4417),
       q(0),
       ],
    q(nabak) => [
-      q(4735),
+      q(4723),
       q(0),
       ],
    q(nabi) => [
-      q(4589),
+      q(4578),
       q(0),
       ],
    q(nachering) => [
-      q(4776),
+      q(4764),
       q(0),
       ],
    q(nadeb) => [
-      q(4146),
+      q(4135),
       q(0),
       ],
    q(nadruvian) => [
-      q(4799),
+      q(4787),
       q(0),
       ],
    q(nafaanra) => [
-      q(4844),
+      q(4832),
       q(0),
       ],
    q(nafi) => [
-      q(6224),
+      q(6212),
       q(0),
       ],
    q(nafri) => [
-      q(5165),
+      q(5154),
       q(0),
       ],
    q(nafusi) => [
-      q(3072),
+      q(3064),
       q(0),
       ],
    q(naga pidgin) => [
-      q(4736),
+      q(4724),
       q(0),
       ],
    q(nagarchal) => [
-      q(4756),
+      q(4744),
       q(0),
       ],
    q(nage) => [
-      q(5155),
+      q(5143),
       q(0),
       ],
    q(nagumi) => [
-      q(4866),
+      q(4854),
       q(0),
       ],
    q(naha'ai) => [
-      q(4398),
+      q(4387),
       q(1),
       ],
    q(nahali) => [
-      q(4970),
+      q(4958),
       q(0),
       ],
    q(nahari) => [
-      q(4878),
+      q(4866),
       q(0),
       ],
    q(nahavaq) => [
-      q(6161),
+      q(6149),
       q(1),
       ],
    q(nahuatl languages) => [
@@ -44116,283 +44054,283 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nai) => [
-      q(1223),
+      q(1219),
       q(0),
       ],
    q(najdi arabic) => [
-      q(0881),
+      q(0879),
       q(0),
       ],
    q(naka'ela) => [
-      q(4734),
+      q(4722),
       q(0),
       ],
    q(nakai) => [
-      q(4942),
+      q(4930),
       q(0),
       ],
    q(nakame) => [
-      q(4894),
+      q(4882),
       q(0),
       ],
    q(nakanai) => [
-      q(4738),
+      q(4726),
       q(0),
       ],
    q(nakara) => [
-      q(4783),
+      q(4771),
       q(0),
       ],
    q(nake) => [
-      q(4760),
+      q(4748),
       q(0),
       ],
    q(naki) => [
-      q(4240),
+      q(4229),
       q(0),
       ],
    q(nakwi) => [
-      q(4748),
+      q(4736),
       q(0),
       ],
    q(nalca) => [
-      q(4958),
+      q(4946),
       q(0),
       ],
    q(nali) => [
-      q(5092),
+      q(5080),
       q(0),
       ],
    q(nalik) => [
-      q(4739),
+      q(4727),
       q(0),
       ],
    q(nalogo) => [
-      q(4972),
+      q(4960),
       q(0),
       ],
    q(nalu) => [
-      q(4737),
+      q(4725),
       q(0),
       ],
    q(naluo yi) => [
-      q(7697),
+      q(7682),
       q(0),
       ],
    q(nama (namibia)) => [
-      q(4743),
-      q(0),
+      q(4731),
+      q(1),
       ],
    q(nama (papua new guinea)) => [
-      q(4996),
+      q(4984),
       q(0),
       ],
    q(namakura) => [
-      q(4983),
+      q(4971),
       q(0),
       ],
    q(namat) => [
-      q(4944),
+      q(4932),
       q(0),
       ],
    q(nambo) => [
-      q(4785),
+      q(4773),
       q(0),
       ],
    q(nambya) => [
-      q(4989),
+      q(4977),
       q(0),
       ],
    q(namia) => [
-      q(5011),
+      q(4999),
       q(0),
       ],
    q(namiae) => [
-      q(5141),
+      q(5129),
       q(0),
       ],
    q(namibian sign language) => [
-      q(4767),
+      q(4755),
       q(0),
       ],
    q(namla) => [
-      q(4730),
+      q(4718),
       q(0),
       ],
    q(namo) => [
-      q(4680),
+      q(4668),
       q(0),
       ],
    q(namonuito) => [
-      q(4992),
+      q(4980),
       q(0),
       ],
    q(namosi-naitasiri-serua) => [
-      q(1547),
+      q(1542),
       q(0),
       ],
    q(namuyi) => [
-      q(4997),
+      q(4985),
       q(0),
       ],
    q(nanai) => [
-      q(2550),
+      q(2543),
       q(0),
       ],
    q(nancere) => [
-      q(5001),
+      q(4989),
       q(0),
       ],
    q(nande) => [
-      q(5000),
+      q(4988),
       q(0),
       ],
    q(nandi) => [
-      q(4907),
+      q(4895),
       q(0),
       ],
    q(nanerige senoufo) => [
-      q(5984),
+      q(5973),
       q(0),
       ],
    q(nanga dama dogon) => [
-      q(5194),
+      q(5183),
       q(0),
       ],
    q(nankina) => [
-      q(5009),
+      q(4997),
       q(0),
       ],
    q(nanti) => [
-      q(1833),
+      q(1827),
       q(0),
       ],
    q(nanticoke) => [
-      q(5017),
+      q(5005),
       q(0),
       ],
    q(nanubae) => [
-      q(0646),
+      q(0644),
       q(0),
       ],
    q(napo lowland quechua) => [
-      q(5720),
+      q(5708),
       q(0),
       ],
    q(napu) => [
-      q(5054),
+      q(5041),
       q(0),
       ],
    q(nar phu) => [
-      q(5044),
+      q(5031),
       q(0),
       ],
    q(nara) => [
-      q(5062),
+      q(5049),
       q(0),
       ],
    q(narak) => [
-      q(4732),
+      q(4720),
       q(0),
       ],
    q(narango) => [
-      q(5065),
+      q(5053),
       q(0),
       ],
    q(narau) => [
-      q(5164),
+      q(5153),
       q(0),
       ],
    q(nari nari) => [
-      q(5846),
+      q(5834),
       q(0),
       ],
    q(narim) => [
-      q(4030),
+      q(4019),
       q(0),
       ],
    q(naro) => [
-      q(4886),
+      q(4874),
       q(0),
       ],
    q(narom) => [
-      q(5069),
+      q(5057),
       q(0),
       ],
    q(narragansett) => [
-      q(7454),
+      q(7441),
       q(0),
       ],
    q(narrinyeri) => [
-      q(4749),
+      q(4737),
       q(0),
       ],
    q(narua) => [
-      q(5074),
+      q(5062),
       q(0),
       ],
    q(narungga) => [
-      q(5015),
+      q(5003),
       q(0),
       ],
    q(nasal) => [
-      q(5098),
+      q(5086),
       q(0),
       ],
    q(nasarian) => [
-      q(5140),
+      q(5128),
       q(0),
       ],
    q(naskapi) => [
-      q(5085),
+      q(5073),
       q(0),
       ],
    q(natagaimas) => [
-      q(5109),
+      q(5097),
       q(0),
       ],
    q(natanzi) => [
-      q(5114),
+      q(5102),
       q(0),
       ],
    q(nataoran amis) => [
-      q(0710),
+      q(0708),
       q(0),
       ],
    q(natchez) => [
-      q(4794),
+      q(4782),
       q(0),
       ],
    q(nateni) => [
-      q(5105),
+      q(5093),
       q(0),
       ],
    q(nathembo) => [
-      q(5100),
+      q(5088),
       q(0),
       ],
    q(natioro) => [
-      q(5102),
+      q(5090),
       q(0),
       ],
    q(natugu) => [
-      q(5110),
+      q(5098),
       q(0),
       ],
    q(nauete) => [
-      q(5153),
+      q(5141),
       q(0),
       ],
    q(naukan yupik) => [
-      q(7725),
+      q(7708),
       q(0),
       ],
    q(nauna) => [
-      q(4786),
+      q(4774),
       q(0),
       ],
    q(nauo) => [
-      q(5149),
+      q(5137),
       q(0),
       ],
    q(nauru) => [
@@ -44408,87 +44346,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(navut) => [
-      q(5096),
+      q(5084),
       q(0),
       ],
    q(nawaru) => [
-      q(5150),
+      q(5138),
       q(0),
       ],
    q(nawathinehena) => [
-      q(5143),
+      q(5131),
       q(0),
       ],
    q(nawdm) => [
-      q(4998),
+      q(4986),
       q(0),
       ],
    q(nawuri) => [
-      q(4747),
+      q(4735),
       q(0),
       ],
    q(naxi) => [
-      q(5162),
+      q(5151),
       q(0),
       ],
    q(nayi) => [
-      q(5043),
+      q(5030),
       q(0),
       ],
    q(nayini) => [
-      q(5178),
+      q(5167),
       q(0),
       ],
    q(ncane) => [
-      q(4789),
+      q(4777),
       q(0),
       ],
    q(nchumbulu) => [
-      q(4967),
+      q(4955),
       q(0),
       ],
    q(nda'nda') => [
-      q(5023),
+      q(5010),
       q(0),
       ],
    q(ndai) => [
-      q(2545),
+      q(2537),
       q(0),
       ],
    q(ndaka) => [
-      q(4804),
+      q(4792),
       q(0),
       ],
    q(ndaktup) => [
-      q(4788),
+      q(4776),
       q(0),
       ],
    q(ndali) => [
-      q(4801),
+      q(4789),
       q(0),
       ],
    q(ndam) => [
-      q(4806),
+      q(4794),
       q(0),
       ],
    q(ndamba) => [
-      q(4803),
+      q(4791),
+      q(0),
+      ],
+   q(ndambomo) => [
+      q(5150),
       q(0),
       ],
    q(ndasa) => [
-      q(4795),
+      q(4783),
       q(0),
       ],
    q(ndau) => [
-      q(4797),
+      q(4785),
       q(0),
       ],
    q(nde-gbite) => [
-      q(4821),
+      q(4809),
       q(0),
       ],
    q(nde-nsele-nta) => [
-      q(4798),
+      q(4786),
       q(0),
       ],
    q(ndebele, north) => [
@@ -44500,51 +44442,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ndemli) => [
-      q(4984),
+      q(4972),
       q(0),
       ],
    q(ndendeule) => [
-      q(2106),
+      q(2100),
       q(0),
       ],
    q(ndengereko) => [
-      q(4800),
+      q(4788),
       q(0),
       ],
    q(nding) => [
-      q(2251),
+      q(2244),
       q(0),
       ],
    q(ndo) => [
-      q(4808),
+      q(4796),
       q(0),
       ],
    q(ndobo) => [
-      q(4814),
+      q(4802),
       q(0),
       ],
    q(ndoe) => [
-      q(4752),
+      q(4740),
       q(0),
       ],
    q(ndogo) => [
-      q(4817),
+      q(4805),
       q(0),
       ],
    q(ndolo) => [
-      q(4805),
+      q(4793),
       q(0),
       ],
    q(ndom) => [
-      q(5057),
+      q(5044),
       q(0),
       ],
    q(ndombe) => [
-      q(4809),
+      q(4797),
       q(0),
       ],
    q(ndonde hamba) => [
-      q(4918),
+      q(4906),
       q(0),
       ],
    q(ndonga) => [
@@ -44552,39 +44494,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ndoola) => [
-      q(4810),
+      q(4798),
       q(0),
       ],
    q(ndra'ngith) => [
-      q(2022),
+      q(2016),
       q(0),
       ],
    q(nduga) => [
-      q(4815),
+      q(4803),
       q(0),
       ],
    q(ndumu) => [
-      q(4976),
+      q(4964),
       q(0),
       ],
    q(ndunda) => [
-      q(5121),
+      q(5109),
       q(0),
       ],
    q(ndunga) => [
-      q(4811),
+      q(4799),
       q(0),
       ],
    q(ndut) => [
-      q(4813),
+      q(4801),
       q(0),
       ],
    q(ndyuka-trio pidgin) => [
-      q(4928),
+      q(4916),
       q(0),
       ],
    q(ndzwani comorian) => [
-      q(7199),
+      q(7186),
       q(0),
       ],
    q(neapolitan) => [
@@ -44592,83 +44534,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nedebang) => [
-      q(4820),
+      q(4808),
       q(0),
       ],
    q(nefamese) => [
-      q(4823),
+      q(4811),
       q(0),
       ],
    q(negerhollands) => [
-      q(1982),
+      q(1976),
       q(0),
       ],
    q(negeri sembilan malay) => [
-      q(7899),
+      q(7882),
       q(0),
       ],
    q(negidal) => [
-      q(4824),
+      q(4812),
       q(0),
       ],
    q(nehan) => [
-      q(5088),
+      q(5076),
       q(0),
       ],
    q(nek) => [
-      q(4897),
+      q(4885),
       q(0),
       ],
    q(nekgini) => [
-      q(4939),
+      q(4927),
       q(0),
       ],
    q(neko) => [
-      q(4827),
+      q(4815),
       q(0),
       ],
    q(neku) => [
-      q(4828),
+      q(4816),
       q(0),
       ],
    q(nelemwa-nixumwak) => [
-      q(4822),
+      q(4810),
       q(0),
       ],
    q(neme) => [
-      q(4838),
+      q(4826),
       q(0),
       ],
    q(nemi) => [
-      q(4829),
+      q(4817),
       q(0),
       ],
    q(nen) => [
-      q(5058),
+      q(5045),
       q(0),
       ],
    q(nend) => [
-      q(0798),
+      q(0796),
       q(0),
       ],
    q(nenets) => [
-      q(7755),
+      q(7738),
       q(0),
       ],
    q(nenge) => [
-      q(2071),
+      q(2065),
       q(2),
       ],
    q(nengone) => [
-      q(4830),
+      q(4818),
       q(0),
       ],
    q(neo) => [
-      q(4836),
+      q(4824),
       q(0),
       ],
    q(neo-hittite) => [
-      q(4826),
+      q(4814),
       q(0),
       ],
    q(nepal bhasa) => [
@@ -44676,7 +44618,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nepalese sign language) => [
-      q(5089),
+      q(5077),
       q(0),
       ],
    q(nepali) => [
@@ -44684,7 +44626,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nepali (individual language)) => [
-      q(5048),
+      q(5035),
       q(0),
       ],
    q(nepali (macrolanguage)) => [
@@ -44692,27 +44634,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(nepali kurux) => [
-      q(3736),
+      q(3726),
       q(0),
       ],
    q(nete) => [
-      q(4835),
+      q(4823),
       q(0),
       ],
    q(neve'ei) => [
-      q(7054),
+      q(7041),
       q(1),
       ],
    q(neverver) => [
-      q(3900),
+      q(3890),
       q(1),
       ],
    q(new caledonian javanese) => [
-      q(3062),
+      q(3054),
       q(0),
       ],
    q(new zealand sign language) => [
-      q(5191),
+      q(5180),
       q(0),
       ],
    q(newari) => [
@@ -44720,351 +44662,347 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(neyo) => [
-      q(4839),
+      q(4827),
       q(0),
       ],
    q(nez perce) => [
-      q(4840),
+      q(4828),
       q(0),
       ],
    q(ngaanyatjarra) => [
-      q(5103),
+      q(5091),
       q(0),
       ],
    q(ngabere) => [
-      q(2711),
+      q(2703),
       q(0),
       ],
    q(ngad'a) => [
-      q(5156),
+      q(5144),
       q(0),
       ],
    q(ngadjunmaya) => [
-      q(4929),
+      q(4917),
       q(0),
       ],
    q(ngadjuri) => [
-      q(3158),
+      q(3151),
       q(0),
       ],
    q(ngaing) => [
-      q(5004),
+      q(4992),
       q(0),
       ],
    q(ngaju) => [
-      q(4901),
+      q(4889),
       q(0),
       ],
    q(ngala) => [
-      q(5117),
+      q(5105),
       q(0),
       ],
    q(ngalakan) => [
-      q(4898),
+      q(4886),
       q(0),
       ],
    q(ngalum) => [
-      q(6358),
+      q(6347),
       q(0),
       ],
    q(ngam) => [
-      q(4975),
+      q(4963),
       q(0),
       ],
    q(ngamambo) => [
-      q(4770),
+      q(4758),
       q(0),
       ],
    q(ngambay) => [
-      q(5912),
+      q(5901),
       q(0),
       ],
    q(ngamini) => [
-      q(4994),
+      q(4982),
       q(0),
       ],
    q(ngamo) => [
-      q(4757),
+      q(4745),
       q(0),
       ],
    q(ngan'gityemerri) => [
-      q(4740),
+      q(4728),
       q(0),
       ],
    q(nganakarti) => [
-      q(7449),
+      q(7436),
       q(0),
       ],
    q(nganasan) => [
-      q(4906),
+      q(4894),
       q(0),
       ],
    q(ngandi) => [
-      q(4895),
+      q(4883),
       q(0),
       ],
    q(ngando (central african republic)) => [
-      q(4849),
+      q(4837),
       q(0),
       ],
    q(ngando (democratic republic of congo)) => [
-      q(5154),
+      q(5142),
       q(0),
       ],
    q(ngandyera) => [
-      q(5003),
+      q(4991),
       q(0),
       ],
    q(ngangam) => [
-      q(2578),
+      q(2571),
       q(0),
       ],
    q(ngantangarra) => [
-      q(5101),
+      q(5089),
       q(0),
       ],
    q(nganyaywana) => [
-      q(5185),
+      q(5174),
       q(0),
       ],
    q(ngardi) => [
-      q(5891),
+      q(5880),
       q(0),
       ],
    q(ngarigu) => [
-      q(7448),
+      q(7435),
       q(0),
       ],
    q(ngarinman) => [
-      q(4759),
+      q(4747),
       q(0),
       ],
    q(ngarinyin) => [
-      q(6927),
+      q(6915),
       q(0),
       ],
    q(ngarla) => [
-      q(5067),
+      q(5055),
       q(0),
       ],
    q(ngarluma) => [
-      q(5068),
+      q(5056),
       q(0),
       ],
    q(ngas) => [
-      q(0794),
+      q(0792),
       q(0),
       ],
    q(ngasa) => [
-      q(5082),
+      q(5070),
       q(0),
       ],
    q(ngatik men's creole) => [
-      q(4857),
+      q(4845),
       q(0),
       ],
    q(ngawn chin) => [
-      q(1812),
+      q(1806),
       q(0),
       ],
    q(ngawun) => [
-      q(5161),
+      q(5149),
       q(0),
       ],
    q(ngayawung) => [
-      q(5146),
+      q(5134),
       q(0),
       ],
    q(ngazidja comorian) => [
-      q(7850),
+      q(7833),
       q(0),
       ],
    q(ngbaka) => [
-      q(4846),
+      q(4834),
       q(0),
       ],
    q(ngbaka ma'bo) => [
-      q(4761),
+      q(4749),
       q(0),
       ],
    q(ngbaka manza) => [
-      q(4851),
+      q(4839),
       q(0),
       ],
    q(ngbee) => [
-      q(3093),
+      q(3085),
       q(0),
       ],
    q(ngbinda) => [
-      q(4754),
+      q(4742),
       q(0),
       ],
    q(ngbundu) => [
-      q(5134),
+      q(5122),
       q(0),
       ],
    q(ngelima) => [
-      q(0661),
+      q(0659),
       q(0),
       ],
    q(ngemba) => [
-      q(4850),
+      q(4838),
       q(0),
       ],
    q(ngeq) => [
-      q(4864),
+      q(4852),
       q(0),
       ],
    q(ngete) => [
-      q(5012),
+      q(5000),
       q(0),
       ],
    q(nggem) => [
-      q(4765),
+      q(4753),
       q(0),
       ],
    q(nggwahyi) => [
-      q(4868),
+      q(4856),
       q(0),
       ],
    q(ngie) => [
-      q(4854),
+      q(4842),
       q(0),
       ],
    q(ngiemboon) => [
-      q(5006),
+      q(4994),
       q(0),
       ],
    q(ngile) => [
-      q(3121),
+      q(3114),
       q(0),
       ],
    q(ngindo) => [
-      q(5014),
+      q(5002),
       q(0),
       ],
    q(ngiti) => [
-      q(4914),
+      q(4902),
       q(0),
       ],
    q(ngizim) => [
-      q(4853),
+      q(4841),
       q(0),
       ],
    q(ngkalmpw kanum) => [
-      q(3219),
+      q(3211),
       q(0),
       ],
    q(ngom) => [
-      q(5061),
+      q(5048),
       q(0),
       ],
    q(ngomba) => [
-      q(3096),
+      q(3088),
       q(0),
       ],
    q(ngombale) => [
-      q(4957),
+      q(4945),
       q(0),
       ],
    q(ngombe (central african republic)) => [
-      q(4982),
+      q(4970),
       q(0),
       ],
    q(ngombe (democratic republic of congo)) => [
-      q(4848),
-      q(0),
-      ],
-   q(ngong) => [
-      q(5021),
+      q(4836),
       q(0),
       ],
    q(ngongo) => [
-      q(5036),
+      q(5023),
       q(0),
       ],
    q(ngoni) => [
-      q(4859),
+      q(4847),
       q(0),
       ],
    q(ngoreme) => [
-      q(4861),
+      q(4849),
       q(1),
       ],
    q(ngoshie) => [
-      q(5083),
+      q(5071),
       q(0),
       ],
    q(ngul) => [
-      q(4965),
+      q(4953),
       q(0),
       ],
    q(ngulu) => [
-      q(4860),
+      q(4848),
       q(0),
       ],
    q(nguluwan) => [
-      q(5136),
+      q(5124),
       q(0),
       ],
    q(ngumbi) => [
-      q(5122),
+      q(5110),
       q(0),
       ],
    q(ngunawal) => [
-      q(7548),
+      q(7534),
       q(0),
       ],
    q(ngundi) => [
-      q(4807),
+      q(4795),
       q(0),
       ],
    q(ngundu) => [
-      q(5118),
+      q(5106),
       q(0),
       ],
    q(ngungwel) => [
-      q(4870),
+      q(4858),
       q(0),
       ],
    q(nguon) => [
-      q(5128),
+      q(5116),
       q(0),
       ],
    q(ngurimi) => [
-      q(4861),
+      q(4849),
       q(0),
       ],
    q(ngurmbur) => [
-      q(5075),
+      q(5063),
       q(0),
       ],
    q(ngwaba) => [
-      q(4867),
+      q(4855),
       q(0),
       ],
    q(ngwe) => [
-      q(5145),
+      q(5133),
       q(0),
       ],
    q(ngwo) => [
-      q(4858),
+      q(4846),
       q(0),
       ],
    q(nhanda) => [
-      q(4871),
+      q(4859),
       q(0),
       ],
    q(nhengatu) => [
-      q(7756),
+      q(7739),
       q(0),
       ],
    q(nhirrpi) => [
-      q(2845),
+      q(2837),
       q(0),
       ],
    q(nhuwala) => [
-      q(4876),
+      q(4864),
       q(0),
       ],
    q(nias) => [
@@ -45072,19 +45010,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nicaragua creole english) => [
-      q(1629),
+      q(1622),
       q(0),
       ],
    q(nicaraguan sign language) => [
-      q(4790),
+      q(4778),
       q(0),
       ],
    q(nicarao) => [
-      q(5587),
+      q(5575),
       q(1),
       ],
    q(niellim) => [
-      q(4896),
+      q(4884),
       q(0),
       ],
    q(niger-kordofanian languages) => [
@@ -45092,43 +45030,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nigeria mambila) => [
-      q(4714),
+      q(4702),
       q(0),
       ],
    q(nigerian fulfulde) => [
-      q(2399),
+      q(2392),
       q(0),
       ],
    q(nigerian pidgin) => [
-      q(5404),
+      q(5392),
       q(0),
       ],
    q(nigerian sign language) => [
-      q(5084),
+      q(5072),
       q(0),
       ],
    q(nihali) => [
-      q(4964),
+      q(4952),
       q(0),
       ],
    q(nii) => [
-      q(4900),
+      q(4888),
       q(0),
       ],
    q(nijadali) => [
-      q(4733),
+      q(4721),
       q(0),
       ],
    q(niksek) => [
-      q(2429),
+      q(2422),
       q(0),
       ],
    q(nila) => [
-      q(4903),
+      q(4891),
       q(0),
       ],
    q(nilamba) => [
-      q(4904),
+      q(4892),
       q(0),
       ],
    q(nilo-saharan languages) => [
@@ -45136,95 +45074,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nimadi) => [
-      q(5027),
+      q(5014),
       q(0),
       ],
    q(nimanbur) => [
-      q(4988),
+      q(4976),
       q(0),
       ],
    q(nimbari) => [
-      q(4990),
+      q(4978),
       q(0),
       ],
    q(nimboran) => [
-      q(4908),
+      q(4896),
       q(0),
       ],
    q(nimi) => [
-      q(4909),
+      q(4897),
       q(0),
       ],
    q(nimo) => [
-      q(4912),
+      q(4900),
       q(0),
       ],
    q(nimoa) => [
-      q(4995),
+      q(4983),
       q(0),
       ],
    q(ninam) => [
-      q(6022),
+      q(6010),
       q(0),
       ],
    q(ninde) => [
-      q(4642),
+      q(4631),
       q(1),
       ],
    q(nindi) => [
-      q(5157),
+      q(5145),
       q(0),
       ],
    q(ningera) => [
-      q(4772),
+      q(4760),
       q(0),
       ],
    q(ninggerum) => [
-      q(5163),
+      q(5152),
       q(0),
       ],
    q(ningil) => [
-      q(4915),
+      q(4903),
       q(0),
       ],
    q(ningye) => [
-      q(5016),
+      q(5004),
       q(0),
       ],
    q(ninia yali) => [
-      q(4963),
+      q(4951),
       q(0),
       ],
    q(ninzo) => [
-      q(4905),
+      q(4893),
       q(0),
       ],
    q(nipsan) => [
-      q(5052),
+      q(5039),
       q(0),
       ],
    q(nisa) => [
-      q(4927),
+      q(4915),
       q(0),
       ],
    q(nisenan) => [
-      q(5099),
+      q(5087),
       q(0),
       ],
    q(nisga'a) => [
-      q(4779),
+      q(4767),
       q(0),
       ],
    q(nisi (china)) => [
-      q(7767),
+      q(7750),
       q(0),
       ],
    q(niuafo'ou) => [
-      q(5126),
+      q(5114),
       q(0),
       ],
    q(niuatoputapu) => [
-      q(4947),
+      q(4935),
       q(0),
       ],
    q(niuean) => [
@@ -45232,79 +45170,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nivacle) => [
-      q(1650),
+      q(1643),
       q(0),
       ],
    q(niwer mil) => [
-      q(2840),
+      q(2832),
       q(0),
       ],
    q(njalgulgule) => [
-      q(4922),
+      q(4910),
       q(0),
       ],
    q(njebi) => [
-      q(5188),
+      q(5177),
       q(0),
       ],
    q(njen) => [
-      q(4921),
+      q(4909),
       q(0),
       ],
    q(njerep) => [
-      q(4926),
+      q(4914),
       q(0),
       ],
    q(njyem) => [
-      q(4931),
+      q(4919),
       q(0),
       ],
    q(nkami) => [
-      q(4948),
+      q(4936),
       q(0),
       ],
    q(nkangala) => [
-      q(4945),
+      q(4933),
       q(0),
       ],
    q(nkari) => [
-      q(4956),
+      q(4944),
       q(0),
       ],
    q(nkem-nkum) => [
-      q(3010),
+      q(3002),
       q(0),
       ],
    q(nkhumbi) => [
-      q(3356),
+      q(3348),
       q(0),
       ],
    q(nkongho) => [
-      q(4935),
+      q(4923),
       q(0),
       ],
    q(nkonya) => [
-      q(4946),
+      q(4934),
       q(0),
       ],
    q(nkoroo) => [
-      q(4955),
+      q(4943),
       q(0),
       ],
    q(nkoya) => [
-      q(4933),
+      q(4921),
       q(0),
       ],
    q(nkukoli) => [
-      q(4763),
+      q(4751),
       q(0),
       ],
    q(nkutu) => [
-      q(4954),
+      q(4942),
       q(0),
       ],
    q(nnam) => [
-      q(4764),
+      q(4752),
       q(0),
       ],
    q(no linguistic content) => [
@@ -45312,19 +45250,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nobiin) => [
-      q(2351),
+      q(2344),
       q(0),
       ],
    q(nobonob) => [
-      q(2424),
+      q(2417),
       q(0),
       ],
    q(nocaman) => [
-      q(5034),
+      q(5021),
       q(0),
       ],
    q(nocte naga) => [
-      q(4917),
+      q(4905),
       q(0),
       ],
    q(nogai) => [
@@ -45332,71 +45270,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(noiri) => [
-      q(5030),
+      q(5017),
       q(0),
       ],
    q(nokuku) => [
-      q(4943),
+      q(4931),
       q(0),
       ],
    q(nomaande) => [
-      q(3880),
+      q(3870),
       q(0),
       ],
    q(nomane) => [
-      q(5028),
+      q(5015),
       q(0),
       ],
    q(nomatsiguenga) => [
-      q(5038),
+      q(5025),
       q(0),
       ],
    q(nomlaki) => [
-      q(5033),
+      q(5020),
       q(0),
       ],
    q(nomu) => [
-      q(5029),
+      q(5016),
       q(0),
       ],
    q(nong zhuang) => [
-      q(7862),
+      q(7845),
       q(0),
       ],
    q(nonuya) => [
-      q(5031),
+      q(5018),
       q(0),
       ],
    q(nooksack) => [
-      q(5032),
+      q(5019),
       q(0),
       ],
    q(noon) => [
-      q(6149),
+      q(6137),
       q(0),
       ],
    q(noone) => [
-      q(4888),
+      q(4876),
       q(0),
       ],
    q(nopala chatino) => [
-      q(1935),
+      q(1929),
       q(0),
       ],
    q(nora) => [
-      q(5072),
+      q(5060),
       q(1),
       ],
    q(noric) => [
-      q(5063),
+      q(5050),
       q(0),
       ],
    q(norn) => [
-      q(5070),
+      q(5058),
       q(0),
       ],
    q(norra) => [
-      q(5072),
+      q(5060),
       q(0),
       ],
    q(norse, old) => [
@@ -45404,11 +45342,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(north alaskan inupiatun) => [
-      q(2299),
+      q(2292),
       q(0),
       ],
    q(north ambrym) => [
-      q(4406),
+      q(4395),
       q(0),
       ],
    q(north american indian languages) => [
@@ -45416,23 +45354,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(north asmat) => [
-      q(4950),
+      q(4938),
       q(0),
       ],
    q(north awyu) => [
-      q(7670),
+      q(7655),
       q(0),
       ],
    q(north azerbaijani) => [
-      q(1019),
+      q(1015),
       q(0),
       ],
    q(north babar) => [
-      q(1070),
+      q(1066),
       q(0),
       ],
    q(north bolivian quechua) => [
-      q(5699),
+      q(5687),
       q(0),
       ],
    q(north caucasian languages) => [
@@ -45440,15 +45378,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(north central mixe) => [
-      q(4832),
+      q(4820),
       q(0),
       ],
    q(north efate) => [
-      q(3981),
+      q(3970),
       q(0),
       ],
    q(north fali) => [
-      q(2362),
+      q(2355),
       q(0),
       ],
    q(north germanic languages) => [
@@ -45456,35 +45394,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(north giziga) => [
-      q(2532),
+      q(2524),
       q(0),
       ],
    q(north junin quechua) => [
-      q(5719),
+      q(5707),
       q(0),
       ],
    q(north levantine arabic) => [
-      q(0837),
+      q(0835),
       q(0),
       ],
    q(north marquesan) => [
-      q(4531),
+      q(4520),
       q(0),
       ],
    q(north mesopotamian arabic) => [
-      q(1007),
+      q(1003),
       q(0),
       ],
    q(north mofu) => [
-      q(4245),
+      q(4234),
       q(0),
       ],
    q(north moluccan malay) => [
-      q(4136),
+      q(4125),
       q(0),
       ],
    q(north muyu) => [
-      q(3635),
+      q(3627),
       q(0),
       ],
    q(north ndebele) => [
@@ -45492,111 +45430,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(north nuaulu) => [
-      q(5007),
+      q(4995),
       q(0),
       ],
    q(north picene) => [
-      q(5071),
+      q(5059),
       q(0),
       ],
    q(north slavey) => [
-      q(5948),
+      q(5937),
       q(0),
       ],
    q(north tairora) => [
-      q(6396),
+      q(6385),
       q(0),
       ],
    q(north tanna) => [
-      q(6633),
+      q(6621),
       q(0),
       ],
    q(north wahgi) => [
-      q(7136),
+      q(7123),
       q(0),
       ],
    q(north watut) => [
-      q(6925),
+      q(6913),
       q(0),
       ],
    q(northeast kiwai) => [
-      q(3381),
+      q(3373),
       q(0),
       ],
    q(northeast maidu) => [
-      q(4993),
+      q(4981),
       q(0),
       ],
-   q(northeast pashayi) => [
-      q(0629),
+   q(northeast pashai) => [
+      q(0627),
       q(0),
       ],
+   q(northeast pashayi) => [
+      q(0627),
+      q(1),
+      ],
    q(northeastern dinka) => [
-      q(2053),
+      q(2047),
       q(0),
       ],
    q(northeastern pomo) => [
-      q(5419),
+      q(5407),
       q(0),
       ],
    q(northeastern thai) => [
-      q(6765),
+      q(6752),
       q(0),
       ],
    q(northern alta) => [
-      q(0865),
+      q(0863),
       q(0),
       ],
    q(northern altai) => [
-      q(0930),
+      q(0927),
       q(0),
       ],
    q(northern amami-oshima) => [
-      q(5893),
+      q(5882),
       q(0),
       ],
    q(northern bai) => [
-      q(1141),
+      q(1137),
       q(1),
       ],
    q(northern betsimisaraka malagasy) => [
-      q(1318),
+      q(1314),
       q(0),
       ],
    q(northern binukidnon) => [
-      q(3764),
+      q(3754),
       q(0),
       ],
    q(northern bobo madare) => [
-      q(1055),
+      q(1051),
       q(0),
       ],
    q(northern bontok) => [
-      q(5770),
+      q(5758),
       q(0),
       ],
    q(northern catanduanes bikol) => [
-      q(1904),
+      q(1898),
       q(0),
       ],
    q(northern conchucos ancash quechua) => [
-      q(5736),
+      q(5724),
       q(0),
       ],
    q(northern dagara) => [
-      q(2016),
+      q(2010),
       q(0),
       ],
    q(northern dong) => [
-      q(2120),
+      q(2114),
       q(0),
       ],
    q(northern east cree) => [
-      q(1858),
+      q(1852),
       q(0),
       ],
    q(northern embera) => [
-      q(2264),
+      q(2257),
       q(0),
       ],
    q(northern frisian) => [
@@ -45604,147 +45546,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(northern ghale) => [
-      q(2513),
+      q(2505),
       q(0),
       ],
    q(northern gondi) => [
-      q(2585),
+      q(2578),
       q(0),
       ],
    q(northern grebo) => [
-      q(2439),
+      q(2432),
       q(0),
       ],
    q(northern guiyang hmong) => [
-      q(2868),
+      q(2860),
       q(0),
       ],
    q(northern guiyang miao) => [
-      q(2868),
+      q(2860),
       q(1),
       ],
    q(northern haida) => [
-      q(2747),
+      q(2739),
       q(0),
       ],
    q(northern hindko) => [
-      q(2815),
+      q(2807),
       q(0),
       ],
    q(northern huishui hmong) => [
-      q(2793),
+      q(2785),
       q(0),
       ],
    q(northern huishui miao) => [
-      q(2793),
+      q(2785),
       q(1),
       ],
    q(northern kalapuya) => [
-      q(5073),
+      q(5061),
       q(0),
       ],
    q(northern kankanay) => [
-      q(7450),
+      q(7437),
       q(0),
       ],
    q(northern khmer) => [
-      q(3737),
+      q(3727),
       q(0),
       ],
    q(northern kissi) => [
-      q(3573),
+      q(3565),
       q(0),
       ],
    q(northern kurdish) => [
-      q(3477),
+      q(3470),
       q(0),
       ],
    q(northern luri) => [
-      q(4053),
+      q(4042),
       q(0),
       ],
    q(northern mashan hmong) => [
-      q(2798),
+      q(2790),
       q(0),
       ],
    q(northern mashan miao) => [
-      q(2798),
+      q(2790),
       q(1),
       ],
    q(northern muji) => [
-      q(7718),
+      q(7702),
       q(0),
       ],
    q(northern nago) => [
-      q(7382),
+      q(7369),
       q(0),
       ],
    q(northern ngbandi) => [
-      q(4847),
+      q(4835),
       q(0),
       ],
    q(northern nisu) => [
-      q(7674),
+      q(7659),
       q(0),
       ],
    q(northern nuni) => [
-      q(5135),
+      q(5123),
       q(0),
       ],
    q(northern oaxaca nahuatl) => [
-      q(4892),
+      q(4880),
       q(0),
       ],
    q(northern ohlone) => [
-      q(1888),
+      q(1882),
       q(0),
       ],
    q(northern one) => [
-      q(5287),
+      q(5276),
       q(0),
       ],
    q(northern paiute) => [
-      q(5365),
+      q(5353),
       q(0),
       ],
    q(northern pame) => [
-      q(5532),
+      q(5521),
       q(0),
       ],
    q(northern pashto) => [
-      q(5389),
+      q(5377),
       q(0),
       ],
    q(northern pastaza quichua) => [
-      q(5725),
+      q(5713),
       q(0),
       ],
    q(northern pomo) => [
-      q(5423),
+      q(5411),
       q(0),
       ],
    q(northern puebla nahuatl) => [
-      q(4782),
+      q(4770),
       q(0),
       ],
    q(northern pumi) => [
-      q(5525),
+      q(5514),
       q(0),
       ],
    q(northern qiandong miao) => [
-      q(2750),
+      q(2742),
       q(0),
       ],
    q(northern qiang) => [
-      q(1803),
+      q(1797),
       q(0),
       ],
    q(northern rengma naga) => [
-      q(5010),
+      q(4998),
       q(0),
       ],
    q(northern roglai) => [
-      q(5853),
+      q(5841),
       q(0),
       ],
    q(northern sami) => [
@@ -45752,11 +45694,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(northern sierra miwok) => [
-      q(5090),
+      q(5078),
       q(0),
       ],
    q(northern sorsoganon) => [
-      q(1274),
+      q(1270),
       q(0),
       ],
    q(northern sotho) => [
@@ -45764,91 +45706,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(northern subanen) => [
-      q(6266),
+      q(6254),
       q(0),
       ],
    q(northern tarahumara) => [
-      q(6511),
+      q(6500),
       q(0),
       ],
    q(northern tepehuan) => [
-      q(5107),
+      q(5095),
       q(0),
       ],
    q(northern thai) => [
-      q(5026),
+      q(5013),
       q(0),
       ],
    q(northern tiwa) => [
-      q(6809),
+      q(6796),
       q(0),
       ],
    q(northern tlaxiaco mixtec) => [
-      q(7531),
+      q(7517),
       q(0),
       ],
    q(northern toussian) => [
-      q(6736),
+      q(6723),
       q(0),
       ],
    q(northern tujia) => [
-      q(6551),
+      q(6539),
       q(0),
       ],
    q(northern tutchone) => [
-      q(6759),
+      q(6746),
       q(0),
       ],
    q(northern uzbek) => [
-      q(6980),
+      q(6967),
       q(0),
       ],
    q(northern yukaghir) => [
-      q(7678),
+      q(7663),
       q(0),
       ],
    q(northwest alaska inupiatun) => [
-      q(2300),
+      q(2293),
       q(0),
       ],
    q(northwest gbaya) => [
-      q(2703),
+      q(2695),
       q(0),
       ],
    q(northwest maidu) => [
-      q(4332),
+      q(4321),
       q(0),
       ],
    q(northwest oaxaca mixtec) => [
-      q(4658),
+      q(4646),
       q(0),
       ],
-   q(northwest pashayi) => [
-      q(2551),
+   q(northwest pashai) => [
+      q(2544),
       q(0),
       ],
+   q(northwest pashayi) => [
+      q(2544),
+      q(1),
+      ],
    q(northwestern dinka) => [
-      q(2059),
+      q(2053),
       q(0),
       ],
    q(northwestern fars) => [
-      q(2344),
+      q(2337),
       q(0),
       ],
    q(northwestern kolami) => [
-      q(3291),
+      q(3283),
       q(0),
       ],
+   q(northwestern kung) => [
+      q(6974),
+      q(2),
+      ],
    q(northwestern nisu) => [
-      q(5081),
+      q(5069),
       q(0),
       ],
    q(northwestern ojibwa) => [
-      q(5228),
+      q(5217),
       q(0),
       ],
    q(northwestern tamang) => [
-      q(6607),
+      q(6595),
       q(0),
       ],
    q(norwegian) => [
@@ -45864,7 +45814,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(norwegian sign language) => [
-      q(5086),
+      q(5074),
       q(0),
       ],
    q(not applicable) => [
@@ -45872,55 +45822,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(notre) => [
-      q(1304),
+      q(1300),
       q(0),
       ],
    q(notsi) => [
-      q(4778),
+      q(4766),
       q(0),
       ],
    q(nottoway) => [
-      q(5111),
+      q(5099),
       q(0),
       ],
    q(nottoway-meherrin) => [
-      q(5152),
+      q(5140),
       q(0),
       ],
    q(novial) => [
-      q(5040),
+      q(5027),
       q(0),
       ],
    q(noy) => [
-      q(5042),
+      q(5029),
       q(0),
       ],
    q(nsenga) => [
-      q(5080),
+      q(5068),
       q(0),
       ],
    q(nshi) => [
-      q(5078),
+      q(5066),
       q(0),
       ],
    q(nsongo) => [
-      q(5097),
+      q(5085),
       q(0),
       ],
    q(ntcham) => [
-      q(1501),
+      q(1496),
       q(0),
       ],
    q(ntomba) => [
-      q(5106),
+      q(5094),
       q(0),
       ],
    q(nubaca) => [
-      q(1029),
+      q(1025),
       q(0),
       ],
    q(nubi) => [
-      q(3229),
+      q(3221),
       q(0),
       ],
    q(nubian languages) => [
@@ -45928,91 +45878,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nubri) => [
-      q(3631),
+      q(3623),
       q(0),
       ],
    q(nuer) => [
-      q(5132),
+      q(5120),
       q(0),
       ],
    q(nugunu (australia)) => [
-      q(5019),
+      q(5007),
       q(0),
       ],
    q(nugunu (cameroon)) => [
-      q(7604),
+      q(7590),
       q(0),
       ],
    q(nuk) => [
-      q(5025),
+      q(5012),
       q(0),
       ],
    q(nukak maku) => [
-      q(4154),
+      q(4143),
       q(0),
       ],
    q(nukna) => [
-      q(3454),
+      q(3447),
       q(0),
       ],
    q(nukuini) => [
-      q(5116),
+      q(5104),
       q(0),
       ],
    q(nukumanu) => [
-      q(5130),
+      q(5118),
       q(0),
       ],
    q(nukunul) => [
-      q(7455),
+      q(7442),
       q(0),
       ],
    q(nukuoro) => [
-      q(4949),
+      q(4937),
       q(0),
       ],
    q(nukuria) => [
-      q(5131),
+      q(5119),
       q(0),
       ],
    q(numana-nunku-gbantu-numbu) => [
-      q(4766),
+      q(4754),
       q(0),
       ],
    q(numanggang) => [
-      q(5035),
+      q(5022),
       q(0),
       ],
    q(numbami) => [
-      q(6052),
+      q(6040),
       q(0),
       ],
    q(nume) => [
-      q(6499),
+      q(6488),
       q(0),
       ],
    q(numee) => [
-      q(3251),
+      q(3243),
       q(0),
       ],
    q(numidian) => [
-      q(5160),
+      q(5148),
       q(0),
       ],
    q(nung (viet nam)) => [
-      q(5133),
+      q(5121),
       q(0),
       ],
    q(nungali) => [
-      q(5120),
+      q(5108),
       q(0),
       ],
    q(nunggubuyu) => [
-      q(5138),
+      q(5126),
       q(0),
       ],
    q(nungu) => [
-      q(5802),
+      q(5790),
       q(0),
       ],
    q(nuosu) => [
@@ -46020,75 +45970,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(nupbikha) => [
-      q(5045),
+      q(5032),
       q(0),
       ],
    q(nupe-nupe-tako) => [
-      q(5129),
+      q(5117),
       q(0),
       ],
    q(nupode huitoto) => [
-      q(2880),
+      q(2872),
       q(0),
       ],
    q(nusa laut) => [
-      q(5125),
+      q(5113),
       q(0),
       ],
    q(nusu) => [
-      q(5119),
+      q(5107),
       q(0),
       ],
    q(nuu-chah-nulth) => [
-      q(5124),
+      q(5112),
       q(0),
       ],
    q(nuuchahnulth) => [
-      q(5124),
+      q(5112),
       q(1),
       ],
    q(nyabwa) => [
-      q(5144),
+      q(5132),
       q(0),
       ],
    q(nyaheun) => [
-      q(4837),
+      q(4825),
       q(0),
       ],
    q(nyahkur) => [
-      q(1676),
+      q(1669),
       q(0),
       ],
    q(nyakyusa-ngonde) => [
-      q(5186),
+      q(5175),
       q(0),
       ],
    q(nyalayu) => [
-      q(7700),
+      q(7685),
       q(0),
       ],
    q(nyali) => [
-      q(4962),
+      q(4950),
       q(0),
       ],
    q(nyam) => [
-      q(4981),
+      q(4969),
       q(0),
       ],
    q(nyamal) => [
-      q(4971),
+      q(4959),
       q(0),
       ],
    q(nyambo) => [
-      q(5041),
+      q(5028),
       q(0),
       ],
    q(nyamusa-molo) => [
-      q(5148),
+      q(5136),
       q(0),
       ],
    q(nyamwanga) => [
-      q(4646),
+      q(4634),
       q(0),
       ],
    q(nyamwezi) => [
@@ -46096,35 +46046,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nyaneka) => [
-      q(5175),
+      q(5164),
       q(0),
       ],
    q(nyang'i) => [
-      q(5177),
+      q(5166),
       q(0),
       ],
    q(nyanga) => [
-      q(5174),
+      q(5163),
       q(0),
       ],
    q(nyanga-li) => [
-      q(5167),
+      q(5156),
       q(0),
       ],
    q(nyangatom) => [
-      q(5008),
+      q(4996),
       q(0),
       ],
    q(nyangbo) => [
-      q(5166),
+      q(5155),
       q(0),
       ],
    q(nyangga) => [
-      q(5022),
+      q(5009),
       q(0),
       ],
    q(nyangumarta) => [
-      q(4999),
+      q(4987),
       q(0),
       ],
    q(nyanja) => [
@@ -46136,79 +46086,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nyankpa) => [
-      q(7642),
+      q(7627),
       q(0),
       ],
    q(nyarafolo senoufo) => [
-      q(5992),
+      q(5981),
       q(0),
       ],
    q(nyaturu) => [
-      q(5801),
+      q(5789),
       q(0),
       ],
    q(nyaw) => [
-      q(5184),
+      q(5173),
       q(0),
       ],
    q(nyawaygi) => [
-      q(5181),
+      q(5170),
       q(0),
       ],
    q(nyelayu) => [
-      q(7700),
+      q(7685),
       q(1),
       ],
    q(nyemba) => [
-      q(4751),
+      q(4739),
       q(0),
       ],
    q(nyengo) => [
-      q(5169),
+      q(5158),
       q(0),
       ],
    q(nyenkha) => [
-      q(4825),
+      q(4813),
       q(0),
       ],
    q(nyeu) => [
-      q(5176),
+      q(5165),
       q(0),
       ],
    q(nyigina) => [
-      q(5172),
+      q(5161),
       q(0),
       ],
    q(nyiha (malawi)) => [
-      q(5179),
+      q(5168),
       q(0),
       ],
    q(nyiha (tanzania)) => [
-      q(4899),
+      q(4887),
       q(0),
       ],
    q(nyika (malawi and zambia)) => [
-      q(4953),
+      q(4941),
       q(0),
       ],
    q(nyika (tanzania)) => [
-      q(4951),
+      q(4939),
       q(0),
       ],
    q(nyindrou) => [
-      q(3922),
+      q(3912),
       q(0),
       ],
    q(nyindu) => [
-      q(5171),
+      q(5160),
       q(0),
       ],
    q(nyishi) => [
-      q(4932),
+      q(4920),
       q(0),
       ],
    q(nyiyaparli) => [
-      q(7456),
+      q(7443),
       q(0),
       ],
    q(nynorsk, norwegian) => [
@@ -46216,19 +46166,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(nyokon) => [
-      q(5142),
+      q(5130),
       q(0),
       ],
    q(nyole) => [
-      q(5123),
+      q(5111),
       q(0),
       ],
    q(nyong) => [
-      q(4601),
+      q(4590),
       q(0),
       ],
    q(nyore) => [
-      q(5168),
+      q(5157),
       q(0),
       ],
    q(nyoro) => [
@@ -46236,27 +46186,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nyulnyul) => [
-      q(5183),
+      q(5172),
       q(0),
       ],
    q(nyunga) => [
-      q(5180),
+      q(5169),
       q(0),
       ],
    q(nyungwe) => [
-      q(5182),
+      q(5171),
       q(0),
       ],
    q(nzakambay) => [
-      q(5193),
+      q(5182),
       q(0),
       ],
    q(nzakara) => [
-      q(5189),
+      q(5178),
       q(0),
       ],
    q(nzanyi) => [
-      q(4916),
+      q(4904),
       q(0),
       ],
    q(nzima) => [
@@ -46264,43 +46214,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(o'chi'chi') => [
-      q(7458),
+      q(7445),
       q(0),
       ],
    q(o'du) => [
-      q(6843),
+      q(6831),
       q(0),
       ],
    q(obanliku) => [
-      q(1643),
+      q(1636),
       q(0),
       ],
    q(obispeno) => [
-      q(5199),
+      q(5188),
       q(0),
       ],
    q(oblo) => [
-      q(5201),
+      q(5190),
       q(0),
       ],
    q(obo manobo) => [
-      q(5203),
+      q(5192),
       q(0),
       ],
    q(obokuitai) => [
-      q(0653),
+      q(0651),
       q(0),
       ],
    q(obolo) => [
-      q(0804),
+      q(0802),
       q(0),
       ],
    q(obulom) => [
-      q(5206),
+      q(5195),
       q(0),
       ],
    q(ocaina) => [
-      q(5207),
+      q(5196),
       q(0),
       ],
    q(occidental) => [
@@ -46312,35 +46262,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ocotepec mixtec) => [
-      q(4312),
+      q(4301),
       q(0),
       ],
    q(ocotlan zapotec) => [
-      q(7822),
+      q(7805),
       q(0),
       ],
    q(od) => [
-      q(5212),
+      q(5201),
       q(0),
       ],
    q(odiai) => [
-      q(1194),
+      q(1190),
       q(0),
       ],
    q(odoodee) => [
-      q(3411),
+      q(3404),
       q(0),
       ],
    q(odual) => [
-      q(5214),
+      q(5203),
       q(0),
       ],
    q(odut) => [
-      q(5211),
+      q(5200),
       q(0),
       ],
    q(ofaye) => [
-      q(5303),
+      q(5292),
       q(0),
       ],
    q(official aramaic (700-300 bce)) => [
@@ -46348,27 +46298,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ofo) => [
-      q(5215),
+      q(5204),
       q(0),
       ],
    q(ogbah) => [
-      q(5219),
+      q(5208),
       q(0),
       ],
    q(ogbia) => [
-      q(5218),
+      q(5207),
       q(0),
       ],
    q(ogbogolo) => [
-      q(5221),
+      q(5210),
       q(0),
       ],
    q(ogbronuagum) => [
-      q(5223),
+      q(5212),
       q(0),
       ],
    q(ogea) => [
-      q(2290),
+      q(2283),
       q(0),
       ],
    q(oirat) => [
@@ -46376,7 +46326,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(oirata) => [
-      q(5226),
+      q(5215),
       q(0),
       ],
    q(ojibwa) => [
@@ -46384,71 +46334,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ojitlan chinantec) => [
-      q(1728),
+      q(1722),
       q(0),
       ],
    q(okanagan) => [
-      q(5235),
+      q(5224),
       q(0),
       ],
    q(oki-no-erabu) => [
-      q(5246),
+      q(5235),
       q(0),
       ],
    q(okiek) => [
-      q(5241),
+      q(5230),
       q(0),
       ],
    q(oko-eni-osayen) => [
-      q(5249),
+      q(5238),
       q(0),
       ],
    q(oko-juwoi) => [
-      q(5242),
+      q(5231),
       q(0),
       ],
    q(okobo) => [
-      q(5236),
+      q(5225),
       q(0),
       ],
    q(okodia) => [
-      q(5237),
+      q(5226),
       q(0),
       ],
    q(okolod) => [
-      q(3576),
+      q(3568),
       q(0),
       ],
    q(okpamheri) => [
-      q(5298),
+      q(5287),
       q(0),
       ],
    q(okpe (northwestern edo)) => [
-      q(5252),
+      q(5241),
       q(0),
       ],
    q(okpe (southwestern edo)) => [
-      q(5238),
+      q(5227),
       q(0),
       ],
    q(oksapmin) => [
-      q(5300),
+      q(5289),
       q(0),
       ],
    q(oku) => [
-      q(5250),
+      q(5239),
       q(0),
       ],
    q(old aramaic (up to 700 bce)) => [
-      q(5197),
+      q(5186),
       q(0),
       ],
    q(old avar) => [
-      q(5198),
+      q(5187),
       q(0),
       ],
    q(old breton) => [
-      q(5205),
+      q(5194),
       q(0),
       ],
    q(old bulgarian) => [
@@ -46456,11 +46406,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(3),
       ],
    q(old burmese) => [
-      q(5204),
+      q(5193),
       q(0),
       ],
    q(old chinese) => [
-      q(5208),
+      q(5197),
       q(0),
       ],
    q(old church slavonic) => [
@@ -46468,11 +46418,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(4),
       ],
    q(old cornish) => [
-      q(5209),
+      q(5198),
       q(0),
       ],
    q(old dutch) => [
-      q(5213),
+      q(5202),
       q(0),
       ],
    q(old english (ca. 450-1100)) => [
@@ -46484,11 +46434,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old frisian) => [
-      q(5216),
+      q(5205),
       q(0),
       ],
    q(old georgian) => [
-      q(5220),
+      q(5209),
       q(0),
       ],
    q(old high german (ca. 750-1050)) => [
@@ -46496,11 +46446,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old hittite) => [
-      q(5224),
+      q(5213),
       q(0),
       ],
    q(old hungarian) => [
-      q(5225),
+      q(5214),
       q(0),
       ],
    q(old irish (to 900)) => [
@@ -46508,31 +46458,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old japanese) => [
-      q(5231),
+      q(5220),
       q(0),
       ],
    q(old kentish sign language) => [
-      q(5244),
+      q(5233),
       q(0),
       ],
    q(old korean (3rd-9th cent.)) => [
-      q(5247),
+      q(5236),
       q(0),
       ],
    q(old lithuanian) => [
-      q(5260),
+      q(5249),
       q(0),
       ],
    q(old manipuri) => [
-      q(5271),
+      q(5260),
       q(0),
       ],
    q(old marathi) => [
-      q(5272),
+      q(5261),
       q(0),
       ],
    q(old mon) => [
-      q(5276),
+      q(5265),
       q(0),
       ],
    q(old newari) => [
@@ -46544,7 +46494,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old nubian) => [
-      q(5291),
+      q(5280),
       q(0),
       ],
    q(old occitan (to 1500)) => [
@@ -46552,7 +46502,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(old ossetic) => [
-      q(5297),
+      q(5286),
       q(0),
       ],
    q(old persian (ca. 600-400 b.c.)) => [
@@ -46564,11 +46514,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old russian) => [
-      q(5315),
+      q(5304),
       q(0),
       ],
    q(old saxon) => [
-      q(5326),
+      q(5315),
       q(0),
       ],
    q(old slavonic) => [
@@ -46576,135 +46526,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old spanish) => [
-      q(5323),
+      q(5312),
       q(0),
       ],
    q(old tamil) => [
-      q(5342),
+      q(5331),
       q(0),
       ],
    q(old tibetan) => [
-      q(5327),
+      q(5316),
       q(0),
       ],
    q(old turkish) => [
-      q(5331),
+      q(5320),
       q(0),
       ],
    q(old uighur) => [
-      q(5347),
+      q(5336),
       q(0),
       ],
    q(old welsh) => [
-      q(5351),
+      q(5339),
       q(0),
       ],
    q(olekha) => [
-      q(5255),
+      q(5244),
       q(0),
       ],
    q(olkol) => [
-      q(5256),
+      q(5245),
       q(0),
       ],
    q(olo) => [
-      q(5280),
+      q(5269),
       q(0),
       ],
    q(oloma) => [
-      q(5257),
+      q(5246),
       q(0),
       ],
    q(olrat) => [
-      q(5259),
+      q(5248),
       q(0),
       ],
    q(olu'bo) => [
-      q(4093),
+      q(4082),
       q(0),
       ],
    q(olukhayo) => [
-      q(3960),
+      q(3949),
       q(1),
       ],
    q(olulumo-ikom) => [
-      q(2951),
+      q(2943),
       q(0),
       ],
    q(oluluyia) => [
-      q(4102),
+      q(4091),
       q(1),
       ],
    q(olumarachi) => [
-      q(4056),
+      q(4045),
       q(1),
       ],
    q(olumarama) => [
-      q(4059),
+      q(4048),
       q(1),
       ],
    q(olunyole) => [
-      q(5168),
+      q(5157),
       q(1),
       ],
    q(olusamia) => [
-      q(4073),
+      q(4062),
       q(1),
       ],
    q(olushisa) => [
-      q(3962),
+      q(3951),
       q(1),
       ],
    q(oluta popoluca) => [
-      q(5507),
+      q(5496),
       q(0),
       ],
    q(olutsotso) => [
-      q(4084),
+      q(4073),
       q(1),
       ],
    q(oluwanga) => [
-      q(4110),
+      q(4099),
       q(1),
       ],
    q(omagua) => [
-      q(5265),
+      q(5254),
       q(0),
       ],
    q(omaha-ponca) => [
-      q(5261),
+      q(5250),
       q(0),
       ],
    q(omani arabic) => [
-      q(0602),
+      q(0601),
       q(0),
       ],
    q(ombamba) => [
-      q(4149),
+      q(4138),
       q(0),
       ],
    q(ombo) => [
-      q(5268),
+      q(5257),
       q(0),
       ],
    q(omejes) => [
-      q(5264),
+      q(5253),
       q(0),
       ],
    q(ometepec nahuatl) => [
-      q(4887),
+      q(4875),
       q(0),
       ],
    q(omi) => [
-      q(5266),
+      q(5255),
       q(0),
       ],
    q(omie) => [
-      q(0828),
+      q(0826),
       q(0),
       ],
    q(omok) => [
-      q(5267),
+      q(5256),
       q(0),
       ],
    q(omotic languages) => [
@@ -46712,99 +46662,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(omotik) => [
-      q(5273),
+      q(5262),
       q(0),
       ],
    q(omurano) => [
-      q(5274),
+      q(5263),
       q(0),
       ],
    q(ona) => [
-      q(5277),
+      q(5266),
       q(0),
       ],
    q(oneida) => [
-      q(5279),
+      q(5268),
       q(0),
       ],
    q(ong) => [
-      q(5294),
+      q(5283),
       q(0),
       ],
    q(onge) => [
-      q(5295),
+      q(5284),
       q(0),
       ],
    q(onin) => [
-      q(5281),
+      q(5270),
       q(0),
       ],
    q(onin based pidgin) => [
-      q(5292),
+      q(5281),
       q(0),
       ],
    q(oniyan) => [
-      q(1453),
+      q(1448),
       q(1),
       ],
    q(onjob) => [
-      q(5282),
+      q(5271),
       q(0),
       ],
    q(ono) => [
-      q(5288),
+      q(5277),
       q(0),
       ],
    q(onobasulu) => [
-      q(5284),
+      q(5273),
       q(0),
       ],
    q(onondaga) => [
-      q(5285),
+      q(5274),
       q(0),
       ],
    q(ontenu) => [
-      q(5289),
+      q(5278),
       q(0),
       ],
    q(ontong java) => [
-      q(5233),
+      q(5222),
       q(0),
       ],
    q(oorlams) => [
-      q(5296),
+      q(5285),
       q(0),
       ],
    q(opao) => [
-      q(5301),
+      q(5290),
       q(0),
       ],
    q(opata) => [
-      q(5302),
+      q(5291),
       q(0),
       ],
    q(opuuo) => [
-      q(3903),
+      q(3893),
       q(0),
       ],
    q(orang kanaq) => [
-      q(5309),
+      q(5298),
       q(0),
       ],
    q(orang seletar) => [
-      q(5312),
+      q(5301),
       q(0),
       ],
    q(oraon sadri) => [
-      q(5967),
+      q(5956),
       q(0),
       ],
    q(orejon) => [
-      q(5306),
+      q(5295),
       q(0),
       ],
    q(oring) => [
-      q(5307),
+      q(5296),
       q(0),
       ],
    q(oriya) => [
@@ -46812,7 +46762,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(oriya (individual language)) => [
-      q(5318),
+      q(5307),
       q(0),
       ],
    q(oriya (macrolanguage)) => [
@@ -46820,51 +46770,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(orizaba nahuatl) => [
-      q(4968),
+      q(4956),
       q(0),
       ],
    q(orma) => [
-      q(5305),
+      q(5294),
       q(0),
       ],
    q(ormu) => [
-      q(5319),
+      q(5308),
       q(0),
       ],
    q(ormuri) => [
-      q(5314),
+      q(5303),
       q(0),
       ],
    q(oro) => [
-      q(5317),
+      q(5306),
       q(0),
       ],
    q(oro win) => [
-      q(5316),
+      q(5305),
       q(0),
       ],
    q(oroch) => [
-      q(5196),
+      q(5185),
       q(0),
       ],
    q(oroha) => [
-      q(5304),
+      q(5293),
       q(0),
       ],
    q(orok) => [
-      q(5195),
+      q(5184),
       q(0),
       ],
    q(orokaiva) => [
-      q(5251),
+      q(5240),
       q(0),
       ],
    q(oroko) => [
-      q(1112),
+      q(1108),
       q(0),
       ],
    q(orokolo) => [
-      q(5310),
+      q(5299),
       q(0),
       ],
    q(oromo) => [
@@ -46872,19 +46822,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(oroqen) => [
-      q(5308),
+      q(5297),
       q(0),
       ],
    q(orowe) => [
-      q(1386),
+      q(1381),
       q(0),
       ],
    q(oruma) => [
-      q(5311),
+      q(5300),
       q(0),
       ],
    q(orya) => [
-      q(6958),
+      q(6945),
       q(0),
       ],
    q(osage) => [
@@ -46892,19 +46842,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(osatu) => [
-      q(5324),
+      q(5313),
       q(0),
       ],
    q(oscan) => [
-      q(5320),
+      q(5309),
       q(0),
       ],
    q(osing) => [
-      q(5321),
+      q(5310),
       q(0),
       ],
    q(ososo) => [
-      q(5322),
+      q(5311),
       q(0),
       ],
    q(ossetian) => [
@@ -46916,15 +46866,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(ot danum) => [
-      q(5328),
+      q(5317),
       q(0),
       ],
    q(otank) => [
-      q(6966),
+      q(6953),
       q(0),
       ],
    q(oti) => [
-      q(5330),
+      q(5319),
       q(0),
       ],
    q(oto-manguean languages) => [
@@ -46936,11 +46886,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(otoro) => [
-      q(5336),
+      q(5325),
       q(0),
       ],
    q(ottawa) => [
-      q(5340),
+      q(5329),
       q(0),
       ],
    q(ottoman turkish (1500-1928)) => [
@@ -46948,147 +46898,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(otuho) => [
-      q(4041),
+      q(4030),
       q(0),
       ],
    q(otuke) => [
-      q(5339),
+      q(5328),
       q(0),
       ],
    q(ouma) => [
-      q(5348),
+      q(5337),
       q(0),
       ],
    q(oune) => [
-      q(5346),
+      q(5335),
       q(0),
       ],
    q(owa) => [
-      q(6277),
+      q(6265),
       q(0),
       ],
    q(owenia) => [
-      q(7248),
+      q(7235),
       q(0),
       ],
    q(owiniga) => [
-      q(5350),
+      q(5338),
       q(0),
       ],
    q(oy) => [
-      q(5352),
+      q(5340),
       q(0),
       ],
    q(oya'oya) => [
-      q(5355),
+      q(5343),
       q(0),
       ],
    q(oyda) => [
-      q(5353),
+      q(5341),
       q(0),
       ],
    q(ozolotepec zapotec) => [
-      q(7833),
+      q(7816),
       q(0),
       ],
    q(ozumacin chinantec) => [
-      q(1734),
+      q(1728),
       q(0),
       ],
    q(pa di) => [
-      q(5410),
+      q(5398),
       q(0),
       ],
    q(pa'a) => [
-      q(5596),
+      q(5584),
       q(0),
       ],
    q(pa'o) => [
-      q(1291),
+      q(1287),
       q(1),
       ],
    q(pa'o karen) => [
-      q(1291),
+      q(1287),
       q(0),
       ],
    q(pa-hng) => [
-      q(5445),
+      q(5434),
       q(0),
       ],
    q(paafang) => [
-      q(5434),
+      q(5422),
       q(0),
       ],
    q(paakantyi) => [
-      q(2145),
+      q(2139),
       q(0),
       ],
    q(paama) => [
-      q(5518),
+      q(5507),
       q(0),
       ],
    q(paasaal) => [
-      q(6049),
+      q(6037),
       q(0),
       ],
    q(pacahuara) => [
-      q(5406),
+      q(5394),
       q(0),
       ],
    q(pacaraos quechua) => [
-      q(5721),
+      q(5709),
       q(0),
       ],
    q(pacific gulf yupik) => [
-      q(2265),
+      q(2258),
       q(0),
       ],
    q(pacoh) => [
-      q(5358),
+      q(5346),
       q(0),
       ],
    q(padoe) => [
-      q(5412),
+      q(5400),
       q(0),
       ],
    q(paekche) => [
-      q(5486),
+      q(5475),
       q(0),
       ],
    q(paelignian) => [
-      q(5442),
+      q(5431),
       q(0),
       ],
    q(paez) => [
-      q(5375),
+      q(5363),
       q(0),
       ],
    q(pagi) => [
-      q(5439),
+      q(5428),
       q(0),
       ],
    q(pagibete) => [
-      q(5360),
+      q(5348),
       q(0),
       ],
    q(pagu) => [
-      q(5444),
+      q(5433),
       q(0),
       ],
    q(pahanan agta) => [
-      q(0840),
+      q(0838),
       q(0),
       ],
    q(pahari-potwari) => [
-      q(5454),
+      q(5443),
       q(0),
       ],
    q(pahi) => [
-      q(3906),
+      q(3896),
       q(0),
       ],
    q(pahlavani) => [
-      q(5457),
+      q(5446),
       q(0),
       ],
    q(pahlavi) => [
@@ -47096,63 +47046,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pai tavytera) => [
-      q(5639),
+      q(5627),
       q(0),
       ],
    q(paici) => [
-      q(5605),
+      q(5593),
       q(0),
       ],
    q(paipai) => [
-      q(5585),
+      q(5573),
       q(0),
       ],
    q(paite chin) => [
-      q(5402),
+      q(5390),
       q(0),
       ],
    q(paiwan) => [
-      q(5677),
+      q(5665),
       q(0),
       ],
    q(pak-tong) => [
-      q(5487),
+      q(5476),
       q(0),
       ],
    q(pakaasnovos) => [
-      q(5370),
+      q(5358),
       q(0),
       ],
    q(pakanha) => [
-      q(5489),
+      q(5478),
       q(0),
       ],
    q(pakistan sign language) => [
-      q(5493),
+      q(5482),
       q(0),
       ],
    q(paku) => [
-      q(5495),
+      q(5484),
       q(0),
       ],
    q(paku karen) => [
-      q(3118),
+      q(3111),
       q(0),
       ],
    q(pal) => [
-      q(0581),
+      q(0580),
       q(0),
       ],
    q(palaic) => [
-      q(5509),
+      q(5498),
       q(0),
       ],
    q(palaka senoufo) => [
-      q(5510),
+      q(5499),
       q(0),
       ],
    q(palantla chinantec) => [
-      q(1836),
+      q(1830),
       q(0),
       ],
    q(palauan) => [
@@ -47160,11 +47110,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(paleni) => [
-      q(5550),
+      q(5538),
       q(0),
       ],
    q(palenquero) => [
-      q(5506),
+      q(5495),
       q(0),
       ],
    q(pali) => [
@@ -47172,63 +47122,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(palikur) => [
-      q(5513),
+      q(5502),
       q(0),
       ],
    q(paliyan) => [
-      q(5397),
+      q(5385),
       q(0),
       ],
    q(pallanganmiddang) => [
-      q(5521),
+      q(5510),
       q(0),
       ],
    q(palor) => [
-      q(2339),
+      q(2332),
       q(0),
       ],
    q(palpa) => [
-      q(5508),
+      q(5497),
       q(0),
       ],
    q(palu'e) => [
-      q(5500),
+      q(5489),
       q(0),
       ],
    q(paluan) => [
-      q(5517),
+      q(5506),
       q(0),
       ],
    q(palula) => [
-      q(5450),
+      q(5439),
       q(1),
       ],
    q(palumata) => [
-      q(5520),
+      q(5509),
       q(0),
       ],
    q(palya bareli) => [
-      q(1399),
+      q(1394),
       q(0),
       ],
    q(pam) => [
-      q(5530),
+      q(5519),
       q(0),
       ],
    q(pambia) => [
-      q(5519),
+      q(5508),
       q(0),
       ],
    q(pamlico) => [
-      q(5527),
+      q(5516),
       q(0),
       ],
    q(pamona) => [
-      q(5523),
+      q(5512),
       q(0),
       ],
    q(pamosu) => [
-      q(2766),
+      q(2758),
       q(0),
       ],
    q(pampanga) => [
@@ -47236,51 +47186,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pamplona atta) => [
-      q(0928),
+      q(0925),
       q(0),
       ],
    q(pana (burkina faso)) => [
-      q(5555),
+      q(5543),
       q(0),
       ],
    q(pana (central african republic)) => [
-      q(5564),
+      q(5552),
       q(0),
       ],
    q(panamanian sign language) => [
-      q(4075),
+      q(4064),
       q(0),
       ],
    q(panamint) => [
-      q(5367),
+      q(5355),
       q(0),
       ],
    q(panao huanuco quechua) => [
-      q(5734),
+      q(5722),
       q(0),
       ],
    q(panara) => [
-      q(3584),
+      q(3576),
       q(0),
       ],
    q(panasuan) => [
-      q(5629),
+      q(5617),
       q(0),
       ],
    q(panawa) => [
-      q(5673),
+      q(5661),
       q(0),
       ],
    q(pancana) => [
-      q(5554),
+      q(5542),
       q(0),
       ],
    q(panchpargania) => [
-      q(6439),
+      q(6428),
       q(0),
       ],
    q(pande) => [
-      q(1265),
+      q(1261),
       q(0),
       ],
    q(pangasinan) => [
@@ -47288,27 +47238,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pangseng) => [
-      q(5443),
+      q(5432),
       q(0),
       ],
    q(pangutaran sama) => [
-      q(6115),
+      q(6103),
       q(0),
       ],
    q(pangwa) => [
-      q(5386),
+      q(5374),
       q(0),
       ],
    q(pangwali) => [
-      q(5438),
+      q(5427),
       q(0),
       ],
    q(panim) => [
-      q(5556),
+      q(5544),
       q(0),
       ],
    q(paniya) => [
-      q(5398),
+      q(5386),
       q(0),
       ],
    q(panjabi) => [
@@ -47316,67 +47266,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pankarare) => [
-      q(5372),
+      q(5360),
       q(0),
       ],
    q(pankararu) => [
-      q(5374),
+      q(5362),
       q(0),
       ],
    q(pankhu) => [
-      q(5488),
+      q(5477),
       q(0),
       ],
    q(pannei) => [
-      q(5543),
+      q(5531),
       q(0),
       ],
    q(pano) => [
-      q(4515),
+      q(4504),
       q(0),
       ],
    q(panoan katukina) => [
-      q(3504),
+      q(3497),
       q(0),
       ],
    q(panobo) => [
-      q(5553),
+      q(5541),
       q(0),
       ],
    q(panyi bai) => [
-      q(1141),
+      q(1137),
       q(0),
       ],
    q(panytyima) => [
-      q(5561),
+      q(5549),
       q(0),
       ],
    q(pao) => [
-      q(5583),
+      q(5571),
       q(0),
       ],
    q(papantla totonac) => [
-      q(6657),
+      q(6645),
       q(0),
       ],
    q(papapana) => [
-      q(5589),
+      q(5577),
       q(0),
       ],
    q(papar) => [
-      q(2138),
+      q(2132),
       q(0),
       ],
    q(papasena) => [
-      q(5368),
+      q(5356),
       q(0),
       ],
    q(papel) => [
-      q(5384),
+      q(5372),
       q(0),
       ],
    q(papi) => [
-      q(5584),
+      q(5572),
       q(0),
       ],
    q(papiamento) => [
@@ -47384,11 +47334,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(papitalai) => [
-      q(5369),
+      q(5357),
       q(0),
       ],
    q(papora) => [
-      q(5595),
+      q(5583),
       q(0),
       ],
    q(papuan languages) => [
@@ -47396,107 +47346,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(papuan malay) => [
-      q(5539),
+      q(5527),
       q(0),
       ],
    q(papuma) => [
-      q(5588),
+      q(5576),
       q(0),
       ],
    q(para arara) => [
-      q(0552),
+      q(0551),
       q(0),
       ],
    q(para gaviao) => [
-      q(2683),
+      q(2675),
       q(0),
       ],
    q(para naga) => [
-      q(5689),
+      q(5677),
       q(0),
       ],
    q(parachi) => [
-      q(5599),
+      q(5587),
       q(0),
       ],
    q(paraguayan guarani) => [
-      q(2656),
+      q(2648),
       q(0),
       ],
    q(paraguayan sign language) => [
-      q(5685),
+      q(5673),
       q(0),
       ],
    q(parakana) => [
-      q(5364),
+      q(5352),
       q(0),
       ],
    q(paranan) => [
-      q(5602),
+      q(5590),
       q(0),
       ],
    q(paranawat) => [
-      q(5361),
+      q(5349),
       q(0),
       ],
    q(paraujano) => [
-      q(5379),
+      q(5367),
       q(0),
       ],
    q(parauk) => [
-      q(5606),
+      q(5594),
       q(0),
       ],
    q(parawen) => [
-      q(5616),
+      q(5604),
       q(0),
       ],
    q(pardhan) => [
-      q(5399),
+      q(5387),
       q(0),
       ],
    q(pardhi) => [
-      q(5403),
+      q(5391),
       q(0),
       ],
    q(pare) => [
-      q(5594),
+      q(5582),
       q(0),
       ],
    q(parecis) => [
-      q(5357),
+      q(5345),
       q(0),
       ],
    q(parenga) => [
-      q(5401),
+      q(5389),
       q(0),
       ],
    q(pari) => [
-      q(3961),
+      q(3950),
       q(0),
       ],
    q(parkari koli) => [
-      q(3697),
+      q(3689),
       q(0),
       ],
    q(parkwa) => [
-      q(5381),
+      q(5369),
       q(0),
       ],
    q(parsi) => [
-      q(5610),
+      q(5598),
       q(0),
       ],
    q(parsi-dari) => [
-      q(5600),
+      q(5588),
       q(0),
       ],
    q(parthian) => [
-      q(7481),
+      q(7468),
       q(0),
       ],
    q(parya) => [
-      q(5366),
+      q(5354),
       q(0),
       ],
    q(pashto) => [
@@ -47504,99 +47454,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(pasi) => [
-      q(5632),
+      q(5620),
       q(0),
       ],
    q(pass valley yali) => [
-      q(7590),
+      q(7576),
       q(0),
       ],
    q(patamona) => [
-      q(5376),
+      q(5364),
       q(0),
       ],
    q(patani) => [
-      q(5642),
+      q(5630),
       q(0),
       ],
    q(pataxo ha-ha-hae) => [
-      q(5640),
+      q(5628),
       q(0),
       ],
    q(patep) => [
-      q(5644),
+      q(5632),
       q(0),
       ],
    q(pathiya) => [
-      q(5651),
+      q(5639),
       q(0),
       ],
    q(patpatar) => [
-      q(2495),
+      q(2488),
       q(0),
       ],
    q(pattani) => [
-      q(3805),
+      q(3795),
       q(0),
       ],
    q(pattani malay) => [
-      q(4235),
+      q(4224),
       q(0),
       ],
    q(pattapu) => [
-      q(5645),
+      q(5633),
       q(0),
       ],
    q(patwin) => [
-      q(5675),
+      q(5663),
       q(0),
       ],
    q(paulohi) => [
-      q(5502),
+      q(5491),
       q(0),
       ],
    q(paumari) => [
-      q(5359),
+      q(5347),
       q(0),
       ],
    q(paunaka) => [
-      q(5549),
+      q(5537),
       q(0),
       ],
    q(pauri bareli) => [
-      q(1140),
+      q(1136),
       q(0),
       ],
    q(pauserna) => [
-      q(5628),
+      q(5616),
       q(0),
       ],
    q(pawaia) => [
-      q(5672),
+      q(5660),
       q(0),
       ],
    q(pawnee) => [
-      q(5371),
+      q(5359),
       q(0),
       ],
    q(paynamar) => [
-      q(5533),
+      q(5522),
       q(0),
       ],
    q(pe) => [
-      q(5363),
+      q(5351),
       q(0),
       ],
    q(pear) => [
-      q(5393),
+      q(5381),
       q(0),
       ],
    q(pech) => [
-      q(5373),
+      q(5361),
       q(0),
       ],
    q(pecheneg) => [
-      q(7470),
+      q(7457),
       q(0),
       ],
    q(pedi) => [
@@ -47604,83 +47554,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(peere) => [
-      q(5435),
+      q(5423),
       q(0),
       ],
    q(pei) => [
-      q(5592),
+      q(5580),
       q(0),
       ],
    q(pekal) => [
-      q(5425),
+      q(5413),
       q(0),
       ],
    q(pela) => [
-      q(1574),
+      q(1569),
       q(0),
       ],
    q(pele-ata) => [
-      q(0911),
+      q(0909),
       q(0),
       ],
    q(pelende) => [
-      q(5591),
+      q(5579),
       q(0),
       ],
    q(pemon) => [
-      q(0818),
+      q(0816),
       q(0),
       ],
    q(pemono) => [
-      q(5430),
+      q(5418),
       q(0),
       ],
    q(penang sign language) => [
-      q(5624),
+      q(5612),
       q(0),
       ],
    q(penchal) => [
-      q(5424),
+      q(5412),
       q(0),
       ],
    q(pendau) => [
-      q(6923),
+      q(6911),
       q(0),
       ],
    q(pengo) => [
-      q(5420),
+      q(5408),
       q(0),
       ],
    q(pennsylvania german) => [
-      q(5409),
+      q(5397),
       q(0),
       ],
    q(penoles mixtec) => [
-      q(4319),
+      q(4308),
       q(0),
       ],
    q(penrhyn) => [
-      q(5546),
+      q(5534),
       q(0),
       ],
    q(pentlatch) => [
-      q(5650),
+      q(5638),
       q(0),
       ],
    q(perai) => [
-      q(7124),
+      q(7111),
       q(0),
       ],
    q(peranakan indonesian) => [
-      q(5415),
+      q(5403),
       q(0),
       ],
    q(peripheral mongolian) => [
-      q(4615),
+      q(4604),
       q(0),
       ],
    q(pero) => [
-      q(5473),
+      q(5462),
       q(0),
       ],
    q(persian) => [
@@ -47688,7 +47638,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(persian sign language) => [
-      q(5621),
+      q(5609),
       q(0),
       ],
    q(persian, old (ca.600-400 b.c.)) => [
@@ -47696,55 +47646,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(peruvian sign language) => [
-      q(5607),
+      q(5595),
       q(0),
       ],
    q(petapa zapotec) => [
-      q(7933),
+      q(7916),
       q(0),
       ],
    q(petats) => [
-      q(5431),
+      q(5419),
       q(0),
       ],
    q(petjo) => [
-      q(5432),
+      q(5420),
       q(0),
       ],
    q(peve) => [
-      q(3990),
+      q(3979),
       q(0),
       ],
    q(pfaelzisch) => [
-      q(5436),
+      q(5424),
       q(0),
       ],
    q(phai) => [
-      q(5614),
+      q(5602),
       q(0),
       ],
    q(phake) => [
-      q(5449),
+      q(5438),
       q(0),
       ],
    q(phala) => [
-      q(7742),
+      q(7725),
       q(0),
       ],
    q(phalura) => [
-      q(5450),
+      q(5439),
       q(0),
       ],
    q(phana') => [
-      q(5453),
+      q(5442),
       q(0),
       ],
    q(phangduwali) => [
-      q(5458),
+      q(5447),
       q(0),
       ],
    q(phende) => [
-      q(5426),
+      q(5414),
       q(0),
       ],
    q(philippine languages) => [
@@ -47752,11 +47702,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(philippine sign language) => [
-      q(5631),
+      q(5619),
       q(0),
       ],
    q(phimbi) => [
-      q(5451),
+      q(5440),
       q(0),
       ],
    q(phoenician) => [
@@ -47764,127 +47714,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(phola) => [
-      q(7744),
+      q(7727),
       q(0),
       ],
    q(pholo) => [
-      q(7668),
+      q(7653),
       q(0),
       ],
    q(phom naga) => [
-      q(5047),
+      q(5034),
       q(0),
       ],
    q(phong-kniang) => [
-      q(5562),
+      q(5550),
       q(0),
       ],
    q(phrae pwo karen) => [
-      q(3404),
+      q(3396),
       q(0),
       ],
    q(phrygian) => [
-      q(7472),
+      q(7459),
       q(0),
       ],
    q(phu thai) => [
-      q(5455),
+      q(5444),
       q(0),
       ],
    q(phuan) => [
-      q(5456),
+      q(5445),
       q(0),
       ],
    q(phudagi) => [
-      q(5446),
+      q(5435),
       q(0),
       ],
    q(phuie) => [
-      q(5658),
+      q(5646),
       q(0),
       ],
    q(phukha) => [
-      q(5448),
+      q(5437),
       q(0),
       ],
    q(phuma) => [
-      q(7746),
+      q(7729),
       q(0),
       ],
    q(phunoi) => [
-      q(5452),
+      q(5441),
       q(0),
       ],
    q(phuong) => [
-      q(5447),
+      q(5436),
       q(0),
       ],
    q(phupa) => [
-      q(7749),
+      q(7732),
       q(0),
       ],
    q(phupha) => [
-      q(7745),
+      q(7728),
       q(0),
       ],
    q(phuza) => [
-      q(7750),
+      q(7733),
       q(0),
       ],
    q(piamatsina) => [
-      q(5646),
+      q(5634),
       q(0),
       ],
    q(piame) => [
-      q(5471),
+      q(5460),
       q(0),
       ],
    q(piapoco) => [
-      q(5472),
+      q(5461),
       q(0),
       ],
    q(piaroa) => [
-      q(5462),
+      q(5451),
       q(0),
       ],
    q(picard) => [
-      q(5395),
+      q(5383),
       q(0),
       ],
    q(pichis asheninka) => [
-      q(1844),
+      q(1838),
       q(0),
       ],
    q(pictish) => [
-      q(7473),
+      q(7460),
       q(0),
       ],
    q(pidgin delaware) => [
-      q(2003),
+      q(1997),
       q(0),
       ],
    q(piemontese) => [
-      q(5534),
+      q(5523),
       q(0),
       ],
    q(pijao) => [
-      q(5468),
+      q(5457),
       q(0),
       ],
    q(pije) => [
-      q(5482),
+      q(5471),
       q(0),
       ],
    q(pijin) => [
-      q(5475),
+      q(5464),
       q(0),
       ],
    q(pilaga) => [
-      q(5501),
+      q(5490),
       q(0),
       ],
    q(pileni) => [
-      q(5478),
+      q(5467),
       q(0),
       ],
    q(pilipino) => [
@@ -47892,167 +47842,167 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(pima bajo) => [
-      q(5459),
+      q(5448),
       q(0),
       ],
    q(pimbwe) => [
-      q(5479),
+      q(5468),
       q(0),
       ],
    q(pinai-hagahai) => [
-      q(5552),
+      q(5540),
       q(0),
       ],
    q(pingelapese) => [
-      q(5464),
+      q(5453),
       q(0),
       ],
    q(pini) => [
-      q(5467),
+      q(5456),
       q(0),
       ],
    q(pinigura) => [
-      q(5560),
+      q(5548),
       q(0),
       ],
    q(pinjarup) => [
-      q(5548),
+      q(5536),
       q(0),
       ],
    q(pinji) => [
-      q(5461),
+      q(5450),
       q(0),
       ],
    q(pinotepa nacional mixtec) => [
-      q(4321),
+      q(4310),
       q(0),
       ],
    q(pintiini) => [
-      q(5641),
+      q(5629),
       q(0),
       ],
    q(pintupi-luritja) => [
-      q(5477),
+      q(5466),
       q(0),
       ],
    q(pinyin) => [
-      q(5563),
+      q(5551),
       q(0),
       ],
    q(pipil) => [
-      q(5587),
+      q(5575),
       q(0),
       ],
    q(piraha) => [
-      q(4697),
+      q(4685),
       q(0),
       ],
    q(piratapuyo) => [
-      q(5474),
+      q(5463),
       q(0),
       ],
    q(pirlatapa) => [
-      q(1579),
+      q(1574),
       q(0),
       ],
    q(piro) => [
-      q(5463),
+      q(5452),
       q(0),
       ],
    q(pirriya) => [
-      q(7469),
+      q(7456),
       q(0),
       ],
    q(pisabo) => [
-      q(5465),
+      q(5454),
       q(0),
       ],
    q(pisaflores tepehua) => [
-      q(6678),
+      q(6666),
       q(0),
       ],
    q(piscataway) => [
-      q(5638),
+      q(5626),
       q(0),
       ],
    q(pisidian) => [
-      q(7482),
+      q(7469),
       q(0),
       ],
    q(pitcairn-norfolk) => [
-      q(5466),
+      q(5455),
       q(0),
       ],
    q(pite sami) => [
-      q(6069),
+      q(6057),
       q(0),
       ],
    q(piti) => [
-      q(5405),
+      q(5393),
       q(0),
       ],
    q(pitjantjatjara) => [
-      q(5483),
+      q(5472),
       q(0),
       ],
    q(pitta pitta) => [
-      q(5476),
+      q(5465),
       q(0),
       ],
    q(piu) => [
-      q(5480),
+      q(5469),
       q(0),
       ],
    q(piya-kwonci) => [
-      q(5481),
+      q(5470),
       q(0),
       ],
    q(plains cree) => [
-      q(1857),
+      q(1851),
       q(0),
       ],
    q(plains indian sign language) => [
-      q(5622),
+      q(5610),
       q(0),
       ],
    q(plains miwok) => [
-      q(5537),
+      q(5525),
       q(0),
       ],
    q(plapo krumen) => [
-      q(3636),
+      q(3628),
       q(0),
       ],
    q(plateau malagasy) => [
-      q(5512),
+      q(5501),
       q(0),
       ],
    q(plautdietsch) => [
-      q(5413),
+      q(5401),
       q(0),
       ],
    q(playero) => [
-      q(2593),
+      q(2586),
       q(0),
       ],
    q(pnar) => [
-      q(5390),
+      q(5378),
       q(0),
       ],
    q(pochuri naga) => [
-      q(5051),
+      q(5038),
       q(0),
       ],
    q(pochutec) => [
-      q(7478),
+      q(7465),
       q(0),
       ],
    q(podena) => [
-      q(5411),
+      q(5399),
       q(0),
       ],
    q(pogolo) => [
-      q(5582),
+      q(5570),
       q(0),
       ],
    q(pohnpeian) => [
@@ -48060,31 +48010,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pokanga) => [
-      q(5572),
+      q(5560),
       q(0),
       ],
    q(poke) => [
-      q(5568),
+      q(5556),
       q(0),
       ],
    q(pokomo) => [
-      q(5485),
+      q(5474),
       q(0),
       ],
    q(pokoot) => [
-      q(5490),
+      q(5479),
       q(0),
       ],
    q(polabian) => [
-      q(5581),
+      q(5569),
       q(0),
       ],
    q(polari) => [
-      q(5499),
+      q(5488),
       q(0),
       ],
    q(polci) => [
-      q(5503),
+      q(5492),
       q(0),
       ],
    q(polish) => [
@@ -48092,67 +48042,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(polish sign language) => [
-      q(5630),
+      q(5618),
       q(0),
       ],
    q(polonombauk) => [
-      q(5497),
+      q(5486),
       q(0),
       ],
    q(pom) => [
-      q(5531),
+      q(5520),
       q(0),
       ],
    q(pomo) => [
-      q(5529),
+      q(5518),
       q(0),
       ],
    q(ponam) => [
-      q(4775),
+      q(4763),
       q(0),
       ],
    q(ponares) => [
-      q(5566),
+      q(5554),
       q(0),
       ],
    q(pongu) => [
-      q(5545),
+      q(5533),
       q(0),
       ],
    q(ponosakan) => [
-      q(5557),
+      q(5545),
       q(0),
       ],
    q(pontic) => [
-      q(5558),
+      q(5546),
       q(0),
       ],
    q(ponyo-gongwang naga) => [
-      q(5046),
+      q(5033),
       q(0),
       ],
    q(popti') => [
-      q(3050),
+      q(3042),
       q(0),
       ],
    q(poqomam) => [
-      q(5565),
+      q(5553),
       q(0),
       ],
    q(poqomchi') => [
-      q(5570),
+      q(5558),
       q(0),
       ],
    q(porohanon) => [
-      q(5604),
+      q(5592),
       q(0),
       ],
    q(port sandwich) => [
-      q(5637),
+      q(5625),
       q(0),
       ],
    q(port vato) => [
-      q(5649),
+      q(5637),
       q(0),
       ],
    q(portuguese) => [
@@ -48160,7 +48110,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(portuguese sign language) => [
-      q(5633),
+      q(5621),
       q(0),
       ],
    q(portuguese-based creoles and pidgins) => [
@@ -48168,39 +48118,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(potawatomi) => [
-      q(5578),
+      q(5566),
       q(0),
       ],
    q(potiguara) => [
-      q(5569),
+      q(5557),
       q(0),
       ],
    q(pottangi ollar gadaba) => [
-      q(2459),
+      q(2452),
       q(0),
       ],
    q(poule) => [
-      q(4551),
+      q(4540),
       q(1),
       ],
    q(poumei naga) => [
-      q(5538),
+      q(5526),
       q(0),
       ],
    q(pouye) => [
-      q(1599),
+      q(1593),
       q(0),
       ],
    q(powari) => [
-      q(5679),
+      q(5667),
       q(0),
       ],
    q(powhatan) => [
-      q(5470),
+      q(5459),
       q(0),
       ],
    q(poyanawa) => [
-      q(5684),
+      q(5672),
       q(0),
       ],
    q(prakrit languages) => [
@@ -48208,19 +48158,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(prasuni) => [
-      q(5609),
+      q(5597),
       q(0),
       ],
    q(pray 3) => [
-      q(5618),
+      q(5606),
       q(0),
       ],
    q(primitive irish) => [
-      q(5441),
+      q(5430),
       q(0),
       ],
    q(principense) => [
-      q(5601),
+      q(5589),
       q(0),
       ],
    q(provencal) => [
@@ -48232,107 +48182,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(providencia sign language) => [
-      q(5619),
+      q(5607),
       q(0),
       ],
    q(prussian) => [
-      q(5603),
+      q(5591),
       q(0),
       ],
    q(psikye) => [
-      q(3683),
+      q(3675),
       q(0),
       ],
    q(pu ko) => [
-      q(5661),
+      q(5649),
       q(0),
       ],
    q(pu-xian chinese) => [
-      q(1845),
+      q(1839),
       q(0),
       ],
    q(puare) => [
-      q(5670),
+      q(5658),
       q(0),
       ],
    q(pudtol atta) => [
-      q(0924),
+      q(0921),
       q(0),
       ],
    q(puelche) => [
-      q(5656),
+      q(5644),
       q(0),
       ],
    q(puerto rican sign language) => [
-      q(5627),
+      q(5615),
       q(0),
       ],
    q(puimei naga) => [
-      q(5053),
+      q(5040),
       q(0),
       ],
    q(puinave) => [
-      q(5659),
+      q(5647),
       q(0),
       ],
    q(pukapuka) => [
-      q(5491),
+      q(5480),
       q(0),
       ],
    q(pulaar) => [
-      q(2387),
+      q(2380),
       q(0),
       ],
    q(pulabu) => [
-      q(5664),
+      q(5652),
       q(0),
       ],
    q(pular) => [
-      q(2390),
+      q(2383),
       q(0),
       ],
    q(puluwatese) => [
-      q(5669),
+      q(5657),
       q(0),
       ],
    q(puma) => [
-      q(5662),
+      q(5650),
       q(0),
       ],
    q(pume) => [
-      q(7592),
+      q(7578),
       q(0),
       ],
    q(pumpokol) => [
-      q(7476),
+      q(7463),
       q(0),
       ],
    q(punan aput) => [
-      q(5655),
+      q(5643),
       q(0),
       ],
    q(punan bah-biau) => [
-      q(5541),
+      q(5529),
       q(0),
       ],
    q(punan batu 1) => [
-      q(5551),
+      q(5539),
       q(0),
       ],
    q(punan merah) => [
-      q(5657),
+      q(5645),
       q(0),
       ],
    q(punan merap) => [
-      q(5654),
+      q(5642),
       q(0),
       ],
    q(punan tubu) => [
-      q(5660),
+      q(5648),
       q(0),
       ],
    q(punic) => [
-      q(7484),
+      q(7471),
       q(0),
       ],
    q(punjabi) => [
@@ -48340,59 +48290,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(puno quechua) => [
-      q(5738),
+      q(5726),
       q(0),
       ],
    q(punthamara) => [
-      q(7483),
+      q(7470),
       q(0),
       ],
    q(punu) => [
-      q(5668),
+      q(5656),
       q(0),
       ],
    q(puoc) => [
-      q(5663),
+      q(5651),
       q(0),
       ],
    q(puquina) => [
-      q(5665),
+      q(5653),
       q(0),
       ],
    q(puragi) => [
-      q(5615),
+      q(5603),
       q(0),
       ],
    q(purari) => [
-      q(2895),
+      q(2887),
       q(0),
       ],
    q(purepecha) => [
-      q(6746),
+      q(6733),
       q(0),
       ],
    q(puri) => [
-      q(5612),
+      q(5600),
       q(0),
       ],
    q(purik) => [
-      q(5617),
+      q(5605),
       q(0),
       ],
    q(purisimeno) => [
-      q(5671),
+      q(5659),
       q(0),
       ],
    q(puroik) => [
-      q(6298),
+      q(6286),
       q(0),
       ],
    q(purubora) => [
-      q(5666),
+      q(5654),
       q(0),
       ],
    q(purum) => [
-      q(5653),
+      q(5641),
       q(0),
       ],
    q(pushto) => [
@@ -48400,119 +48350,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(putai) => [
-      q(4246),
+      q(4235),
       q(0),
       ],
    q(putoh) => [
-      q(5667),
+      q(5655),
       q(0),
       ],
    q(putukwam) => [
-      q(0643),
+      q(0641),
       q(0),
       ],
    q(puyo) => [
-      q(7485),
+      q(7472),
       q(0),
       ],
    q(puyo-paekche) => [
-      q(7479),
+      q(7466),
       q(0),
       ],
    q(puyuma) => [
-      q(5686),
+      q(5674),
       q(0),
       ],
    q(pwaamei) => [
-      q(5522),
+      q(5511),
       q(0),
       ],
    q(pwapwa) => [
-      q(5575),
+      q(5563),
       q(0),
       ],
    q(pwo eastern karen) => [
-      q(3400),
+      q(3392),
       q(0),
       ],
    q(pwo northern karen) => [
-      q(5680),
+      q(5668),
       q(0),
       ],
    q(pwo western karen) => [
-      q(5678),
+      q(5666),
       q(0),
       ],
    q(pyapun) => [
-      q(5407),
+      q(5395),
       q(0),
       ],
    q(pye krumen) => [
-      q(5682),
+      q(5670),
       q(0),
       ],
    q(pyen) => [
-      q(5688),
+      q(5676),
       q(0),
       ],
-   q(pyu) => [
-      q(5391),
+   q(pyu (myanmar)) => [
+      q(5675),
       q(0),
       ],
-   q(pyu (myanmar)) => [
-      q(5687),
+   q(pyu (papua new guinea)) => [
+      q(5379),
       q(0),
       ],
    q(q'anjob'al) => [
-      q(3386),
+      q(3378),
       q(0),
       ],
    q(qabiao) => [
-      q(3814),
+      q(3804),
       q(0),
       ],
    q(qaqet) => [
-      q(1616),
+      q(1610),
       q(0),
       ],
    q(qashqa'i) => [
-      q(5739),
+      q(5727),
       q(0),
       ],
    q(qatabanian) => [
-      q(7487),
+      q(7474),
       q(0),
       ],
    q(qau) => [
-      q(2620),
+      q(2613),
       q(0),
       ],
    q(qawasqar) => [
-      q(0748),
+      q(0746),
       q(0),
       ],
    q(qila muji) => [
-      q(7714),
+      q(7699),
       q(0),
       ],
    q(qimant) => [
-      q(0681),
+      q(0679),
       q(0),
       ],
    q(qiubei zhuang) => [
-      q(7955),
+      q(7938),
       q(0),
       ],
    q(quapaw) => [
-      q(5690),
+      q(5678),
       q(0),
       ],
    q(quebec sign language) => [
-      q(2346),
+      q(2339),
       q(0),
       ],
    q(quechan) => [
-      q(7788),
+      q(7771),
       q(0),
       ],
    q(quechua) => [
@@ -48524,71 +48474,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(quenya) => [
-      q(5745),
+      q(5733),
       q(0),
       ],
    q(queretaro otomi) => [
-      q(5335),
+      q(5324),
       q(0),
       ],
    q(quetzaltepec mixe) => [
-      q(5681),
+      q(5669),
       q(0),
       ],
    q(queyu) => [
-      q(5724),
+      q(5712),
       q(0),
       ],
    q(quiavicuzas zapotec) => [
-      q(7938),
+      q(7921),
       q(0),
       ],
    q(quiche) => [
-      q(5692),
+      q(5680),
       q(1),
       ],
    q(quileute) => [
-      q(5697),
+      q(5685),
       q(0),
       ],
    q(quinault) => [
-      q(5701),
+      q(5689),
       q(0),
       ],
    q(quinqui) => [
-      q(5703),
+      q(5691),
       q(0),
       ],
    q(quioquitani-quieri zapotec) => [
-      q(7974),
+      q(7957),
       q(0),
       ],
    q(quiotepec chinantec) => [
-      q(1730),
+      q(1724),
       q(0),
       ],
    q(quiripi) => [
-      q(5746),
+      q(5734),
       q(0),
       ],
    q(rabha) => [
-      q(5753),
+      q(5741),
       q(0),
       ],
    q(rade) => [
-      q(5750),
+      q(5738),
       q(0),
       ],
    q(raetic) => [
-      q(7497),
+      q(7484),
       q(0),
       ],
    q(rahambuu) => [
-      q(5768),
+      q(5756),
       q(0),
       ],
    q(rajah kabunsuwan manobo) => [
-      q(4500),
+      q(4489),
       q(0),
       ],
    q(rajasthani) => [
@@ -48596,75 +48546,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(rajbanshi) => [
-      q(5808),
+      q(5796),
       q(0),
       ],
    q(raji) => [
-      q(5807),
+      q(5795),
       q(0),
       ],
    q(rajong) => [
-      q(5806),
+      q(5794),
       q(0),
       ],
    q(rajput garasia) => [
-      q(2621),
+      q(2614),
       q(0),
       ],
    q(rakahanga-manihiki) => [
-      q(5811),
+      q(5799),
       q(0),
       ],
    q(rakhine) => [
-      q(5812),
+      q(5800),
       q(0),
       ],
    q(ralte) => [
-      q(5756),
+      q(5744),
       q(0),
       ],
    q(rama) => [
-      q(5816),
+      q(5804),
       q(0),
       ],
    q(ramoaaina) => [
-      q(5754),
+      q(5742),
       q(0),
       ],
    q(ramopa) => [
-      q(3406),
+      q(3399),
       q(0),
       ],
    q(rampi) => [
-      q(3943),
+      q(3932),
       q(0),
       ],
    q(rana tharu) => [
-      q(6519),
+      q(6508),
       q(0),
       ],
    q(rang) => [
-      q(5766),
+      q(5754),
       q(0),
       ],
    q(rangkas) => [
-      q(5790),
+      q(5778),
       q(0),
       ],
    q(ranglong) => [
-      q(5843),
+      q(5831),
       q(0),
       ],
    q(rangpuri) => [
-      q(5814),
+      q(5802),
       q(0),
       ],
    q(rao) => [
-      q(5759),
+      q(5747),
       q(0),
       ],
    q(rapa) => [
-      q(5767),
+      q(5755),
       q(0),
       ],
    q(rapanui) => [
@@ -48672,15 +48622,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(rapoisi) => [
-      q(3774),
+      q(3764),
       q(0),
       ],
    q(rapting) => [
-      q(5861),
+      q(5849),
       q(0),
       ],
    q(rara bakati') => [
-      q(4052),
+      q(4041),
       q(0),
       ],
    q(rarotongan) => [
@@ -48688,139 +48638,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(rasawa) => [
-      q(5749),
+      q(5737),
       q(0),
       ],
    q(ratagnon) => [
-      q(1486),
+      q(1481),
       q(0),
       ],
    q(ratahan) => [
-      q(5869),
+      q(5857),
       q(0),
       ],
    q(rathawi) => [
-      q(5871),
+      q(5860),
       q(0),
       ],
    q(rathwi bareli) => [
-      q(1167),
+      q(1163),
       q(0),
       ],
    q(raute) => [
-      q(5763),
+      q(5751),
       q(0),
       ],
    q(ravula) => [
-      q(7635),
+      q(7620),
       q(0),
       ],
    q(rawa) => [
-      q(5889),
+      q(5878),
       q(0),
       ],
    q(rawang) => [
-      q(5765),
+      q(5753),
       q(0),
       ],
    q(rawat) => [
-      q(3139),
+      q(3132),
       q(0),
       ],
    q(rawngtu chin) => [
-      q(7125),
+      q(7112),
       q(0),
       ],
    q(rawo) => [
-      q(5886),
+      q(5875),
       q(0),
       ],
    q(rayon zoque) => [
-      q(7927),
+      q(7910),
       q(0),
       ],
    q(razajerdi) => [
-      q(5762),
+      q(5750),
       q(0),
       ],
    q(red gelao) => [
-      q(2531),
+      q(2523),
       q(0),
       ],
    q(reel) => [
-      q(0929),
+      q(0926),
       q(0),
       ],
    q(rejang) => [
-      q(5780),
+      q(5768),
       q(0),
       ],
    q(rejang kayan) => [
-      q(5777),
+      q(5765),
       q(0),
       ],
    q(reli) => [
-      q(5779),
+      q(5767),
       q(0),
       ],
    q(rema) => [
-      q(1375),
+      q(1370),
       q(0),
       ],
    q(rembarunga) => [
-      q(5817),
+      q(5805),
       q(0),
       ],
    q(rembong) => [
-      q(5776),
+      q(5764),
       q(0),
       ],
    q(remo) => [
-      q(5782),
+      q(5770),
       q(0),
       ],
    q(remontado dumagat) => [
-      q(0674),
+      q(0672),
       q(0),
       ],
    q(rempi) => [
-      q(5830),
+      q(5818),
       q(0),
       ],
    q(remun) => [
-      q(3956),
+      q(3945),
       q(0),
       ],
    q(rendille) => [
-      q(5781),
+      q(5769),
       q(0),
       ],
    q(rengao) => [
-      q(5783),
+      q(5771),
       q(0),
       ],
    q(rennell-bellona) => [
-      q(4442),
+      q(4431),
       q(0),
       ],
    q(rennellese sign language) => [
-      q(5866),
+      q(5854),
       q(0),
       ],
    q(repanbitip) => [
-      q(5860),
+      q(5848),
       q(0),
       ],
    q(rer bare) => [
-      q(5784),
+      q(5772),
       q(0),
       ],
    q(rerau) => [
-      q(5775),
+      q(5763),
       q(0),
       ],
    q(rerep) => [
-      q(5440),
+      q(5429),
       q(0),
       ],
    q(reserved for local use) => [
@@ -48828,95 +48778,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(reshe) => [
-      q(5785),
+      q(5773),
       q(0),
       ],
    q(resigaro) => [
-      q(5792),
+      q(5780),
       q(0),
       ],
    q(retta) => [
-      q(5786),
+      q(5774),
       q(0),
       ],
    q(reunion creole french) => [
-      q(5773),
+      q(5761),
       q(0),
       ],
    q(reyesano) => [
-      q(5787),
+      q(5775),
       q(0),
       ],
    q(riang (india)) => [
-      q(5797),
+      q(5785),
       q(0),
       ],
    q(riang (myanmar)) => [
-      q(5800),
+      q(5788),
       q(0),
       ],
    q(riantana) => [
-      q(5758),
+      q(5746),
       q(0),
       ],
    q(ribun) => [
-      q(5803),
+      q(5791),
       q(0),
       ],
    q(rien) => [
-      q(5798),
+      q(5786),
       q(0),
       ],
+   q(rifao) => [
+      q(4983),
+      q(1),
+      ],
    q(rikbaktsa) => [
-      q(5810),
+      q(5798),
       q(0),
       ],
    q(rincon zapotec) => [
-      q(7835),
+      q(7818),
       q(0),
       ],
    q(rinconada bikol) => [
-      q(1487),
+      q(1482),
       q(0),
       ],
    q(ringgou) => [
-      q(5794),
+      q(5782),
       q(0),
       ],
    q(ririo) => [
-      q(5862),
+      q(5850),
       q(0),
       ],
    q(ritarungo) => [
-      q(5804),
+      q(5792),
       q(0),
       ],
    q(riung) => [
-      q(5805),
+      q(5793),
       q(0),
       ],
    q(riverain sango) => [
-      q(6153),
+      q(6141),
       q(0),
       ],
    q(rogo) => [
-      q(5850),
+      q(5838),
       q(0),
       ],
    q(rohingya) => [
-      q(5795),
+      q(5783),
       q(0),
       ],
    q(roma) => [
-      q(5827),
+      q(5815),
       q(0),
       ],
    q(romagnol) => [
-      q(5791),
+      q(5779),
       q(0),
       ],
    q(romam) => [
-      q(5837),
+      q(5825),
       q(0),
       ],
    q(romance languages) => [
@@ -48928,19 +48882,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(romanian sign language) => [
-      q(5832),
+      q(5820),
       q(0),
       ],
    q(romano-greek) => [
-      q(5789),
+      q(5777),
       q(0),
       ],
    q(romano-serbian) => [
-      q(5865),
+      q(5853),
       q(0),
       ],
    q(romanova) => [
-      q(5835),
+      q(5823),
       q(0),
       ],
    q(romansh) => [
@@ -48952,95 +48906,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(romblomanon) => [
-      q(5854),
+      q(5842),
       q(0),
       ],
    q(rombo) => [
-      q(5852),
+      q(5840),
       q(0),
       ],
    q(romkun) => [
-      q(5825),
+      q(5813),
       q(0),
       ],
    q(ron) => [
-      q(1774),
+      q(1768),
       q(0),
       ],
    q(ronga) => [
-      q(5842),
+      q(5830),
       q(0),
       ],
    q(rongga) => [
-      q(5857),
+      q(5845),
       q(0),
       ],
    q(rongmei naga) => [
-      q(4769),
+      q(4757),
       q(0),
       ],
    q(rongpo) => [
-      q(5845),
+      q(5833),
       q(0),
       ],
    q(ronji) => [
-      q(5851),
+      q(5839),
       q(0),
       ],
    q(roon) => [
-      q(5844),
+      q(5832),
       q(0),
       ],
    q(roria) => [
-      q(5788),
+      q(5776),
       q(0),
       ],
    q(rotokas) => [
-      q(5855),
+      q(5843),
       q(0),
       ],
    q(rotuman) => [
-      q(5870),
+      q(5858),
       q(0),
       ],
    q(roviana) => [
-      q(5876),
+      q(5865),
       q(0),
       ],
    q(ruching palaung) => [
-      q(5396),
+      q(5384),
       q(0),
       ],
    q(rudbari) => [
-      q(5774),
+      q(5762),
       q(0),
       ],
    q(rufiji) => [
-      q(5878),
+      q(5867),
       q(0),
       ],
    q(ruga) => [
-      q(5877),
+      q(5866),
       q(0),
       ],
    q(rukai) => [
-      q(2152),
+      q(2146),
       q(0),
       ],
    q(ruma) => [
-      q(5885),
+      q(5874),
       q(0),
       ],
    q(rumai palaung) => [
-      q(5769),
+      q(5757),
       q(0),
       ],
    q(rumu) => [
-      q(3451),
+      q(3444),
       q(0),
       ],
    q(runa) => [
-      q(5840),
+      q(5828),
       q(0),
       ],
    q(rundi) => [
@@ -49048,23 +49002,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(runga) => [
-      q(5858),
+      q(5846),
       q(0),
       ],
    q(rungtu chin) => [
-      q(5868),
+      q(5856),
       q(0),
       ],
    q(rungus) => [
-      q(2143),
+      q(2137),
       q(0),
       ],
    q(rungwa) => [
-      q(5847),
+      q(5835),
       q(0),
       ],
    q(russia buriat) => [
-      q(1588),
+      q(1583),
       q(0),
       ],
    q(russian) => [
@@ -49072,171 +49026,171 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(russian sign language) => [
-      q(5867),
+      q(5855),
       q(0),
       ],
    q(rusyn) => [
-      q(5874),
+      q(5863),
       q(0),
       ],
    q(rutul) => [
-      q(5882),
+      q(5871),
       q(0),
       ],
    q(ruuli) => [
-      q(5873),
+      q(5862),
       q(0),
       ],
    q(ruund) => [
-      q(5841),
+      q(5829),
       q(0),
       ],
    q(rwa) => [
-      q(5887),
+      q(5876),
       q(0),
       ],
    q(s'gaw karen) => [
-      q(3623),
+      q(3615),
       q(0),
       ],
    q(sa) => [
-      q(5909),
+      q(5898),
       q(0),
       ],
    q(sa'a) => [
-      q(0836),
+      q(0834),
       q(0),
       ],
    q(sa'ban) => [
-      q(6163),
+      q(6151),
       q(0),
       ],
    q(sa'och) => [
-      q(5947),
+      q(5936),
       q(0),
       ],
    q(saafi-saafi) => [
-      q(5907),
+      q(5896),
       q(0),
       ],
    q(saam) => [
-      q(5760),
+      q(5748),
       q(0),
       ],
    q(saamia) => [
-      q(4073),
+      q(4062),
       q(0),
       ],
    q(saaroa) => [
-      q(6342),
+      q(6330),
       q(0),
       ],
    q(saba) => [
-      q(5896),
+      q(5885),
       q(0),
       ],
    q(sabaean) => [
-      q(7501),
+      q(7488),
       q(0),
       ],
    q(sabah bisaya) => [
-      q(1474),
+      q(1469),
       q(0),
       ],
    q(sabah malay) => [
-      q(4548),
+      q(4537),
       q(0),
       ],
    q(sabane) => [
-      q(5899),
+      q(5888),
       q(0),
       ],
    q(sabaot) => [
-      q(6208),
+      q(6196),
       q(0),
       ],
    q(sabine) => [
-      q(5933),
+      q(5922),
       q(0),
       ],
    q(sabu) => [
-      q(2886),
+      q(2878),
       q(0),
       ],
    q(sabum) => [
-      q(5926),
+      q(5915),
       q(0),
       ],
    q(sacapulteco) => [
-      q(5706),
+      q(5694),
       q(0),
       ],
    q(sadri) => [
-      q(5944),
+      q(5933),
       q(0),
       ],
    q(saek) => [
-      q(6083),
+      q(6071),
       q(0),
       ],
    q(saep) => [
-      q(6191),
+      q(6179),
       q(0),
       ],
    q(safaliba) => [
-      q(5900),
+      q(5889),
       q(0),
       ],
    q(safeyoka) => [
-      q(0860),
+      q(0858),
       q(0),
       ],
    q(safwa) => [
-      q(5922),
+      q(5911),
       q(0),
       ],
    q(sagala) => [
-      q(5924),
+      q(5913),
       q(0),
       ],
    q(sagalla) => [
-      q(6485),
+      q(6474),
       q(0),
       ],
    q(saho) => [
-      q(6263),
+      q(6251),
       q(0),
       ],
    q(sahu) => [
-      q(5901),
+      q(5890),
       q(0),
       ],
    q(saidi arabic) => [
-      q(0627),
+      q(0625),
       q(0),
       ],
    q(saint lucian creole french) => [
-      q(0588),
+      q(0587),
       q(0),
       ],
    q(saisiyat) => [
-      q(7519),
+      q(7505),
       q(0),
       ],
    q(sajalong) => [
-      q(6072),
+      q(6060),
       q(0),
       ],
    q(sajau basap) => [
-      q(6067),
+      q(6055),
       q(0),
       ],
    q(sakachep) => [
-      q(5942),
+      q(5931),
       q(0),
       ],
    q(sakalava malagasy) => [
-      q(6088),
+      q(6076),
       q(0),
       ],
    q(sakan) => [
@@ -49244,59 +49198,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(sakao) => [
-      q(6101),
+      q(6089),
       q(0),
       ],
    q(sakata) => [
-      q(6100),
+      q(6088),
       q(0),
       ],
    q(sake) => [
-      q(5902),
+      q(5891),
       q(0),
       ],
    q(sakirabia) => [
-      q(6087),
+      q(6075),
       q(0),
       ],
    q(sala) => [
-      q(6035),
+      q(6023),
       q(0),
       ],
    q(salako) => [
-      q(3508),
+      q(3501),
       q(1),
       ],
    q(salampasu) => [
-      q(6124),
+      q(6112),
       q(0),
       ],
    q(salar) => [
-      q(6119),
+      q(6107),
       q(0),
       ],
    q(salas) => [
-      q(6016),
+      q(6004),
       q(0),
       ],
    q(salasaca highland quichua) => [
-      q(5735),
+      q(5723),
       q(0),
       ],
    q(salchuq) => [
-      q(6118),
+      q(6106),
       q(0),
       ],
    q(saleman) => [
-      q(5906),
+      q(5895),
       q(0),
       ],
    q(saliba) => [
-      q(5916),
+      q(5905),
       q(0),
       ],
    q(salinan) => [
-      q(6116),
+      q(6104),
       q(0),
       ],
    q(salishan languages) => [
@@ -49304,35 +49258,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sallands) => [
-      q(5972),
+      q(5961),
       q(0),
       ],
    q(salt-yui) => [
-      q(6114),
+      q(6102),
       q(0),
       ],
    q(saluan) => [
-      q(4027),
+      q(4016),
       q(0),
       ],
    q(saluma) => [
-      q(6113),
+      q(6101),
       q(0),
       ],
    q(salvadoran sign language) => [
-      q(2303),
+      q(2296),
       q(0),
       ],
    q(sam) => [
-      q(6165),
+      q(6153),
       q(0),
       ],
    q(sama) => [
-      q(6129),
+      q(6117),
       q(0),
       ],
    q(samaritan) => [
-      q(6136),
+      q(6124),
       q(0),
       ],
    q(samaritan aramaic) => [
@@ -49340,47 +49294,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(samarokena) => [
-      q(6606),
+      q(6594),
       q(0),
       ],
    q(samatao) => [
-      q(7763),
+      q(7746),
+      q(0),
+      ],
+   q(samay) => [
+      q(6344),
       q(0),
       ],
    q(samba) => [
-      q(6143),
+      q(6131),
       q(0),
       ],
    q(samba daka) => [
-      q(1689),
+      q(1683),
       q(0),
       ],
    q(samba leko) => [
-      q(4802),
+      q(4790),
       q(0),
       ],
    q(sambal) => [
-      q(7502),
+      q(7489),
       q(0),
       ],
    q(sambalpuri) => [
-      q(6206),
+      q(6194),
       q(0),
       ],
    q(sambe) => [
-      q(7285),
+      q(7272),
       q(0),
       ],
    q(samberigi) => [
-      q(6262),
+      q(6250),
       q(0),
       ],
    q(samburu) => [
-      q(5904),
+      q(5893),
       q(0),
       ],
    q(samei) => [
-      q(6132),
+      q(6120),
       q(0),
       ],
    q(sami languages) => [
@@ -49388,7 +49346,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(samo) => [
-      q(6137),
+      q(6125),
       q(0),
       ],
    q(samoan) => [
@@ -49396,11 +49354,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(samogitian) => [
-      q(6014),
+      q(6002),
       q(0),
       ],
    q(samosa) => [
-      q(6320),
+      q(6308),
       q(0),
       ],
    q(samoyedic languages) => [
@@ -49408,123 +49366,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sampang) => [
-      q(5764),
+      q(5752),
       q(0),
       ],
    q(samre) => [
-      q(6339),
+      q(6327),
       q(0),
       ],
    q(samtao) => [
-      q(6284),
+      q(6272),
       q(0),
       ],
    q(samvedi) => [
-      q(6141),
+      q(6129),
       q(0),
       ],
    q(san agustin mixtepec zapotec) => [
-      q(7971),
+      q(7954),
       q(0),
       ],
    q(san baltazar loxicha zapotec) => [
-      q(7952),
+      q(7935),
       q(0),
       ],
    q(san blas kuna) => [
-      q(1915),
+      q(1909),
       q(0),
       ],
    q(san dionisio del mar huave) => [
-      q(2884),
+      q(2876),
       q(0),
       ],
    q(san felipe otlaltepec popoloca) => [
-      q(5580),
+      q(5568),
       q(0),
       ],
    q(san francisco del mar huave) => [
-      q(2863),
+      q(2855),
       q(0),
       ],
    q(san francisco matlatzinca) => [
-      q(4132),
+      q(4121),
       q(0),
       ],
    q(san jeronimo tecoatl mazatec) => [
-      q(4125),
+      q(4114),
       q(0),
       ],
    q(san juan atzingo popoloca) => [
-      q(5567),
+      q(5555),
       q(0),
       ],
    q(san juan colorado mixtec) => [
-      q(4331),
+      q(4320),
       q(0),
       ],
    q(san juan guelavia zapotec) => [
-      q(7821),
+      q(7804),
       q(0),
       ],
    q(san juan teita mixtec) => [
-      q(7528),
+      q(7514),
       q(0),
       ],
    q(san luis temalacayuca popoloca) => [
-      q(5593),
+      q(5581),
       q(0),
       ],
-   q(san marcos tlalcoyalco popoloca) => [
-      q(5511),
+   q(san marcos tlacoyalco popoloca) => [
+      q(5500),
       q(0),
       ],
+   q(san marcos tlalcoyalco popoloca) => [
+      q(5500),
+      q(1),
+      ],
    q(san martin itunyoso triqui) => [
-      q(6714),
+      q(6702),
       q(0),
       ],
    q(san martin quechua) => [
-      q(5722),
+      q(5710),
       q(0),
       ],
    q(san mateo del mar huave) => [
-      q(2878),
+      q(2870),
       q(0),
       ],
    q(san miguel creole french) => [
-      q(5940),
+      q(5929),
       q(0),
       ],
    q(san miguel el grande mixtec) => [
-      q(4314),
+      q(4303),
       q(0),
       ],
    q(san miguel piedras mixtec) => [
-      q(7533),
+      q(7519),
       q(0),
       ],
    q(san pedro amuzgos amuzgo) => [
-      q(1018),
+      q(1014),
       q(0),
       ],
    q(san pedro quiatoni zapotec) => [
-      q(7934),
+      q(7917),
       q(0),
       ],
    q(san salvador kongo) => [
-      q(3724),
+      q(3715),
       q(0),
       ],
    q(san vicente coatlan zapotec) => [
-      q(7948),
+      q(7931),
       q(0),
       ],
    q(sanaani arabic) => [
-      q(1005),
+      q(1001),
       q(0),
       ],
    q(sanapana) => [
-      q(6198),
+      q(6186),
       q(0),
       ],
    q(sandawe) => [
@@ -49532,35 +49494,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sanga (democratic republic of congo)) => [
-      q(6150),
+      q(6138),
       q(0),
       ],
    q(sanga (nigeria)) => [
-      q(7511),
+      q(7497),
       q(0),
       ],
    q(sanggau) => [
-      q(5941),
+      q(5930),
       q(0),
       ],
    q(sangil) => [
-      q(6154),
+      q(6142),
       q(0),
       ],
    q(sangir) => [
-      q(6340),
+      q(6328),
       q(0),
       ],
    q(sangisari) => [
-      q(6013),
+      q(6001),
       q(0),
       ],
    q(sangkong) => [
-      q(6009),
+      q(5998),
       q(0),
       ],
    q(sanglechi) => [
-      q(6019),
+      q(6007),
       q(0),
       ],
    q(sango) => [
@@ -49568,35 +49530,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sangtam naga) => [
-      q(5077),
+      q(5065),
       q(0),
       ],
    q(sangu (gabon)) => [
-      q(6159),
+      q(6147),
       q(0),
       ],
    q(sangu (tanzania)) => [
-      q(5927),
+      q(5916),
       q(0),
       ],
    q(sani) => [
-      q(7766),
+      q(7749),
       q(0),
       ],
    q(sanie) => [
-      q(7771),
+      q(7754),
       q(0),
       ],
    q(saniyo-hiyewe) => [
-      q(6166),
+      q(6154),
       q(0),
       ],
    q(sankaran maninka) => [
-      q(4542),
+      q(4531),
       q(0),
       ],
    q(sansi) => [
-      q(6248),
+      q(6236),
       q(0),
       ],
    q(sanskrit) => [
@@ -49604,43 +49566,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(santa ana de tusi pasco quechua) => [
-      q(5742),
+      q(5730),
       q(0),
       ],
    q(santa catarina albarradas zapotec) => [
-      q(7972),
+      q(7955),
       q(0),
       ],
    q(santa ines ahuatempan popoloca) => [
-      q(5392),
+      q(5380),
       q(0),
       ],
    q(santa ines yatzechi zapotec) => [
-      q(7942),
+      q(7925),
       q(0),
       ],
    q(santa lucia monteverde mixtec) => [
-      q(4207),
+      q(4196),
       q(0),
       ],
    q(santa maria del mar huave) => [
-      q(2887),
+      q(2879),
       q(0),
       ],
    q(santa maria la alta nahuatl) => [
-      q(4893),
+      q(4881),
       q(0),
       ],
    q(santa maria quiegolani zapotec) => [
-      q(7937),
+      q(7920),
       q(0),
       ],
    q(santa maria zacatepec mixtec) => [
-      q(4705),
+      q(4693),
       q(0),
       ],
    q(santa teresa cora) => [
-      q(1823),
+      q(1817),
       q(0),
       ],
    q(santali) => [
@@ -49648,95 +49610,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(santiago del estero quichua) => [
-      q(5705),
+      q(5693),
       q(0),
       ],
    q(santiago xanica zapotec) => [
-      q(7946),
+      q(7929),
       q(0),
       ],
    q(santo domingo albarradas zapotec) => [
-      q(7836),
+      q(7819),
       q(0),
       ],
    q(sanuma) => [
-      q(7517),
+      q(7503),
       q(0),
       ],
    q(sao paulo kaingang) => [
-      q(7881),
+      q(7864),
       q(0),
       ],
    q(saotomense) => [
-      q(1855),
+      q(1849),
       q(0),
       ],
    q(saparua) => [
-      q(6202),
+      q(6190),
       q(0),
       ],
    q(sape) => [
-      q(6190),
+      q(6178),
       q(0),
       ],
    q(sapo) => [
-      q(3591),
+      q(3583),
       q(0),
       ],
    q(saponi) => [
-      q(6194),
+      q(6182),
       q(0),
       ],
    q(saposa) => [
-      q(6203),
+      q(6191),
       q(0),
       ],
    q(sapuan) => [
-      q(6205),
+      q(6193),
       q(0),
       ],
    q(sar) => [
-      q(4645),
+      q(4633),
       q(0),
       ],
    q(sara) => [
-      q(6223),
-      q(0),
-      ],
-   q(sara dunjo) => [
-      q(3519),
+      q(6211),
       q(0),
       ],
    q(sara kaba) => [
-      q(5937),
+      q(5926),
       q(0),
       ],
    q(sara kaba deme) => [
-      q(3706),
+      q(3698),
       q(0),
       ],
    q(sara kaba naa) => [
-      q(3721),
+      q(3712),
+      q(0),
+      ],
+   q(saraiki) => [
+      q(6086),
       q(0),
       ],
    q(saramaccan) => [
-      q(6230),
+      q(6218),
       q(0),
       ],
    q(sarangani blaan) => [
-      q(1394),
+      q(1389),
       q(0),
       ],
    q(sarangani manobo) => [
-      q(4155),
+      q(4144),
       q(0),
       ],
    q(sarasira) => [
-      q(7962),
+      q(7945),
       q(0),
       ],
    q(saraveca) => [
-      q(5905),
+      q(5894),
       q(0),
       ],
    q(sardinian) => [
@@ -49744,35 +49706,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sari) => [
-      q(0896),
+      q(0894),
       q(0),
       ],
    q(sarikoli) => [
-      q(6226),
+      q(6214),
       q(0),
       ],
    q(sarli) => [
-      q(5957),
+      q(5946),
       q(0),
       ],
    q(sarsi) => [
-      q(6233),
+      q(6221),
       q(0),
       ],
    q(sartang) => [
-      q(5286),
+      q(5275),
       q(0),
       ],
    q(sarua) => [
-      q(6332),
+      q(6320),
       q(0),
       ],
    q(sarudu) => [
-      q(5970),
+      q(5959),
       q(0),
       ],
    q(saruga) => [
-      q(6220),
+      q(6208),
       q(0),
       ],
    q(sasak) => [
@@ -49780,83 +49742,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sasaru) => [
-      q(6343),
+      q(6331),
       q(0),
       ],
    q(sassarese sardinian) => [
-      q(5955),
+      q(5944),
       q(0),
       ],
    q(satawalese) => [
-      q(6286),
+      q(6274),
       q(0),
       ],
    q(satere-mawe) => [
-      q(4134),
+      q(4123),
       q(0),
       ],
    q(saterfriesisch) => [
-      q(6280),
+      q(6268),
       q(0),
       ],
    q(saudi arabian sign language) => [
-      q(5962),
+      q(5951),
       q(0),
       ],
    q(sauraseni prakrit) => [
-      q(5636),
+      q(5624),
       q(0),
       ],
    q(saurashtra) => [
-      q(5911),
+      q(5900),
       q(0),
       ],
    q(sauri) => [
-      q(6234),
+      q(6222),
       q(0),
       ],
    q(sauria paharia) => [
-      q(4347),
+      q(4336),
       q(0),
       ],
    q(sause) => [
-      q(5903),
+      q(5892),
       q(0),
       ],
    q(sausi) => [
-      q(6249),
+      q(6237),
       q(0),
       ],
    q(savara) => [
-      q(6308),
+      q(6296),
       q(0),
       ],
    q(savi) => [
-      q(5958),
+      q(5947),
       q(0),
       ],
    q(savosavo) => [
-      q(6309),
+      q(6297),
       q(0),
       ],
    q(sawai) => [
-      q(6367),
+      q(6356),
       q(0),
       ],
    q(saweru) => [
-      q(6325),
+      q(6313),
       q(0),
       ],
    q(sawi) => [
-      q(5908),
+      q(5897),
       q(0),
       ],
    q(sawila) => [
-      q(6327),
+      q(6315),
       q(0),
       ],
    q(sawknah) => [
-      q(6321),
+      q(6309),
       q(0),
       ],
    q(saxon, low) => [
@@ -49864,15 +49826,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(3),
       ],
    q(saxwe gbe) => [
-      q(6345),
+      q(6333),
       q(0),
       ],
    q(saya) => [
-      q(5910),
+      q(5899),
       q(0),
       ],
    q(sayula popoluca) => [
-      q(5577),
+      q(5565),
       q(0),
       ],
    q(scots) => [
@@ -49884,135 +49846,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(scythian) => [
-      q(7503),
+      q(7490),
       q(0),
       ],
    q(sea island creole english) => [
-      q(2660),
+      q(2652),
       q(0),
       ],
    q(seba) => [
-      q(3247),
+      q(3239),
       q(0),
       ],
    q(sebat bet gurage) => [
-      q(6017),
+      q(6005),
       q(0),
       ],
    q(seberuang) => [
-      q(5935),
+      q(5924),
       q(0),
       ],
    q(sebop) => [
-      q(6046),
+      q(6034),
       q(0),
       ],
    q(sebuyau) => [
-      q(6146),
+      q(6134),
       q(0),
       ],
    q(sechelt) => [
-      q(5975),
+      q(5964),
       q(0),
       ],
    q(secoya) => [
-      q(5994),
+      q(5983),
       q(0),
       ],
    q(sedang) => [
-      q(5976),
+      q(5965),
       q(0),
       ],
    q(sedoa) => [
-      q(6802),
+      q(6789),
       q(0),
       ],
    q(seeku) => [
-      q(6182),
+      q(6170),
       q(0),
       ],
    q(segai) => [
-      q(6004),
+      q(5993),
       q(0),
       ],
    q(segeju) => [
-      q(5979),
+      q(5968),
       q(0),
       ],
    q(seget) => [
-      q(5918),
+      q(5907),
       q(0),
       ],
    q(sehwi) => [
-      q(6000),
+      q(5989),
       q(0),
       ],
    q(seimat) => [
-      q(6246),
+      q(6234),
       q(0),
       ],
    q(seit-kaitetu) => [
-      q(2769),
+      q(2761),
       q(0),
       ],
    q(sekani) => [
-      q(5983),
+      q(5972),
       q(0),
       ],
    q(sekapan) => [
-      q(6096),
+      q(6084),
       q(0),
       ],
    q(sekar) => [
-      q(6106),
+      q(6094),
       q(0),
       ],
    q(seke (nepal)) => [
-      q(6091),
+      q(6079),
       q(0),
       ],
    q(seke (vanuatu)) => [
-      q(6086),
+      q(6074),
+      q(0),
+      ],
+   q(sekele) => [
+      q(6974),
       q(0),
       ],
    q(seki) => [
-      q(6348),
+      q(6336),
       q(0),
       ],
    q(seko padang) => [
-      q(6104),
+      q(6092),
       q(0),
       ],
    q(seko tengah) => [
-      q(6095),
+      q(6083),
       q(0),
       ],
    q(sekpele) => [
-      q(3932),
+      q(3921),
       q(0),
       ],
    q(selangor sign language) => [
-      q(3323),
+      q(3315),
       q(0),
       ],
    q(selaru) => [
-      q(6122),
+      q(6110),
       q(0),
       ],
    q(selayar) => [
-      q(6125),
+      q(6113),
       q(0),
       ],
    q(selee) => [
-      q(6164),
+      q(6152),
       q(0),
       ],
    q(selepet) => [
-      q(6196),
+      q(6184),
       q(0),
       ],
    q(selian) => [
-      q(6338),
+      q(6326),
       q(0),
       ],
    q(selkup) => [
@@ -50020,35 +49986,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(selungai murut) => [
-      q(6110),
+      q(6098),
       q(0),
       ],
    q(seluwasan) => [
-      q(6326),
+      q(6314),
       q(0),
       ],
    q(semai) => [
-      q(5973),
+      q(5962),
       q(0),
       ],
    q(semandang) => [
-      q(5963),
+      q(5952),
       q(0),
       ],
    q(semaq beri) => [
-      q(6359),
+      q(6348),
       q(0),
       ],
    q(sembakung murut) => [
-      q(5929),
+      q(5918),
       q(0),
       ],
    q(semelai) => [
-      q(6357),
+      q(6346),
       q(0),
       ],
    q(semimi) => [
-      q(2319),
+      q(2312),
       q(0),
       ],
    q(semitic languages) => [
@@ -50056,83 +50022,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(semnam) => [
-      q(6252),
+      q(6240),
       q(0),
       ],
    q(semnani) => [
-      q(6144),
+      q(6132),
       q(0),
       ],
    q(sempan) => [
-      q(7505),
+      q(7492),
       q(0),
       ],
    q(sena) => [
-      q(5980),
+      q(5969),
       q(0),
       ],
    q(senara senoufo) => [
-      q(5987),
+      q(5976),
       q(0),
       ],
    q(senaya) => [
-      q(6352),
+      q(6340),
       q(0),
       ],
    q(sene) => [
-      q(5982),
+      q(5971),
       q(0),
       ],
    q(seneca) => [
-      q(5977),
+      q(5966),
       q(0),
       ],
    q(sened) => [
-      q(5968),
+      q(5957),
       q(0),
       ],
    q(sengele) => [
-      q(6362),
+      q(6351),
       q(0),
       ],
    q(senggi) => [
-      q(6162),
+      q(6150),
       q(0),
       ],
    q(sengo) => [
-      q(6195),
+      q(6183),
       q(0),
       ],
    q(sengseng) => [
-      q(6264),
+      q(6252),
       q(0),
       ],
    q(senhaja de srair) => [
-      q(6078),
+      q(6066),
       q(0),
       ],
    q(sensi) => [
-      q(6152),
+      q(6140),
       q(0),
       ],
    q(sentani) => [
-      q(5990),
+      q(5979),
       q(0),
       ],
    q(senthang chin) => [
-      q(5995),
+      q(5984),
       q(0),
       ],
    q(sentinel) => [
-      q(6267),
+      q(6255),
       q(0),
       ],
    q(sepa (indonesia)) => [
-      q(6189),
+      q(6177),
       q(0),
       ],
    q(sepa (papua new guinea)) => [
-      q(6192),
+      q(6180),
       q(0),
       ],
    q(sepedi) => [
@@ -50140,16 +50106,16 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(sepik iwam) => [
-      q(3039),
+      q(3031),
       q(0),
       ],
    q(sera) => [
-      q(6239),
+      q(6227),
       q(0),
       ],
    q(seraiki) => [
-      q(6098),
-      q(0),
+      q(6086),
+      q(1),
       ],
    q(serbian) => [
       q(0404),
@@ -50160,7 +50126,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sere) => [
-      q(6313),
+      q(6301),
       q(0),
       ],
    q(serer) => [
@@ -50168,103 +50134,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(seri) => [
-      q(5981),
+      q(5970),
       q(0),
       ],
    q(serili) => [
-      q(6305),
+      q(6293),
       q(0),
       ],
    q(seroa) => [
-      q(3575),
+      q(3567),
       q(0),
       ],
    q(serrano) => [
-      q(5988),
+      q(5977),
       q(0),
       ],
    q(seru) => [
-      q(6360),
+      q(6349),
       q(0),
       ],
    q(serua) => [
-      q(6237),
+      q(6225),
       q(0),
       ],
    q(serudung murut) => [
-      q(6228),
+      q(6216),
       q(0),
       ],
    q(serui-laut) => [
-      q(5991),
+      q(5980),
       q(0),
       ],
    q(seselwa creole french) => [
-      q(1864),
+      q(1858),
       q(0),
       ],
    q(seta) => [
-      q(6269),
+      q(6257),
       q(0),
       ],
    q(setaman) => [
-      q(6276),
+      q(6264),
       q(0),
       ],
    q(seti) => [
-      q(5920),
+      q(5909),
       q(0),
       ],
    q(settla) => [
-      q(6265),
+      q(6253),
       q(0),
       ],
    q(severn ojibwa) => [
-      q(5232),
+      q(5221),
       q(0),
       ],
    q(sewa bay) => [
-      q(5993),
+      q(5982),
       q(0),
       ],
    q(seze) => [
-      q(6361),
+      q(6350),
       q(0),
       ],
    q(sha) => [
-      q(5951),
+      q(5940),
       q(0),
       ],
    q(shabak) => [
-      q(5954),
+      q(5943),
       q(0),
       ],
    q(shabo) => [
-      q(5917),
-      q(0),
+      q(5906),
+      q(1),
       ],
    q(shahmirzadi) => [
-      q(6240),
+      q(6228),
       q(0),
       ],
    q(shahrudi) => [
-      q(6032),
+      q(6020),
       q(0),
       ],
    q(shall-zwall) => [
-      q(6021),
+      q(6009),
       q(0),
       ],
    q(shama-sambuga) => [
-      q(6209),
+      q(6197),
       q(0),
       ],
    q(shamang) => [
-      q(7506),
+      q(7493),
       q(0),
       ],
    q(shambala) => [
-      q(3602),
+      q(3594),
       q(0),
       ],
    q(shan) => [
@@ -50272,135 +50238,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(shanenawa) => [
-      q(6322),
+      q(6310),
       q(0),
       ],
    q(shanga) => [
-      q(6033),
+      q(6021),
       q(0),
       ],
    q(shangzhai) => [
-      q(3105),
+      q(3097),
       q(1),
       ],
    q(sharanahua) => [
-      q(4166),
+      q(4155),
       q(0),
       ],
    q(shark bay) => [
-      q(6261),
+      q(6249),
       q(0),
       ],
    q(sharwa) => [
-      q(6324),
+      q(6312),
       q(0),
       ],
    q(shasta) => [
-      q(6038),
+      q(6026),
       q(0),
       ],
    q(shatt) => [
-      q(6029),
+      q(6017),
       q(0),
       ],
    q(shau) => [
-      q(6210),
+      q(6198),
       q(0),
       ],
    q(shawnee) => [
-      q(6081),
+      q(6069),
       q(0),
       ],
    q(she) => [
-      q(6042),
+      q(6030),
       q(0),
       ],
    q(shehri) => [
-      q(6040),
+      q(6028),
       q(0),
       ],
    q(shekhawati) => [
-      q(6329),
+      q(6317),
       q(0),
       ],
    q(shekkacho) => [
-      q(4464),
+      q(4453),
       q(0),
       ],
    q(sheko) => [
-      q(6025),
+      q(6013),
       q(0),
       ],
    q(shelta) => [
-      q(6271),
+      q(6259),
       q(0),
       ],
    q(shempire senoufo) => [
-      q(5974),
+      q(5963),
       q(0),
       ],
    q(shendu) => [
-      q(6031),
+      q(6019),
       q(0),
       ],
    q(sheni) => [
-      q(5950),
+      q(5939),
       q(0),
       ],
    q(sherbro) => [
-      q(1509),
+      q(1504),
       q(0),
       ],
    q(sherdukpen) => [
-      q(5966),
+      q(5955),
       q(0),
       ],
    q(sherpa) => [
-      q(7515),
+      q(7501),
       q(0),
       ],
    q(sheshi kham) => [
-      q(3375),
+      q(3367),
       q(0),
       ],
    q(shi) => [
-      q(6036),
+      q(6024),
       q(0),
       ],
    q(shihhi arabic) => [
-      q(6247),
+      q(6235),
       q(0),
       ],
    q(shiki) => [
-      q(2650),
+      q(2642),
       q(0),
       ],
    q(shilluk) => [
-      q(6030),
+      q(6018),
       q(0),
       ],
    q(shina) => [
-      q(5945),
+      q(5934),
       q(0),
       ],
    q(shinabo) => [
-      q(6151),
+      q(6139),
       q(0),
       ],
    q(shipibo-conibo) => [
-      q(6034),
+      q(6022),
       q(0),
       ],
    q(shixing) => [
-      q(6336),
+      q(6324),
       q(0),
       ],
    q(sholaga) => [
-      q(6108),
+      q(6096),
       q(0),
       ],
    q(shom peng) => [
-      q(6051),
+      q(6039),
       q(0),
       ],
    q(shona) => [
@@ -50408,107 +50374,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(shoo-minda-nye) => [
-      q(1088),
+      q(1084),
       q(0),
       ],
    q(shor) => [
-      q(1757),
+      q(1751),
       q(0),
       ],
    q(shoshoni) => [
-      q(6027),
+      q(6015),
       q(0),
       ],
    q(shua) => [
-      q(6026),
+      q(6014),
       q(0),
       ],
    q(shuadit) => [
-      q(5969),
+      q(5958),
       q(0),
       ],
    q(shuar) => [
-      q(3113),
+      q(3105),
       q(0),
       ],
    q(shubi) => [
-      q(6294),
+      q(6282),
       q(0),
       ],
    q(shughni) => [
-      q(6006),
+      q(5995),
       q(0),
       ],
    q(shumashti) => [
-      q(6282),
+      q(6270),
       q(0),
       ],
    q(shumcho) => [
-      q(5949),
+      q(5938),
       q(0),
       ],
    q(shuswap) => [
-      q(6037),
+      q(6025),
       q(0),
       ],
    q(shuwa-zamani) => [
-      q(3601),
+      q(3593),
       q(0),
       ],
    q(shwai) => [
-      q(6041),
+      q(6029),
       q(0),
       ],
    q(shwe palaung) => [
-      q(5505),
+      q(5494),
       q(0),
       ],
    q(sialum) => [
-      q(6123),
+      q(6111),
       q(0),
       ],
    q(siamou) => [
-      q(6048),
+      q(6036),
       q(0),
       ],
    q(sian) => [
-      q(6193),
+      q(6181),
       q(0),
       ],
    q(siane) => [
-      q(6158),
+      q(6146),
       q(0),
       ],
    q(siang) => [
-      q(6346),
+      q(6334),
       q(0),
       ],
    q(siar-lak) => [
-      q(6077),
+      q(6065),
       q(0),
       ],
    q(siawi) => [
-      q(4415),
+      q(4404),
       q(0),
       ],
    q(sibe) => [
-      q(4787),
+      q(4775),
       q(0),
       ],
    q(siberian tatar) => [
-      q(6287),
+      q(6275),
       q(0),
       ],
    q(sibu melanau) => [
-      q(5971),
+      q(5960),
       q(0),
       ],
    q(sicanian) => [
-      q(6334),
+      q(6322),
       q(0),
       ],
    q(sicel) => [
-      q(5952),
+      q(5941),
       q(0),
       ],
    q(sichuan yi) => [
@@ -50520,11 +50486,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sicite senoufo) => [
-      q(5986),
+      q(5975),
       q(0),
       ],
    q(siculo arabic) => [
-      q(6216),
+      q(6204),
       q(0),
       ],
    q(sidamo) => [
@@ -50532,27 +50498,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sidetic) => [
-      q(7504),
+      q(7491),
       q(0),
       ],
    q(sie) => [
-      q(2288),
+      q(2281),
       q(0),
       ],
    q(sierra de juarez zapotec) => [
-      q(7820),
+      q(7803),
       q(0),
       ],
    q(sierra leone sign language) => [
-      q(6018),
+      q(6006),
       q(0),
       ],
    q(sierra negra nahuatl) => [
-      q(5094),
+      q(5082),
       q(0),
       ],
    q(sighu) => [
-      q(6335),
+      q(6323),
       q(0),
       ],
    q(sign languages) => [
@@ -50560,31 +50526,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sihan) => [
-      q(6160),
+      q(6148),
       q(0),
       ],
    q(sihuas ancash quechua) => [
-      q(5730),
+      q(5718),
       q(0),
       ],
    q(sika) => [
-      q(6090),
+      q(6078),
       q(0),
       ],
    q(sikaiana) => [
-      q(6105),
+      q(6093),
       q(0),
       ],
    q(sikaritai) => [
-      q(6770),
+      q(6757),
       q(0),
       ],
    q(sikiana) => [
-      q(6053),
+      q(6041),
       q(0),
       ],
    q(sikkimese) => [
-      q(6056),
+      q(6044),
       q(0),
       ],
    q(siksika) => [
@@ -50592,87 +50558,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sikule) => [
-      q(6089),
+      q(6077),
       q(0),
       ],
    q(sila) => [
-      q(6121),
+      q(6109),
       q(0),
       ],
    q(silacayoapan mixtec) => [
-      q(4370),
+      q(4359),
       q(0),
       ],
    q(sileibi) => [
-      q(5928),
+      q(5917),
       q(0),
       ],
    q(silesian) => [
-      q(6363),
+      q(6352),
       q(0),
       ],
    q(silimo) => [
-      q(7262),
+      q(7249),
       q(0),
       ],
    q(siliput) => [
-      q(4356),
+      q(4345),
       q(0),
       ],
    q(silopi) => [
-      q(7513),
+      q(7499),
       q(0),
       ],
    q(silt'e) => [
-      q(6285),
+      q(6273),
       q(0),
       ],
    q(simaa) => [
-      q(6047),
+      q(6035),
       q(0),
       ],
    q(simba) => [
-      q(5934),
+      q(5923),
       q(0),
       ],
    q(simbali) => [
-      q(6131),
+      q(6119),
       q(0),
       ],
    q(simbari) => [
-      q(6127),
+      q(6115),
       q(0),
       ],
    q(simbo) => [
-      q(5913),
+      q(5902),
       q(0),
       ],
    q(simeku) => [
-      q(6145),
+      q(6133),
       q(0),
       ],
    q(simeulue) => [
-      q(6138),
+      q(6126),
       q(0),
       ],
    q(simte) => [
-      q(6139),
+      q(6127),
       q(0),
       ],
    q(sinagen) => [
-      q(6060),
+      q(6048),
       q(0),
       ],
    q(sinasina) => [
-      q(6259),
+      q(6247),
       q(0),
       ],
    q(sinaugoro) => [
-      q(6147),
+      q(6135),
       q(0),
       ],
    q(sindarin) => [
-      q(6074),
+      q(6062),
       q(0),
       ],
    q(sindhi) => [
@@ -50680,23 +50646,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sindhi bhil) => [
-      q(5925),
+      q(5914),
       q(0),
       ],
    q(sindihui mixtec) => [
-      q(7536),
+      q(7522),
       q(0),
       ],
    q(singa) => [
-      q(6010),
+      q(5999),
       q(0),
       ],
    q(singapore sign language) => [
-      q(6120),
+      q(6108),
       q(0),
       ],
    q(singpho) => [
-      q(6012),
+      q(6000),
       q(0),
       ],
    q(sinhala) => [
@@ -50708,15 +50674,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(sinicahua mixtec) => [
-      q(7527),
+      q(7513),
       q(0),
       ],
    q(sinicized miao) => [
-      q(2807),
+      q(2799),
       q(1),
       ],
    q(sininkere) => [
-      q(6097),
+      q(6085),
       q(0),
       ],
    q(sino-tibetan languages) => [
@@ -50724,23 +50690,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sinsauru) => [
-      q(6167),
+      q(6155),
       q(0),
       ],
    q(sinte romani) => [
-      q(5829),
+      q(5817),
       q(0),
       ],
    q(sinyar) => [
-      q(6354),
+      q(6342),
       q(0),
       ],
    q(sio) => [
-      q(7507),
+      q(7494),
       q(0),
       ],
    q(siona) => [
-      q(6156),
+      q(6144),
       q(0),
       ],
    q(siouan languages) => [
@@ -50748,87 +50714,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sipacapense) => [
-      q(5700),
+      q(5688),
       q(0),
       ],
    q(sira) => [
-      q(6317),
+      q(6305),
       q(0),
       ],
    q(siraya) => [
-      q(2374),
+      q(2367),
       q(0),
       ],
    q(sirenik yupik) => [
-      q(7769),
+      q(7752),
       q(0),
       ],
    q(siri) => [
-      q(6058),
+      q(6046),
       q(0),
       ],
    q(siriano) => [
-      q(6227),
+      q(6215),
       q(0),
       ],
    q(siriono) => [
-      q(6232),
+      q(6220),
       q(0),
       ],
    q(sirmauri) => [
-      q(6238),
+      q(6226),
       q(0),
       ],
    q(siroi) => [
-      q(6243),
+      q(6231),
       q(0),
       ],
    q(sishee) => [
-      q(6050),
+      q(6038),
       q(1),
       ],
    q(sissala) => [
-      q(6107),
+      q(6095),
       q(0),
       ],
    q(sissano) => [
-      q(6254),
+      q(6242),
       q(0),
       ],
    q(siuslaw) => [
-      q(6059),
+      q(6047),
       q(0),
       ],
    q(sivandi) => [
-      q(6064),
+      q(6052),
       q(0),
       ],
    q(siwai) => [
-      q(6062),
+      q(6050),
       q(0),
       ],
    q(siwi) => [
-      q(6065),
+      q(6053),
       q(0),
       ],
    q(siwu) => [
-      q(0736),
+      q(0734),
       q(0),
       ],
    q(siyin chin) => [
-      q(1891),
+      q(1885),
       q(0),
       ],
    q(skagit) => [
-      q(6082),
+      q(6070),
       q(0),
       ],
    q(skalvian) => [
-      q(6310),
+      q(6298),
       q(0),
       ],
    q(skepi creole dutch) => [
-      q(6103),
+      q(6091),
       q(0),
       ],
    q(skolt sami) => [
@@ -50836,7 +50802,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(skou) => [
-      q(6102),
+      q(6090),
       q(0),
       ],
    q(slave (athapascan)) => [
@@ -50848,7 +50814,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(slavomolisano) => [
-      q(6307),
+      q(6295),
       q(0),
       ],
    q(slovak) => [
@@ -50856,7 +50822,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(slovakian sign language) => [
-      q(6306),
+      q(6294),
       q(0),
       ],
    q(slovenian) => [
@@ -50864,43 +50830,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(small flowery miao) => [
-      q(5998),
+      q(5987),
       q(0),
       ],
    q(smarky kanum) => [
-      q(3741),
+      q(3731),
       q(0),
       ],
    q(snohomish) => [
-      q(6157),
+      q(6145),
       q(0),
       ],
    q(so) => [
-      q(6258),
+      q(6246),
       q(0),
       ],
    q(so (democratic republic of congo)) => [
-      q(6170),
+      q(6158),
       q(0),
       ],
    q(so'a) => [
-      q(6256),
+      q(6244),
       q(0),
       ],
    q(sobei) => [
-      q(6169),
+      q(6157),
       q(0),
       ],
    q(sochiapam chinantec) => [
-      q(1884),
+      q(1878),
       q(0),
       ],
    q(sochiapan chinantec) => [
-      q(1884),
+      q(1878),
       q(1),
       ],
    q(soga) => [
-      q(7460),
+      q(7447),
       q(0),
       ],
    q(sogdian) => [
@@ -50908,35 +50874,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(soi) => [
-      q(6175),
+      q(6163),
       q(0),
       ],
    q(sok) => [
-      q(6092),
+      q(6080),
       q(0),
       ],
    q(sokoro) => [
-      q(6176),
+      q(6164),
       q(0),
       ],
    q(solano) => [
-      q(7512),
+      q(7498),
       q(0),
       ],
    q(soli) => [
-      q(5936),
+      q(5925),
       q(0),
       ],
    q(solong) => [
-      q(0557),
+      q(0556),
       q(0),
       ],
    q(solos) => [
-      q(6177),
+      q(6165),
       q(0),
       ],
    q(som) => [
-      q(6128),
+      q(6116),
       q(0),
       ],
    q(somali) => [
@@ -50944,35 +50910,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(somba-siawari) => [
-      q(1326),
+      q(1322),
       q(0),
       ],
    q(somrai) => [
-      q(6181),
+      q(6169),
       q(0),
       ],
    q(somray) => [
-      q(6140),
+      q(6128),
       q(0),
       ],
    q(somyev) => [
-      q(3334),
+      q(3326),
       q(0),
       ],
    q(sonaga) => [
-      q(7764),
+      q(7747),
       q(0),
       ],
    q(sonde) => [
-      q(6023),
-      q(0),
-      ],
-   q(songa) => [
       q(6011),
       q(0),
       ],
    q(songe) => [
-      q(6179),
+      q(6167),
       q(0),
       ],
    q(songhai languages) => [
@@ -50980,27 +50942,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(songlai chin) => [
-      q(1879),
+      q(1873),
       q(0),
       ],
    q(songo) => [
-      q(6178),
+      q(6166),
       q(0),
       ],
    q(songomeno) => [
-      q(6172),
+      q(6160),
       q(0),
       ],
    q(songoora) => [
-      q(6171),
+      q(6159),
       q(0),
       ],
    q(sonha) => [
-      q(6174),
+      q(6162),
       q(0),
       ],
    q(sonia) => [
-      q(6057),
+      q(6045),
       q(0),
       ],
    q(soninke) => [
@@ -51008,23 +50970,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sonsorol) => [
-      q(6184),
+      q(6172),
       q(0),
       ],
    q(soo) => [
-      q(6475),
+      q(6464),
       q(0),
       ],
    q(sop) => [
-      q(6956),
+      q(6943),
       q(0),
       ],
    q(soqotri) => [
-      q(6218),
+      q(6206),
       q(0),
       ],
    q(sora) => [
-      q(6221),
+      q(6209),
       q(0),
       ],
    q(sorbian languages) => [
@@ -51032,27 +50994,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sori-harengan) => [
-      q(5919),
+      q(5908),
       q(0),
       ],
    q(sorkhei) => [
-      q(6214),
+      q(6202),
       q(0),
       ],
    q(sorothaptic) => [
-      q(6341),
+      q(6329),
       q(0),
       ],
    q(sorsogon ayta) => [
-      q(1010),
+      q(1006),
       q(0),
       ],
    q(sos kundi) => [
-      q(5961),
+      q(5950),
       q(0),
       ],
    q(sota kanum) => [
-      q(3600),
+      q(3592),
       q(0),
       ],
    q(sotho, southern) => [
@@ -51060,11 +51022,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sou) => [
-      q(6215),
+      q(6203),
       q(0),
       ],
    q(south african sign language) => [
-      q(5999),
+      q(5988),
       q(0),
       ],
    q(south american indian (other)) => [
@@ -51076,15 +51038,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(south awyu) => [
-      q(0981),
+      q(0977),
       q(0),
       ],
    q(south azerbaijani) => [
-      q(1016),
+      q(1012),
       q(0),
       ],
    q(south bolivian quechua) => [
-      q(5696),
+      q(5684),
       q(0),
       ],
    q(south caucasian languages) => [
@@ -51092,39 +51054,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(south central banda) => [
-      q(4016),
+      q(4005),
       q(0),
       ],
    q(south central dinka) => [
-      q(2041),
+      q(2035),
       q(0),
       ],
    q(south efate) => [
-      q(2291),
+      q(2284),
       q(0),
       ],
    q(south fali) => [
-      q(2337),
+      q(2330),
       q(0),
       ],
    q(south giziga) => [
-      q(2538),
+      q(2530),
       q(0),
       ],
    q(south lembata) => [
-      q(3991),
+      q(3980),
       q(0),
       ],
    q(south levantine arabic) => [
-      q(0719),
+      q(0717),
       q(0),
       ],
    q(south marquesan) => [
-      q(4502),
+      q(4491),
       q(0),
       ],
    q(south muyu) => [
-      q(3645),
+      q(3637),
       q(0),
       ],
    q(south ndebele) => [
@@ -51132,15 +51094,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(south nuaulu) => [
-      q(5159),
+      q(5147),
       q(0),
       ],
    q(south picene) => [
-      q(6207),
+      q(6195),
       q(0),
       ],
    q(south slavey) => [
-      q(7509),
+      q(7495),
       q(0),
       ],
    q(south slavic languages) => [
@@ -51148,71 +51110,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(south tairora) => [
-      q(5275),
+      q(5264),
       q(0),
       ],
    q(south ucayali asheninka) => [
-      q(1846),
+      q(1840),
       q(0),
       ],
    q(south watut) => [
-      q(4187),
+      q(4176),
       q(0),
       ],
    q(south west bay) => [
-      q(6161),
+      q(6149),
       q(0),
       ],
    q(southeast ambrym) => [
-      q(6795),
+      q(6782),
       q(0),
       ],
    q(southeast babar) => [
-      q(6998),
+      q(6985),
       q(0),
       ],
    q(southeast ijo) => [
-      q(2946),
+      q(2938),
+      q(0),
+      ],
+   q(southeast pashai) => [
+      q(5614),
       q(0),
       ],
    q(southeast pashayi) => [
-      q(5626),
-      q(0),
+      q(5614),
+      q(1),
       ],
    q(southeastern dinka) => [
-      q(2081),
+      q(2075),
       q(0),
       ],
    q(southeastern ixtlan zapotec) => [
-      q(7932),
+      q(7915),
       q(0),
       ],
    q(southeastern kolami) => [
-      q(4910),
+      q(4898),
       q(0),
       ],
    q(southeastern nochixtlan mixtec) => [
-      q(4682),
+      q(4670),
       q(0),
       ],
    q(southeastern pomo) => [
-      q(5573),
+      q(5561),
       q(0),
       ],
    q(southeastern puebla nahuatl) => [
-      q(5049),
+      q(5036),
       q(0),
       ],
    q(southeastern tarahumara) => [
-      q(6433),
+      q(6422),
       q(0),
       ],
    q(southeastern tepehuan) => [
-      q(6279),
+      q(6267),
       q(0),
       ],
    q(southern alta) => [
-      q(0677),
+      q(0675),
       q(0),
       ],
    q(southern altai) => [
@@ -51220,223 +51186,223 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(southern amami-oshima) => [
-      q(0784),
+      q(0782),
       q(0),
       ],
    q(southern aymara) => [
-      q(0997),
+      q(0993),
       q(0),
       ],
    q(southern bai) => [
-      q(1157),
+      q(1153),
       q(0),
       ],
    q(southern balochi) => [
-      q(1069),
+      q(1065),
       q(0),
       ],
    q(southern betsimisaraka malagasy) => [
-      q(1621),
+      q(1614),
       q(0),
       ],
    q(southern binukidnon) => [
-      q(4587),
+      q(4576),
       q(0),
       ],
    q(southern birifor) => [
-      q(1229),
+      q(1225),
       q(0),
       ],
    q(southern bobo madare) => [
-      q(1562),
+      q(1557),
       q(0),
       ],
    q(southern bontok) => [
-      q(5200),
+      q(5189),
       q(0),
       ],
    q(southern carrier) => [
-      q(1649),
+      q(1642),
       q(0),
       ],
    q(southern catanduanes bikol) => [
-      q(1294),
+      q(1290),
       q(0),
       ],
    q(southern conchucos ancash quechua) => [
-      q(5737),
+      q(5725),
       q(0),
       ],
    q(southern dagaare) => [
-      q(2009),
+      q(2003),
       q(0),
       ],
    q(southern dong) => [
-      q(3462),
+      q(3455),
       q(0),
       ],
    q(southern east cree) => [
-      q(1856),
+      q(1850),
       q(0),
       ],
    q(southern ghale) => [
-      q(2512),
+      q(2504),
       q(0),
       ],
    q(southern gondi) => [
-      q(2506),
+      q(2498),
       q(0),
       ],
    q(southern grebo) => [
-      q(2626),
+      q(2619),
       q(0),
       ],
    q(southern guiyang hmong) => [
-      q(2806),
+      q(2798),
       q(0),
       ],
    q(southern guiyang miao) => [
-      q(2806),
+      q(2798),
       q(1),
       ],
    q(southern haida) => [
-      q(2737),
+      q(2729),
       q(0),
       ],
    q(southern hindko) => [
-      q(2809),
+      q(2801),
       q(0),
       ],
    q(southern kalapuya) => [
-      q(6337),
+      q(6325),
       q(0),
       ],
    q(southern kalinga) => [
-      q(3603),
+      q(3595),
       q(0),
       ],
    q(southern kisi) => [
-      q(3619),
+      q(3611),
       q(0),
       ],
    q(southern kiwai) => [
-      q(3388),
+      q(3380),
       q(0),
       ],
    q(southern kurdish) => [
-      q(5959),
+      q(5948),
       q(0),
       ],
    q(southern lolopo) => [
-      q(7768),
+      q(7751),
       q(0),
       ],
    q(southern luri) => [
-      q(4103),
+      q(4092),
       q(0),
       ],
    q(southern ma'di) => [
-      q(6155),
+      q(6143),
       q(0),
       ],
    q(southern mashan hmong) => [
-      q(2785),
+      q(2777),
       q(0),
       ],
    q(southern mashan miao) => [
-      q(2785),
+      q(2777),
       q(1),
       ],
    q(southern mnong) => [
-      q(4436),
+      q(4425),
       q(0),
       ],
    q(southern muji) => [
-      q(7702),
+      q(7687),
       q(0),
       ],
    q(southern nago) => [
-      q(5055),
+      q(5042),
       q(0),
       ],
    q(southern nambikuara) => [
-      q(4731),
+      q(4719),
       q(0),
       ],
    q(southern ngbandi) => [
-      q(4771),
+      q(4759),
       q(0),
       ],
    q(southern nicobarese) => [
-      q(4902),
+      q(4890),
       q(0),
       ],
    q(southern nisu) => [
-      q(5079),
+      q(5067),
       q(0),
       ],
    q(southern nuni) => [
-      q(5020),
+      q(5008),
       q(0),
       ],
    q(southern ohlone) => [
-      q(1887),
+      q(1881),
       q(0),
       ],
    q(southern one) => [
-      q(5325),
+      q(5314),
       q(0),
       ],
    q(southern pame) => [
-      q(5540),
+      q(5528),
       q(0),
       ],
    q(southern pashto) => [
-      q(5388),
+      q(5376),
       q(0),
       ],
    q(southern pastaza quechua) => [
-      q(5702),
+      q(5690),
       q(0),
       ],
    q(southern pomo) => [
-      q(5428),
+      q(5416),
       q(0),
       ],
    q(southern puebla mixtec) => [
-      q(4325),
+      q(4314),
       q(0),
       ],
    q(southern puget sound salish) => [
-      q(6111),
+      q(6099),
       q(0),
       ],
    q(southern pumi) => [
-      q(5526),
+      q(5515),
       q(0),
       ],
    q(southern qiandong miao) => [
-      q(2801),
+      q(2793),
       q(0),
       ],
    q(southern qiang) => [
-      q(5741),
+      q(5729),
       q(0),
       ],
    q(southern rengma naga) => [
-      q(5064),
+      q(5051),
       q(0),
       ],
    q(southern rincon zapotec) => [
-      q(7966),
+      q(7949),
       q(0),
       ],
    q(southern roglai) => [
-      q(5793),
+      q(5781),
       q(0),
       ],
    q(southern sama) => [
-      q(6241),
+      q(6229),
       q(0),
       ],
    q(southern sami) => [
@@ -51444,15 +51410,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(southern samo) => [
-      q(5915),
+      q(5904),
       q(0),
       ],
    q(southern sierra miwok) => [
-      q(6085),
+      q(6073),
       q(0),
       ],
    q(southern sorsoganon) => [
-      q(6236),
+      q(6224),
       q(0),
       ],
    q(southern sotho) => [
@@ -51460,119 +51426,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(southern subanen) => [
-      q(3802),
+      q(3792),
       q(0),
       ],
    q(southern thai) => [
-      q(6183),
+      q(6171),
       q(0),
       ],
    q(southern tiwa) => [
-      q(6546),
+      q(6534),
       q(0),
       ],
    q(southern toussian) => [
-      q(7139),
+      q(7126),
       q(0),
       ],
    q(southern tujia) => [
-      q(6556),
+      q(6544),
       q(0),
       ],
    q(southern tutchone) => [
-      q(6419),
+      q(6408),
       q(0),
       ],
    q(southern uzbek) => [
-      q(6981),
+      q(6968),
       q(0),
       ],
    q(southern yamphu) => [
-      q(4062),
+      q(4051),
       q(0),
       ],
    q(southern yukaghir) => [
-      q(7795),
+      q(7778),
       q(0),
       ],
    q(southwest gbaya) => [
-      q(2644),
+      q(2637),
       q(0),
       ],
    q(southwest palawano) => [
-      q(5514),
+      q(5503),
       q(0),
       ],
-   q(southwest pashayi) => [
-      q(5625),
+   q(southwest pashai) => [
+      q(5613),
       q(0),
       ],
+   q(southwest pashayi) => [
+      q(5613),
+      q(1),
+      ],
    q(southwest tanna) => [
-      q(5147),
+      q(5135),
       q(0),
       ],
    q(southwestern bontok) => [
-      q(6999),
+      q(6986),
       q(0),
       ],
    q(southwestern dinka) => [
-      q(2049),
+      q(2043),
       q(0),
       ],
    q(southwestern fars) => [
-      q(2343),
+      q(2336),
       q(0),
       ],
    q(southwestern guiyang hmong) => [
-      q(2791),
+      q(2783),
       q(0),
       ],
    q(southwestern huishui hmong) => [
-      q(2792),
+      q(2784),
       q(0),
       ],
    q(southwestern huishui miao) => [
-      q(2792),
+      q(2784),
       q(1),
       ],
    q(southwestern nisu) => [
-      q(5095),
-      q(0),
-      ],
-   q(southwestern tamang) => [
-      q(6729),
+      q(5083),
       q(0),
       ],
    q(southwestern tarahumara) => [
-      q(6818),
+      q(6805),
       q(0),
       ],
    q(southwestern tepehuan) => [
-      q(6577),
+      q(6565),
       q(0),
       ],
    q(southwestern tlaxiaco mixtec) => [
-      q(4218),
+      q(4207),
       q(0),
       ],
    q(sowa) => [
-      q(6330),
+      q(6318),
       q(0),
       ],
    q(sowanda) => [
-      q(6185),
+      q(6173),
       q(0),
       ],
    q(sowari) => [
-      q(2103),
+      q(2097),
       q(1),
       ],
    q(soyaltepec mazatec) => [
-      q(7043),
+      q(7030),
       q(0),
       ],
    q(soyaltepec mixtec) => [
-      q(7044),
+      q(7031),
       q(0),
       ],
    q(spanish) => [
@@ -51580,19 +51546,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(spanish sign language) => [
-      q(6255),
+      q(6243),
       q(0),
       ],
    q(spiti bhoti) => [
-      q(6204),
+      q(6192),
       q(0),
       ],
    q(spokane) => [
-      q(6199),
+      q(6187),
       q(0),
       ],
    q(squamish) => [
-      q(6219),
+      q(6207),
       q(0),
       ],
    q(sranan tongo) => [
@@ -51600,27 +51566,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sri lankan creole malay) => [
-      q(5943),
+      q(5932),
       q(0),
       ],
    q(sri lankan sign language) => [
-      q(6217),
+      q(6205),
       q(0),
       ],
    q(standard arabic) => [
-      q(0870),
+      q(0868),
       q(0),
       ],
    q(standard estonian) => [
-      q(2242),
+      q(2235),
       q(0),
       ],
    q(standard latvian) => [
-      q(4106),
+      q(4095),
       q(0),
       ],
    q(standard malay) => [
-      q(7965),
+      q(7948),
       q(0),
       ],
    q(standard moroccan tamazight) => [
@@ -51628,99 +51594,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(stellingwerfs) => [
-      q(6275),
+      q(6263),
       q(0),
       ],
    q(stod bhoti) => [
-      q(5932),
+      q(5921),
       q(0),
       ],
    q(stodsde) => [
-      q(3105),
+      q(3097),
       q(0),
       ],
    q(stoney) => [
-      q(6278),
+      q(6266),
       q(0),
       ],
    q(straits salish) => [
-      q(6281),
+      q(6269),
       q(0),
       ],
    q(suabo) => [
-      q(6365),
+      q(6354),
       q(0),
       ],
    q(suarmin) => [
-      q(5985),
+      q(5974),
       q(0),
       ],
    q(suau) => [
-      q(6323),
+      q(6311),
       q(0),
       ],
    q(suba) => [
-      q(6333),
+      q(6321),
       q(0),
       ],
    q(suba-simbiti) => [
-      q(6242),
-      q(0),
-      ],
-   q(subi) => [
-      q(7508),
+      q(6230),
       q(0),
       ],
    q(subiya) => [
-      q(5930),
+      q(5919),
       q(0),
       ],
    q(subtiaba) => [
-      q(6297),
+      q(6285),
       q(0),
       ],
    q(sudanese arabic) => [
-      q(0838),
+      q(0836),
       q(0),
       ],
    q(sudanese creole arabic) => [
-      q(5437),
+      q(5425),
       q(0),
       ],
    q(sudest) => [
-      q(6495),
+      q(6484),
       q(0),
       ],
    q(sudovian) => [
-      q(7518),
+      q(7504),
       q(0),
       ],
    q(suena) => [
-      q(6291),
+      q(6279),
       q(0),
       ],
    q(suga) => [
-      q(6007),
+      q(5996),
       q(0),
       ],
    q(suganga) => [
-      q(6292),
+      q(6280),
       q(0),
       ],
    q(sugut dusun) => [
-      q(3794),
+      q(3784),
       q(0),
       ],
    q(sui) => [
-      q(6316),
+      q(6304),
       q(0),
       ],
    q(suki) => [
-      q(6293),
+      q(6281),
       q(0),
       ],
    q(suku) => [
-      q(6289),
+      q(6277),
       q(0),
       ],
    q(sukuma) => [
@@ -51728,43 +51690,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sukur) => [
-      q(6349),
+      q(6337),
       q(0),
       ],
    q(sukurum) => [
-      q(7967),
+      q(7950),
       q(0),
       ],
    q(sula) => [
-      q(6364),
+      q(6353),
       q(0),
       ],
    q(sulka) => [
-      q(6288),
+      q(6276),
       q(0),
       ],
    q(sulod) => [
-      q(6225),
+      q(6213),
       q(0),
       ],
    q(suma) => [
-      q(6212),
+      q(6200),
       q(0),
       ],
    q(sumariup) => [
-      q(6061),
+      q(6049),
       q(0),
       ],
    q(sumau) => [
-      q(6063),
+      q(6051),
       q(0),
       ],
    q(sumbawa) => [
-      q(6142),
+      q(6130),
       q(0),
       ],
    q(sumbwa) => [
-      q(6299),
+      q(6287),
       q(0),
       ],
    q(sumerian) => [
@@ -51772,15 +51734,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sumi naga) => [
-      q(5087),
+      q(5075),
       q(0),
       ],
    q(sumtu chin) => [
-      q(1889),
+      q(1883),
       q(0),
       ],
    q(sunam) => [
-      q(6250),
+      q(6238),
       q(0),
       ],
    q(sundanese) => [
@@ -51788,75 +51750,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sunum) => [
-      q(7711),
+      q(7696),
       q(1),
       ],
    q(sunwar) => [
-      q(6301),
+      q(6289),
       q(0),
       ],
    q(suomenruotsalainen viittomakieli) => [
-      q(2385),
+      q(2378),
       q(2),
       ],
    q(suoy) => [
-      q(6353),
+      q(6341),
       q(0),
       ],
    q(supyire senoufo) => [
-      q(6200),
+      q(6188),
       q(0),
       ],
    q(sur) => [
-      q(6449),
+      q(6438),
       q(0),
       ],
    q(surayt) => [
-      q(6718),
+      q(6706),
       q(1),
       ],
    q(surbakhal) => [
-      q(5921),
+      q(5910),
       q(0),
       ],
    q(surgujia) => [
-      q(6008),
+      q(5997),
       q(0),
       ],
    q(suri) => [
-      q(6295),
+      q(6283),
       q(0),
       ],
    q(surigaonon) => [
-      q(6003),
+      q(5992),
       q(0),
       ],
    q(surjapuri) => [
-      q(6076),
+      q(6064),
       q(0),
       ],
    q(sursurunga) => [
-      q(6020),
+      q(6008),
       q(0),
       ],
    q(suruaha) => [
-      q(6331),
+      q(6319),
       q(0),
       ],
    q(surubu) => [
-      q(5956),
+      q(5945),
       q(0),
       ],
    q(surui) => [
-      q(6235),
+      q(6223),
       q(0),
       ],
    q(surui do para) => [
-      q(4211),
+      q(4200),
       q(0),
       ],
    q(susquehannock) => [
-      q(6213),
+      q(6201),
       q(0),
       ],
    q(susu) => [
@@ -51864,27 +51826,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(susuami) => [
-      q(6260),
+      q(6248),
       q(0),
       ],
    q(suundi) => [
-      q(5960),
+      q(5949),
       q(0),
       ],
    q(suwawa) => [
-      q(6328),
+      q(6316),
       q(0),
       ],
    q(suya) => [
-      q(6300),
+      q(6288),
       q(0),
       ],
    q(svan) => [
-      q(6302),
+      q(6290),
       q(0),
       ],
    q(swabian) => [
-      q(6314),
+      q(6302),
       q(0),
       ],
    q(swahili) => [
@@ -51892,7 +51854,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(swahili (individual language)) => [
-      q(6315),
+      q(6303),
       q(0),
       ],
    q(swahili (macrolanguage)) => [
@@ -51900,7 +51862,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(swampy cree) => [
-      q(1890),
+      q(1884),
       q(0),
       ],
    q(swati) => [
@@ -51912,7 +51874,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(swedish sign language) => [
-      q(6319),
+      q(6307),
       q(0),
       ],
    q(swiss german) => [
@@ -51920,27 +51882,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(swiss-french sign language) => [
-      q(6257),
+      q(6245),
       q(0),
       ],
    q(swiss-german sign language) => [
-      q(6005),
+      q(5994),
       q(0),
       ],
    q(swiss-italian sign language) => [
-      q(6109),
+      q(6097),
       q(0),
       ],
    q(swo) => [
-      q(6186),
+      q(6174),
       q(0),
       ],
    q(syenara senoufo) => [
-      q(6044),
+      q(6032),
       q(0),
       ],
    q(sylheti) => [
-      q(6350),
+      q(6338),
       q(0),
       ],
    q(syriac) => [
@@ -51948,103 +51910,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(t'en) => [
-      q(6432),
+      q(6421),
       q(0),
       ],
    q(ta'izzi-adeni arabic) => [
-      q(0595),
+      q(0594),
       q(0),
       ],
    q(taabwa) => [
-      q(6380),
+      q(6369),
       q(0),
       ],
    q(tabaa zapotec) => [
-      q(7837),
+      q(7820),
       q(0),
       ],
    q(tabaru) => [
-      q(6413),
+      q(6402),
       q(0),
       ],
    q(tabasco chontal) => [
-      q(1726),
+      q(1720),
       q(0),
       ],
    q(tabasco nahuatl) => [
-      q(4873),
+      q(4861),
       q(0),
       ],
    q(tabasco zoque) => [
-      q(7926),
+      q(7909),
       q(0),
       ],
    q(tabassaran) => [
-      q(6369),
+      q(6358),
       q(0),
       ],
    q(tabla) => [
-      q(6632),
+      q(6620),
       q(0),
       ],
    q(tabo) => [
-      q(3506),
+      q(3499),
       q(0),
       ],
    q(tabriak) => [
-      q(6862),
+      q(6850),
       q(0),
       ],
    q(tacahua mixtec) => [
-      q(7537),
+      q(7523),
       q(0),
       ],
    q(tacana) => [
-      q(6622),
+      q(6610),
       q(0),
       ],
    q(tachawit) => [
-      q(6043),
+      q(6031),
       q(0),
       ],
    q(tachelhit) => [
-      q(6028),
+      q(6016),
       q(0),
       ],
    q(tachoni) => [
-      q(4085),
+      q(4074),
       q(0),
       ],
    q(tadaksahak) => [
-      q(2160),
+      q(2154),
       q(0),
       ],
    q(tadyawan) => [
-      q(6459),
+      q(6448),
       q(0),
       ],
    q(tae') => [
-      q(5848),
+      q(5836),
       q(0),
       ],
    q(tafi) => [
-      q(6418),
+      q(6407),
       q(0),
       ],
    q(tagabawa) => [
-      q(1181),
+      q(1177),
       q(0),
       ],
    q(tagakaulo) => [
-      q(3441),
+      q(3434),
       q(0),
       ],
    q(tagal murut) => [
-      q(4630),
+      q(4619),
       q(0),
       ],
    q(tagalaka) => [
-      q(6506),
+      q(6495),
       q(0),
       ],
    q(tagalog) => [
@@ -52052,39 +52014,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tagargrent) => [
-      q(5344),
+      q(5333),
       q(0),
       ],
    q(tagbanwa) => [
-      q(6411),
+      q(6400),
       q(0),
       ],
    q(tagbu) => [
-      q(6402),
+      q(6391),
       q(0),
       ],
    q(tagdal) => [
-      q(6438),
+      q(6427),
       q(0),
       ],
    q(tagin) => [
-      q(6493),
+      q(6482),
       q(0),
       ],
    q(tagish) => [
-      q(6504),
+      q(6493),
       q(0),
       ],
    q(tagoi) => [
-      q(6374),
+      q(6363),
       q(0),
       ],
    q(tagwana senoufo) => [
-      q(6503),
+      q(6492),
       q(0),
       ],
    q(tahaggart tamahaq) => [
-      q(6523),
+      q(6512),
       q(0),
       ],
    q(tahitian) => [
@@ -52092,39 +52054,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tahltan) => [
-      q(6521),
+      q(6510),
       q(0),
       ],
    q(tai) => [
-      q(6386),
+      q(6375),
       q(0),
       ],
    q(tai daeng) => [
-      q(6849),
+      q(6837),
       q(0),
       ],
    q(tai dam) => [
-      q(1300),
+      q(1296),
       q(0),
       ],
    q(tai do) => [
-      q(6845),
+      q(6833),
       q(0),
       ],
    q(tai don) => [
-      q(6811),
+      q(6798),
       q(0),
       ],
    q(tai hang tong) => [
-      q(6507),
+      q(6496),
       q(0),
       ],
    q(tai hongjin) => [
-      q(6548),
+      q(6536),
       q(0),
       ],
    q(tai laing) => [
-      q(6552),
+      q(6540),
       q(0),
       ],
    q(tai languages) => [
@@ -52132,67 +52094,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tai loi) => [
-      q(6590),
+      q(6578),
       q(0),
       ],
    q(tai long) => [
-      q(6512),
+      q(6501),
       q(0),
       ],
    q(tai mene) => [
-      q(6612),
+      q(6600),
       q(0),
       ],
    q(tai nua) => [
-      q(6441),
+      q(6430),
       q(0),
       ],
    q(tai pao) => [
-      q(6677),
+      q(6665),
       q(0),
       ],
    q(tai thanh) => [
-      q(6609),
+      q(6597),
       q(0),
       ],
    q(tai ya) => [
-      q(1923),
+      q(1917),
       q(0),
       ],
    q(taiap) => [
-      q(2615),
+      q(2608),
       q(0),
       ],
    q(taikat) => [
-      q(0831),
+      q(0829),
       q(0),
       ],
    q(tainae) => [
-      q(0668),
+      q(0666),
       q(0),
       ],
    q(taino) => [
-      q(6636),
+      q(6624),
       q(0),
       ],
    q(tairaha) => [
-      q(1571),
+      q(1566),
       q(0),
       ],
    q(tairuma) => [
-      q(6865),
+      q(6853),
       q(0),
       ],
    q(taita) => [
-      q(1957),
+      q(1951),
       q(0),
       ],
    q(taiwan sign language) => [
-      q(6739),
+      q(6726),
       q(0),
       ],
    q(taje) => [
-      q(5418),
+      q(5406),
       q(0),
       ],
    q(tajik) => [
@@ -52200,119 +52162,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tajiki arabic) => [
-      q(0567),
+      q(0566),
       q(0),
       ],
    q(tajio) => [
-      q(6447),
+      q(6436),
       q(0),
       ],
    q(tajuasohn) => [
-      q(6549),
+      q(6537),
       q(0),
       ],
    q(takelma) => [
-      q(6565),
+      q(6553),
       q(0),
       ],
    q(takestani) => [
-      q(6570),
+      q(6558),
       q(0),
       ],
    q(takia) => [
-      q(6392),
+      q(6381),
       q(0),
       ],
    q(takua) => [
-      q(6576),
+      q(6564),
       q(0),
       ],
    q(takuu) => [
-      q(4883),
+      q(4871),
       q(0),
       ],
    q(takwane) => [
-      q(6562),
+      q(6550),
       q(0),
       ],
    q(tal) => [
-      q(6377),
+      q(6366),
       q(0),
       ],
    q(tala) => [
-      q(6376),
+      q(6365),
       q(0),
       ],
    q(talaandig) => [
-      q(1260),
+      q(1256),
       q(1),
       ],
    q(talaud) => [
-      q(6580),
+      q(6568),
       q(0),
       ],
    q(taliabu) => [
-      q(6595),
+      q(6583),
       q(0),
       ],
    q(talieng) => [
-      q(6443),
+      q(6432),
       q(0),
       ],
    q(talinga-bwisi) => [
-      q(6583),
+      q(6571),
       q(0),
       ],
    q(talise) => [
-      q(6591),
+      q(6579),
       q(0),
       ],
    q(talodi) => [
-      q(6588),
+      q(6576),
       q(0),
       ],
    q(taloki) => [
-      q(6584),
+      q(6572),
       q(0),
       ],
    q(talondo') => [
-      q(6587),
+      q(6575),
       q(0),
       ],
    q(talossan) => [
-      q(6858),
+      q(6846),
       q(0),
       ],
    q(talu) => [
-      q(7772),
+      q(7755),
       q(0),
       ],
    q(talysh) => [
-      q(6597),
+      q(6585),
       q(0),
       ],
    q(tama (chad)) => [
-      q(6598),
+      q(6586),
       q(0),
       ],
    q(tama (colombia)) => [
-      q(6470),
+      q(6459),
       q(0),
       ],
    q(tamagario) => [
-      q(6421),
+      q(6410),
       q(0),
       ],
    q(taman (indonesia)) => [
-      q(6610),
+      q(6598),
       q(0),
       ],
    q(taman (myanmar)) => [
-      q(6425),
+      q(6414),
       q(0),
       ],
    q(tamanaku) => [
-      q(6621),
+      q(6609),
       q(0),
       ],
    q(tamashek) => [
@@ -52320,31 +52282,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tamasheq) => [
-      q(6381),
+      q(6370),
       q(0),
       ],
    q(tamazola mixtec) => [
-      q(7050),
+      q(7037),
       q(0),
       ],
    q(tambas) => [
-      q(6448),
+      q(6437),
       q(0),
       ],
    q(tambora) => [
-      q(7577),
+      q(7563),
       q(0),
       ],
    q(tambotalo) => [
-      q(6592),
+      q(6580),
       q(0),
       ],
    q(tambunan dusun) => [
-      q(3795),
+      q(3785),
       q(0),
       ],
    q(tami) => [
-      q(6620),
+      q(6608),
       q(0),
       ],
    q(tamil) => [
@@ -52352,195 +52314,199 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tamki) => [
-      q(6387),
+      q(6376),
       q(0),
       ],
    q(tamnim citak) => [
-      q(6608),
+      q(6596),
       q(0),
       ],
    q(tampias lobu) => [
-      q(4044),
+      q(4033),
       q(0),
       ],
    q(tampuan) => [
-      q(6682),
+      q(6670),
       q(0),
       ],
    q(tampulma) => [
-      q(6675),
+      q(6663),
       q(0),
       ],
    q(tanacross) => [
-      q(6416),
+      q(6405),
       q(0),
       ],
    q(tanahmerah) => [
-      q(6426),
+      q(6415),
       q(0),
       ],
    q(tanaina) => [
-      q(6481),
+      q(6470),
       q(0),
       ],
    q(tanapag) => [
-      q(6683),
+      q(6671),
       q(0),
       ],
    q(tandaganon) => [
-      q(6494),
+      q(6483),
       q(0),
       ],
    q(tandia) => [
-      q(6629),
+      q(6617),
       q(0),
       ],
    q(tandroy-mahafaly malagasy) => [
-      q(6458),
+      q(6447),
       q(0),
       ],
    q(tanema) => [
-      q(6643),
+      q(6631),
       q(0),
       ],
    q(tangale) => [
-      q(6378),
+      q(6367),
       q(0),
       ],
    q(tangchangya) => [
-      q(6641),
+      q(6629),
       q(0),
       ],
    q(tanggu) => [
-      q(6501),
+      q(6490),
       q(0),
       ],
    q(tangkhul naga (india)) => [
-      q(4978),
+      q(4966),
       q(0),
       ],
    q(tangkhul naga (myanmar)) => [
-      q(5112),
+      q(5100),
       q(0),
       ],
    q(tangko) => [
-      q(6575),
+      q(6563),
       q(0),
       ],
    q(tanglang) => [
-      q(7773),
+      q(7756),
       q(0),
       ],
    q(tangoa) => [
-      q(6496),
+      q(6485),
       q(0),
       ],
    q(tanguat) => [
-      q(6407),
+      q(6396),
       q(0),
       ],
    q(tangut) => [
-      q(6828),
+      q(6815),
       q(0),
       ],
    q(tanimbili) => [
-      q(6394),
+      q(6383),
       q(0),
       ],
    q(tanimuca-retuara) => [
-      q(6624),
+      q(6612),
       q(0),
       ],
    q(tanjijili) => [
-      q(6890),
+      q(6878),
       q(0),
       ],
    q(tankarana malagasy) => [
-      q(7439),
+      q(7426),
       q(1),
       ],
    q(tanosy malagasy) => [
-      q(6840),
+      q(6828),
       q(0),
       ],
    q(tanudan kalinga) => [
-      q(3471),
+      q(3464),
       q(0),
       ],
    q(tanzanian sign language) => [
-      q(6855),
+      q(6843),
       q(0),
       ],
    q(tapeba) => [
-      q(6391),
+      q(6380),
       q(0),
       ],
    q(tapei) => [
-      q(0649),
+      q(0647),
       q(0),
       ],
    q(tapiete) => [
-      q(6672),
+      q(6660),
       q(0),
       ],
    q(tapirape) => [
-      q(6373),
+      q(6362),
       q(0),
       ],
    q(tarao naga) => [
-      q(6712),
+      q(6700),
       q(0),
       ],
    q(tareng) => [
-      q(6498),
+      q(6487),
       q(0),
       ],
    q(tariana) => [
-      q(6372),
+      q(6361),
       q(0),
       ],
    q(tarifit) => [
-      q(5799),
+      q(5787),
+      q(0),
+      ],
+   q(tarjumo) => [
+      q(6818),
       q(0),
       ],
    q(tarok) => [
-      q(7641),
+      q(7626),
       q(0),
       ],
    q(taroko) => [
-      q(6719),
+      q(6707),
       q(0),
       ],
    q(tarpia) => [
-      q(6670),
+      q(6658),
       q(0),
       ],
    q(tartessian) => [
-      q(6835),
+      q(6823),
       q(0),
       ],
    q(tasawaq) => [
-      q(6817),
+      q(6804),
       q(0),
       ],
    q(tase naga) => [
-      q(5093),
+      q(5081),
       q(0),
       ],
    q(tasmanian) => [
-      q(7542),
+      q(7528),
       q(0),
       ],
    q(tasmate) => [
-      q(6616),
+      q(6604),
       q(0),
       ],
    q(tataltepec chatino) => [
-      q(1893),
+      q(1887),
       q(0),
       ],
    q(tatana) => [
-      q(6839),
+      q(6827),
       q(0),
       ],
    q(tatar) => [
@@ -52548,235 +52514,235 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tatuyo) => [
-      q(6385),
+      q(6374),
       q(0),
       ],
    q(tauade) => [
-      q(6750),
+      q(6737),
       q(0),
       ],
    q(taulil) => [
-      q(6779),
+      q(6766),
       q(0),
       ],
    q(taungyo) => [
-      q(6428),
+      q(6417),
       q(0),
       ],
    q(taupota) => [
-      q(6667),
+      q(6655),
       q(0),
       ],
    q(tause) => [
-      q(6371),
+      q(6360),
       q(0),
       ],
    q(taushiro) => [
-      q(6715),
+      q(6703),
       q(0),
       ],
    q(tausug) => [
-      q(6730),
+      q(6717),
       q(0),
       ],
    q(tauya) => [
-      q(6841),
+      q(6829),
       q(0),
       ],
    q(taveta) => [
-      q(6799),
+      q(6786),
       q(0),
       ],
    q(tavoyan) => [
-      q(6797),
+      q(6784),
       q(0),
       ],
    q(tavringer romani) => [
-      q(5834),
+      q(5822),
       q(0),
       ],
    q(tawala) => [
-      q(6404),
+      q(6393),
       q(0),
       ],
    q(tawallammat tamajaq) => [
-      q(6763),
+      q(6750),
       q(0),
       ],
    q(tawande) => [
-      q(7540),
+      q(7526),
       q(0),
       ],
    q(tawang monpa) => [
-      q(6813),
+      q(6800),
       q(0),
       ],
    q(tawara) => [
-      q(6812),
+      q(6799),
       q(0),
       ],
    q(taworta) => [
-      q(6405),
+      q(6394),
       q(0),
       ],
    q(tawoyan) => [
-      q(6823),
+      q(6810),
       q(0),
       ],
    q(tawr chin) => [
-      q(6429),
+      q(6418),
       q(0),
       ],
    q(tay) => [
-      q(6854),
+      q(6842),
       q(0),
       ],
    q(tay boi) => [
-      q(6383),
+      q(6372),
       q(0),
       ],
    q(tay khang) => [
-      q(6640),
+      q(6628),
       q(0),
       ],
    q(tay sa pa) => [
-      q(6850),
+      q(6838),
       q(0),
       ],
    q(tay tac) => [
-      q(6851),
+      q(6839),
       q(0),
       ],
    q(tayabas ayta) => [
-      q(1013),
+      q(1009),
       q(0),
       ],
    q(tayart tamajeq) => [
-      q(6527),
+      q(6515),
       q(0),
       ],
    q(tayo) => [
-      q(1767),
+      q(1761),
       q(0),
       ],
    q(taznatit) => [
-      q(2630),
+      q(2623),
       q(0),
       ],
    q(tboli) => [
-      q(6401),
+      q(6390),
       q(0),
       ],
    q(tchitchege) => [
-      q(6424),
+      q(6413),
       q(0),
       ],
    q(tchumbuli) => [
-      q(1402),
+      q(1397),
       q(0),
       ],
    q(te'un) => [
-      q(6794),
+      q(6781),
       q(0),
       ],
    q(teanu) => [
-      q(6574),
+      q(6562),
       q(0),
       ],
    q(tebi) => [
-      q(2099),
+      q(2093),
       q(1),
       ],
    q(tebul sign language) => [
-      q(6745),
+      q(6732),
       q(0),
       ],
    q(tebul ure dogon) => [
-      q(2173),
+      q(2167),
       q(0),
       ],
    q(tecpatlan totonac) => [
-      q(6434),
+      q(6423),
       q(0),
       ],
    q(tedaga) => [
-      q(6785),
+      q(6772),
       q(0),
       ],
    q(tedim chin) => [
-      q(1895),
+      q(1889),
       q(0),
       ],
    q(tee) => [
-      q(6568),
+      q(6556),
       q(0),
       ],
    q(teen) => [
-      q(4039),
+      q(4028),
       q(0),
       ],
    q(tefaro) => [
-      q(6482),
+      q(6471),
       q(0),
       ],
    q(tegali) => [
-      q(5761),
+      q(5749),
       q(0),
       ],
    q(tehit) => [
-      q(3547),
+      q(3539),
       q(0),
       ],
    q(tehuelche) => [
-      q(6467),
+      q(6456),
       q(0),
       ],
    q(tejalapan zapotec) => [
-      q(7976),
+      q(7959),
       q(0),
       ],
    q(teke-ebo) => [
-      q(2221),
+      q(2214),
       q(0),
       ],
    q(teke-fuumu) => [
-      q(2925),
+      q(2917),
       q(0),
       ],
    q(teke-kukuya) => [
-      q(3431),
+      q(3424),
       q(0),
       ],
    q(teke-laali) => [
-      q(3974),
+      q(3963),
       q(0),
       ],
    q(teke-nzikou) => [
-      q(5192),
+      q(5181),
       q(0),
       ],
    q(teke-tege) => [
-      q(6466),
+      q(6455),
       q(0),
       ],
    q(teke-tsaayi) => [
-      q(6844),
+      q(6832),
       q(0),
       ],
    q(teke-tyee) => [
-      q(6853),
+      q(6841),
       q(0),
       ],
    q(tektiteko) => [
-      q(6749),
+      q(6736),
       q(0),
       ],
    q(tela-masbuar) => [
-      q(6796),
+      q(6783),
       q(0),
       ],
    q(telefol) => [
-      q(6581),
+      q(6569),
       q(0),
       ],
    q(telugu) => [
@@ -52784,147 +52750,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(teluti) => [
-      q(6593),
+      q(6581),
       q(0),
       ],
    q(tem) => [
-      q(3248),
+      q(3240),
       q(0),
       ],
    q(temacine tamazight) => [
-      q(6555),
+      q(6543),
       q(0),
       ],
    q(temascaltepec nahuatl) => [
-      q(4889),
+      q(4877),
       q(0),
       ],
    q(tembe) => [
-      q(6688),
+      q(6676),
       q(0),
       ],
    q(tembo (kitembo)) => [
-      q(6408),
+      q(6397),
       q(0),
       ],
    q(tembo (motembo)) => [
-      q(6618),
+      q(6606),
       q(0),
       ],
    q(teme) => [
-      q(6451),
+      q(6440),
       q(0),
       ],
    q(temein) => [
-      q(6473),
+      q(6462),
       q(0),
       ],
    q(temi) => [
-      q(6188),
+      q(6176),
       q(0),
       ],
    q(temiar) => [
-      q(6460),
+      q(6449),
       q(0),
       ],
    q(temoaya otomi) => [
-      q(5338),
+      q(5327),
       q(0),
       ],
    q(temoq) => [
-      q(6611),
+      q(6599),
       q(0),
       ],
    q(tempasuk dusun) => [
-      q(6456),
+      q(6445),
       q(0),
       ],
    q(temuan) => [
-      q(6619),
+      q(6607),
       q(0),
       ],
    q(tena) => [
-      q(1143),
+      q(1139),
       q(1),
       ],
    q(tena lowland quichua) => [
-      q(5707),
+      q(5695),
       q(0),
       ],
    q(tenango otomi) => [
-      q(5334),
+      q(5323),
       q(0),
       ],
    q(tene kan dogon) => [
-      q(2166),
+      q(2160),
       q(0),
       ],
    q(tenggarong kutai malay) => [
-      q(7026),
+      q(7013),
       q(0),
       ],
    q(tengger) => [
-      q(6474),
+      q(6463),
       q(0),
       ],
    q(tenharim) => [
-      q(5362),
+      q(5350),
       q(0),
       ],
    q(tenino) => [
-      q(6691),
+      q(6679),
       q(0),
       ],
    q(tenis) => [
-      q(6638),
+      q(6626),
       q(0),
       ],
    q(tennet) => [
-      q(6478),
+      q(6467),
       q(0),
       ],
    q(teop) => [
-      q(6539),
+      q(6527),
       q(0),
       ],
    q(teor) => [
-      q(6476),
+      q(6465),
       q(0),
       ],
    q(tepecano) => [
-      q(6472),
+      q(6461),
       q(0),
       ],
    q(tepetotutla chinantec) => [
-      q(1810),
+      q(1804),
       q(0),
       ],
    q(tepeuxila cuicatec) => [
-      q(1926),
+      q(1920),
       q(0),
       ],
    q(tepinapa chinantec) => [
-      q(1896),
+      q(1890),
       q(0),
       ],
    q(tepo krumen) => [
-      q(6463),
+      q(6452),
       q(0),
       ],
    q(ter sami) => [
-      q(6079),
+      q(6067),
       q(0),
       ],
    q(tera) => [
-      q(6764),
+      q(6751),
       q(0),
       ],
    q(terebu) => [
-      q(6700),
+      q(6688),
       q(0),
       ],
    q(terei) => [
-      q(1510),
+      q(1505),
       q(0),
       ],
    q(tereno) => [
@@ -52932,59 +52898,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(teressa) => [
-      q(6465),
+      q(6454),
       q(0),
       ],
    q(tereweng) => [
-      q(6810),
+      q(6797),
       q(0),
       ],
    q(teribe) => [
-      q(6483),
+      q(6472),
       q(0),
       ],
    q(terik) => [
-      q(6462),
+      q(6451),
       q(0),
       ],
    q(termanu) => [
-      q(6820),
+      q(6807),
       q(0),
       ],
    q(ternate) => [
-      q(6484),
+      q(6473),
       q(0),
       ],
    q(ternateno) => [
-      q(6604),
+      q(6592),
       q(0),
       ],
    q(tesaka malagasy) => [
-      q(6564),
+      q(6552),
       q(0),
       ],
    q(tese) => [
-      q(3270),
+      q(3262),
       q(0),
       ],
    q(teshenawa) => [
-      q(6806),
+      q(6793),
       q(0),
       ],
    q(teso) => [
-      q(6471),
+      q(6460),
       q(0),
       ],
    q(tetela) => [
-      q(6585),
+      q(6573),
       q(0),
       ],
    q(tetelcingo nahuatl) => [
-      q(4877),
+      q(4865),
       q(0),
       ],
    q(tetete) => [
-      q(6461),
+      q(6450),
       q(0),
       ],
    q(tetum) => [
@@ -52992,51 +52958,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tetun dili) => [
-      q(6455),
+      q(6444),
       q(0),
       ],
    q(teutila cuicatec) => [
-      q(1922),
+      q(1916),
       q(0),
       ],
    q(tewa (indonesia)) => [
-      q(6808),
+      q(6795),
       q(0),
       ],
    q(tewa (usa)) => [
-      q(6477),
+      q(6466),
       q(0),
       ],
    q(tewe) => [
-      q(6822),
+      q(6809),
       q(0),
       ],
    q(texcatepec otomi) => [
-      q(5341),
+      q(5330),
       q(0),
       ],
    q(texistepec popoluca) => [
-      q(5576),
+      q(5564),
       q(0),
       ],
    q(texmelucan zapotec) => [
-      q(7954),
+      q(7937),
       q(0),
       ],
    q(tezoatlan mixtec) => [
-      q(4659),
+      q(4647),
       q(0),
       ],
    q(tha) => [
-      q(6526),
+      q(6514),
       q(0),
       ],
    q(thachanadan) => [
-      q(6516),
+      q(6505),
       q(0),
       ],
    q(thado chin) => [
-      q(6437),
+      q(6426),
       q(0),
       ],
    q(thai) => [
@@ -53044,107 +53010,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(thai sign language) => [
-      q(6737),
+      q(6724),
       q(0),
       ],
    q(thai song) => [
-      q(6168),
+      q(6156),
       q(0),
       ],
    q(thaiphum chin) => [
-      q(1898),
+      q(1892),
       q(0),
       ],
    q(thakali) => [
-      q(6520),
+      q(6509),
       q(0),
       ],
    q(thangal naga) => [
-      q(4941),
+      q(4929),
       q(0),
       ],
    q(thangmi) => [
-      q(6510),
+      q(6499),
       q(0),
       ],
    q(thao) => [
-      q(6245),
+      q(6233),
       q(0),
       ],
    q(tharaka) => [
-      q(6513),
+      q(6502),
       q(0),
       ],
    q(thawa) => [
-      q(7539),
+      q(7525),
       q(0),
       ],
    q(thayore) => [
-      q(6508),
+      q(6497),
       q(0),
       ],
    q(thaypan) => [
-      q(6848),
-      q(0),
-      ],
-   q(the) => [
-      q(6525),
+      q(6836),
       q(0),
       ],
    q(thiin) => [
-      q(2941),
+      q(2933),
       q(0),
       ],
    q(tho) => [
-      q(6661),
+      q(6649),
       q(0),
       ],
    q(thompson) => [
-      q(6517),
+      q(6506),
       q(0),
       ],
    q(thopho) => [
-      q(7774),
+      q(7757),
       q(0),
       ],
    q(thracian) => [
-      q(6829),
+      q(6816),
       q(0),
       ],
    q(thu lao) => [
-      q(6846),
+      q(6834),
       q(0),
       ],
    q(thudam) => [
-      q(6524),
+      q(6513),
       q(0),
       ],
    q(thulung) => [
-      q(6445),
+      q(6434),
       q(0),
       ],
    q(thurawal) => [
-      q(6397),
+      q(6386),
       q(0),
       ],
    q(thuri) => [
-      q(6522),
+      q(6511),
       q(0),
       ],
    q(tiagbamrin aizi) => [
-      q(0683),
+      q(0681),
       q(0),
       ],
    q(tiale) => [
-      q(4434),
+      q(4423),
       q(0),
       ],
    q(tiang) => [
-      q(6399),
+      q(6388),
       q(0),
       ],
    q(tibea) => [
-      q(4869),
+      q(4857),
       q(0),
       ],
    q(tibetan) => [
@@ -53156,55 +53118,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tichurong) => [
-      q(6427),
+      q(6416),
       q(0),
       ],
    q(ticuna) => [
-      q(6415),
+      q(6404),
       q(0),
       ],
    q(tidaa mixtec) => [
-      q(4588),
+      q(4577),
       q(0),
       ],
    q(tidikelt tamazight) => [
-      q(6528),
+      q(6516),
       q(0),
       ],
    q(tidong) => [
-      q(6530),
+      q(6518),
       q(0),
       ],
    q(tidore) => [
-      q(6798),
+      q(6785),
       q(0),
       ],
    q(tiefo) => [
-      q(6541),
+      q(6529),
       q(0),
       ],
    q(tiemacewe bozo) => [
-      q(1368),
+      q(1363),
       q(0),
       ],
    q(tiene) => [
-      q(6533),
+      q(6521),
       q(0),
       ],
    q(tieyaxo bozo) => [
-      q(1378),
+      q(1373),
       q(0),
       ],
    q(tifal) => [
-      q(6531),
+      q(6519),
       q(0),
       ],
    q(tigak) => [
-      q(6487),
+      q(6476),
       q(0),
       ],
    q(tigon mbembe) => [
-      q(5187),
+      q(5176),
       q(0),
       ],
    q(tigre) => [
@@ -53216,47 +53178,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tii) => [
-      q(6834),
+      q(6822),
       q(0),
       ],
    q(tijaltepec mixtec) => [
-      q(7529),
+      q(7515),
       q(0),
       ],
    q(tikar) => [
-      q(6535),
+      q(6523),
       q(0),
       ],
    q(tikopia) => [
-      q(6567),
+      q(6555),
       q(0),
       ],
    q(tilapa otomi) => [
-      q(5332),
+      q(5321),
       q(0),
       ],
    q(tillamook) => [
-      q(6536),
+      q(6524),
       q(0),
       ],
    q(tilquiapan zapotec) => [
-      q(7975),
+      q(7958),
       q(0),
       ],
    q(tilung) => [
-      q(6534),
+      q(6522),
       q(0),
       ],
    q(tima) => [
-      q(6615),
+      q(6603),
       q(0),
       ],
    q(timbe) => [
-      q(6537),
+      q(6525),
       q(0),
       ],
    q(timbisha) => [
-      q(5367),
+      q(5355),
       q(1),
       ],
    q(timne) => [
@@ -53264,71 +53226,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(timor pidgin) => [
-      q(6803),
+      q(6790),
       q(0),
       ],
    q(timucua) => [
-      q(6553),
+      q(6541),
       q(0),
       ],
    q(timugon murut) => [
-      q(6532),
+      q(6520),
       q(0),
       ],
    q(tinani) => [
-      q(3826),
+      q(3816),
       q(0),
       ],
    q(tindi) => [
-      q(6538),
+      q(6526),
       q(0),
       ],
    q(tingui-boto) => [
-      q(6502),
+      q(6491),
       q(0),
       ],
    q(tinigua) => [
-      q(6543),
+      q(6531),
       q(0),
       ],
    q(tinoc kallahan) => [
-      q(6626),
+      q(6614),
       q(0),
       ],
    q(tinputz) => [
-      q(6687),
+      q(6675),
       q(0),
       ],
    q(tippera) => [
-      q(6669),
+      q(6657),
       q(0),
       ],
    q(tira) => [
-      q(6529),
+      q(6517),
       q(0),
       ],
    q(tirahi) => [
-      q(6699),
+      q(6687),
       q(0),
       ],
    q(tiranige diga dogon) => [
-      q(6442),
+      q(6431),
       q(0),
       ],
    q(tiri) => [
-      q(1745),
+      q(1739),
       q(0),
       ],
    q(tiruray) => [
-      q(6547),
+      q(6535),
       q(0),
       ],
    q(tita) => [
-      q(6452),
+      q(6441),
       q(0),
       ],
    q(titan) => [
-      q(6768),
+      q(6755),
       q(0),
       ],
    q(tiv) => [
@@ -53336,47 +53298,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tiwa) => [
-      q(3819),
+      q(3809),
       q(0),
       ],
    q(tiwi) => [
-      q(6545),
+      q(6533),
       q(0),
       ],
    q(tjurruru) => [
-      q(6557),
+      q(6545),
       q(0),
       ],
    q(tlachichilco tepehua) => [
-      q(6681),
+      q(6669),
       q(0),
       ],
    q(tlacoapa me'phaa) => [
-      q(6674),
+      q(6662),
       q(0),
       ],
    q(tlacoapa tlapanec) => [
-      q(6674),
+      q(6662),
       q(1),
       ],
    q(tlacoatzintepec chinantec) => [
-      q(1899),
+      q(1893),
       q(0),
       ],
    q(tlacolulita zapotec) => [
-      q(7939),
+      q(7922),
       q(0),
       ],
    q(tlahuitoltepec mixe) => [
-      q(4673),
+      q(4661),
       q(0),
       ],
    q(tlamacazapa nahuatl) => [
-      q(5139),
+      q(5127),
       q(0),
       ],
    q(tlazoyaltepec mixtec) => [
-      q(4497),
+      q(4486),
       q(0),
       ],
    q(tlhingan-hol) => [
@@ -53388,91 +53350,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(to) => [
-      q(6666),
+      q(6654),
       q(0),
       ],
    q(to'abaita) => [
-      q(4395),
+      q(4384),
       q(0),
       ],
    q(toaripi) => [
-      q(6692),
+      q(6680),
       q(0),
       ],
    q(toba) => [
-      q(6646),
+      q(6634),
       q(0),
       ],
    q(toba-maskoy) => [
-      q(6603),
+      q(6591),
       q(0),
       ],
    q(tobagonian creole english) => [
-      q(6491),
+      q(6480),
       q(0),
       ],
    q(tobanga) => [
-      q(6627),
+      q(6615),
       q(0),
       ],
    q(tobati) => [
-      q(6755),
+      q(6742),
       q(0),
       ],
    q(tobelo) => [
-      q(6578),
+      q(6566),
       q(0),
       ],
    q(tobian) => [
-      q(6664),
+      q(6652),
       q(0),
       ],
    q(tobilung) => [
-      q(6486),
+      q(6475),
       q(0),
       ],
    q(tobo) => [
-      q(6410),
+      q(6399),
       q(0),
       ],
    q(tocantins asurini) => [
-      q(0905),
+      q(0903),
       q(0),
       ],
    q(tocho) => [
-      q(6389),
+      q(6378),
       q(0),
       ],
    q(toda) => [
-      q(6435),
+      q(6424),
       q(0),
       ],
    q(todrah) => [
-      q(6453),
+      q(6442),
       q(0),
       ],
    q(tofanma) => [
-      q(6582),
+      q(6570),
       q(0),
       ],
    q(tofin gbe) => [
-      q(6480),
+      q(6469),
       q(0),
       ],
    q(togbo-vara banda) => [
-      q(6659),
+      q(6647),
       q(0),
       ],
    q(togoyo) => [
-      q(6505),
+      q(6494),
       q(0),
       ],
    q(tohono o'odham) => [
-      q(5293),
+      q(5282),
       q(0),
       ],
    q(tojolabal) => [
-      q(6653),
+      q(6641),
       q(0),
       ],
    q(tok pisin) => [
@@ -53480,7 +53442,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tokano) => [
-      q(7981),
+      q(7964),
       q(0),
       ],
    q(tokelau) => [
@@ -53488,79 +53450,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tokharian a) => [
-      q(7532),
+      q(7518),
       q(0),
       ],
    q(tokharian b) => [
-      q(6825),
+      q(6812),
       q(0),
       ],
    q(toku-no-shima) => [
-      q(6566),
+      q(6554),
       q(0),
       ],
    q(tol) => [
-      q(3101),
+      q(3093),
       q(0),
       ],
    q(tolaki) => [
-      q(3841),
+      q(3831),
       q(0),
       ],
    q(tolomako) => [
-      q(6586),
+      q(6574),
       q(0),
       ],
    q(tolowa) => [
-      q(6654),
+      q(6642),
       q(0),
       ],
    q(toma) => [
-      q(6648),
+      q(6636),
       q(0),
       ],
    q(tomadino) => [
-      q(6446),
+      q(6435),
       q(0),
       ],
    q(tombelala) => [
-      q(6762),
+      q(6749),
       q(0),
       ],
    q(tombonuo) => [
-      q(6824),
+      q(6811),
       q(0),
       ],
    q(tombulu) => [
-      q(6655),
+      q(6643),
       q(0),
       ],
    q(tomedes) => [
-      q(6649),
+      q(6637),
       q(0),
       ],
    q(tomini) => [
-      q(6831),
+      q(6819),
       q(0),
       ],
    q(tommo so dogon) => [
-      q(2168),
+      q(2162),
       q(0),
       ],
    q(tomo kan dogon) => [
-      q(2167),
+      q(2161),
       q(0),
       ],
    q(tomoip) => [
-      q(6693),
+      q(6681),
       q(0),
       ],
    q(tondano) => [
-      q(6450),
+      q(6439),
       q(0),
       ],
    q(tondi songway kiini) => [
-      q(6740),
+      q(6727),
       q(0),
       ],
    q(tonga) => [
@@ -53572,7 +53534,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tonga (thailand)) => [
-      q(6645),
+      q(6633),
       q(0),
       ],
    q(tonga (tonga islands)) => [
@@ -53580,139 +53542,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tonga (zambia)) => [
-      q(6652),
+      q(6640),
       q(0),
       ],
    q(tongwe) => [
-      q(6644),
+      q(6632),
       q(0),
       ],
    q(tonjon) => [
-      q(6554),
+      q(6542),
       q(0),
       ],
    q(tonkawa) => [
-      q(6698),
+      q(6686),
       q(0),
       ],
    q(tonsawang) => [
-      q(6642),
+      q(6630),
       q(0),
       ],
    q(tonsea) => [
-      q(6836),
+      q(6824),
       q(0),
       ],
    q(tontemboan) => [
-      q(6639),
+      q(6627),
       q(0),
       ],
    q(tooro) => [
-      q(6756),
+      q(6743),
       q(0),
       ],
    q(topoiyo) => [
-      q(6665),
+      q(6653),
       q(0),
       ],
    q(toposa) => [
-      q(6658),
+      q(6646),
       q(0),
       ],
    q(tora) => [
-      q(6723),
+      q(6711),
       q(0),
       ],
    q(toraja-sa'dan) => [
-      q(5953),
+      q(5942),
       q(0),
       ],
    q(toram) => [
-      q(6708),
+      q(6696),
       q(0),
       ],
    q(torau) => [
-      q(6767),
+      q(6754),
       q(0),
       ],
    q(tornedalen finnish) => [
-      q(2355),
+      q(2348),
       q(0),
       ],
    q(toro) => [
-      q(6457),
+      q(6446),
       q(0),
       ],
    q(toro so dogon) => [
-      q(2171),
+      q(2165),
       q(0),
       ],
    q(toro tegu dogon) => [
-      q(2172),
+      q(2166),
       q(0),
       ],
    q(toromono) => [
-      q(6634),
+      q(6622),
       q(0),
       ],
    q(torona) => [
-      q(6695),
+      q(6683),
       q(0),
       ],
    q(torres strait creole) => [
-      q(6431),
+      q(6420),
       q(0),
       ],
    q(torricelli) => [
-      q(6468),
+      q(6457),
       q(0),
       ],
    q(torwali) => [
-      q(6720),
+      q(6708),
       q(0),
       ],
    q(tosk albanian) => [
-      q(0762),
+      q(0760),
       q(0),
       ],
    q(totela) => [
-      q(6758),
+      q(6745),
       q(0),
       ],
    q(toto) => [
-      q(6833),
+      q(6821),
       q(0),
       ],
    q(totoli) => [
-      q(6827),
+      q(6814),
       q(0),
       ],
    q(totomachapan zapotec) => [
-      q(7936),
+      q(7919),
       q(0),
       ],
    q(totontepec mixe) => [
-      q(4579),
+      q(4568),
       q(0),
       ],
    q(totoro) => [
-      q(6757),
+      q(6744),
       q(0),
       ],
    q(touo) => [
-      q(6697),
+      q(6685),
       q(0),
       ],
    q(toura (cote d'ivoire)) => [
-      q(4819),
+      q(4807),
       q(0),
       ],
    q(toura (papua new guinea)) => [
-      q(2126),
+      q(2120),
       q(0),
       ],
    q(towei) => [
-      q(6760),
+      q(6747),
       q(0),
       ],
    q(trans-new guinea languages) => [
@@ -53720,123 +53682,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(transalpine gaulish) => [
-      q(7525),
+      q(7511),
       q(0),
       ],
    q(traveller danish) => [
-      q(5819),
+      q(5807),
       q(0),
       ],
    q(traveller norwegian) => [
-      q(5822),
+      q(5810),
       q(0),
       ],
    q(traveller scottish) => [
-      q(6709),
+      q(6697),
       q(0),
       ],
    q(tregami) => [
-      q(6710),
+      q(6698),
       q(0),
       ],
    q(tremembe) => [
-      q(6602),
+      q(6590),
       q(0),
       ],
    q(trieng) => [
-      q(6270),
+      q(6258),
       q(0),
       ],
    q(trimuris) => [
-      q(6540),
+      q(6528),
       q(0),
       ],
    q(tring) => [
-      q(6497),
+      q(6486),
       q(0),
       ],
    q(tringgus-sembaan bidayuh) => [
-      q(6721),
+      q(6709),
       q(0),
       ],
    q(trinidad and tobago sign language) => [
-      q(4078),
+      q(4067),
       q(0),
       ],
    q(trinidadian creole english) => [
-      q(6704),
+      q(6692),
       q(0),
       ],
    q(trinitario) => [
-      q(6711),
+      q(6699),
       q(0),
       ],
    q(trio) => [
-      q(6707),
+      q(6695),
       q(0),
       ],
    q(truka) => [
-      q(6559),
+      q(6547),
       q(0),
       ],
    q(trumai) => [
-      q(6686),
+      q(6674),
       q(0),
       ],
    q(ts'un-lao) => [
-      q(6734),
+      q(6721),
       q(0),
       ],
    q(tsaangi) => [
-      q(6724),
+      q(6712),
       q(0),
       ],
    q(tsakhur) => [
-      q(6569),
+      q(6557),
       q(0),
       ],
    q(tsakonian) => [
-      q(6727),
+      q(6715),
       q(0),
       ],
    q(tsakwambo) => [
-      q(3699),
+      q(3691),
       q(0),
       ],
    q(tsamai) => [
-      q(6725),
+      q(6713),
       q(0),
       ],
    q(tsat) => [
-      q(2873),
+      q(2865),
       q(0),
       ],
    q(tsaukambo) => [
-      q(3699),
+      q(3691),
       q(1),
       ],
    q(tseku) => [
-      q(6733),
+      q(6720),
       q(0),
       ],
    q(tsetsaut) => [
-      q(6826),
+      q(6813),
       q(0),
       ],
    q(tshangla) => [
-      q(6732),
+      q(6719),
       q(0),
       ],
    q(tsikimba) => [
-      q(3252),
+      q(3244),
       q(0),
       ],
    q(tsimane) => [
-      q(1660),
+      q(1653),
       q(0),
       ],
    q(tsimihety malagasy) => [
-      q(7440),
+      q(7427),
       q(0),
       ],
    q(tsimshian) => [
@@ -53844,19 +53806,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tsishingini) => [
-      q(6743),
+      q(6730),
       q(0),
       ],
    q(tso) => [
-      q(3867),
+      q(3857),
       q(0),
       ],
    q(tsoa) => [
-      q(2770),
+      q(2762),
       q(0),
       ],
    q(tsogo) => [
-      q(6742),
+      q(6729),
       q(0),
       ],
    q(tsonga) => [
@@ -53864,31 +53826,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tsotsitaal) => [
-      q(2365),
+      q(2358),
       q(1),
       ],
    q(tsotso) => [
-      q(4084),
+      q(4073),
       q(0),
       ],
    q(tsou) => [
-      q(6741),
+      q(6728),
+      q(0),
+      ],
+   q(tsucuba) => [
+      q(1671),
       q(0),
       ],
    q(tsum) => [
-      q(6771),
+      q(6758),
       q(0),
       ],
    q(tsuvadi) => [
-      q(6793),
+      q(6780),
       q(0),
       ],
    q(tsuvan) => [
-      q(6731),
+      q(6718),
       q(0),
       ],
    q(tswa) => [
-      q(6726),
+      q(6714),
       q(0),
       ],
    q(tswana) => [
@@ -53896,95 +53862,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tswapong) => [
-      q(6815),
+      q(6802),
       q(0),
       ],
    q(tu) => [
-      q(4334),
+      q(4323),
       q(0),
       ],
    q(tuamotuan) => [
-      q(5535),
+      q(5524),
       q(0),
       ],
    q(tubar) => [
-      q(6409),
+      q(6398),
       q(0),
       ],
    q(tubatulabal) => [
-      q(6773),
+      q(6760),
       q(0),
       ],
    q(tucano) => [
-      q(6784),
+      q(6771),
       q(0),
       ],
    q(tugen) => [
-      q(6790),
+      q(6777),
       q(0),
       ],
    q(tugun) => [
-      q(6860),
+      q(6848),
       q(0),
       ],
    q(tugutil) => [
-      q(6781),
+      q(6768),
       q(0),
       ],
    q(tukang besi north) => [
-      q(3341),
+      q(3333),
       q(0),
       ],
    q(tukang besi south) => [
-      q(1203),
+      q(1199),
       q(0),
       ],
    q(tuki) => [
-      q(1030),
+      q(1026),
       q(0),
       ],
    q(tukpa) => [
-      q(6679),
+      q(6667),
       q(0),
       ],
    q(tukudede) => [
-      q(6561),
+      q(6549),
       q(0),
       ],
    q(tukumanfed) => [
-      q(6563),
+      q(6551),
       q(0),
       ],
    q(tula) => [
-      q(6782),
+      q(6769),
       q(0),
       ],
    q(tulehu) => [
-      q(6594),
+      q(6582),
       q(0),
       ],
    q(tulishi) => [
-      q(6479),
+      q(6468),
       q(0),
       ],
    q(tulu) => [
-      q(6436),
+      q(6425),
       q(0),
       ],
    q(tulu-bohuai) => [
-      q(5755),
+      q(5743),
       q(0),
       ],
    q(tuma-irumu) => [
-      q(2989),
+      q(2981),
       q(0),
       ],
    q(tumak) => [
-      q(6600),
+      q(6588),
       q(0),
       ],
    q(tumari kanuri) => [
-      q(3595),
+      q(3587),
       q(0),
       ],
    q(tumbuka) => [
@@ -53992,43 +53958,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tumi) => [
-      q(3429),
+      q(3422),
       q(0),
       ],
    q(tumleo) => [
-      q(6613),
+      q(6601),
       q(0),
       ],
    q(tumshuqese) => [
-      q(7534),
+      q(7520),
       q(0),
       ],
    q(tumtum) => [
-      q(6406),
+      q(6395),
       q(0),
       ],
    q(tumulung sisaala) => [
-      q(6054),
+      q(6042),
       q(0),
       ],
    q(tumzabt) => [
-      q(4706),
+      q(4694),
       q(0),
       ],
    q(tundra enets) => [
-      q(2275),
+      q(2268),
       q(0),
       ],
    q(tunen) => [
-      q(6801),
+      q(6788),
       q(0),
       ],
    q(tungag) => [
-      q(3851),
+      q(3841),
       q(0),
       ],
    q(tunggare) => [
-      q(6717),
+      q(6705),
       q(0),
       ],
    q(tungus languages) => [
@@ -54036,43 +54002,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tunia) => [
-      q(6778),
+      q(6765),
       q(0),
       ],
    q(tunica) => [
-      q(6783),
+      q(6770),
       q(0),
       ],
    q(tunisian arabic) => [
-      q(0626),
+      q(0624),
       q(0),
       ],
    q(tunisian sign language) => [
-      q(6728),
+      q(6716),
       q(0),
       ],
    q(tunjung) => [
-      q(6550),
+      q(6538),
       q(0),
       ],
    q(tunni) => [
-      q(6694),
+      q(6682),
       q(0),
       ],
    q(tunzu) => [
-      q(2212),
+      q(2206),
       q(0),
       ],
    q(tuotomb) => [
-      q(6752),
+      q(6739),
       q(0),
       ],
    q(tupari) => [
-      q(6680),
+      q(6668),
       q(0),
       ],
    q(tupi) => [
-      q(6684),
+      q(6672),
       q(0),
       ],
    q(tupi languages) => [
@@ -54080,43 +54046,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tupinamba) => [
-      q(6676),
+      q(6664),
       q(0),
       ],
    q(tupinikin) => [
-      q(6673),
+      q(6661),
       q(0),
       ],
    q(tupuri) => [
-      q(6780),
+      q(6767),
       q(0),
       ],
    q(turaka) => [
-      q(6706),
+      q(6694),
       q(0),
       ],
    q(turi) => [
-      q(6702),
+      q(6690),
       q(0),
       ],
    q(turiwara) => [
-      q(6819),
+      q(6806),
       q(0),
       ],
    q(turk isaret dili) => [
-      q(6735),
+      q(6722),
       q(1),
       ],
    q(turka) => [
-      q(6791),
+      q(6778),
       q(0),
       ],
    q(turkana) => [
-      q(6788),
+      q(6775),
       q(0),
       ],
    q(turkic khalaj) => [
-      q(3444),
+      q(3437),
       q(0),
       ],
    q(turkic languages) => [
@@ -54128,7 +54094,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(turkish sign language) => [
-      q(6735),
+      q(6722),
       q(0),
       ],
    q(turkish, ottoman (1500-1928)) => [
@@ -54140,47 +54106,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(turks and caicos creole english) => [
-      q(6422),
+      q(6411),
       q(0),
       ],
    q(turoyo) => [
-      q(6718),
+      q(6706),
       q(0),
       ],
    q(turumsa) => [
-      q(6690),
+      q(6678),
       q(0),
       ],
    q(turung) => [
-      q(6722),
+      q(6710),
       q(0),
       ],
    q(tuscarora) => [
-      q(6786),
+      q(6773),
       q(0),
       ],
    q(tutelo) => [
-      q(6747),
+      q(6734),
       q(0),
       ],
    q(tutong) => [
-      q(6753),
+      q(6740),
       q(0),
       ],
    q(tutsa naga) => [
-      q(6800),
+      q(6787),
       q(0),
       ],
    q(tutuba) => [
-      q(6605),
+      q(6593),
       q(0),
       ],
    q(tututepec mixtec) => [
-      q(4585),
+      q(4574),
       q(0),
       ],
    q(tututni) => [
-      q(6787),
+      q(6774),
       q(0),
       ],
    q(tuvalu) => [
@@ -54192,39 +54158,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tuwali ifugao) => [
-      q(2924),
+      q(2916),
       q(0),
       ],
    q(tuwari) => [
-      q(6821),
+      q(6808),
       q(0),
       ],
    q(tuwuli) => [
-      q(1374),
+      q(1369),
       q(0),
       ],
    q(tuxa) => [
-      q(6775),
+      q(6762),
       q(0),
       ],
    q(tuxinawa) => [
-      q(6789),
+      q(6776),
       q(0),
       ],
    q(tuyuca) => [
-      q(6776),
+      q(6763),
       q(0),
       ],
    q(twana) => [
-      q(6804),
+      q(6791),
       q(0),
       ],
    q(twendi) => [
-      q(6814),
+      q(6801),
       q(0),
       ],
    q(twents) => [
-      q(6807),
+      q(6794),
       q(0),
       ],
    q(twi) => [
@@ -54232,75 +54198,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tyap) => [
-      q(3222),
+      q(3214),
       q(0),
       ],
    q(tyaraity) => [
-      q(7208),
+      q(7195),
       q(0),
       ],
    q(tz'utujil) => [
-      q(6857),
+      q(6845),
       q(0),
       ],
    q(tzeltal) => [
-      q(6856),
+      q(6844),
       q(0),
       ],
    q(tzotzil) => [
-      q(6861),
+      q(6849),
       q(0),
       ],
    q(u) => [
-      q(6974),
+      q(6961),
       q(0),
       ],
    q(uab meto) => [
-      q(0835),
+      q(0833),
       q(0),
       ],
    q(uamue) => [
-      q(6863),
+      q(6851),
       q(0),
       ],
    q(uare) => [
-      q(3610),
+      q(3602),
       q(0),
       ],
    q(ubaghara) => [
-      q(1597),
+      q(1591),
       q(0),
       ],
    q(ubang) => [
-      q(6866),
+      q(6854),
       q(0),
       ],
    q(ubi) => [
-      q(6867),
+      q(6855),
       q(0),
       ],
    q(ubir) => [
-      q(6869),
+      q(6857),
       q(0),
       ],
    q(ubykh) => [
-      q(6871),
+      q(6859),
       q(0),
       ],
    q(ucayali-yurua asheninka) => [
-      q(1837),
+      q(1831),
       q(0),
       ],
    q(uda) => [
-      q(6872),
+      q(6860),
       q(0),
       ],
    q(udi) => [
-      q(6875),
+      q(6863),
       q(0),
       ],
    q(udihe) => [
-      q(6873),
+      q(6861),
       q(0),
       ],
    q(udmurt) => [
@@ -54308,15 +54274,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(uduk) => [
-      q(6878),
+      q(6866),
       q(0),
       ],
    q(ufim) => [
-      q(6880),
+      q(6868),
       q(0),
       ],
    q(ugandan sign language) => [
-      q(6883),
+      q(6871),
       q(0),
       ],
    q(ugaritic) => [
@@ -54324,15 +54290,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ughele) => [
-      q(6882),
+      q(6870),
       q(0),
       ],
    q(ugong) => [
-      q(6884),
+      q(6872),
       q(0),
       ],
    q(uhami) => [
-      q(6886),
+      q(6874),
       q(0),
       ],
    q(uighur) => [
@@ -54340,31 +54306,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(uisai) => [
-      q(6888),
+      q(6876),
       q(0),
       ],
    q(ujir) => [
-      q(6876),
+      q(6864),
       q(0),
       ],
    q(ukaan) => [
-      q(3221),
+      q(3213),
       q(0),
       ],
    q(ukhwejo) => [
-      q(6893),
+      q(6881),
       q(0),
       ],
    q(ukit) => [
-      q(6917),
+      q(6905),
       q(0),
       ],
    q(ukpe-bayobiri) => [
-      q(6895),
+      q(6883),
       q(0),
       ],
    q(ukpet-ehom) => [
-      q(0726),
+      q(0724),
       q(0),
       ],
    q(ukrainian) => [
@@ -54372,87 +54338,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ukrainian sign language) => [
-      q(6894),
+      q(6882),
       q(0),
       ],
    q(ukue) => [
-      q(6898),
+      q(6886),
       q(0),
       ],
    q(ukuriguma) => [
-      q(6892),
+      q(6880),
       q(0),
       ],
    q(ukwa) => [
-      q(6896),
+      q(6884),
       q(0),
       ],
    q(ukwuani-aboh-ndoni) => [
-      q(6899),
+      q(6887),
       q(0),
       ],
    q(ulau-suain) => [
-      q(6303),
+      q(6291),
       q(0),
       ],
    q(ulch) => [
-      q(6903),
+      q(6891),
       q(0),
       ],
    q(ulithian) => [
-      q(6906),
+      q(6894),
       q(0),
       ],
    q(ullatan) => [
-      q(6908),
+      q(6896),
       q(0),
       ],
    q(ulukwumi) => [
-      q(6902),
+      q(6890),
       q(0),
       ],
    q(ulumanda') => [
-      q(6909),
+      q(6897),
       q(0),
       ],
    q(ulwa) => [
-      q(6912),
+      q(6900),
       q(0),
       ],
    q(uma) => [
-      q(5586),
+      q(5574),
       q(0),
       ],
    q(uma' lasan) => [
-      q(7404),
+      q(7391),
       q(0),
       ],
    q(uma' lung) => [
-      q(6911),
+      q(6899),
       q(0),
       ],
    q(umanakaina) => [
-      q(2471),
+      q(2464),
       q(0),
       ],
    q(umatilla) => [
-      q(6913),
+      q(6901),
       q(0),
       ],
    q(umbindhamu) => [
-      q(6915),
+      q(6903),
       q(0),
       ],
    q(umbrian) => [
-      q(7549),
+      q(7535),
       q(0),
       ],
    q(umbu-ungu) => [
-      q(6870),
+      q(6858),
       q(0),
       ],
    q(umbugarla) => [
-      q(6922),
+      q(6910),
       q(0),
       ],
    q(umbundu) => [
@@ -54460,43 +54426,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(umbuygamu) => [
-      q(6916),
+      q(6904),
       q(0),
       ],
    q(ume sami) => [
-      q(6080),
+      q(6068),
       q(0),
       ],
    q(umeda) => [
-      q(6936),
+      q(6923),
       q(0),
       ],
    q(umiida) => [
-      q(7545),
+      q(7531),
       q(0),
       ],
    q(umiray dumaget agta) => [
-      q(2178),
+      q(2172),
       q(0),
       ],
    q(umon) => [
-      q(6918),
+      q(6906),
       q(0),
       ],
    q(umotina) => [
-      q(6920),
+      q(6908),
       q(0),
       ],
    q(umpila) => [
-      q(6921),
+      q(6909),
       q(0),
       ],
    q(una) => [
-      q(4571),
+      q(4560),
       q(0),
       ],
    q(unami) => [
-      q(6929),
+      q(6917),
       q(0),
       ],
    q(uncoded languages) => [
@@ -54504,7 +54470,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(unde kaili) => [
-      q(6934),
+      q(6922),
       q(0),
       ],
    q(undetermined) => [
@@ -54512,63 +54478,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(uneapa) => [
-      q(1054),
+      q(1050),
       q(0),
       ],
    q(uneme) => [
-      q(6926),
+      q(6914),
       q(0),
       ],
    q(unggaranggu) => [
-      q(7550),
+      q(7536),
       q(0),
       ],
    q(unggumi) => [
-      q(7360),
+      q(7347),
+      q(0),
+      ],
+   q(ungkue) => [
+      q(2541),
       q(0),
       ],
    q(unserdeutsch) => [
-      q(6910),
+      q(6898),
       q(0),
       ],
    q(unua) => [
-      q(5290),
+      q(5279),
       q(0),
       ],
    q(unubahe) => [
-      q(6932),
-      q(0),
-      ],
-   q(uokha) => [
-      q(6935),
+      q(6920),
       q(0),
       ],
    q(upper chehalis) => [
-      q(1750),
+      q(1744),
       q(0),
       ],
    q(upper grand valley dani) => [
-      q(2104),
+      q(2098),
       q(0),
       ],
    q(upper guinea crioulo) => [
-      q(5579),
+      q(5567),
       q(0),
       ],
    q(upper kinabatangan) => [
-      q(2092),
+      q(2086),
       q(0),
       ],
    q(upper kuskokwim) => [
-      q(3668),
+      q(3660),
       q(0),
       ],
    q(upper necaxa totonac) => [
-      q(6572),
+      q(6560),
       q(0),
       ],
    q(upper saxon) => [
-      q(6344),
+      q(6332),
       q(0),
       ],
    q(upper sorbian) => [
@@ -54576,39 +54542,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(upper ta'oih) => [
-      q(6754),
+      q(6741),
       q(0),
       ],
    q(upper tanana) => [
-      q(6384),
+      q(6373),
       q(0),
       ],
    q(upper taromi) => [
-      q(6662),
+      q(6650),
       q(0),
       ],
    q(upper umpqua) => [
-      q(7552),
+      q(7538),
       q(0),
       ],
    q(ura (papua new guinea)) => [
-      q(6950),
+      q(6937),
       q(0),
       ],
    q(ura (vanuatu)) => [
-      q(6973),
+      q(6960),
       q(0),
       ],
    q(uradhi) => [
-      q(6942),
+      q(6929),
       q(0),
       ],
    q(urak lawoi') => [
-      q(6946),
+      q(6933),
       q(0),
       ],
    q(urali) => [
-      q(6947),
+      q(6934),
       q(0),
       ],
    q(uralic languages) => [
@@ -54616,19 +54582,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(urapmin) => [
-      q(6948),
+      q(6935),
       q(0),
       ],
    q(urarina) => [
-      q(6938),
+      q(6925),
       q(0),
       ],
    q(urartian) => [
-      q(7553),
+      q(7539),
       q(0),
       ],
    q(urat) => [
-      q(6953),
+      q(6940),
       q(0),
       ],
    q(urdu) => [
@@ -54636,115 +54602,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(urhobo) => [
-      q(6944),
+      q(6931),
       q(0),
       ],
    q(uri) => [
-      q(6976),
+      q(6963),
       q(0),
       ],
    q(urigina) => [
-      q(6943),
+      q(6930),
       q(0),
       ],
    q(urim) => [
-      q(6945),
+      q(6932),
       q(0),
       ],
    q(urimo) => [
-      q(6957),
+      q(6944),
       q(0),
       ],
    q(uripiv-wala-rano-atchin) => [
-      q(6937),
+      q(6924),
       q(0),
       ],
    q(urningangg) => [
-      q(6940),
+      q(6927),
       q(0),
       ],
    q(uru) => [
-      q(6941),
+      q(6928),
       q(0),
       ],
    q(uru-eu-wau-wau) => [
-      q(6959),
+      q(6946),
       q(0),
       ],
    q(uru-pa-in) => [
-      q(6951),
+      q(6938),
       q(0),
       ],
    q(uruangnirin) => [
-      q(6949),
+      q(6936),
       q(0),
       ],
    q(uruava) => [
-      q(6955),
+      q(6942),
       q(0),
       ],
    q(urubu-kaapor) => [
-      q(6939),
+      q(6926),
       q(0),
       ],
    q(urubu-kaapor sign language) => [
-      q(6897),
+      q(6885),
       q(0),
       ],
    q(uruguayan sign language) => [
-      q(6885),
+      q(6873),
       q(0),
       ],
    q(urum) => [
-      q(6971),
+      q(6958),
       q(0),
       ],
    q(urumi) => [
-      q(6954),
+      q(6941),
       q(0),
       ],
    q(usaghade) => [
-      q(6963),
+      q(6950),
       q(0),
       ],
    q(usan) => [
-      q(7205),
+      q(7192),
       q(0),
       ],
    q(usarufa) => [
-      q(6960),
+      q(6947),
       q(0),
       ],
    q(ushojo) => [
-      q(6961),
+      q(6948),
       q(0),
       ],
    q(usila chinantec) => [
-      q(1910),
+      q(1904),
       q(0),
       ],
    q(usku) => [
-      q(6905),
+      q(6893),
       q(0),
       ],
    q(uspanteco) => [
-      q(6964),
+      q(6951),
       q(0),
       ],
    q(usui) => [
-      q(6962),
+      q(6949),
       q(0),
       ],
    q(ut-ma'in) => [
-      q(2488),
+      q(2481),
       q(0),
       ],
    q(utarmbung) => [
-      q(5270),
+      q(5259),
       q(0),
       ],
    q(ute-southern paiute) => [
-      q(6967),
+      q(6954),
       q(0),
       ],
    q(uto-aztecan languages) => [
@@ -54752,19 +54718,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(utu) => [
-      q(6970),
+      q(6957),
       q(0),
       ],
    q(uvbie) => [
-      q(2321),
+      q(2314),
       q(0),
       ],
    q(uya) => [
-      q(6965),
+      q(6952),
       q(0),
       ],
    q(uyajitaya) => [
-      q(2184),
+      q(2178),
       q(0),
       ],
    q(uyghur) => [
@@ -54776,43 +54742,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(uzbeki arabic) => [
-      q(0957),
+      q(0953),
       q(0),
       ],
    q(uzekwe) => [
-      q(2327),
+      q(2320),
       q(0),
       ],
    q(v'enen taut) => [
-      q(4974),
+      q(4962),
       q(1),
       ],
    q(vaagri booli) => [
-      q(6982),
+      q(6969),
       q(0),
       ],
    q(vaeakau-taumako) => [
-      q(5478),
+      q(5467),
       q(1),
       ],
    q(vafsi) => [
-      q(6984),
+      q(6971),
       q(0),
       ],
    q(vaghat-ya-bijim-legeri) => [
-      q(1220),
+      q(1216),
       q(0),
       ],
    q(vaghri) => [
-      q(7007),
+      q(6994),
       q(0),
       ],
    q(vaghua) => [
-      q(6792),
+      q(6779),
       q(0),
       ],
    q(vagla) => [
-      q(6985),
+      q(6972),
       q(0),
       ],
    q(vai) => [
@@ -54820,11 +54786,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(vaiphei) => [
-      q(6992),
+      q(6979),
       q(0),
       ],
    q(vale) => [
-      q(6983),
+      q(6970),
       q(0),
       ],
    q(valencian) => [
@@ -54832,91 +54798,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(valencian sign language) => [
-      q(7062),
+      q(7049),
       q(0),
       ],
    q(valle nacional chinantec) => [
-      q(1928),
+      q(1922),
       q(0),
       ],
    q(valley maidu) => [
-      q(7048),
+      q(7035),
       q(0),
       ],
    q(valman) => [
-      q(6990),
+      q(6977),
       q(0),
       ],
    q(valpei) => [
-      q(7028),
+      q(7015),
       q(0),
       ],
    q(vamale) => [
-      q(4371),
+      q(4360),
       q(0),
       ],
    q(vame) => [
-      q(4393),
+      q(4382),
       q(0),
       ],
    q(vandalic) => [
-      q(7558),
+      q(7544),
       q(0),
       ],
    q(vangunu) => [
-      q(4482),
+      q(4471),
       q(0),
       ],
    q(vanimo) => [
-      q(6989),
+      q(6976),
       q(0),
       ],
    q(vano) => [
-      q(7053),
+      q(7040),
       q(0),
       ],
    q(vanuma) => [
-      q(6995),
+      q(6982),
       q(0),
       ],
    q(vao) => [
-      q(6991),
+      q(6978),
       q(0),
       ],
    q(varhadi-nagpuri) => [
-      q(6986),
+      q(6973),
       q(0),
       ],
    q(varisi) => [
-      q(7058),
+      q(7045),
       q(0),
       ],
    q(varli) => [
-      q(6996),
+      q(6983),
       q(0),
       ],
    q(vasavi) => [
-      q(6994),
+      q(6981),
       q(0),
       ],
-   q(vasekela bushman) => [
-      q(6987),
-      q(0),
+   q(vasekele) => [
+      q(6974),
+      q(3),
       ],
    q(veddah) => [
-      q(7001),
+      q(6988),
       q(0),
       ],
    q(vehes) => [
-      q(6988),
+      q(6975),
       q(0),
       ],
    q(veluws) => [
-      q(7002),
+      q(6989),
       q(0),
       ],
    q(vemgo-mabas) => [
-      q(7003),
+      q(6990),
       q(0),
       ],
    q(venda) => [
@@ -54924,43 +54890,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(venetian) => [
-      q(7000),
+      q(6987),
       q(0),
       ],
    q(venetic) => [
-      q(7556),
+      q(7542),
       q(0),
       ],
    q(venezuelan sign language) => [
-      q(7061),
+      q(7048),
       q(0),
       ],
    q(vengo) => [
-      q(1037),
+      q(1033),
       q(0),
       ],
    q(ventureno) => [
-      q(7004),
+      q(6991),
       q(0),
       ],
    q(veps) => [
-      q(7005),
+      q(6992),
       q(0),
       ],
    q(vera'a) => [
-      q(7057),
+      q(7044),
       q(0),
       ],
    q(vestinian) => [
-      q(7560),
+      q(7546),
       q(0),
       ],
    q(vidunda) => [
-      q(7010),
+      q(6997),
       q(0),
       ],
    q(viemo) => [
-      q(7012),
+      q(6999),
       q(0),
       ],
    q(vietnamese) => [
@@ -54968,63 +54934,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(viid) => [
-      q(6162),
+      q(6150),
       q(1),
       ],
    q(vilela) => [
-      q(7013),
+      q(7000),
       q(0),
       ],
    q(vili) => [
-      q(7011),
+      q(6998),
       q(0),
       ],
    q(villa viciosa agta) => [
-      q(2206),
+      q(2200),
       q(0),
       ],
    q(vincentian creole english) => [
-      q(6304),
+      q(6292),
       q(0),
       ],
    q(vinmavis) => [
-      q(7054),
+      q(7041),
       q(0),
       ],
    q(vinza) => [
-      q(7014),
+      q(7001),
       q(0),
       ],
    q(virgin islands creole english) => [
-      q(7009),
+      q(6996),
       q(0),
       ],
    q(vishavan) => [
-      q(7015),
+      q(7002),
       q(0),
       ],
    q(viti) => [
-      q(7016),
+      q(7003),
       q(0),
       ],
    q(vitou) => [
-      q(7063),
+      q(7050),
       q(0),
       ],
    q(vitu) => [
-      q(7153),
+      q(7140),
       q(0),
       ],
    q(vlaams) => [
-      q(7029),
+      q(7016),
       q(0),
       ],
    q(vlaamse gebarentaal) => [
-      q(7008),
+      q(6995),
       q(0),
       ],
    q(vlax romani) => [
-      q(5838),
+      q(5826),
       q(0),
       ],
    q(volapuk) => [
@@ -55032,15 +54998,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(volscian) => [
-      q(7559),
+      q(7545),
       q(0),
       ],
    q(vono) => [
-      q(3223),
+      q(3215),
       q(0),
       ],
    q(voro) => [
-      q(7056),
+      q(7043),
       q(0),
       ],
    q(votic) => [
@@ -55048,199 +55014,199 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(vumbu) => [
-      q(7064),
+      q(7051),
       q(0),
       ],
    q(vunapu) => [
-      q(7055),
+      q(7042),
       q(0),
       ],
    q(vunjo) => [
-      q(7065),
+      q(7052),
       q(0),
       ],
    q(vure) => [
-      q(3959),
+      q(3948),
       q(1),
       ],
    q(vures) => [
-      q(4553),
+      q(4542),
       q(0),
       ],
    q(vute) => [
-      q(7066),
+      q(7053),
       q(0),
       ],
    q(vwanji) => [
-      q(7094),
+      q(7081),
       q(0),
       ],
    q(wa) => [
-      q(7098),
+      q(7085),
       q(0),
       ],
    q(wa'ema) => [
-      q(7074),
+      q(7061),
       q(0),
       ],
    q(waama) => [
-      q(7271),
+      q(7258),
       q(0),
       ],
    q(waamwang) => [
-      q(7188),
+      q(7175),
       q(0),
       ],
    q(waata) => [
-      q(6253),
+      q(6241),
       q(0),
       ],
    q(wab) => [
-      q(7069),
+      q(7056),
       q(0),
       ],
    q(wabo) => [
-      q(7091),
+      q(7078),
       q(0),
       ],
    q(waboda) => [
-      q(3483),
+      q(3476),
       q(0),
       ],
    q(waci gbe) => [
-      q(7106),
+      q(7093),
       q(0),
       ],
    q(wadaginam) => [
-      q(7108),
+      q(7095),
       q(0),
       ],
    q(waddar) => [
-      q(7100),
+      q(7087),
       q(0),
       ],
    q(wadi wadi) => [
-      q(7563),
+      q(7549),
       q(0),
       ],
    q(wadikali) => [
-      q(7110),
+      q(7097),
       q(0),
       ],
    q(wadiyara koli) => [
-      q(3740),
+      q(3730),
       q(0),
       ],
    q(wadjabangayi) => [
-      q(7112),
+      q(7099),
       q(0),
       ],
    q(wadjiginy) => [
-      q(7109),
+      q(7096),
       q(0),
       ],
    q(wadjigu) => [
-      q(7111),
+      q(7098),
       q(0),
       ],
    q(wae rana) => [
-      q(7242),
+      q(7229),
       q(0),
       ],
    q(waffa) => [
-      q(7077),
+      q(7064),
       q(0),
       ],
    q(wagawaga) => [
-      q(7129),
+      q(7116),
       q(0),
       ],
    q(wagaya) => [
-      q(7128),
+      q(7115),
       q(0),
       ],
    q(wagdi) => [
-      q(7101),
+      q(7088),
       q(0),
       ],
    q(wageman) => [
-      q(7082),
+      q(7069),
       q(0),
       ],
    q(wagi) => [
-      q(2330),
+      q(2323),
       q(0),
       ],
    q(wahau kayan) => [
-      q(7138),
+      q(7125),
       q(0),
       ],
    q(wahau kenyah) => [
-      q(7137),
+      q(7124),
       q(0),
       ],
    q(wahgi) => [
-      q(7131),
+      q(7118),
       q(0),
       ],
    q(waigali) => [
-      q(7096),
+      q(7083),
       q(0),
       ],
    q(waigeo) => [
-      q(7132),
+      q(7119),
       q(0),
       ],
    q(wailaki) => [
-      q(7169),
+      q(7156),
       q(0),
       ],
    q(wailapa) => [
-      q(7173),
+      q(7160),
       q(0),
       ],
    q(waima) => [
-      q(5863),
+      q(5851),
       q(0),
       ],
    q(waima'a) => [
-      q(7185),
+      q(7172),
       q(0),
       ],
    q(waimaha) => [
-      q(1033),
+      q(1029),
       q(0),
       ],
    q(waimiri-atroari) => [
-      q(0926),
+      q(0923),
       q(0),
       ],
    q(waioli) => [
-      q(7168),
+      q(7155),
       q(0),
       ],
    q(waiwai) => [
-      q(7086),
+      q(7073),
       q(0),
       ],
    q(waja) => [
-      q(7155),
+      q(7142),
       q(0),
       ],
    q(wajarri) => [
-      q(7103),
+      q(7090),
       q(0),
       ],
    q(wajuk) => [
-      q(7566),
+      q(7552),
       q(0),
       ],
    q(waka) => [
-      q(7085),
+      q(7072),
       q(0),
       ],
    q(wakabunga) => [
-      q(7272),
+      q(7259),
       q(0),
       ],
    q(wakashan languages) => [
@@ -55248,27 +55214,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(wakawaka) => [
-      q(7162),
+      q(7149),
       q(0),
       ],
    q(wakde) => [
-      q(7159),
+      q(7146),
       q(0),
       ],
    q(wakhi) => [
-      q(7097),
+      q(7084),
       q(0),
       ],
    q(wakona) => [
-      q(7073),
+      q(7060),
       q(0),
       ],
    q(wala) => [
-      q(3901),
+      q(3891),
       q(0),
       ],
    q(walak) => [
-      q(7177),
+      q(7164),
       q(0),
       ],
    q(walamo) => [
@@ -55276,31 +55242,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(walangama) => [
-      q(4969),
+      q(4957),
       q(0),
       ],
    q(wali (ghana)) => [
-      q(7178),
+      q(7165),
       q(0),
       ],
    q(wali (sudan)) => [
-      q(7170),
+      q(7157),
       q(0),
       ],
    q(waling) => [
-      q(7179),
+      q(7166),
       q(0),
       ],
    q(walio) => [
-      q(7164),
+      q(7151),
       q(0),
       ],
    q(walla walla) => [
-      q(7068),
+      q(7055),
       q(0),
       ],
    q(wallisian) => [
-      q(7174),
+      q(7161),
       q(0),
       ],
    q(walloon) => [
@@ -55308,187 +55274,187 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(walmajarri) => [
-      q(7191),
+      q(7178),
       q(0),
       ],
    q(walser) => [
-      q(7072),
+      q(7059),
       q(0),
       ],
    q(walungge) => [
-      q(5253),
+      q(5242),
       q(0),
       ],
    q(wamas) => [
-      q(7182),
+      q(7169),
       q(0),
       ],
    q(wambaya) => [
-      q(7181),
+      q(7168),
       q(0),
       ],
    q(wambon) => [
-      q(7190),
+      q(7177),
       q(0),
       ],
    q(wambule) => [
-      q(7184),
+      q(7171),
       q(0),
       ],
    q(wamey) => [
-      q(1830),
+      q(1824),
       q(0),
       ],
    q(wamin) => [
-      q(7186),
+      q(7173),
       q(0),
       ],
    q(wampanoag) => [
-      q(7078),
+      q(7065),
       q(0),
       ],
    q(wampar) => [
-      q(3835),
+      q(3825),
       q(0),
       ],
    q(wampur) => [
-      q(7089),
+      q(7076),
       q(0),
       ],
    q(wan) => [
-      q(7079),
+      q(7066),
       q(0),
       ],
    q(wanambre) => [
-      q(7194),
+      q(7181),
       q(0),
       ],
    q(wanap) => [
-      q(7204),
+      q(7191),
       q(0),
       ],
    q(wanbasana) => [
-      q(0764),
+      q(0762),
       q(1),
       ],
    q(wancho naga) => [
-      q(5013),
+      q(5001),
       q(0),
       ],
    q(wanda) => [
-      q(7093),
+      q(7080),
       q(0),
       ],
    q(wandala) => [
-      q(4243),
+      q(4232),
       q(0),
       ],
    q(wandamen) => [
-      q(7071),
+      q(7058),
       q(0),
       ],
    q(wandarang) => [
-      q(7196),
+      q(7183),
       q(0),
       ],
    q(wandji) => [
-      q(7107),
+      q(7094),
       q(0),
       ],
    q(wane) => [
-      q(2888),
+      q(2880),
       q(0),
       ],
    q(waneci) => [
-      q(7197),
+      q(7184),
       q(0),
       ],
    q(wanga) => [
-      q(4110),
+      q(4099),
       q(0),
       ],
    q(wangaaybuwan-ngiyambaa) => [
-      q(7279),
+      q(7266),
       q(0),
       ],
    q(wanggamala) => [
-      q(7201),
+      q(7188),
       q(0),
       ],
    q(wangganguru) => [
-      q(7130),
+      q(7117),
       q(0),
       ],
    q(wanggom) => [
-      q(7198),
+      q(7185),
       q(0),
       ],
    q(wangkayutyuru) => [
-      q(7163),
+      q(7150),
       q(0),
       ],
    q(wangkumara) => [
-      q(7567),
+      q(7553),
       q(0),
       ],
    q(wanman) => [
-      q(7102),
+      q(7089),
       q(0),
       ],
    q(wannu) => [
-      q(3154),
+      q(3147),
       q(0),
       ],
    q(wano) => [
-      q(7203),
+      q(7190),
       q(0),
       ],
    q(wantoat) => [
-      q(7195),
+      q(7182),
       q(0),
       ],
    q(wanukaka) => [
-      q(7200),
+      q(7187),
       q(0),
       ],
    q(wanyi) => [
-      q(7207),
+      q(7194),
       q(0),
       ],
    q(waorani) => [
-      q(0937),
+      q(0934),
       q(0),
       ],
    q(wapan) => [
-      q(3159),
+      q(3152),
       q(0),
       ],
    q(wapha) => [
-      q(3169),
+      q(3162),
       q(0),
       ],
    q(wapishana) => [
-      q(7081),
+      q(7068),
       q(0),
       ],
    q(wappo) => [
-      q(7080),
+      q(7067),
       q(0),
       ],
    q(war-jaintia) => [
-      q(0777),
+      q(0775),
       q(0),
       ],
    q(wara) => [
-      q(6423),
+      q(6412),
       q(0),
       ],
    q(warao) => [
-      q(7090),
+      q(7077),
       q(0),
       ],
    q(warapu) => [
-      q(7225),
+      q(7212),
       q(0),
       ],
    q(waray) => [
@@ -55496,7 +55462,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(waray (australia)) => [
-      q(7244),
+      q(7231),
       q(0),
       ],
    q(waray (philippines)) => [
@@ -55504,103 +55470,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(wardaman) => [
-      q(7237),
+      q(7224),
       q(0),
       ],
    q(wardandi) => [
-      q(7277),
+      q(7264),
       q(0),
       ],
    q(warduji) => [
-      q(7227),
+      q(7214),
       q(0),
       ],
    q(warembori) => [
-      q(7245),
+      q(7232),
       q(0),
       ],
    q(wares) => [
-      q(7076),
+      q(7063),
       q(0),
       ],
    q(waris) => [
-      q(7238),
+      q(7225),
       q(0),
       ],
    q(waritai) => [
-      q(7092),
+      q(7079),
       q(0),
       ],
    q(wariyangga) => [
-      q(7230),
+      q(7217),
       q(0),
       ],
    q(warji) => [
-      q(7156),
+      q(7143),
       q(0),
       ],
    q(warkay-bipim) => [
-      q(1184),
+      q(1180),
       q(0),
       ],
    q(warlmanpa) => [
-      q(7232),
+      q(7219),
       q(0),
       ],
    q(warlpiri) => [
-      q(7099),
+      q(7086),
       q(0),
       ],
    q(warluwara) => [
-      q(7226),
+      q(7213),
       q(0),
       ],
    q(warnang) => [
-      q(7234),
+      q(7221),
       q(0),
       ],
    q(waropen) => [
-      q(7236),
+      q(7223),
       q(0),
       ],
    q(warrgamay) => [
-      q(7134),
+      q(7121),
       q(0),
       ],
    q(warrwa) => [
-      q(7274),
+      q(7261),
       q(0),
       ],
    q(waru) => [
-      q(7239),
+      q(7226),
       q(0),
       ],
    q(warumungu) => [
-      q(7233),
+      q(7220),
       q(0),
       ],
    q(waruna) => [
-      q(7240),
+      q(7227),
       q(0),
       ],
    q(warungu) => [
-      q(7228),
+      q(7215),
       q(0),
       ],
    q(warwar feni) => [
-      q(2848),
+      q(2840),
       q(0),
       ],
    q(wasa) => [
-      q(7249),
+      q(7236),
       q(0),
       ],
    q(wasco-wishram) => [
-      q(7070),
+      q(7057),
       q(0),
       ],
    q(wasembo) => [
-      q(2645),
+      q(2638),
       q(0),
       ],
    q(washo) => [
@@ -55608,107 +55574,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(waskia) => [
-      q(7247),
+      q(7234),
       q(0),
       ],
    q(wasu) => [
-      q(7250),
+      q(7237),
       q(0),
       ],
    q(watakataui) => [
-      q(7255),
+      q(7242),
       q(0),
       ],
    q(watam) => [
-      q(7087),
+      q(7074),
       q(0),
       ],
    q(wathawurrung) => [
-      q(7253),
+      q(7240),
       q(0),
       ],
    q(watiwa) => [
-      q(7252),
+      q(7239),
       q(0),
       ],
    q(watubela) => [
-      q(7075),
+      q(7062),
       q(0),
       ],
    q(waube) => [
-      q(3522),
+      q(3514),
       q(0),
       ],
    q(waura) => [
-      q(7084),
+      q(7071),
       q(0),
       ],
    q(wauyai) => [
-      q(7270),
+      q(7257),
       q(0),
       ],
    q(wawa) => [
-      q(7275),
+      q(7262),
       q(0),
       ],
    q(wawonii) => [
-      q(7222),
+      q(7209),
       q(0),
       ],
    q(waxianghua) => [
-      q(7276),
+      q(7263),
       q(0),
       ],
    q(wayampi) => [
-      q(5354),
+      q(5342),
       q(0),
       ],
    q(wayana) => [
-      q(7088),
+      q(7075),
       q(0),
       ],
    q(wayanad chetti) => [
-      q(1905),
+      q(1899),
       q(0),
       ],
    q(wayoro) => [
-      q(7282),
+      q(7269),
       q(0),
       ],
    q(wayu) => [
-      q(6997),
+      q(6984),
       q(0),
       ],
    q(wayuu) => [
-      q(2652),
+      q(2644),
       q(0),
       ],
    q(we northern) => [
-      q(7209),
+      q(7196),
       q(0),
       ],
    q(we southern) => [
-      q(2702),
+      q(2694),
       q(0),
       ],
    q(we western) => [
-      q(7114),
+      q(7101),
       q(0),
       ],
    q(wedau) => [
-      q(7115),
+      q(7102),
       q(0),
       ],
    q(weh) => [
-      q(7117),
+      q(7104),
       q(0),
       ],
    q(wejewa) => [
-      q(7126),
+      q(7113),
       q(0),
       ],
    q(weliki) => [
-      q(3442),
+      q(3435),
       q(0),
       ],
    q(welsh) => [
@@ -55716,59 +55682,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(welsh romani) => [
-      q(5836),
+      q(5824),
       q(0),
       ],
    q(wemale) => [
-      q(7120),
+      q(7107),
       q(0),
       ],
    q(wemba wemba) => [
-      q(7572),
+      q(7558),
       q(0),
       ],
    q(weme gbe) => [
-      q(7119),
+      q(7106),
       q(0),
       ],
    q(wergaia) => [
-      q(7116),
+      q(7103),
       q(0),
       ],
    q(weri) => [
-      q(7122),
+      q(7109),
       q(0),
       ],
    q(wersing) => [
-      q(3696),
+      q(3688),
       q(0),
       ],
    q(west albay bikol) => [
-      q(2345),
+      q(2338),
       q(0),
       ],
    q(west ambae) => [
-      q(5002),
+      q(4990),
       q(0),
       ],
    q(west berawan) => [
-      q(7847),
+      q(7830),
       q(0),
       ],
    q(west central banda) => [
-      q(1056),
+      q(1052),
       q(0),
       ],
    q(west central oromo) => [
-      q(2426),
+      q(2419),
       q(0),
       ],
    q(west coast bajau) => [
-      q(1109),
+      q(1105),
       q(0),
       ],
    q(west damar) => [
-      q(2146),
+      q(2140),
       q(0),
       ],
    q(west germanic languages) => [
@@ -55776,23 +55742,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(west goodenough) => [
-      q(1987),
+      q(1981),
       q(0),
       ],
    q(west kewa) => [
-      q(3286),
+      q(3278),
       q(0),
       ],
    q(west lembata) => [
-      q(3995),
+      q(3984),
       q(0),
       ],
    q(west makian) => [
-      q(4508),
+      q(4497),
       q(0),
       ],
    q(west masela) => [
-      q(4558),
+      q(4547),
       q(0),
       ],
    q(west slavic languages) => [
@@ -55800,67 +55766,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(west tarangan) => [
-      q(6832),
+      q(6820),
       q(0),
       ],
    q(west uvean) => [
-      q(6975),
+      q(6962),
       q(0),
       ],
    q(west yugur) => [
-      q(7614),
+      q(7600),
       q(0),
       ],
    q(west-central limba) => [
-      q(3919),
+      q(3909),
       q(0),
       ],
    q(western abnaki) => [
-      q(0564),
+      q(0563),
       q(0),
       ],
    q(western apache) => [
-      q(0857),
+      q(0855),
       q(0),
       ],
    q(western arrarnta) => [
-      q(0872),
+      q(0870),
       q(0),
       ],
    q(western balochi) => [
-      q(1176),
+      q(1172),
       q(0),
       ],
    q(western bolivian guarani) => [
-      q(2590),
+      q(2583),
       q(0),
       ],
    q(western bru) => [
-      q(1446),
+      q(1441),
       q(0),
       ],
    q(western bukidnon manobo) => [
-      q(4139),
+      q(4128),
       q(0),
       ],
    q(western canadian inuktitut) => [
-      q(2954),
+      q(2947),
       q(1),
       ],
    q(western cham) => [
-      q(1748),
+      q(1742),
       q(0),
       ],
    q(western dani) => [
-      q(2116),
+      q(2110),
       q(0),
       ],
    q(western durango nahuatl) => [
-      q(1021),
+      q(1017),
       q(0),
       ],
    q(western fijian) => [
-      q(7283),
+      q(7270),
       q(0),
       ],
    q(western frisian) => [
@@ -55868,59 +55834,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(western gurung) => [
-      q(2684),
+      q(2676),
       q(0),
       ],
    q(western highland chatino) => [
-      q(1903),
+      q(1897),
       q(0),
       ],
    q(western highland purepecha) => [
-      q(5652),
+      q(5640),
       q(0),
       ],
    q(western huasteca nahuatl) => [
-      q(4890),
+      q(4878),
       q(0),
       ],
    q(western juxtlahuaca mixtec) => [
-      q(3133),
+      q(3126),
       q(0),
       ],
    q(western kanjobal) => [
-      q(3494),
+      q(3487),
       q(0),
       ],
    q(western karaboro) => [
-      q(3777),
+      q(3767),
       q(0),
       ],
    q(western katu) => [
-      q(3657),
+      q(3649),
       q(0),
       ],
    q(western kayah) => [
-      q(3771),
+      q(3761),
       q(0),
       ],
    q(western keres) => [
-      q(3401),
+      q(3393),
       q(0),
       ],
    q(western krahn) => [
-      q(3597),
+      q(3589),
       q(0),
       ],
    q(western lalu) => [
-      q(7802),
+      q(7785),
       q(0),
       ],
    q(western lawa) => [
-      q(3852),
+      q(3842),
       q(0),
       ],
    q(western magar) => [
-      q(4519),
+      q(4508),
       q(0),
       ],
    q(western malayo-polynesian languages) => [
@@ -55928,39 +55894,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(western maninkakan) => [
-      q(4392),
+      q(4381),
       q(0),
       ],
    q(western mari) => [
-      q(4524),
+      q(4513),
       q(0),
       ],
    q(western mashan hmong) => [
-      q(2805),
+      q(2797),
       q(0),
       ],
    q(western mashan miao) => [
-      q(2805),
+      q(2797),
       q(1),
       ],
    q(western meohang) => [
-      q(5751),
+      q(5739),
       q(0),
       ],
    q(western muria) => [
-      q(4605),
+      q(4594),
       q(0),
       ],
    q(western neo-aramaic) => [
-      q(0788),
+      q(0786),
       q(0),
       ],
    q(western niger fulfulde) => [
-      q(2391),
+      q(2384),
       q(0),
       ],
    q(western ojibwa) => [
-      q(5234),
+      q(5223),
       q(0),
       ],
    q(western pahari languages) => [
@@ -55968,191 +55934,191 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(western panjabi) => [
-      q(5542),
+      q(5530),
       q(0),
       ],
    q(western parbate kham) => [
-      q(3396),
+      q(3388),
       q(0),
       ],
    q(western penan) => [
-      q(5544),
+      q(5532),
       q(0),
       ],
    q(western sisaala) => [
-      q(6251),
+      q(6239),
       q(0),
       ],
    q(western subanon) => [
-      q(6290),
+      q(6278),
       q(0),
       ],
    q(western tamang) => [
-      q(6444),
+      q(6433),
       q(0),
       ],
    q(western tawbuid) => [
-      q(6805),
+      q(6792),
       q(0),
       ],
    q(western totonac) => [
-      q(6696),
+      q(6684),
       q(0),
       ],
    q(western tunebo) => [
-      q(6623),
+      q(6611),
       q(0),
       ],
    q(western xiangxi miao) => [
-      q(4417),
+      q(4406),
       q(0),
       ],
    q(western xwla gbe) => [
-      q(7568),
+      q(7554),
       q(0),
       ],
    q(western yiddish) => [
-      q(7661),
+      q(7646),
       q(0),
       ],
    q(westphalien) => [
-      q(7121),
+      q(7108),
       q(0),
       ],
    q(wetamut) => [
-      q(7273),
+      q(7260),
       q(0),
       ],
    q(wewaw) => [
-      q(7113),
+      q(7100),
       q(0),
       ],
    q(weyto) => [
-      q(7223),
+      q(7210),
       q(0),
       ],
    q(white gelao) => [
-      q(2535),
+      q(2527),
       q(0),
       ],
    q(white lachi) => [
-      q(4111),
+      q(4100),
       q(0),
       ],
    q(whitesands) => [
-      q(6635),
+      q(6623),
       q(0),
       ],
    q(wiarumus) => [
-      q(6772),
+      q(6759),
       q(0),
       ],
    q(wichi lhamtes guisnay) => [
-      q(4711),
+      q(4699),
       q(0),
       ],
    q(wichi lhamtes nocten) => [
-      q(4580),
+      q(4569),
       q(0),
       ],
    q(wichi lhamtes vejoz) => [
-      q(7176),
+      q(7163),
       q(0),
       ],
    q(wichita) => [
-      q(7140),
+      q(7127),
       q(0),
       ],
    q(wik-epa) => [
-      q(7141),
+      q(7128),
       q(0),
       ],
    q(wik-iiyanh) => [
-      q(7146),
+      q(7133),
       q(0),
       ],
    q(wik-keyangan) => [
-      q(7142),
+      q(7129),
       q(0),
       ],
    q(wik-me'anha) => [
-      q(7144),
+      q(7131),
       q(0),
       ],
    q(wik-mungkan) => [
-      q(7149),
+      q(7136),
       q(0),
       ],
    q(wik-ngathana) => [
-      q(7143),
+      q(7130),
       q(0),
       ],
    q(wikalkan) => [
-      q(7147),
+      q(7134),
       q(0),
       ],
    q(wikngenchera) => [
-      q(7258),
+      q(7245),
       q(0),
       ],
    q(wilawila) => [
-      q(7148),
+      q(7135),
       q(0),
       ],
    q(wintu) => [
-      q(7206),
+      q(7193),
       q(0),
       ],
    q(winye) => [
-      q(3620),
+      q(3612),
       q(0),
       ],
    q(wipi) => [
-      q(2474),
+      q(2467),
       q(0),
       ],
    q(wiradhuri) => [
-      q(7229),
+      q(7216),
       q(0),
       ],
    q(wirafed) => [
-      q(7151),
+      q(7138),
       q(0),
       ],
    q(wirangu) => [
-      q(7133),
+      q(7120),
       q(0),
       ],
    q(wiru) => [
-      q(7152),
+      q(7139),
       q(0),
       ],
    q(wiyot) => [
-      q(7154),
+      q(7141),
       q(0),
       ],
    q(woccon) => [
-      q(7562),
+      q(7548),
       q(0),
       ],
    q(wogamusin) => [
-      q(7214),
+      q(7201),
       q(0),
       ],
    q(wogeo) => [
-      q(7210),
+      q(7197),
       q(0),
       ],
    q(woi) => [
-      q(7104),
+      q(7091),
       q(0),
       ],
    q(woiwurrung) => [
-      q(7280),
+      q(7267),
       q(0),
       ],
    q(wojenaka) => [
-      q(3142),
+      q(3135),
       q(0),
       ],
    q(wolaitta) => [
@@ -56160,11 +56126,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(wolane) => [
-      q(7166),
+      q(7153),
       q(0),
       ],
    q(wolani) => [
-      q(7211),
+      q(7198),
       q(0),
       ],
    q(wolaytta) => [
@@ -56172,11 +56138,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(woleaian) => [
-      q(7212),
+      q(7199),
       q(0),
       ],
    q(wolio) => [
-      q(7172),
+      q(7159),
       q(0),
       ],
    q(wolof) => [
@@ -56184,183 +56150,183 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(wom (nigeria)) => [
-      q(7217),
+      q(7204),
       q(0),
       ],
    q(wom (papua new guinea)) => [
-      q(7189),
+      q(7176),
       q(0),
       ],
    q(womo) => [
-      q(7193),
+      q(7180),
       q(0),
       ],
    q(wongo) => [
-      q(7218),
+      q(7205),
       q(0),
       ],
    q(woods cree) => [
-      q(1931),
+      q(1925),
       q(0),
       ],
    q(woria) => [
-      q(7220),
+      q(7207),
       q(0),
       ],
    q(worimi) => [
-      q(3242),
+      q(3234),
       q(0),
       ],
    q(worodougou) => [
-      q(3156),
+      q(3149),
       q(0),
       ],
    q(worrorra) => [
-      q(7235),
+      q(7222),
       q(0),
       ],
    q(wotapuri-katarqalai) => [
-      q(7251),
+      q(7238),
       q(0),
       ],
    q(wotjobaluk) => [
-      q(7571),
+      q(7557),
       q(0),
       ],
    q(wotu) => [
-      q(7257),
+      q(7244),
       q(0),
       ],
    q(woun meu) => [
-      q(5024),
+      q(5011),
       q(0),
       ],
    q(written oirat) => [
-      q(7569),
+      q(7555),
       q(0),
       ],
    q(wu chinese) => [
-      q(7267),
+      q(7254),
       q(0),
       ],
    q(wuding-luquan yi) => [
-      q(7804),
+      q(7787),
       q(0),
       ],
    q(wudu) => [
-      q(7260),
+      q(7247),
       q(0),
       ],
    q(wuliwuli) => [
-      q(7175),
+      q(7162),
       q(0),
       ],
    q(wulna) => [
-      q(7269),
+      q(7256),
       q(0),
       ],
    q(wumboko) => [
-      q(1413),
+      q(1408),
       q(0),
       ],
    q(wumbvu) => [
-      q(7263),
+      q(7250),
       q(0),
       ],
    q(wumeng nasu) => [
-      q(7807),
+      q(7790),
       q(0),
       ],
    q(wunai bunu) => [
-      q(1559),
+      q(1554),
       q(0),
       ],
    q(wunambal) => [
-      q(7259),
+      q(7246),
       q(0),
       ],
    q(wunumara) => [
-      q(7202),
+      q(7189),
       q(0),
       ],
    q(wurrugu) => [
-      q(7265),
+      q(7252),
       q(0),
       ],
    q(wusa nasu) => [
-      q(7660),
+      q(7645),
       q(0),
       ],
    q(wushi) => [
-      q(1454),
+      q(1449),
       q(0),
       ],
    q(wusi) => [
-      q(7246),
+      q(7233),
       q(0),
       ],
    q(wutung) => [
-      q(7266),
+      q(7253),
       q(0),
       ],
    q(wutunhua) => [
-      q(7261),
+      q(7248),
       q(0),
       ],
    q(wuvulu-aua) => [
-      q(7268),
+      q(7255),
       q(0),
       ],
    q(wuzlam) => [
-      q(6877),
+      q(6865),
       q(0),
       ],
    q(wyandot) => [
-      q(7278),
+      q(7265),
       q(0),
       ],
    q(wymysorys) => [
-      q(7281),
+      q(7268),
       q(0),
       ],
    q(xaasongaxango) => [
-      q(3185),
+      q(3178),
       q(0),
       ],
    q(xadani zapotec) => [
-      q(7841),
+      q(7824),
       q(0),
       ],
    q(xakriaba) => [
-      q(7397),
+      q(7384),
       q(0),
       ],
    q(xamtanga) => [
-      q(7293),
+      q(7280),
       q(0),
       ],
    q(xanaguia zapotec) => [
-      q(7969),
+      q(7952),
       q(0),
       ],
    q(xaracuu) => [
-      q(0796),
+      q(0794),
       q(0),
       ],
    q(xaragure) => [
-      q(0994),
+      q(0990),
       q(0),
       ],
    q(xavante) => [
-      q(7301),
+      q(7288),
       q(0),
       ],
    q(xerente) => [
-      q(7346),
+      q(7333),
       q(0),
       ],
    q(xeta) => [
-      q(7348),
+      q(7335),
       q(0),
       ],
    q(xhosa) => [
@@ -56368,163 +56334,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(xiang chinese) => [
-      q(2853),
+      q(2845),
       q(0),
       ],
    q(xibe) => [
-      q(6075),
+      q(6063),
       q(0),
       ],
    q(xicotepec de juarez totonac) => [
-      q(6656),
+      q(6644),
       q(0),
       ],
    q(xinca) => [
-      q(7373),
+      q(7360),
       q(0),
       ],
    q(xingu asurini) => [
-      q(0899),
+      q(0897),
       q(0),
       ],
    q(xipaya) => [
-      q(7378),
+      q(7365),
       q(0),
       ],
    q(xipinawa) => [
-      q(7374),
+      q(7361),
       q(0),
       ],
    q(xiri) => [
-      q(7371),
+      q(7358),
       q(0),
       ],
    q(xiriana) => [
-      q(7375),
+      q(7362),
       q(0),
       ],
    q(xishanba lalo) => [
-      q(7806),
+      q(7789),
       q(0),
       ],
    q(xokleng) => [
-      q(7462),
+      q(7449),
       q(0),
       ],
    q(xukuru) => [
-      q(7465),
+      q(7452),
       q(0),
       ],
    q(xwela gbe) => [
-      q(7564),
+      q(7550),
       q(0),
       ],
    q(yaaku) => [
-      q(4606),
+      q(4595),
       q(0),
       ],
    q(yabaana) => [
-      q(7621),
+      q(7607),
       q(0),
       ],
    q(yabarana) => [
-      q(7603),
+      q(7589),
       q(0),
       ],
    q(yabem) => [
-      q(3052),
+      q(3044),
       q(0),
       ],
    q(yaben) => [
-      q(7620),
+      q(7606),
       q(0),
       ],
    q(yabong) => [
-      q(7622),
+      q(7608),
       q(0),
       ],
    q(yabula yabula) => [
-      q(7814),
+      q(7797),
       q(0),
       ],
    q(yace) => [
-      q(2247),
+      q(2240),
       q(0),
       ],
    q(yaeyama) => [
-      q(5894),
+      q(5883),
       q(0),
       ],
    q(yafi) => [
-      q(7127),
+      q(7114),
       q(0),
       ],
    q(yagara) => [
-      q(7810),
+      q(7793),
       q(0),
       ],
    q(yagaria) => [
-      q(7652),
+      q(7637),
       q(0),
       ],
    q(yagnobi) => [
-      q(7596),
+      q(7582),
       q(0),
       ],
    q(yagomi) => [
-      q(7650),
+      q(7635),
       q(0),
       ],
    q(yagua) => [
-      q(7591),
+      q(7577),
       q(0),
       ],
    q(yagwoia) => [
-      q(7655),
+      q(7640),
       q(0),
       ],
    q(yahadian) => [
-      q(4833),
+      q(4821),
       q(0),
       ],
    q(yahang) => [
-      q(5796),
+      q(5784),
       q(0),
       ],
    q(yahuna) => [
-      q(7731),
+      q(7714),
       q(0),
       ],
    q(yaka (central african republic)) => [
-      q(0991),
+      q(0987),
       q(0),
       ],
    q(yaka (congo)) => [
-      q(3044),
+      q(3036),
       q(0),
       ],
    q(yaka (democratic republic of congo)) => [
-      q(7593),
+      q(7579),
       q(0),
       ],
    q(yakaikeke) => [
-      q(7680),
+      q(7665),
       q(0),
       ],
    q(yakama) => [
-      q(7598),
+      q(7584),
       q(0),
       ],
    q(yakan) => [
-      q(7677),
+      q(7662),
       q(0),
       ],
    q(yakha) => [
-      q(7615),
+      q(7601),
       q(0),
       ],
    q(yakoma) => [
-      q(7688),
+      q(7673),
       q(0),
       ],
    q(yakut) => [
@@ -56532,175 +56498,171 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yala) => [
-      q(7612),
+      q(7598),
       q(0),
       ],
    q(yalahatan) => [
-      q(3057),
+      q(3049),
       q(0),
       ],
    q(yalakalore) => [
-      q(7582),
+      q(7568),
       q(0),
       ],
    q(yalalag zapotec) => [
-      q(7949),
+      q(7932),
       q(0),
       ],
    q(yalarnnga) => [
-      q(7698),
+      q(7683),
       q(0),
       ],
    q(yale) => [
-      q(4777),
+      q(4765),
       q(0),
       ],
    q(yaleba) => [
-      q(7690),
+      q(7675),
       q(0),
       ],
    q(yalunka) => [
-      q(7599),
+      q(7585),
       q(0),
       ],
    q(yamana) => [
-      q(7594),
+      q(7580),
       q(0),
       ],
    q(yamap) => [
-      q(7713),
+      q(7698),
       q(0),
       ],
    q(yamba) => [
-      q(7600),
+      q(7586),
       q(0),
       ],
    q(yambes) => [
-      q(7701),
+      q(7686),
       q(0),
       ],
    q(yambeta) => [
-      q(7605),
+      q(7591),
       q(0),
       ],
    q(yamdena) => [
-      q(3126),
+      q(3119),
       q(0),
       ],
    q(yameo) => [
-      q(7704),
+      q(7689),
       q(0),
       ],
    q(yami) => [
-      q(6379),
+      q(6368),
       q(0),
       ],
    q(yaminahua) => [
-      q(7588),
+      q(7574),
       q(0),
       ],
    q(yamna) => [
-      q(7711),
+      q(7696),
       q(0),
       ],
    q(yamongeri) => [
-      q(7705),
+      q(7690),
       q(0),
       ],
    q(yamphu) => [
-      q(7616),
+      q(7602),
       q(0),
       ],
    q(yan-nhangu) => [
-      q(3066),
+      q(3058),
       q(0),
       ],
    q(yana) => [
-      q(7727),
+      q(7710),
       q(0),
       ],
    q(yanahuanca pasco quechua) => [
-      q(5704),
+      q(5692),
       q(0),
       ],
    q(yanda) => [
-      q(7629),
+      q(7615),
       q(0),
       ],
    q(yanda dom dogon) => [
-      q(2208),
+      q(2202),
       q(0),
       ],
    q(yandjibara) => [
-      q(7579),
+      q(7565),
       q(0),
       ],
    q(yandruwandha) => [
-      q(7721),
+      q(7705),
       q(0),
       ],
    q(yanesha') => [
-      q(0771),
+      q(0769),
       q(0),
       ],
    q(yang zhuang) => [
-      q(7986),
+      q(7969),
       q(0),
       ],
    q(yangben) => [
-      q(7607),
-      q(0),
-      ],
-   q(yangho) => [
-      q(7724),
+      q(7593),
       q(0),
       ],
    q(yangkam) => [
-      q(1473),
+      q(1468),
       q(0),
       ],
    q(yangman) => [
-      q(3136),
+      q(3129),
       q(0),
       ],
    q(yango) => [
-      q(7723),
+      q(7707),
       q(0),
       ],
    q(yangulam) => [
-      q(7726),
+      q(7709),
       q(0),
       ],
    q(yangum dey) => [
-      q(7631),
+      q(7617),
       q(0),
       ],
    q(yangum gel) => [
-      q(7649),
+      q(7634),
       q(0),
       ],
    q(yangum mon) => [
-      q(7712),
+      q(7697),
       q(0),
       ],
    q(yankunytjatjara) => [
-      q(3244),
+      q(3236),
       q(0),
       ],
    q(yanomami) => [
-      q(7105),
+      q(7092),
       q(0),
       ],
    q(yanomamo) => [
-      q(2669),
+      q(2661),
       q(0),
       ],
    q(yansi) => [
-      q(7730),
+      q(7713),
       q(0),
       ],
    q(yanyuwa) => [
-      q(3060),
+      q(3052),
       q(0),
       ],
    q(yao) => [
@@ -56708,11 +56670,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yaosakor asmat) => [
-      q(0909),
+      q(0907),
       q(0),
       ],
    q(yaoure) => [
-      q(7753),
+      q(7736),
       q(0),
       ],
    q(yapese) => [
@@ -56720,399 +56682,395 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yapunda) => [
-      q(7645),
+      q(7630),
       q(0),
       ],
    q(yaqay) => [
-      q(3061),
+      q(3053),
       q(0),
       ],
    q(yaqui) => [
-      q(7602),
+      q(7588),
       q(0),
       ],
    q(yarawata) => [
-      q(7760),
+      q(7743),
       q(0),
       ],
    q(yardliyawarra) => [
-      q(7811),
+      q(7794),
       q(0),
       ],
    q(yareba) => [
-      q(7752),
+      q(7735),
       q(0),
       ],
    q(yareni zapotec) => [
-      q(7824),
+      q(7807),
       q(0),
       ],
    q(yari) => [
-      q(7754),
+      q(7737),
       q(0),
       ],
    q(yarluyandi) => [
-      q(7761),
+      q(7744),
       q(0),
       ],
    q(yarsun) => [
-      q(7759),
+      q(7742),
       q(0),
       ],
    q(yasa) => [
-      q(7684),
+      q(7669),
       q(0),
       ],
    q(yassic) => [
-      q(7762),
+      q(7745),
       q(0),
       ],
    q(yatay) => [
-      q(7776),
+      q(7759),
       q(0),
       ],
    q(yatee zapotec) => [
-      q(7979),
+      q(7962),
       q(0),
       ],
    q(yatzachi zapotec) => [
-      q(7839),
+      q(7822),
       q(0),
       ],
    q(yau (morobe province)) => [
-      q(7794),
+      q(7777),
       q(0),
       ],
    q(yau (sandaun province)) => [
-      q(7816),
+      q(7799),
       q(0),
       ],
    q(yaul) => [
-      q(7689),
+      q(7674),
       q(0),
       ],
    q(yauma) => [
-      q(7609),
+      q(7595),
       q(0),
       ],
    q(yaur) => [
-      q(3064),
+      q(3056),
       q(0),
       ],
    q(yautepec zapotec) => [
-      q(7930),
+      q(7913),
       q(0),
       ],
    q(yauyos quechua) => [
-      q(5708),
+      q(5696),
       q(0),
       ],
    q(yavitero) => [
-      q(7799),
+      q(7782),
       q(0),
       ],
    q(yawa) => [
-      q(7798),
+      q(7781),
       q(0),
       ],
    q(yawalapiti) => [
-      q(7608),
+      q(7594),
       q(0),
       ],
    q(yawanawa) => [
-      q(7803),
+      q(7786),
       q(0),
       ],
    q(yawarawarga) => [
-      q(7808),
+      q(7791),
       q(0),
       ],
    q(yaweyuha) => [
-      q(7624),
+      q(7610),
       q(0),
       ],
    q(yawijibaya) => [
-      q(3076),
+      q(3068),
       q(0),
       ],
    q(yawiyo) => [
-      q(7623),
+      q(7609),
       q(0),
       ],
    q(yawuru) => [
-      q(7805),
+      q(7788),
       q(0),
       ],
    q(yaygir) => [
-      q(7578),
+      q(7564),
       q(0),
       ],
    q(yazgulyam) => [
-      q(7595),
+      q(7581),
       q(0),
       ],
    q(yecuatla totonac) => [
-      q(6579),
+      q(6567),
       q(0),
       ],
    q(yei) => [
-      q(3086),
+      q(3078),
       q(0),
       ],
    q(yekhee) => [
-      q(2315),
+      q(2308),
       q(0),
       ],
    q(yekora) => [
-      q(7685),
+      q(7670),
       q(0),
       ],
    q(yela) => [
-      q(7640),
+      q(7625),
       q(0),
       ],
    q(yele) => [
-      q(7691),
+      q(7676),
       q(0),
       ],
    q(yelmek) => [
-      q(3088),
+      q(3080),
       q(0),
       ],
    q(yelogu) => [
-      q(7692),
+      q(7677),
       q(0),
       ],
    q(yemba) => [
-      q(7613),
+      q(7599),
       q(0),
       ],
    q(yemsa) => [
-      q(3138),
+      q(3131),
       q(0),
       ],
    q(yendang) => [
-      q(7729),
+      q(7712),
       q(0),
       ],
    q(yeni) => [
-      q(7638),
+      q(7623),
       q(0),
       ],
    q(yeniche) => [
-      q(7636),
+      q(7621),
       q(0),
       ],
    q(yerakai) => [
-      q(7751),
+      q(7734),
       q(0),
       ],
    q(yeretuar) => [
-      q(2605),
+      q(2598),
       q(0),
       ],
    q(yerong) => [
-      q(7758),
+      q(7741),
       q(0),
       ],
    q(yerukula) => [
-      q(7644),
+      q(7629),
       q(0),
       ],
    q(yessan-mayo) => [
-      q(7770),
+      q(7753),
       q(0),
       ],
    q(yetfa) => [
-      q(7643),
+      q(7628),
       q(0),
       ],
    q(yevanic) => [
-      q(7639),
+      q(7624),
       q(0),
       ],
    q(yeyi) => [
-      q(7646),
+      q(7631),
       q(0),
       ],
    q(yiddish) => [
       q(0474),
       q(0),
       ],
-   q(yiddish sign language) => [
-      q(7634),
-      q(0),
-      ],
    q(yidgha) => [
-      q(7632),
+      q(7618),
       q(0),
       ],
    q(yidiny) => [
-      q(7662),
+      q(7647),
       q(0),
       ],
    q(yil) => [
-      q(7694),
+      q(7679),
       q(0),
       ],
    q(yimas) => [
-      q(7637),
+      q(7622),
       q(0),
       ],
    q(yimchungru naga) => [
-      q(7666),
+      q(7651),
       q(0),
       ],
    q(yinbaw karen) => [
-      q(3694),
+      q(3686),
       q(0),
       ],
    q(yinchia) => [
-      q(7667),
+      q(7652),
       q(0),
       ],
    q(yindjibarndi) => [
-      q(7663),
+      q(7648),
       q(0),
       ],
    q(yindjilandji) => [
-      q(7665),
+      q(7650),
       q(0),
       ],
    q(yine) => [
-      q(5460),
+      q(5449),
       q(0),
       ],
    q(yinggarda) => [
-      q(7659),
+      q(7644),
       q(0),
       ],
    q(yinhawangka) => [
-      q(7801),
+      q(7784),
       q(0),
       ],
    q(yiningayi) => [
-      q(7648),
+      q(7633),
       q(0),
       ],
    q(yintale) => [
-      q(3698),
+      q(3690),
       q(1),
       ],
    q(yintale karen) => [
-      q(3698),
+      q(3690),
       q(0),
       ],
    q(yinwum) => [
-      q(7812),
+      q(7795),
       q(0),
       ],
    q(yipma) => [
-      q(1611),
+      q(1605),
       q(1),
       ],
    q(yir yoront) => [
-      q(7815),
+      q(7798),
       q(0),
       ],
    q(yirandali) => [
-      q(3947),
+      q(3936),
       q(0),
       ],
    q(yirrk-mel) => [
-      q(7757),
+      q(7740),
       q(0),
       ],
    q(yis) => [
-      q(7671),
+      q(7656),
       q(0),
       ],
    q(yitha yitha) => [
-      q(7526),
+      q(7512),
       q(0),
       ],
    q(yiwom) => [
-      q(2487),
+      q(2480),
       q(0),
       ],
    q(yoba) => [
-      q(7732),
+      q(7715),
       q(0),
       ],
    q(yocoboue dida) => [
-      q(2653),
+      q(2645),
       q(0),
       ],
    q(yogad) => [
-      q(7733),
+      q(7716),
       q(0),
       ],
    q(yoidik) => [
-      q(7633),
+      q(7619),
       q(0),
       ],
    q(yoke) => [
-      q(7679),
+      q(7664),
       q(0),
       ],
    q(yokuts) => [
-      q(7735),
+      q(7718),
       q(0),
       ],
    q(yola) => [
-      q(7736),
+      q(7719),
       q(0),
       ],
    q(yolnu sign language) => [
-      q(7653),
+      q(7638),
       q(0),
       ],
    q(yoloxochitl mixtec) => [
-      q(7541),
+      q(7527),
       q(0),
       ],
    q(yom) => [
-      q(5469),
+      q(5458),
       q(0),
       ],
    q(yombe) => [
-      q(7737),
+      q(7720),
       q(0),
       ],
    q(yonaguni) => [
-      q(7734),
+      q(7717),
       q(0),
       ],
    q(yong) => [
-      q(7728),
+      q(7711),
       q(0),
       ],
    q(yongbei zhuang) => [
-      q(7985),
+      q(7968),
       q(0),
       ],
    q(yongkom) => [
-      q(7738),
+      q(7721),
       q(0),
       ],
    q(yongnan zhuang) => [
-      q(7988),
+      q(7971),
       q(0),
       ],
    q(yopno) => [
-      q(7793),
+      q(7776),
       q(0),
       ],
    q(yora) => [
-      q(4583),
+      q(4572),
       q(0),
       ],
    q(yoron) => [
-      q(7740),
+      q(7723),
       q(0),
       ],
    q(yorta yorta) => [
-      q(7584),
+      q(7570),
       q(0),
       ],
    q(yoruba) => [
@@ -57120,99 +57078,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yosondua mixtec) => [
-      q(4477),
+      q(4466),
       q(0),
       ],
    q(yotti) => [
-      q(7739),
+      q(7722),
       q(0),
       ],
    q(youjiang zhuang) => [
-      q(7987),
+      q(7970),
       q(0),
       ],
    q(youle jinuo) => [
-      q(3112),
+      q(3104),
       q(0),
       ],
    q(younuo bunu) => [
-      q(1504),
+      q(1499),
       q(0),
       ],
    q(yout wam) => [
-      q(7775),
+      q(7758),
       q(0),
       ],
    q(yoy) => [
-      q(7741),
+      q(7724),
       q(0),
       ],
    q(yuanga) => [
-      q(5115),
+      q(5103),
       q(0),
       ],
    q(yucatec maya) => [
-      q(7777),
+      q(7760),
       q(1),
       ],
    q(yucatec maya sign language) => [
-      q(4543),
+      q(4532),
       q(0),
       ],
    q(yucateco) => [
-      q(7777),
+      q(7760),
       q(0),
       ],
    q(yuchi) => [
-      q(7779),
+      q(7762),
       q(0),
       ],
    q(yucuane mixtec) => [
-      q(4616),
+      q(4605),
       q(0),
       ],
    q(yucuna) => [
-      q(7627),
+      q(7613),
       q(0),
       ],
    q(yue chinese) => [
-      q(7781),
+      q(7764),
       q(0),
       ],
    q(yug) => [
-      q(7783),
+      q(7766),
       q(0),
       ],
    q(yugambal) => [
-      q(7778),
+      q(7761),
       q(0),
       ],
    q(yugoslavian sign language) => [
-      q(7765),
+      q(7748),
       q(0),
       ],
    q(yugul) => [
-      q(7654),
+      q(7639),
       q(0),
       ],
    q(yuhup) => [
-      q(7589),
+      q(7575),
       q(0),
       ],
    q(yuki) => [
-      q(7786),
+      q(7769),
       q(0),
       ],
    q(yukpa) => [
-      q(7790),
+      q(7773),
       q(0),
       ],
    q(yukuben) => [
-      q(7619),
+      q(7605),
       q(0),
       ],
    q(yulu) => [
-      q(7787),
+      q(7770),
       q(0),
       ],
    q(yupik languages) => [
@@ -57220,79 +57178,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yuqui) => [
-      q(7791),
+      q(7774),
       q(0),
       ],
    q(yuracare) => [
-      q(7797),
+      q(7780),
+      q(0),
+      ],
+   q(yurats) => [
+      q(5859),
       q(0),
       ],
    q(yurok) => [
-      q(7792),
+      q(7775),
       q(0),
       ],
    q(yuru) => [
-      q(3948),
+      q(3937),
       q(0),
       ],
    q(yuruti) => [
-      q(7784),
+      q(7767),
       q(0),
       ],
    q(yutanduchi mixtec) => [
-      q(4126),
+      q(4115),
       q(0),
       ],
    q(yuwana) => [
-      q(7606),
+      q(7592),
       q(0),
       ],
    q(yuyu) => [
-      q(7813),
+      q(7796),
       q(0),
       ],
    q(zaachila zapotec) => [
-      q(7978),
+      q(7961),
       q(0),
       ],
    q(zabana) => [
-      q(3393),
+      q(3385),
       q(0),
       ],
    q(zacatepec chatino) => [
-      q(1907),
+      q(1901),
       q(0),
       ],
    q(zacatlan-ahuacatlan-tepetzintla nahuatl) => [
-      q(4879),
+      q(4867),
       q(0),
       ],
    q(zaghawa) => [
-      q(7826),
+      q(7809),
       q(0),
       ],
    q(zaiwa) => [
-      q(0912),
+      q(0910),
       q(0),
       ],
    q(zakhring) => [
-      q(7882),
+      q(7865),
       q(0),
       ],
    q(zambian sign language) => [
-      q(7964),
+      q(7947),
       q(0),
       ],
    q(zan gula) => [
-      q(7917),
+      q(7900),
       q(0),
       ],
    q(zanaki) => [
-      q(7830),
+      q(7813),
       q(0),
       ],
    q(zande (individual language)) => [
-      q(7918),
+      q(7901),
       q(0),
       ],
    q(zande languages) => [
@@ -57300,19 +57262,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zangskari) => [
-      q(7838),
+      q(7821),
       q(0),
       ],
    q(zangwal) => [
-      q(7827),
+      q(7810),
       q(0),
       ],
    q(zaniza zapotec) => [
-      q(7951),
+      q(7934),
       q(0),
       ],
    q(zaparo) => [
-      q(7959),
+      q(7942),
       q(0),
       ],
    q(zapotec) => [
@@ -57320,39 +57282,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zaramo) => [
-      q(7829),
+      q(7812),
       q(0),
       ],
    q(zari) => [
-      q(7843),
+      q(7826),
       q(0),
       ],
    q(zarma) => [
-      q(2067),
+      q(2061),
       q(0),
       ],
    q(zarphatic) => [
-      q(7960),
+      q(7943),
       q(0),
       ],
    q(zauzou) => [
-      q(7831),
+      q(7814),
       q(0),
       ],
    q(zay) => [
-      q(7984),
+      q(7967),
       q(0),
       ],
    q(zayein karen) => [
-      q(3735),
+      q(3725),
       q(0),
       ],
    q(zayse-zergulla) => [
-      q(7842),
+      q(7825),
       q(0),
       ],
    q(zaysete) => [
-      q(7842),
+      q(7825),
       q(1),
       ],
    q(zaza) => [
@@ -57364,31 +57326,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(5),
       ],
    q(zazao) => [
-      q(3055),
+      q(3047),
       q(0),
       ],
    q(zeem) => [
-      q(7980),
+      q(7963),
       q(0),
       ],
    q(zeeuws) => [
-      q(7851),
+      q(7834),
       q(0),
       ],
    q(zemba) => [
-      q(2031),
+      q(2025),
       q(0),
       ],
    q(zeme naga) => [
-      q(5190),
+      q(5179),
       q(0),
       ],
    q(zemgalian) => [
-      q(7586),
+      q(7572),
       q(0),
       ],
    q(zenag) => [
-      q(7852),
+      q(7835),
       q(0),
       ],
    q(zenaga) => [
@@ -57396,27 +57358,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zenzontepec chatino) => [
-      q(1940),
+      q(1934),
       q(0),
       ],
    q(zerenkel) => [
-      q(7958),
+      q(7941),
       q(0),
       ],
    q(zhaba) => [
-      q(7859),
+      q(7842),
       q(0),
       ],
    q(zhang-zhung) => [
-      q(7585),
+      q(7571),
       q(0),
       ],
    q(zhire) => [
-      q(7861),
+      q(7844),
       q(0),
       ],
    q(zhoa) => [
-      q(7863),
+      q(7846),
       q(0),
       ],
    q(zhuang) => [
@@ -57424,75 +57386,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zia) => [
-      q(7864),
+      q(7847),
       q(0),
       ],
    q(zialo) => [
-      q(7867),
+      q(7850),
       q(0),
       ],
    q(zigula) => [
-      q(7871),
+      q(7854),
       q(0),
       ],
    q(zimakani) => [
-      q(7866),
+      q(7849),
       q(0),
       ],
    q(zimba) => [
-      q(7892),
+      q(7875),
       q(0),
       ],
    q(zimbabwe sign language) => [
-      q(7865),
+      q(7848),
       q(0),
       ],
    q(zinza) => [
-      q(7869),
+      q(7852),
       q(0),
       ],
    q(zire) => [
-      q(6050),
+      q(6038),
       q(0),
       ],
    q(ziriya) => [
-      q(7870),
+      q(7853),
       q(0),
       ],
    q(zizilivakan) => [
-      q(7872),
+      q(7855),
       q(0),
       ],
    q(zo'e) => [
-      q(5643),
+      q(5631),
       q(0),
       ],
    q(zokhuo) => [
-      q(7819),
+      q(7802),
       q(0),
       ],
    q(zoogocho zapotec) => [
-      q(7945),
+      q(7928),
       q(0),
       ],
    q(zoroastrian dari) => [
-      q(2449),
+      q(2442),
       q(0),
       ],
    q(zorop) => [
-      q(7127),
+      q(7114),
       q(1),
       ],
    q(zotung chin) => [
-      q(1942),
+      q(1936),
       q(0),
       ],
    q(zou) => [
-      q(7924),
+      q(7907),
       q(0),
       ],
    q(zulgo-gemzek) => [
-      q(2576),
+      q(2569),
       q(0),
       ],
    q(zulu) => [
@@ -57500,11 +57462,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zumaya) => [
-      q(7983),
+      q(7966),
       q(0),
       ],
    q(zumbun) => [
-      q(3124),
+      q(3117),
       q(0),
       ],
    q(zuni) => [
@@ -57512,11 +57474,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zuojiang zhuang) => [
-      q(7990),
+      q(7973),
       q(0),
       ],
    q(zyphe chin) => [
-      q(7989),
+      q(7972),
       q(0),
       ],
 };
@@ -58309,24 +58271,20 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0548),
          q(0),
          ],
-      q(aam) => [
-         q(0549),
-         q(0),
-         ],
       q(aan) => [
-         q(0550),
+         q(0549),
          q(0),
          ],
       q(aao) => [
-         q(0551),
+         q(0550),
          q(0),
          ],
       q(aap) => [
-         q(0552),
+         q(0551),
          q(0),
          ],
       q(aaq) => [
-         q(0553),
+         q(0552),
          q(0),
          ],
       q(aar) => [
@@ -58334,15 +58292,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aas) => [
-         q(0554),
+         q(0553),
          q(0),
          ],
       q(aat) => [
-         q(0555),
+         q(0554),
          q(0),
          ],
       q(aau) => [
-         q(0556),
+         q(0555),
          q(0),
          ],
       q(aav) => [
@@ -58350,55 +58308,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aaw) => [
-         q(0557),
+         q(0556),
          q(0),
          ],
       q(aax) => [
-         q(0558),
+         q(0557),
          q(0),
          ],
       q(aaz) => [
-         q(0559),
+         q(0558),
          q(0),
          ],
       q(aba) => [
-         q(0560),
+         q(0559),
          q(0),
          ],
       q(abb) => [
-         q(0561),
+         q(0560),
          q(0),
          ],
       q(abc) => [
-         q(0562),
+         q(0561),
          q(0),
          ],
       q(abd) => [
-         q(0563),
+         q(0562),
          q(0),
          ],
       q(abe) => [
-         q(0564),
+         q(0563),
          q(0),
          ],
       q(abf) => [
-         q(0565),
+         q(0564),
          q(0),
          ],
       q(abg) => [
-         q(0566),
+         q(0565),
          q(0),
          ],
       q(abh) => [
-         q(0567),
+         q(0566),
          q(0),
          ],
       q(abi) => [
-         q(0568),
+         q(0567),
          q(0),
          ],
       q(abj) => [
-         q(0569),
+         q(0568),
          q(0),
          ],
       q(abk) => [
@@ -58406,75 +58364,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(abl) => [
-         q(0570),
+         q(0569),
          q(0),
          ],
       q(abm) => [
-         q(0571),
+         q(0570),
          q(0),
          ],
       q(abn) => [
-         q(0572),
+         q(0571),
          q(0),
          ],
       q(abo) => [
-         q(0573),
+         q(0572),
          q(0),
          ],
       q(abp) => [
-         q(0574),
+         q(0573),
          q(0),
          ],
       q(abq) => [
-         q(0575),
+         q(0574),
          q(0),
          ],
       q(abr) => [
-         q(0576),
+         q(0575),
          q(0),
          ],
       q(abs) => [
-         q(0577),
+         q(0576),
          q(0),
          ],
       q(abt) => [
-         q(0578),
+         q(0577),
          q(0),
          ],
       q(abu) => [
-         q(0579),
+         q(0578),
          q(0),
          ],
       q(abv) => [
-         q(0580),
+         q(0579),
          q(0),
          ],
       q(abw) => [
-         q(0581),
+         q(0580),
          q(0),
          ],
       q(abx) => [
-         q(0582),
+         q(0581),
          q(0),
          ],
       q(aby) => [
-         q(0583),
+         q(0582),
          q(0),
          ],
       q(abz) => [
-         q(0584),
+         q(0583),
          q(0),
          ],
       q(aca) => [
-         q(0585),
+         q(0584),
          q(0),
          ],
       q(acb) => [
-         q(0586),
+         q(0585),
          q(0),
          ],
       q(acd) => [
-         q(0587),
+         q(0586),
          q(0),
          ],
       q(ace) => [
@@ -58482,7 +58440,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(acf) => [
-         q(0588),
+         q(0587),
          q(0),
          ],
       q(ach) => [
@@ -58490,67 +58448,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aci) => [
-         q(0589),
+         q(0588),
          q(0),
          ],
       q(ack) => [
-         q(0590),
+         q(0589),
          q(0),
          ],
       q(acl) => [
-         q(0591),
+         q(0590),
          q(0),
          ],
       q(acm) => [
-         q(0592),
+         q(0591),
          q(0),
          ],
       q(acn) => [
-         q(0593),
+         q(0592),
          q(0),
          ],
       q(acp) => [
-         q(0594),
+         q(0593),
          q(0),
          ],
       q(acq) => [
-         q(0595),
+         q(0594),
          q(0),
          ],
       q(acr) => [
-         q(0596),
+         q(0595),
          q(0),
          ],
       q(acs) => [
-         q(0597),
+         q(0596),
          q(0),
          ],
       q(act) => [
-         q(0598),
+         q(0597),
          q(0),
          ],
       q(acu) => [
-         q(0599),
+         q(0598),
          q(0),
          ],
       q(acv) => [
-         q(0600),
+         q(0599),
          q(0),
          ],
       q(acw) => [
-         q(0601),
+         q(0600),
          q(0),
          ],
       q(acx) => [
-         q(0602),
+         q(0601),
          q(0),
          ],
       q(acy) => [
-         q(0603),
+         q(0602),
          q(0),
          ],
       q(acz) => [
-         q(0604),
+         q(0603),
          q(0),
          ],
       q(ada) => [
@@ -58558,79 +58516,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(adb) => [
-         q(0605),
+         q(0604),
          q(0),
          ],
       q(add) => [
-         q(0606),
+         q(0605),
          q(0),
          ],
       q(ade) => [
-         q(0607),
+         q(0606),
          q(0),
          ],
       q(adf) => [
-         q(0608),
+         q(0607),
          q(0),
          ],
       q(adg) => [
-         q(0609),
+         q(0608),
          q(0),
          ],
       q(adh) => [
-         q(0610),
+         q(0609),
          q(0),
          ],
       q(adi) => [
-         q(0611),
+         q(0610),
          q(0),
          ],
       q(adj) => [
-         q(0612),
+         q(0611),
          q(0),
          ],
       q(adl) => [
-         q(0613),
+         q(0612),
          q(0),
          ],
       q(adn) => [
-         q(0614),
+         q(0613),
          q(0),
          ],
       q(ado) => [
-         q(0615),
-         q(0),
-         ],
-      q(adp) => [
-         q(0616),
+         q(0614),
          q(0),
          ],
       q(adq) => [
-         q(0617),
+         q(0615),
          q(0),
          ],
       q(adr) => [
-         q(0618),
+         q(0616),
          q(0),
          ],
       q(ads) => [
-         q(0619),
+         q(0617),
          q(0),
          ],
       q(adt) => [
-         q(0620),
+         q(0618),
          q(0),
          ],
       q(adu) => [
-         q(0621),
+         q(0619),
          q(0),
          ],
       q(adw) => [
-         q(0622),
+         q(0620),
          q(0),
          ],
       q(adx) => [
-         q(0623),
+         q(0621),
          q(0),
          ],
       q(ady) => [
@@ -58638,71 +58592,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(adz) => [
-         q(0624),
+         q(0622),
          q(0),
          ],
       q(aea) => [
-         q(0625),
+         q(0623),
          q(0),
          ],
       q(aeb) => [
-         q(0626),
+         q(0624),
          q(0),
          ],
       q(aec) => [
-         q(0627),
+         q(0625),
          q(0),
          ],
       q(aed) => [
-         q(0628),
+         q(0626),
          q(0),
          ],
       q(aee) => [
-         q(0629),
+         q(0627),
          q(0),
          ],
       q(aek) => [
-         q(0630),
+         q(0628),
          q(0),
          ],
       q(ael) => [
-         q(0631),
+         q(0629),
          q(0),
          ],
       q(aem) => [
-         q(0632),
+         q(0630),
          q(0),
          ],
       q(aen) => [
-         q(0633),
+         q(0631),
          q(0),
          ],
       q(aeq) => [
-         q(0634),
+         q(0632),
          q(0),
          ],
       q(aer) => [
-         q(0635),
+         q(0633),
          q(0),
          ],
       q(aes) => [
-         q(0636),
+         q(0634),
          q(0),
          ],
       q(aeu) => [
-         q(0637),
+         q(0635),
          q(0),
          ],
       q(aew) => [
-         q(0638),
+         q(0636),
          q(0),
          ],
       q(aey) => [
-         q(0639),
+         q(0637),
          q(0),
          ],
       q(aez) => [
-         q(0640),
+         q(0638),
          q(0),
          ],
       q(afa) => [
@@ -58710,19 +58664,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(afb) => [
-         q(0641),
+         q(0639),
          q(0),
          ],
       q(afd) => [
-         q(0642),
+         q(0640),
          q(0),
          ],
       q(afe) => [
-         q(0643),
+         q(0641),
          q(0),
          ],
       q(afg) => [
-         q(0644),
+         q(0642),
          q(0),
          ],
       q(afh) => [
@@ -58730,23 +58684,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(afi) => [
-         q(0645),
+         q(0643),
          q(0),
          ],
       q(afk) => [
-         q(0646),
+         q(0644),
          q(0),
          ],
       q(afn) => [
-         q(0647),
+         q(0645),
          q(0),
          ],
       q(afo) => [
-         q(0648),
+         q(0646),
          q(0),
          ],
       q(afp) => [
-         q(0649),
+         q(0647),
          q(0),
          ],
       q(afr) => [
@@ -58754,227 +58708,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(afs) => [
-         q(0650),
+         q(0648),
          q(0),
          ],
       q(aft) => [
-         q(0651),
+         q(0649),
          q(0),
          ],
       q(afu) => [
-         q(0652),
+         q(0650),
          q(0),
          ],
       q(afz) => [
-         q(0653),
+         q(0651),
          q(0),
          ],
       q(aga) => [
-         q(0654),
+         q(0652),
          q(0),
          ],
       q(agb) => [
-         q(0655),
+         q(0653),
          q(0),
          ],
       q(agc) => [
-         q(0656),
+         q(0654),
          q(0),
          ],
       q(agd) => [
-         q(0657),
+         q(0655),
          q(0),
          ],
       q(age) => [
-         q(0658),
+         q(0656),
          q(0),
          ],
       q(agf) => [
-         q(0659),
+         q(0657),
          q(0),
          ],
       q(agg) => [
-         q(0660),
+         q(0658),
          q(0),
          ],
       q(agh) => [
-         q(0661),
+         q(0659),
          q(0),
          ],
       q(agi) => [
-         q(0662),
+         q(0660),
          q(0),
          ],
       q(agj) => [
-         q(0663),
+         q(0661),
          q(0),
          ],
       q(agk) => [
-         q(0664),
+         q(0662),
          q(0),
          ],
       q(agl) => [
-         q(0665),
+         q(0663),
          q(0),
          ],
       q(agm) => [
-         q(0666),
+         q(0664),
          q(0),
          ],
       q(agn) => [
-         q(0667),
+         q(0665),
          q(0),
          ],
       q(ago) => [
-         q(0668),
+         q(0666),
          q(0),
          ],
       q(agq) => [
-         q(0669),
+         q(0667),
          q(0),
          ],
       q(agr) => [
-         q(0670),
+         q(0668),
          q(0),
          ],
       q(ags) => [
-         q(0671),
+         q(0669),
          q(0),
          ],
       q(agt) => [
-         q(0672),
+         q(0670),
          q(0),
          ],
       q(agu) => [
-         q(0673),
+         q(0671),
          q(0),
          ],
       q(agv) => [
-         q(0674),
+         q(0672),
          q(0),
          ],
       q(agw) => [
-         q(0675),
+         q(0673),
          q(0),
          ],
       q(agx) => [
-         q(0676),
+         q(0674),
          q(0),
          ],
       q(agy) => [
-         q(0677),
+         q(0675),
          q(0),
          ],
       q(agz) => [
-         q(0678),
+         q(0676),
          q(0),
          ],
       q(aha) => [
-         q(0679),
+         q(0677),
          q(0),
          ],
       q(ahb) => [
-         q(0680),
+         q(0678),
          q(0),
          ],
       q(ahg) => [
-         q(0681),
+         q(0679),
          q(0),
          ],
       q(ahh) => [
-         q(0682),
+         q(0680),
          q(0),
          ],
       q(ahi) => [
-         q(0683),
+         q(0681),
          q(0),
          ],
       q(ahk) => [
-         q(0684),
+         q(0682),
          q(0),
          ],
       q(ahl) => [
-         q(0685),
+         q(0683),
          q(0),
          ],
       q(ahm) => [
-         q(0686),
+         q(0684),
          q(0),
          ],
       q(ahn) => [
-         q(0687),
+         q(0685),
          q(0),
          ],
       q(aho) => [
-         q(0688),
+         q(0686),
          q(0),
          ],
       q(ahp) => [
-         q(0689),
+         q(0687),
          q(0),
          ],
       q(ahr) => [
-         q(0690),
+         q(0688),
          q(0),
          ],
       q(ahs) => [
-         q(0691),
+         q(0689),
          q(0),
          ],
       q(aht) => [
-         q(0692),
+         q(0690),
          q(0),
          ],
       q(aia) => [
-         q(0693),
+         q(0691),
          q(0),
          ],
       q(aib) => [
-         q(0694),
+         q(0692),
          q(0),
          ],
       q(aic) => [
-         q(0695),
+         q(0693),
          q(0),
          ],
       q(aid) => [
-         q(0696),
+         q(0694),
          q(0),
          ],
       q(aie) => [
-         q(0697),
+         q(0695),
          q(0),
          ],
       q(aif) => [
-         q(0698),
+         q(0696),
          q(0),
          ],
       q(aig) => [
-         q(0699),
+         q(0697),
          q(0),
          ],
       q(aih) => [
-         q(0700),
+         q(0698),
          q(0),
          ],
       q(aii) => [
-         q(0701),
+         q(0699),
          q(0),
          ],
       q(aij) => [
-         q(0702),
+         q(0700),
          q(0),
          ],
       q(aik) => [
-         q(0703),
+         q(0701),
          q(0),
          ],
       q(ail) => [
-         q(0704),
+         q(0702),
          q(0),
          ],
       q(aim) => [
-         q(0705),
+         q(0703),
          q(0),
          ],
       q(ain) => [
@@ -58982,75 +58936,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(aio) => [
-         q(0706),
+         q(0704),
          q(0),
          ],
       q(aip) => [
-         q(0707),
+         q(0705),
          q(0),
          ],
       q(aiq) => [
-         q(0708),
+         q(0706),
          q(0),
          ],
       q(air) => [
-         q(0709),
+         q(0707),
          q(0),
          ],
       q(ais) => [
-         q(0710),
+         q(0708),
          q(0),
          ],
       q(ait) => [
-         q(0711),
+         q(0709),
          q(0),
          ],
       q(aiw) => [
-         q(0712),
+         q(0710),
          q(0),
          ],
       q(aix) => [
-         q(0713),
+         q(0711),
          q(0),
          ],
       q(aiy) => [
-         q(0714),
+         q(0712),
          q(0),
          ],
       q(aja) => [
-         q(0715),
+         q(0713),
          q(0),
          ],
       q(ajg) => [
-         q(0716),
+         q(0714),
          q(0),
          ],
       q(aji) => [
-         q(0717),
+         q(0715),
          q(0),
          ],
       q(ajn) => [
-         q(0718),
+         q(0716),
          q(0),
          ],
       q(ajp) => [
-         q(0719),
+         q(0717),
          q(0),
          ],
       q(ajt) => [
-         q(0720),
+         q(0718),
          q(0),
          ],
       q(aju) => [
-         q(0721),
+         q(0719),
          q(0),
          ],
       q(ajw) => [
-         q(0722),
+         q(0720),
          q(0),
          ],
       q(ajz) => [
-         q(0723),
+         q(0721),
          q(0),
          ],
       q(aka) => [
@@ -59058,39 +59012,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(akb) => [
-         q(0724),
+         q(0722),
          q(0),
          ],
       q(akc) => [
-         q(0725),
+         q(0723),
          q(0),
          ],
       q(akd) => [
-         q(0726),
+         q(0724),
          q(0),
          ],
       q(ake) => [
-         q(0727),
+         q(0725),
          q(0),
          ],
       q(akf) => [
-         q(0728),
+         q(0726),
          q(0),
          ],
       q(akg) => [
-         q(0729),
+         q(0727),
          q(0),
          ],
       q(akh) => [
-         q(0730),
+         q(0728),
          q(0),
          ],
       q(aki) => [
-         q(0731),
+         q(0729),
          q(0),
          ],
       q(akj) => [
-         q(0732),
+         q(0730),
          q(0),
          ],
       q(akk) => [
@@ -59098,63 +59052,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(akl) => [
-         q(0733),
+         q(0731),
          q(0),
          ],
       q(akm) => [
-         q(0734),
+         q(0732),
          q(0),
          ],
       q(ako) => [
-         q(0735),
+         q(0733),
          q(0),
          ],
       q(akp) => [
-         q(0736),
+         q(0734),
          q(0),
          ],
       q(akq) => [
-         q(0737),
+         q(0735),
          q(0),
          ],
       q(akr) => [
-         q(0738),
+         q(0736),
          q(0),
          ],
       q(aks) => [
-         q(0739),
+         q(0737),
          q(0),
          ],
       q(akt) => [
-         q(0740),
+         q(0738),
          q(0),
          ],
       q(aku) => [
-         q(0741),
+         q(0739),
          q(0),
          ],
       q(akv) => [
-         q(0742),
+         q(0740),
          q(0),
          ],
       q(akw) => [
-         q(0743),
+         q(0741),
          q(0),
          ],
       q(akx) => [
-         q(0744),
+         q(0742),
          q(0),
          ],
       q(aky) => [
-         q(0745),
+         q(0743),
          q(0),
          ],
       q(akz) => [
-         q(0746),
+         q(0744),
          q(0),
          ],
       q(ala) => [
-         q(0747),
+         q(0745),
          q(0),
          ],
       q(alb) => [
@@ -59162,11 +59116,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(alc) => [
-         q(0748),
+         q(0746),
          q(0),
          ],
       q(ald) => [
-         q(0749),
+         q(0747),
          q(0),
          ],
       q(ale) => [
@@ -59174,7 +59128,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(alf) => [
-         q(0750),
+         q(0748),
          q(0),
          ],
       q(alg) => [
@@ -59182,51 +59136,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(alh) => [
-         q(0751),
+         q(0749),
          q(0),
          ],
       q(ali) => [
-         q(0752),
+         q(0750),
          q(0),
          ],
       q(alj) => [
-         q(0753),
+         q(0751),
          q(0),
          ],
       q(alk) => [
-         q(0754),
+         q(0752),
          q(0),
          ],
       q(all) => [
-         q(0755),
+         q(0753),
          q(0),
          ],
       q(alm) => [
-         q(0756),
+         q(0754),
          q(0),
          ],
       q(aln) => [
-         q(0757),
+         q(0755),
          q(0),
          ],
       q(alo) => [
-         q(0758),
+         q(0756),
          q(0),
          ],
       q(alp) => [
-         q(0759),
+         q(0757),
          q(0),
          ],
       q(alq) => [
-         q(0760),
+         q(0758),
          q(0),
          ],
       q(alr) => [
-         q(0761),
+         q(0759),
          q(0),
          ],
       q(als) => [
-         q(0762),
+         q(0760),
          q(0),
          ],
       q(alt) => [
@@ -59234,7 +59188,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(alu) => [
-         q(0763),
+         q(0761),
          q(0),
          ],
       q(alv) => [
@@ -59242,43 +59196,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(alw) => [
-         q(0764),
+         q(0762),
          q(0),
          ],
       q(alx) => [
-         q(0765),
+         q(0763),
          q(0),
          ],
       q(aly) => [
-         q(0766),
+         q(0764),
          q(0),
          ],
       q(alz) => [
-         q(0767),
+         q(0765),
          q(0),
          ],
       q(ama) => [
-         q(0768),
+         q(0766),
          q(0),
          ],
       q(amb) => [
-         q(0769),
+         q(0767),
          q(0),
          ],
       q(amc) => [
-         q(0770),
+         q(0768),
          q(0),
          ],
       q(ame) => [
-         q(0771),
+         q(0769),
          q(0),
          ],
       q(amf) => [
-         q(0772),
+         q(0770),
          q(0),
          ],
       q(amg) => [
-         q(0773),
+         q(0771),
          q(0),
          ],
       q(amh) => [
@@ -59286,99 +59240,99 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ami) => [
-         q(0774),
+         q(0772),
          q(0),
          ],
       q(amj) => [
-         q(0775),
+         q(0773),
          q(0),
          ],
       q(amk) => [
-         q(0776),
+         q(0774),
          q(0),
          ],
       q(aml) => [
-         q(0777),
+         q(0775),
          q(0),
          ],
       q(amm) => [
-         q(0778),
+         q(0776),
          q(0),
          ],
       q(amn) => [
-         q(0779),
+         q(0777),
          q(0),
          ],
       q(amo) => [
-         q(0780),
+         q(0778),
          q(0),
          ],
       q(amp) => [
-         q(0781),
+         q(0779),
          q(0),
          ],
       q(amq) => [
-         q(0782),
+         q(0780),
          q(0),
          ],
       q(amr) => [
-         q(0783),
+         q(0781),
          q(0),
          ],
       q(ams) => [
-         q(0784),
+         q(0782),
          q(0),
          ],
       q(amt) => [
-         q(0785),
+         q(0783),
          q(0),
          ],
       q(amu) => [
-         q(0786),
+         q(0784),
          q(0),
          ],
       q(amv) => [
-         q(0787),
+         q(0785),
          q(0),
          ],
       q(amw) => [
-         q(0788),
+         q(0786),
          q(0),
          ],
       q(amx) => [
-         q(0789),
+         q(0787),
          q(0),
          ],
       q(amy) => [
-         q(0790),
+         q(0788),
          q(0),
          ],
       q(amz) => [
-         q(0791),
+         q(0789),
          q(0),
          ],
       q(ana) => [
-         q(0792),
+         q(0790),
          q(0),
          ],
       q(anb) => [
-         q(0793),
+         q(0791),
          q(0),
          ],
       q(anc) => [
-         q(0794),
+         q(0792),
          q(0),
          ],
       q(and) => [
-         q(0795),
+         q(0793),
          q(0),
          ],
       q(ane) => [
-         q(0796),
+         q(0794),
          q(0),
          ],
       q(anf) => [
-         q(0797),
+         q(0795),
          q(0),
          ],
       q(ang) => [
@@ -59386,35 +59340,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(anh) => [
-         q(0798),
+         q(0796),
          q(0),
          ],
       q(ani) => [
-         q(0799),
+         q(0797),
          q(0),
          ],
       q(anj) => [
-         q(0800),
+         q(0798),
          q(0),
          ],
       q(ank) => [
-         q(0801),
+         q(0799),
          q(0),
          ],
       q(anl) => [
-         q(0802),
+         q(0800),
          q(0),
          ],
       q(anm) => [
-         q(0803),
+         q(0801),
          q(0),
          ],
       q(ann) => [
-         q(0804),
+         q(0802),
          q(0),
          ],
       q(ano) => [
-         q(0805),
+         q(0803),
          q(0),
          ],
       q(anp) => [
@@ -59422,123 +59376,123 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(anq) => [
-         q(0806),
+         q(0804),
          q(0),
          ],
       q(anr) => [
-         q(0807),
+         q(0805),
          q(0),
          ],
       q(ans) => [
-         q(0808),
+         q(0806),
          q(0),
          ],
       q(ant) => [
-         q(0809),
+         q(0807),
          q(0),
          ],
       q(anu) => [
-         q(0810),
+         q(0808),
          q(0),
          ],
       q(anv) => [
-         q(0811),
+         q(0809),
          q(0),
          ],
       q(anw) => [
-         q(0812),
+         q(0810),
          q(0),
          ],
       q(anx) => [
-         q(0813),
+         q(0811),
          q(0),
          ],
       q(any) => [
-         q(0814),
+         q(0812),
          q(0),
          ],
       q(anz) => [
-         q(0815),
+         q(0813),
          q(0),
          ],
       q(aoa) => [
-         q(0816),
+         q(0814),
          q(0),
          ],
       q(aob) => [
-         q(0817),
+         q(0815),
          q(0),
          ],
       q(aoc) => [
-         q(0818),
+         q(0816),
          q(0),
          ],
       q(aod) => [
-         q(0819),
+         q(0817),
          q(0),
          ],
       q(aoe) => [
-         q(0820),
+         q(0818),
          q(0),
          ],
       q(aof) => [
-         q(0821),
+         q(0819),
          q(0),
          ],
       q(aog) => [
-         q(0822),
+         q(0820),
          q(0),
          ],
       q(aoh) => [
-         q(0823),
+         q(0821),
          q(0),
          ],
       q(aoi) => [
-         q(0824),
+         q(0822),
          q(0),
          ],
       q(aoj) => [
-         q(0825),
+         q(0823),
          q(0),
          ],
       q(aok) => [
-         q(0826),
+         q(0824),
          q(0),
          ],
       q(aol) => [
-         q(0827),
+         q(0825),
          q(0),
          ],
       q(aom) => [
-         q(0828),
+         q(0826),
          q(0),
          ],
       q(aon) => [
-         q(0829),
+         q(0827),
          q(0),
          ],
       q(aor) => [
-         q(0830),
+         q(0828),
          q(0),
          ],
       q(aos) => [
-         q(0831),
+         q(0829),
          q(0),
          ],
       q(aot) => [
-         q(0832),
+         q(0830),
          q(0),
          ],
       q(aou) => [
-         q(0833),
+         q(0831),
          q(0),
          ],
       q(aox) => [
-         q(0834),
+         q(0832),
          q(0),
          ],
       q(aoz) => [
-         q(0835),
+         q(0833),
          q(0),
          ],
       q(apa) => [
@@ -59546,103 +59500,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(apb) => [
-         q(0836),
+         q(0834),
          q(0),
          ],
       q(apc) => [
-         q(0837),
+         q(0835),
          q(0),
          ],
       q(apd) => [
-         q(0838),
+         q(0836),
          q(0),
          ],
       q(ape) => [
-         q(0839),
+         q(0837),
          q(0),
          ],
       q(apf) => [
-         q(0840),
+         q(0838),
          q(0),
          ],
       q(apg) => [
-         q(0841),
+         q(0839),
          q(0),
          ],
       q(aph) => [
-         q(0842),
+         q(0840),
          q(0),
          ],
       q(api) => [
-         q(0843),
+         q(0841),
          q(0),
          ],
       q(apj) => [
-         q(0844),
+         q(0842),
          q(0),
          ],
       q(apk) => [
-         q(0845),
+         q(0843),
          q(0),
          ],
       q(apl) => [
-         q(0846),
+         q(0844),
          q(0),
          ],
       q(apm) => [
-         q(0847),
+         q(0845),
          q(0),
          ],
       q(apn) => [
-         q(0848),
+         q(0846),
          q(0),
          ],
       q(apo) => [
-         q(0849),
+         q(0847),
          q(0),
          ],
       q(app) => [
-         q(0850),
+         q(0848),
          q(0),
          ],
       q(apq) => [
-         q(0851),
+         q(0849),
          q(0),
          ],
       q(apr) => [
-         q(0852),
+         q(0850),
          q(0),
          ],
       q(aps) => [
-         q(0853),
+         q(0851),
          q(0),
          ],
       q(apt) => [
-         q(0854),
+         q(0852),
          q(0),
          ],
       q(apu) => [
-         q(0855),
+         q(0853),
          q(0),
          ],
       q(apv) => [
-         q(0856),
+         q(0854),
          q(0),
          ],
       q(apw) => [
-         q(0857),
+         q(0855),
          q(0),
          ],
       q(apx) => [
-         q(0858),
+         q(0856),
          q(0),
          ],
       q(apy) => [
-         q(0859),
+         q(0857),
          q(0),
          ],
       q(apz) => [
-         q(0860),
+         q(0858),
          q(0),
          ],
       q(aqa) => [
@@ -59650,15 +59604,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aqc) => [
-         q(0861),
+         q(0859),
          q(0),
          ],
       q(aqd) => [
-         q(0862),
+         q(0860),
          q(0),
          ],
       q(aqg) => [
-         q(0863),
+         q(0861),
          q(0),
          ],
       q(aql) => [
@@ -59666,27 +59620,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aqm) => [
-         q(0864),
+         q(0862),
          q(0),
          ],
       q(aqn) => [
-         q(0865),
+         q(0863),
          q(0),
          ],
       q(aqp) => [
-         q(0866),
+         q(0864),
          q(0),
          ],
       q(aqr) => [
-         q(0867),
+         q(0865),
          q(0),
          ],
       q(aqt) => [
-         q(0868),
+         q(0866),
          q(0),
          ],
       q(aqz) => [
-         q(0869),
+         q(0867),
          q(0),
          ],
       q(ara) => [
@@ -59694,7 +59648,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(arb) => [
-         q(0870),
+         q(0868),
          q(0),
          ],
       q(arc) => [
@@ -59702,11 +59656,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ard) => [
-         q(0871),
+         q(0869),
          q(0),
          ],
       q(are) => [
-         q(0872),
+         q(0870),
          q(0),
          ],
       q(arg) => [
@@ -59714,23 +59668,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(arh) => [
-         q(0873),
+         q(0871),
          q(0),
          ],
       q(ari) => [
-         q(0874),
+         q(0872),
          q(0),
          ],
       q(arj) => [
-         q(0875),
+         q(0873),
          q(0),
          ],
       q(ark) => [
-         q(0876),
+         q(0874),
          q(0),
          ],
       q(arl) => [
-         q(0877),
+         q(0875),
          q(0),
          ],
       q(arm) => [
@@ -59742,7 +59696,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aro) => [
-         q(0878),
+         q(0876),
          q(0),
          ],
       q(arp) => [
@@ -59750,15 +59704,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(arq) => [
-         q(0879),
+         q(0877),
          q(0),
          ],
       q(arr) => [
-         q(0880),
+         q(0878),
          q(0),
          ],
       q(ars) => [
-         q(0881),
+         q(0879),
          q(0),
          ],
       q(art) => [
@@ -59766,11 +59720,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aru) => [
-         q(0882),
+         q(0880),
          q(0),
          ],
       q(arv) => [
-         q(0883),
+         q(0881),
          q(0),
          ],
       q(arw) => [
@@ -59778,63 +59732,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(arx) => [
-         q(0884),
+         q(0882),
          q(0),
          ],
       q(ary) => [
-         q(0885),
+         q(0883),
          q(0),
          ],
       q(arz) => [
-         q(0886),
+         q(0884),
          q(0),
          ],
       q(asa) => [
-         q(0887),
+         q(0885),
          q(0),
          ],
       q(asb) => [
-         q(0888),
+         q(0886),
          q(0),
          ],
       q(asc) => [
-         q(0889),
+         q(0887),
          q(0),
          ],
       q(asd) => [
-         q(0890),
+         q(0888),
          q(0),
          ],
       q(ase) => [
-         q(0891),
+         q(0889),
          q(0),
          ],
       q(asf) => [
-         q(0892),
+         q(0890),
          q(0),
          ],
       q(asg) => [
-         q(0893),
+         q(0891),
          q(0),
          ],
       q(ash) => [
-         q(0894),
+         q(0892),
          q(0),
          ],
       q(asi) => [
-         q(0895),
+         q(0893),
          q(0),
          ],
       q(asj) => [
-         q(0896),
+         q(0894),
          q(0),
          ],
       q(ask) => [
-         q(0897),
+         q(0895),
          q(0),
          ],
       q(asl) => [
-         q(0898),
+         q(0896),
          q(0),
          ],
       q(asm) => [
@@ -59842,27 +59796,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(asn) => [
-         q(0899),
+         q(0897),
          q(0),
          ],
       q(aso) => [
-         q(0900),
+         q(0898),
          q(0),
          ],
       q(asp) => [
-         q(0901),
+         q(0899),
          q(0),
          ],
       q(asq) => [
-         q(0902),
+         q(0900),
          q(0),
          ],
       q(asr) => [
-         q(0903),
+         q(0901),
          q(0),
          ],
       q(ass) => [
-         q(0904),
+         q(0902),
          q(0),
          ],
       q(ast) => [
@@ -59870,51 +59824,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(asu) => [
-         q(0905),
+         q(0903),
          q(0),
          ],
       q(asv) => [
-         q(0906),
+         q(0904),
          q(0),
          ],
       q(asw) => [
-         q(0907),
+         q(0905),
          q(0),
          ],
       q(asx) => [
-         q(0908),
+         q(0906),
          q(0),
          ],
       q(asy) => [
-         q(0909),
+         q(0907),
          q(0),
          ],
       q(asz) => [
-         q(0910),
+         q(0908),
          q(0),
          ],
       q(ata) => [
-         q(0911),
+         q(0909),
          q(0),
          ],
       q(atb) => [
-         q(0912),
+         q(0910),
          q(0),
          ],
       q(atc) => [
-         q(0913),
+         q(0911),
          q(0),
          ],
       q(atd) => [
-         q(0914),
+         q(0912),
          q(0),
          ],
       q(ate) => [
-         q(0915),
+         q(0913),
          q(0),
          ],
       q(atg) => [
-         q(0916),
+         q(0914),
          q(0),
          ],
       q(ath) => [
@@ -59922,95 +59876,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ati) => [
-         q(0917),
+         q(0915),
          q(0),
          ],
       q(atj) => [
-         q(0918),
+         q(0916),
          q(0),
          ],
       q(atk) => [
-         q(0919),
+         q(0917),
          q(0),
          ],
       q(atl) => [
-         q(0920),
+         q(0918),
          q(0),
          ],
       q(atm) => [
-         q(0921),
+         q(0919),
          q(0),
          ],
       q(atn) => [
-         q(0922),
+         q(0920),
          q(0),
          ],
       q(ato) => [
-         q(0923),
+         q(0830),
          q(0),
          ],
       q(atp) => [
-         q(0924),
+         q(0921),
          q(0),
          ],
       q(atq) => [
-         q(0925),
+         q(0922),
          q(0),
          ],
       q(atr) => [
-         q(0926),
+         q(0923),
          q(0),
          ],
       q(ats) => [
-         q(0927),
+         q(0924),
          q(0),
          ],
       q(att) => [
-         q(0928),
+         q(0925),
          q(0),
          ],
       q(atu) => [
-         q(0929),
+         q(0926),
          q(0),
          ],
       q(atv) => [
-         q(0930),
+         q(0927),
          q(0),
          ],
       q(atw) => [
-         q(0931),
+         q(0928),
          q(0),
          ],
       q(atx) => [
-         q(0932),
+         q(0929),
          q(0),
          ],
       q(aty) => [
-         q(0933),
+         q(0930),
          q(0),
          ],
       q(atz) => [
-         q(0934),
+         q(0931),
          q(0),
          ],
       q(aua) => [
-         q(0935),
+         q(0932),
          q(0),
          ],
       q(aub) => [
-         q(0936),
+         q(0933),
          q(0),
          ],
       q(auc) => [
-         q(0937),
+         q(0934),
          q(0),
          ],
       q(aud) => [
-         q(0938),
-         q(0),
-         ],
-      q(aue) => [
-         q(0939),
+         q(0935),
          q(0),
          ],
       q(auf) => [
@@ -60018,51 +59968,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aug) => [
-         q(0940),
+         q(0936),
          q(0),
          ],
       q(auh) => [
-         q(0941),
+         q(0937),
          q(0),
          ],
       q(aui) => [
-         q(0942),
+         q(0938),
          q(0),
          ],
       q(auj) => [
-         q(0943),
+         q(0939),
          q(0),
          ],
       q(auk) => [
-         q(0944),
+         q(0940),
          q(0),
          ],
       q(aul) => [
-         q(0945),
+         q(0941),
          q(0),
          ],
       q(aum) => [
-         q(0946),
+         q(0942),
          q(0),
          ],
       q(aun) => [
-         q(0947),
+         q(0943),
          q(0),
          ],
       q(auo) => [
-         q(0948),
+         q(0944),
          q(0),
          ],
       q(aup) => [
-         q(0949),
+         q(0945),
          q(0),
          ],
       q(auq) => [
-         q(0950),
+         q(0946),
          q(0),
          ],
       q(aur) => [
-         q(0951),
+         q(0947),
          q(0),
          ],
       q(aus) => [
@@ -60070,27 +60020,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aut) => [
-         q(0952),
+         q(0948),
          q(0),
          ],
       q(auu) => [
-         q(0953),
+         q(0949),
          q(0),
          ],
       q(auw) => [
-         q(0954),
+         q(0950),
          q(0),
          ],
       q(aux) => [
-         q(0955),
+         q(0951),
          q(0),
          ],
       q(auy) => [
-         q(0956),
+         q(0952),
          q(0),
          ],
       q(auz) => [
-         q(0957),
+         q(0953),
          q(0),
          ],
       q(ava) => [
@@ -60098,11 +60048,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(avb) => [
-         q(0958),
+         q(0954),
          q(0),
          ],
       q(avd) => [
-         q(0959),
+         q(0955),
          q(0),
          ],
       q(ave) => [
@@ -60110,43 +60060,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(avi) => [
-         q(0960),
+         q(0956),
          q(0),
          ],
       q(avk) => [
-         q(0961),
+         q(0957),
          q(0),
          ],
       q(avl) => [
-         q(0962),
+         q(0958),
          q(0),
          ],
       q(avm) => [
-         q(0963),
+         q(0959),
          q(0),
          ],
       q(avn) => [
-         q(0964),
+         q(0960),
          q(0),
          ],
       q(avo) => [
-         q(0965),
+         q(0961),
          q(0),
          ],
       q(avs) => [
-         q(0966),
+         q(0962),
          q(0),
          ],
       q(avt) => [
-         q(0967),
+         q(0963),
          q(0),
          ],
       q(avu) => [
-         q(0968),
+         q(0964),
          q(0),
          ],
       q(avv) => [
-         q(0969),
+         q(0965),
          q(0),
          ],
       q(awa) => [
@@ -60154,11 +60104,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(awb) => [
-         q(0970),
+         q(0966),
          q(0),
          ],
       q(awc) => [
-         q(0971),
+         q(0967),
          q(0),
          ],
       q(awd) => [
@@ -60166,135 +60116,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(awe) => [
-         q(0972),
+         q(0968),
          q(0),
          ],
       q(awg) => [
-         q(0973),
+         q(0969),
          q(0),
          ],
       q(awh) => [
-         q(0974),
+         q(0970),
          q(0),
          ],
       q(awi) => [
-         q(0975),
+         q(0971),
          q(0),
          ],
       q(awk) => [
-         q(0976),
+         q(0972),
          q(0),
          ],
       q(awm) => [
-         q(0977),
+         q(0973),
          q(0),
          ],
       q(awn) => [
-         q(0978),
+         q(0974),
          q(0),
          ],
       q(awo) => [
-         q(0979),
+         q(0975),
          q(0),
          ],
       q(awr) => [
-         q(0980),
+         q(0976),
          q(0),
          ],
       q(aws) => [
-         q(0981),
+         q(0977),
          q(0),
          ],
       q(awt) => [
-         q(0982),
+         q(0978),
          q(0),
          ],
       q(awu) => [
-         q(0983),
+         q(0979),
          q(0),
          ],
       q(awv) => [
-         q(0984),
+         q(0980),
          q(0),
          ],
       q(aww) => [
-         q(0985),
+         q(0981),
          q(0),
          ],
       q(awx) => [
-         q(0986),
+         q(0982),
          q(0),
          ],
       q(awy) => [
-         q(0987),
+         q(0983),
          q(0),
          ],
       q(axb) => [
-         q(0988),
+         q(0984),
          q(0),
          ],
       q(axe) => [
-         q(0989),
+         q(0985),
          q(0),
          ],
       q(axg) => [
-         q(0990),
+         q(0986),
          q(0),
          ],
       q(axk) => [
-         q(0991),
+         q(0987),
          q(0),
          ],
       q(axl) => [
-         q(0992),
+         q(0988),
          q(0),
          ],
       q(axm) => [
-         q(0993),
+         q(0989),
          q(0),
          ],
       q(axx) => [
-         q(0994),
+         q(0990),
          q(0),
          ],
       q(aya) => [
-         q(0995),
+         q(0991),
          q(0),
          ],
       q(ayb) => [
-         q(0996),
+         q(0992),
          q(0),
          ],
       q(ayc) => [
-         q(0997),
+         q(0993),
          q(0),
          ],
       q(ayd) => [
-         q(0998),
+         q(0994),
          q(0),
          ],
       q(aye) => [
-         q(0999),
+         q(0995),
          q(0),
          ],
       q(ayg) => [
-         q(1000),
+         q(0996),
          q(0),
          ],
       q(ayh) => [
-         q(1001),
+         q(0997),
          q(0),
          ],
       q(ayi) => [
-         q(1002),
+         q(0998),
          q(0),
          ],
       q(ayk) => [
-         q(1003),
+         q(0999),
          q(0),
          ],
       q(ayl) => [
-         q(1004),
+         q(1000),
          q(0),
          ],
       q(aym) => [
@@ -60302,51 +60252,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ayn) => [
-         q(1005),
+         q(1001),
          q(0),
          ],
       q(ayo) => [
-         q(1006),
+         q(1002),
          q(0),
          ],
       q(ayp) => [
-         q(1007),
+         q(1003),
          q(0),
          ],
       q(ayq) => [
-         q(1008),
+         q(1004),
          q(0),
          ],
       q(ayr) => [
-         q(1009),
+         q(1005),
          q(0),
          ],
       q(ays) => [
-         q(1010),
+         q(1006),
          q(0),
          ],
       q(ayt) => [
-         q(1011),
+         q(1007),
          q(0),
          ],
       q(ayu) => [
-         q(1012),
+         q(1008),
          q(0),
          ],
       q(ayy) => [
-         q(1013),
+         q(1009),
          q(0),
          ],
       q(ayz) => [
-         q(1014),
+         q(1010),
          q(0),
          ],
       q(aza) => [
-         q(1015),
+         q(1011),
          q(0),
          ],
       q(azb) => [
-         q(1016),
+         q(1012),
          q(0),
          ],
       q(azc) => [
@@ -60354,7 +60304,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(azd) => [
-         q(1017),
+         q(1013),
          q(0),
          ],
       q(aze) => [
@@ -60362,43 +60312,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(azg) => [
-         q(1018),
+         q(1014),
          q(0),
          ],
       q(azj) => [
-         q(1019),
+         q(1015),
          q(0),
          ],
       q(azm) => [
-         q(1020),
+         q(1016),
          q(0),
          ],
       q(azn) => [
-         q(1021),
+         q(1017),
          q(0),
          ],
       q(azo) => [
-         q(1022),
+         q(1018),
          q(0),
          ],
       q(azt) => [
-         q(1023),
+         q(1019),
          q(0),
          ],
       q(azz) => [
-         q(1024),
+         q(1020),
          q(0),
          ],
       q(baa) => [
-         q(1025),
+         q(1021),
          q(0),
          ],
       q(bab) => [
-         q(1026),
+         q(1022),
          q(0),
          ],
       q(bac) => [
-         q(1027),
+         q(1023),
          q(0),
          ],
       q(bad) => [
@@ -60406,19 +60356,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bae) => [
-         q(1028),
+         q(1024),
          q(0),
          ],
       q(baf) => [
-         q(1029),
+         q(1025),
          q(0),
          ],
       q(bag) => [
-         q(1030),
+         q(1026),
          q(0),
          ],
       q(bah) => [
-         q(1031),
+         q(1027),
          q(0),
          ],
       q(bai) => [
@@ -60426,7 +60376,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(baj) => [
-         q(1032),
+         q(1028),
          q(0),
          ],
       q(bak) => [
@@ -60446,11 +60396,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bao) => [
-         q(1033),
+         q(1029),
          q(0),
          ],
       q(bap) => [
-         q(1034),
+         q(1030),
          q(0),
          ],
       q(baq) => [
@@ -60458,7 +60408,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bar) => [
-         q(1035),
+         q(1031),
          q(0),
          ],
       q(bas) => [
@@ -60470,367 +60420,367 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bau) => [
-         q(1036),
+         q(1032),
          q(0),
          ],
       q(bav) => [
-         q(1037),
+         q(1033),
          q(0),
          ],
       q(baw) => [
-         q(1038),
+         q(1034),
          q(0),
          ],
       q(bax) => [
-         q(1039),
+         q(1035),
          q(0),
          ],
       q(bay) => [
-         q(1040),
+         q(1036),
          q(0),
          ],
       q(bba) => [
-         q(1041),
+         q(1037),
          q(0),
          ],
       q(bbb) => [
-         q(1042),
+         q(1038),
          q(0),
          ],
       q(bbc) => [
-         q(1043),
+         q(1039),
          q(0),
          ],
       q(bbd) => [
-         q(1044),
+         q(1040),
          q(0),
          ],
       q(bbe) => [
-         q(1045),
+         q(1041),
          q(0),
          ],
       q(bbf) => [
-         q(1046),
+         q(1042),
          q(0),
          ],
       q(bbg) => [
-         q(1047),
+         q(1043),
          q(0),
          ],
       q(bbh) => [
-         q(1048),
+         q(1044),
          q(0),
          ],
       q(bbi) => [
-         q(1049),
+         q(1045),
          q(0),
          ],
       q(bbj) => [
-         q(1050),
+         q(1046),
          q(0),
          ],
       q(bbk) => [
-         q(1051),
+         q(1047),
          q(0),
          ],
       q(bbl) => [
-         q(1052),
+         q(1048),
          q(0),
          ],
       q(bbm) => [
-         q(1053),
+         q(1049),
          q(0),
          ],
       q(bbn) => [
-         q(1054),
+         q(1050),
          q(0),
          ],
       q(bbo) => [
-         q(1055),
+         q(1051),
          q(0),
          ],
       q(bbp) => [
-         q(1056),
+         q(1052),
          q(0),
          ],
       q(bbq) => [
-         q(1057),
+         q(1053),
          q(0),
          ],
       q(bbr) => [
-         q(1058),
+         q(1054),
          q(0),
          ],
       q(bbs) => [
-         q(1059),
+         q(1055),
          q(0),
          ],
       q(bbt) => [
-         q(1060),
+         q(1056),
          q(0),
          ],
       q(bbu) => [
-         q(1061),
+         q(1057),
          q(0),
          ],
       q(bbv) => [
-         q(1062),
+         q(1058),
          q(0),
          ],
       q(bbw) => [
-         q(1063),
+         q(1059),
          q(0),
          ],
       q(bbx) => [
-         q(1064),
+         q(1060),
          q(0),
          ],
       q(bby) => [
-         q(1065),
+         q(1061),
          q(0),
          ],
       q(bbz) => [
-         q(1066),
+         q(1062),
          q(0),
          ],
       q(bca) => [
-         q(1067),
+         q(1063),
          q(0),
          ],
       q(bcb) => [
-         q(1068),
+         q(1064),
          q(0),
          ],
       q(bcc) => [
-         q(1069),
+         q(1065),
          q(0),
          ],
       q(bcd) => [
-         q(1070),
+         q(1066),
          q(0),
          ],
       q(bce) => [
-         q(1071),
+         q(1067),
          q(0),
          ],
       q(bcf) => [
-         q(1072),
+         q(1068),
          q(0),
          ],
       q(bcg) => [
-         q(1073),
+         q(1069),
          q(0),
          ],
       q(bch) => [
-         q(1074),
+         q(1070),
          q(0),
          ],
       q(bci) => [
-         q(1075),
+         q(1071),
          q(0),
          ],
       q(bcj) => [
-         q(1076),
+         q(1072),
          q(0),
          ],
       q(bck) => [
-         q(1077),
+         q(1073),
          q(0),
          ],
       q(bcl) => [
-         q(1078),
+         q(1074),
          q(0),
          ],
       q(bcm) => [
-         q(1079),
+         q(1075),
          q(0),
          ],
       q(bcn) => [
-         q(1080),
+         q(1076),
          q(0),
          ],
       q(bco) => [
-         q(1081),
+         q(1077),
          q(0),
          ],
       q(bcp) => [
-         q(1082),
+         q(1078),
          q(0),
          ],
       q(bcq) => [
-         q(1083),
+         q(1079),
          q(0),
          ],
       q(bcr) => [
-         q(1084),
+         q(1080),
          q(0),
          ],
       q(bcs) => [
-         q(1085),
+         q(1081),
          q(0),
          ],
       q(bct) => [
-         q(1086),
+         q(1082),
          q(0),
          ],
       q(bcu) => [
-         q(1087),
+         q(1083),
          q(0),
          ],
       q(bcv) => [
-         q(1088),
+         q(1084),
          q(0),
          ],
       q(bcw) => [
-         q(1089),
+         q(1085),
          q(0),
          ],
       q(bcy) => [
-         q(1090),
+         q(1086),
          q(0),
          ],
       q(bcz) => [
-         q(1091),
+         q(1087),
          q(0),
          ],
       q(bda) => [
-         q(1092),
+         q(1088),
          q(0),
          ],
       q(bdb) => [
-         q(1093),
+         q(1089),
          q(0),
          ],
       q(bdc) => [
-         q(1094),
+         q(1090),
          q(0),
          ],
       q(bdd) => [
-         q(1095),
+         q(1091),
          q(0),
          ],
       q(bde) => [
-         q(1096),
+         q(1092),
          q(0),
          ],
       q(bdf) => [
-         q(1097),
+         q(1093),
          q(0),
          ],
       q(bdg) => [
-         q(1098),
+         q(1094),
          q(0),
          ],
       q(bdh) => [
-         q(1099),
+         q(1095),
          q(0),
          ],
       q(bdi) => [
-         q(1100),
+         q(1096),
          q(0),
          ],
       q(bdj) => [
-         q(1101),
+         q(1097),
          q(0),
          ],
       q(bdk) => [
-         q(1102),
+         q(1098),
          q(0),
          ],
       q(bdl) => [
-         q(1103),
+         q(1099),
          q(0),
          ],
       q(bdm) => [
-         q(1104),
+         q(1100),
          q(0),
          ],
       q(bdn) => [
-         q(1105),
+         q(1101),
          q(0),
          ],
       q(bdo) => [
-         q(1106),
+         q(1102),
          q(0),
          ],
       q(bdp) => [
-         q(1107),
+         q(1103),
          q(0),
          ],
       q(bdq) => [
-         q(1108),
+         q(1104),
          q(0),
          ],
       q(bdr) => [
-         q(1109),
+         q(1105),
          q(0),
          ],
       q(bds) => [
-         q(1110),
+         q(1106),
          q(0),
          ],
       q(bdt) => [
-         q(1111),
+         q(1107),
          q(0),
          ],
       q(bdu) => [
-         q(1112),
+         q(1108),
          q(0),
          ],
       q(bdv) => [
-         q(1113),
+         q(1109),
          q(0),
          ],
       q(bdw) => [
-         q(1114),
+         q(1110),
          q(0),
          ],
       q(bdx) => [
-         q(1115),
+         q(1111),
          q(0),
          ],
       q(bdy) => [
-         q(1116),
+         q(1112),
          q(0),
          ],
       q(bdz) => [
-         q(1117),
+         q(1113),
          q(0),
          ],
       q(bea) => [
-         q(1118),
+         q(1114),
          q(0),
          ],
       q(beb) => [
-         q(1119),
+         q(1115),
          q(0),
          ],
       q(bec) => [
-         q(1120),
+         q(1116),
          q(0),
          ],
       q(bed) => [
-         q(1121),
+         q(1117),
          q(0),
          ],
       q(bee) => [
-         q(1122),
+         q(1118),
          q(0),
          ],
       q(bef) => [
-         q(1123),
+         q(1119),
          q(0),
          ],
       q(beg) => [
-         q(1124),
+         q(1120),
          q(0),
          ],
       q(beh) => [
-         q(1125),
+         q(1121),
          q(0),
          ],
       q(bei) => [
-         q(1126),
+         q(1122),
          q(0),
          ],
       q(bej) => [
@@ -60838,7 +60788,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bek) => [
-         q(1127),
+         q(1123),
          q(0),
          ],
       q(bel) => [
@@ -60854,15 +60804,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(beo) => [
-         q(1128),
+         q(1124),
          q(0),
          ],
       q(bep) => [
-         q(1129),
+         q(1125),
          q(0),
          ],
       q(beq) => [
-         q(1130),
+         q(1126),
          q(0),
          ],
       q(ber) => [
@@ -60870,287 +60820,287 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bes) => [
-         q(1131),
+         q(1127),
          q(0),
          ],
       q(bet) => [
-         q(1132),
+         q(1128),
          q(0),
          ],
       q(beu) => [
-         q(1133),
+         q(1129),
          q(0),
          ],
       q(bev) => [
-         q(1134),
+         q(1130),
          q(0),
          ],
       q(bew) => [
-         q(1135),
+         q(1131),
          q(0),
          ],
       q(bex) => [
-         q(1136),
+         q(1132),
          q(0),
          ],
       q(bey) => [
-         q(1137),
+         q(1133),
          q(0),
          ],
       q(bez) => [
-         q(1138),
+         q(1134),
          q(0),
          ],
       q(bfa) => [
-         q(1139),
+         q(1135),
          q(0),
          ],
       q(bfb) => [
-         q(1140),
+         q(1136),
          q(0),
          ],
       q(bfc) => [
-         q(1141),
+         q(1137),
          q(0),
          ],
       q(bfd) => [
-         q(1142),
+         q(1138),
          q(0),
          ],
       q(bfe) => [
-         q(1143),
+         q(1139),
          q(0),
          ],
       q(bff) => [
-         q(1144),
+         q(1140),
          q(0),
          ],
       q(bfg) => [
-         q(1145),
+         q(1141),
          q(0),
          ],
       q(bfh) => [
-         q(1146),
+         q(1142),
          q(0),
          ],
       q(bfi) => [
-         q(1147),
+         q(1143),
          q(0),
          ],
       q(bfj) => [
-         q(1148),
+         q(1144),
          q(0),
          ],
       q(bfk) => [
-         q(1149),
+         q(1145),
          q(0),
          ],
       q(bfl) => [
-         q(1150),
+         q(1146),
          q(0),
          ],
       q(bfm) => [
-         q(1151),
+         q(1147),
          q(0),
          ],
       q(bfn) => [
-         q(1152),
+         q(1148),
          q(0),
          ],
       q(bfo) => [
-         q(1153),
+         q(1149),
          q(0),
          ],
       q(bfp) => [
-         q(1154),
+         q(1150),
          q(0),
          ],
       q(bfq) => [
-         q(1155),
+         q(1151),
          q(0),
          ],
       q(bfr) => [
-         q(1156),
+         q(1152),
          q(0),
          ],
       q(bfs) => [
-         q(1157),
+         q(1153),
          q(0),
          ],
       q(bft) => [
-         q(1158),
+         q(1154),
          q(0),
          ],
       q(bfu) => [
-         q(1159),
+         q(1155),
          q(0),
          ],
       q(bfw) => [
-         q(1160),
+         q(1156),
          q(0),
          ],
       q(bfx) => [
-         q(1161),
+         q(1157),
          q(0),
          ],
       q(bfy) => [
-         q(1162),
+         q(1158),
          q(0),
          ],
       q(bfz) => [
-         q(1163),
+         q(1159),
          q(0),
          ],
       q(bga) => [
-         q(1164),
+         q(1160),
          q(0),
          ],
       q(bgb) => [
-         q(1165),
+         q(1161),
          q(0),
          ],
       q(bgc) => [
-         q(1166),
+         q(1162),
          q(0),
          ],
       q(bgd) => [
-         q(1167),
+         q(1163),
          q(0),
          ],
       q(bge) => [
-         q(1168),
+         q(1164),
          q(0),
          ],
       q(bgf) => [
-         q(1169),
+         q(1165),
          q(0),
          ],
       q(bgg) => [
-         q(1170),
+         q(1166),
          q(0),
          ],
       q(bgi) => [
-         q(1171),
+         q(1167),
          q(0),
          ],
       q(bgj) => [
-         q(1172),
+         q(1168),
          q(0),
          ],
       q(bgk) => [
-         q(1173),
+         q(1169),
          q(0),
          ],
       q(bgl) => [
-         q(1174),
+         q(1170),
          q(0),
          ],
       q(bgm) => [
-         q(1175),
+         q(1171),
          q(0),
          ],
       q(bgn) => [
-         q(1176),
+         q(1172),
          q(0),
          ],
       q(bgo) => [
-         q(1177),
+         q(1173),
          q(0),
          ],
       q(bgp) => [
-         q(1178),
+         q(1174),
          q(0),
          ],
       q(bgq) => [
-         q(1179),
+         q(1175),
          q(0),
          ],
       q(bgr) => [
-         q(1180),
+         q(1176),
          q(0),
          ],
       q(bgs) => [
-         q(1181),
+         q(1177),
          q(0),
          ],
       q(bgt) => [
-         q(1182),
+         q(1178),
          q(0),
          ],
       q(bgu) => [
-         q(1183),
+         q(1179),
          q(0),
          ],
       q(bgv) => [
-         q(1184),
+         q(1180),
          q(0),
          ],
       q(bgw) => [
-         q(1185),
+         q(1181),
          q(0),
          ],
       q(bgx) => [
-         q(1186),
+         q(1182),
          q(0),
          ],
       q(bgy) => [
-         q(1187),
+         q(1183),
          q(0),
          ],
       q(bgz) => [
-         q(1188),
+         q(1184),
          q(0),
          ],
       q(bha) => [
-         q(1189),
+         q(1185),
          q(0),
          ],
       q(bhb) => [
-         q(1190),
+         q(1186),
          q(0),
          ],
       q(bhc) => [
-         q(1191),
+         q(1187),
          q(0),
          ],
       q(bhd) => [
-         q(1192),
+         q(1188),
          q(0),
          ],
       q(bhe) => [
-         q(1193),
+         q(1189),
          q(0),
          ],
       q(bhf) => [
-         q(1194),
+         q(1190),
          q(0),
          ],
       q(bhg) => [
-         q(1195),
+         q(1191),
          q(0),
          ],
       q(bhh) => [
-         q(1196),
+         q(1192),
          q(0),
          ],
       q(bhi) => [
-         q(1197),
+         q(1193),
          q(0),
          ],
       q(bhj) => [
-         q(1198),
+         q(1194),
          q(0),
          ],
       q(bhl) => [
-         q(1199),
+         q(1195),
          q(0),
          ],
       q(bhm) => [
-         q(1200),
+         q(1196),
          q(0),
          ],
       q(bhn) => [
-         q(1201),
+         q(1197),
          q(0),
          ],
       q(bho) => [
@@ -61158,75 +61108,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bhp) => [
-         q(1202),
+         q(1198),
          q(0),
          ],
       q(bhq) => [
-         q(1203),
+         q(1199),
          q(0),
          ],
       q(bhr) => [
-         q(1204),
+         q(1200),
          q(0),
          ],
       q(bhs) => [
-         q(1205),
+         q(1201),
          q(0),
          ],
       q(bht) => [
-         q(1206),
+         q(1202),
          q(0),
          ],
       q(bhu) => [
-         q(1207),
+         q(1203),
          q(0),
          ],
       q(bhv) => [
-         q(1208),
+         q(1204),
          q(0),
          ],
       q(bhw) => [
-         q(1209),
+         q(1205),
          q(0),
          ],
       q(bhx) => [
-         q(1210),
+         q(1206),
          q(0),
          ],
       q(bhy) => [
-         q(1211),
+         q(1207),
          q(0),
          ],
       q(bhz) => [
-         q(1212),
+         q(1208),
          q(0),
          ],
       q(bia) => [
-         q(1213),
+         q(1209),
          q(0),
          ],
       q(bib) => [
-         q(1214),
+         q(1210),
          q(0),
          ],
       q(bic) => [
-         q(1215),
+         q(1211),
          q(0),
          ],
       q(bid) => [
-         q(1216),
+         q(1212),
          q(0),
          ],
       q(bie) => [
-         q(1217),
+         q(1213),
          q(0),
          ],
       q(bif) => [
-         q(1218),
+         q(1214),
          q(0),
          ],
       q(big) => [
-         q(1219),
+         q(1215),
          q(0),
          ],
       q(bih) => [
@@ -61234,7 +61184,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bij) => [
-         q(1220),
+         q(1216),
          q(0),
          ],
       q(bik) => [
@@ -61242,11 +61192,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bil) => [
-         q(1221),
+         q(1217),
          q(0),
          ],
       q(bim) => [
-         q(1222),
+         q(1218),
          q(0),
          ],
       q(bin) => [
@@ -61254,19 +61204,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bio) => [
-         q(1223),
+         q(1219),
          q(0),
          ],
       q(bip) => [
-         q(1224),
+         q(1220),
          q(0),
          ],
       q(biq) => [
-         q(1225),
+         q(1221),
          q(0),
          ],
       q(bir) => [
-         q(1226),
+         q(1222),
          q(0),
          ],
       q(bis) => [
@@ -61274,223 +61224,223 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bit) => [
-         q(1227),
+         q(1223),
          q(0),
          ],
       q(biu) => [
-         q(1228),
+         q(1224),
          q(0),
          ],
       q(biv) => [
-         q(1229),
+         q(1225),
          q(0),
          ],
       q(biw) => [
-         q(1230),
+         q(1226),
          q(0),
          ],
       q(bix) => [
-         q(1231),
+         q(1227),
          q(0),
          ],
       q(biy) => [
-         q(1232),
+         q(1228),
          q(0),
          ],
       q(biz) => [
-         q(1233),
+         q(1229),
          q(0),
          ],
       q(bja) => [
-         q(1234),
+         q(1230),
          q(0),
          ],
       q(bjb) => [
-         q(1235),
+         q(1231),
          q(0),
          ],
       q(bjc) => [
-         q(1236),
+         q(1232),
          q(0),
          ],
       q(bje) => [
-         q(1237),
+         q(1233),
          q(0),
          ],
       q(bjf) => [
-         q(1238),
+         q(1234),
          q(0),
          ],
       q(bjg) => [
-         q(1239),
+         q(1235),
          q(0),
          ],
       q(bjh) => [
-         q(1240),
+         q(1236),
          q(0),
          ],
       q(bji) => [
-         q(1241),
+         q(1237),
          q(0),
          ],
       q(bjj) => [
-         q(1242),
+         q(1238),
          q(0),
          ],
       q(bjk) => [
-         q(1243),
+         q(1239),
          q(0),
          ],
       q(bjl) => [
-         q(1244),
+         q(1240),
          q(0),
          ],
       q(bjm) => [
-         q(1245),
+         q(1241),
          q(0),
          ],
       q(bjn) => [
-         q(1246),
+         q(1242),
          q(0),
          ],
       q(bjo) => [
-         q(1247),
+         q(1243),
          q(0),
          ],
       q(bjp) => [
-         q(1248),
+         q(1244),
          q(0),
          ],
       q(bjr) => [
-         q(1249),
+         q(1245),
          q(0),
          ],
       q(bjs) => [
-         q(1250),
+         q(1246),
          q(0),
          ],
       q(bjt) => [
-         q(1251),
+         q(1247),
          q(0),
          ],
       q(bju) => [
-         q(1252),
+         q(1248),
          q(0),
          ],
       q(bjv) => [
-         q(1253),
+         q(1249),
          q(0),
          ],
       q(bjw) => [
-         q(1254),
+         q(1250),
          q(0),
          ],
       q(bjx) => [
-         q(1255),
+         q(1251),
          q(0),
          ],
       q(bjy) => [
-         q(1256),
+         q(1252),
          q(0),
          ],
       q(bjz) => [
-         q(1257),
+         q(1253),
          q(0),
          ],
       q(bka) => [
-         q(1258),
+         q(1254),
          q(0),
          ],
       q(bkc) => [
-         q(1259),
+         q(1255),
          q(0),
          ],
       q(bkd) => [
-         q(1260),
+         q(1256),
          q(0),
          ],
       q(bkf) => [
-         q(1261),
+         q(1257),
          q(0),
          ],
       q(bkg) => [
-         q(1262),
+         q(1258),
          q(0),
          ],
       q(bkh) => [
-         q(1263),
+         q(1259),
          q(0),
          ],
       q(bki) => [
-         q(1264),
+         q(1260),
          q(0),
          ],
       q(bkj) => [
-         q(1265),
+         q(1261),
          q(0),
          ],
       q(bkk) => [
-         q(1266),
+         q(1262),
          q(0),
          ],
       q(bkl) => [
-         q(1267),
+         q(1263),
          q(0),
          ],
       q(bkm) => [
-         q(1268),
+         q(1264),
          q(0),
          ],
       q(bkn) => [
-         q(1269),
+         q(1265),
          q(0),
          ],
       q(bko) => [
-         q(1270),
+         q(1266),
          q(0),
          ],
       q(bkp) => [
-         q(1271),
+         q(1267),
          q(0),
          ],
       q(bkq) => [
-         q(1272),
+         q(1268),
          q(0),
          ],
       q(bkr) => [
-         q(1273),
+         q(1269),
          q(0),
          ],
       q(bks) => [
-         q(1274),
+         q(1270),
          q(0),
          ],
       q(bkt) => [
-         q(1275),
+         q(1271),
          q(0),
          ],
       q(bku) => [
-         q(1276),
+         q(1272),
          q(0),
          ],
       q(bkv) => [
-         q(1277),
+         q(1273),
          q(0),
          ],
       q(bkw) => [
-         q(1278),
+         q(1274),
          q(0),
          ],
       q(bkx) => [
-         q(1279),
+         q(1275),
          q(0),
          ],
       q(bky) => [
-         q(1280),
+         q(1276),
          q(0),
          ],
       q(bkz) => [
-         q(1281),
+         q(1277),
          q(0),
          ],
       q(bla) => [
@@ -61498,275 +61448,271 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(blb) => [
-         q(1282),
+         q(1278),
          q(0),
          ],
       q(blc) => [
-         q(1283),
+         q(1279),
          q(0),
          ],
       q(bld) => [
-         q(1284),
+         q(1280),
          q(0),
          ],
       q(ble) => [
-         q(1285),
+         q(1281),
          q(0),
          ],
       q(blf) => [
-         q(1286),
+         q(1282),
          q(0),
          ],
       q(blg) => [
-         q(1287),
+         q(1283),
          q(0),
          ],
       q(blh) => [
-         q(1288),
+         q(1284),
          q(0),
          ],
       q(bli) => [
-         q(1289),
+         q(1285),
          q(0),
          ],
       q(blj) => [
-         q(1290),
+         q(1286),
          q(0),
          ],
       q(blk) => [
-         q(1291),
+         q(1287),
          q(0),
          ],
       q(bll) => [
-         q(1292),
+         q(1288),
          q(0),
          ],
       q(blm) => [
-         q(1293),
+         q(1289),
          q(0),
          ],
       q(bln) => [
-         q(1294),
+         q(1290),
          q(0),
          ],
       q(blo) => [
-         q(1295),
+         q(1291),
          q(0),
          ],
       q(blp) => [
-         q(1296),
+         q(1292),
          q(0),
          ],
       q(blq) => [
-         q(1297),
+         q(1293),
          q(0),
          ],
       q(blr) => [
-         q(1298),
+         q(1294),
          q(0),
          ],
       q(bls) => [
-         q(1299),
+         q(1295),
          q(0),
          ],
       q(blt) => [
-         q(1300),
+         q(1296),
          q(0),
          ],
       q(blv) => [
-         q(1301),
+         q(1297),
          q(0),
          ],
       q(blw) => [
-         q(1302),
+         q(1298),
          q(0),
          ],
       q(blx) => [
-         q(1303),
+         q(1299),
          q(0),
          ],
       q(bly) => [
-         q(1304),
+         q(1300),
          q(0),
          ],
       q(blz) => [
-         q(1305),
+         q(1301),
          q(0),
          ],
       q(bma) => [
-         q(1306),
+         q(1302),
          q(0),
          ],
       q(bmb) => [
-         q(1307),
+         q(1303),
          q(0),
          ],
       q(bmc) => [
-         q(1308),
+         q(1304),
          q(0),
          ],
       q(bmd) => [
-         q(1309),
+         q(1305),
          q(0),
          ],
       q(bme) => [
-         q(1310),
+         q(1306),
          q(0),
          ],
       q(bmf) => [
-         q(1311),
+         q(1307),
          q(0),
          ],
       q(bmg) => [
-         q(1312),
+         q(1308),
          q(0),
          ],
       q(bmh) => [
-         q(1313),
+         q(1309),
          q(0),
          ],
       q(bmi) => [
-         q(1314),
+         q(1310),
          q(0),
          ],
       q(bmj) => [
-         q(1315),
+         q(1311),
          q(0),
          ],
       q(bmk) => [
-         q(1316),
+         q(1312),
          q(0),
          ],
       q(bml) => [
-         q(1317),
+         q(1313),
          q(0),
          ],
       q(bmm) => [
-         q(1318),
+         q(1314),
          q(0),
          ],
       q(bmn) => [
-         q(1319),
+         q(1315),
          q(0),
          ],
       q(bmo) => [
-         q(1320),
+         q(1316),
          q(0),
          ],
       q(bmp) => [
-         q(1321),
+         q(1317),
          q(0),
          ],
       q(bmq) => [
-         q(1322),
+         q(1318),
          q(0),
          ],
       q(bmr) => [
-         q(1323),
+         q(1319),
          q(0),
          ],
       q(bms) => [
-         q(1324),
+         q(1320),
          q(0),
          ],
       q(bmt) => [
-         q(1325),
+         q(1321),
          q(0),
          ],
       q(bmu) => [
-         q(1326),
+         q(1322),
          q(0),
          ],
       q(bmv) => [
-         q(1327),
+         q(1323),
          q(0),
          ],
       q(bmw) => [
-         q(1328),
+         q(1324),
          q(0),
          ],
       q(bmx) => [
-         q(1329),
-         q(0),
-         ],
-      q(bmy) => [
-         q(1330),
+         q(1325),
          q(0),
          ],
       q(bmz) => [
-         q(1331),
+         q(1326),
          q(0),
          ],
       q(bna) => [
-         q(1332),
+         q(1327),
          q(0),
          ],
       q(bnb) => [
-         q(1333),
+         q(1328),
          q(0),
          ],
       q(bnc) => [
-         q(1334),
+         q(1329),
          q(0),
          ],
       q(bnd) => [
-         q(1335),
+         q(1330),
          q(0),
          ],
       q(bne) => [
-         q(1336),
+         q(1331),
          q(0),
          ],
       q(bnf) => [
-         q(1337),
+         q(1332),
          q(0),
          ],
       q(bng) => [
-         q(1338),
+         q(1333),
          q(0),
          ],
       q(bni) => [
-         q(1339),
+         q(1334),
          q(0),
          ],
       q(bnj) => [
-         q(1340),
+         q(1335),
          q(0),
          ],
       q(bnk) => [
-         q(1341),
+         q(1336),
          q(0),
          ],
       q(bnl) => [
-         q(1342),
+         q(1337),
          q(0),
          ],
       q(bnm) => [
-         q(1343),
+         q(1338),
          q(0),
          ],
       q(bnn) => [
-         q(1344),
+         q(1339),
          q(0),
          ],
       q(bno) => [
-         q(1345),
+         q(1340),
          q(0),
          ],
       q(bnp) => [
-         q(1346),
+         q(1341),
          q(0),
          ],
       q(bnq) => [
-         q(1347),
+         q(1342),
          q(0),
          ],
       q(bnr) => [
-         q(1348),
+         q(1343),
          q(0),
          ],
       q(bns) => [
-         q(1349),
+         q(1344),
          q(0),
          ],
       q(bnt) => [
@@ -61774,91 +61720,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(bnu) => [
-         q(1350),
+         q(1345),
          q(0),
          ],
       q(bnv) => [
-         q(1351),
+         q(1346),
          q(0),
          ],
       q(bnw) => [
-         q(1352),
+         q(1347),
          q(0),
          ],
       q(bnx) => [
-         q(1353),
+         q(1348),
          q(0),
          ],
       q(bny) => [
-         q(1354),
+         q(1349),
          q(0),
          ],
       q(bnz) => [
-         q(1355),
+         q(1350),
          q(0),
          ],
       q(boa) => [
-         q(1356),
+         q(1351),
          q(0),
          ],
       q(bob) => [
-         q(1357),
+         q(1352),
          q(0),
          ],
       q(boe) => [
-         q(1358),
+         q(1353),
          q(0),
          ],
       q(bof) => [
-         q(1359),
+         q(1354),
          q(0),
          ],
       q(bog) => [
-         q(1360),
+         q(1355),
          q(0),
          ],
       q(boh) => [
-         q(1361),
+         q(1356),
          q(0),
          ],
       q(boi) => [
-         q(1362),
+         q(1357),
          q(0),
          ],
       q(boj) => [
-         q(1363),
+         q(1358),
          q(0),
          ],
       q(bok) => [
-         q(1364),
+         q(1359),
          q(0),
          ],
       q(bol) => [
-         q(1365),
+         q(1360),
          q(0),
          ],
       q(bom) => [
-         q(1366),
+         q(1361),
          q(0),
          ],
       q(bon) => [
-         q(1367),
+         q(1362),
          q(0),
          ],
       q(boo) => [
-         q(1368),
+         q(1363),
          q(0),
          ],
       q(bop) => [
-         q(1369),
+         q(1364),
          q(0),
          ],
       q(boq) => [
-         q(1370),
+         q(1365),
          q(0),
          ],
       q(bor) => [
-         q(1371),
+         q(1366),
          q(0),
          ],
       q(bos) => [
@@ -61866,223 +61812,223 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bot) => [
-         q(1372),
+         q(1367),
          q(0),
          ],
       q(bou) => [
-         q(1373),
+         q(1368),
          q(0),
          ],
       q(bov) => [
-         q(1374),
+         q(1369),
          q(0),
          ],
       q(bow) => [
-         q(1375),
+         q(1370),
          q(0),
          ],
       q(box) => [
-         q(1376),
+         q(1371),
          q(0),
          ],
       q(boy) => [
-         q(1377),
+         q(1372),
          q(0),
          ],
       q(boz) => [
-         q(1378),
+         q(1373),
          q(0),
          ],
       q(bpa) => [
-         q(1379),
+         q(1374),
          q(0),
          ],
       q(bpb) => [
-         q(1380),
+         q(1375),
          q(0),
          ],
       q(bpd) => [
-         q(1381),
+         q(1376),
          q(0),
          ],
       q(bpg) => [
-         q(1382),
+         q(1377),
          q(0),
          ],
       q(bph) => [
-         q(1383),
+         q(1378),
          q(0),
          ],
       q(bpi) => [
-         q(1384),
+         q(1379),
          q(0),
          ],
       q(bpj) => [
-         q(1385),
+         q(1380),
          q(0),
          ],
       q(bpk) => [
-         q(1386),
+         q(1381),
          q(0),
          ],
       q(bpl) => [
-         q(1387),
+         q(1382),
          q(0),
          ],
       q(bpm) => [
-         q(1388),
+         q(1383),
          q(0),
          ],
       q(bpn) => [
-         q(1389),
+         q(1384),
          q(0),
          ],
       q(bpo) => [
-         q(1390),
+         q(1385),
          q(0),
          ],
       q(bpp) => [
-         q(1391),
+         q(1386),
          q(0),
          ],
       q(bpq) => [
-         q(1392),
+         q(1387),
          q(0),
          ],
       q(bpr) => [
-         q(1393),
+         q(1388),
          q(0),
          ],
       q(bps) => [
-         q(1394),
+         q(1389),
          q(0),
          ],
       q(bpt) => [
-         q(1395),
+         q(1390),
          q(0),
          ],
       q(bpu) => [
-         q(1396),
+         q(1391),
          q(0),
          ],
       q(bpv) => [
-         q(1397),
+         q(1392),
          q(0),
          ],
       q(bpw) => [
-         q(1398),
+         q(1393),
          q(0),
          ],
       q(bpx) => [
-         q(1399),
+         q(1394),
          q(0),
          ],
       q(bpy) => [
-         q(1400),
+         q(1395),
          q(0),
          ],
       q(bpz) => [
-         q(1401),
+         q(1396),
          q(0),
          ],
       q(bqa) => [
-         q(1402),
+         q(1397),
          q(0),
          ],
       q(bqb) => [
-         q(1403),
+         q(1398),
          q(0),
          ],
       q(bqc) => [
-         q(1404),
+         q(1399),
          q(0),
          ],
       q(bqd) => [
-         q(1405),
+         q(1400),
          q(0),
          ],
       q(bqf) => [
-         q(1406),
+         q(1401),
          q(0),
          ],
       q(bqg) => [
-         q(1407),
+         q(1402),
          q(0),
          ],
       q(bqh) => [
-         q(1408),
+         q(1403),
          q(0),
          ],
       q(bqi) => [
-         q(1409),
+         q(1404),
          q(0),
          ],
       q(bqj) => [
-         q(1410),
+         q(1405),
          q(0),
          ],
       q(bqk) => [
-         q(1411),
+         q(1406),
          q(0),
          ],
       q(bql) => [
-         q(1412),
+         q(1407),
          q(0),
          ],
       q(bqm) => [
-         q(1413),
+         q(1408),
          q(0),
          ],
       q(bqn) => [
-         q(1414),
+         q(1409),
          q(0),
          ],
       q(bqo) => [
-         q(1415),
+         q(1410),
          q(0),
          ],
       q(bqp) => [
-         q(1416),
+         q(1411),
          q(0),
          ],
       q(bqq) => [
-         q(1417),
+         q(1412),
          q(0),
          ],
       q(bqr) => [
-         q(1418),
+         q(1413),
          q(0),
          ],
       q(bqs) => [
-         q(1419),
+         q(1414),
          q(0),
          ],
       q(bqt) => [
-         q(1420),
+         q(1415),
          q(0),
          ],
       q(bqu) => [
-         q(1421),
+         q(1416),
          q(0),
          ],
       q(bqv) => [
-         q(1422),
+         q(1417),
          q(0),
          ],
       q(bqw) => [
-         q(1423),
+         q(1418),
          q(0),
          ],
       q(bqx) => [
-         q(1424),
+         q(1419),
          q(0),
          ],
       q(bqy) => [
-         q(1425),
+         q(1420),
          q(0),
          ],
       q(bqz) => [
-         q(1426),
+         q(1421),
          q(0),
          ],
       q(bra) => [
@@ -62090,15 +62036,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(brb) => [
-         q(1427),
+         q(1422),
          q(0),
          ],
       q(brc) => [
-         q(1428),
+         q(1423),
          q(0),
          ],
       q(brd) => [
-         q(1429),
+         q(1424),
          q(0),
          ],
       q(bre) => [
@@ -62106,219 +62052,219 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(brf) => [
-         q(1430),
+         q(1425),
          q(0),
          ],
       q(brg) => [
-         q(1431),
+         q(1426),
          q(0),
          ],
       q(brh) => [
-         q(1432),
+         q(1427),
          q(0),
          ],
       q(bri) => [
-         q(1433),
+         q(1428),
          q(0),
          ],
       q(brj) => [
-         q(1434),
+         q(1429),
          q(0),
          ],
       q(brk) => [
-         q(1435),
+         q(1430),
          q(0),
          ],
       q(brl) => [
-         q(1436),
+         q(1431),
          q(0),
          ],
       q(brm) => [
-         q(1437),
+         q(1432),
          q(0),
          ],
       q(brn) => [
-         q(1438),
+         q(1433),
          q(0),
          ],
       q(bro) => [
-         q(1439),
+         q(1434),
          q(0),
          ],
       q(brp) => [
-         q(1440),
+         q(1435),
          q(0),
          ],
       q(brq) => [
-         q(1441),
+         q(1436),
          q(0),
          ],
       q(brr) => [
-         q(1442),
+         q(1437),
          q(0),
          ],
       q(brs) => [
-         q(1443),
+         q(1438),
          q(0),
          ],
       q(brt) => [
-         q(1444),
+         q(1439),
          q(0),
          ],
       q(bru) => [
-         q(1445),
+         q(1440),
          q(0),
          ],
       q(brv) => [
-         q(1446),
+         q(1441),
          q(0),
          ],
       q(brw) => [
-         q(1447),
+         q(1442),
          q(0),
          ],
       q(brx) => [
-         q(1448),
+         q(1443),
          q(0),
          ],
       q(bry) => [
-         q(1449),
+         q(1444),
          q(0),
          ],
       q(brz) => [
-         q(1450),
+         q(1445),
          q(0),
          ],
       q(bsa) => [
-         q(1451),
+         q(1446),
          q(0),
          ],
       q(bsb) => [
-         q(1452),
+         q(1447),
          q(0),
          ],
       q(bsc) => [
-         q(1453),
+         q(1448),
          q(0),
          ],
       q(bse) => [
-         q(1454),
+         q(1449),
          q(0),
          ],
       q(bsf) => [
-         q(1455),
+         q(1450),
          q(0),
          ],
       q(bsg) => [
-         q(1456),
+         q(1451),
          q(0),
          ],
       q(bsh) => [
-         q(1457),
+         q(1452),
          q(0),
          ],
       q(bsi) => [
-         q(1458),
+         q(1453),
          q(0),
          ],
       q(bsj) => [
-         q(1459),
+         q(1454),
          q(0),
          ],
       q(bsk) => [
-         q(1460),
+         q(1455),
          q(0),
          ],
       q(bsl) => [
-         q(1461),
+         q(1456),
          q(0),
          ],
       q(bsm) => [
-         q(1462),
+         q(1457),
          q(0),
          ],
       q(bsn) => [
-         q(1463),
+         q(1458),
          q(0),
          ],
       q(bso) => [
-         q(1464),
+         q(1459),
          q(0),
          ],
       q(bsp) => [
-         q(1465),
+         q(1460),
          q(0),
          ],
       q(bsq) => [
-         q(1466),
+         q(1461),
          q(0),
          ],
       q(bsr) => [
-         q(1467),
+         q(1462),
          q(0),
          ],
       q(bss) => [
-         q(1468),
+         q(1463),
          q(0),
          ],
       q(bst) => [
-         q(1469),
+         q(1464),
          q(0),
          ],
       q(bsu) => [
-         q(1470),
+         q(1465),
          q(0),
          ],
       q(bsv) => [
-         q(1471),
+         q(1466),
          q(0),
          ],
       q(bsw) => [
-         q(1472),
+         q(1467),
          q(0),
          ],
       q(bsx) => [
-         q(1473),
+         q(1468),
          q(0),
          ],
       q(bsy) => [
-         q(1474),
+         q(1469),
          q(0),
          ],
       q(bta) => [
-         q(1475),
+         q(1470),
          q(0),
          ],
       q(btc) => [
-         q(1476),
+         q(1471),
          q(0),
          ],
       q(btd) => [
-         q(1477),
+         q(1472),
          q(0),
          ],
       q(bte) => [
-         q(1478),
+         q(1473),
          q(0),
          ],
       q(btf) => [
-         q(1479),
+         q(1474),
          q(0),
          ],
       q(btg) => [
-         q(1480),
+         q(1475),
          q(0),
          ],
       q(bth) => [
-         q(1481),
+         q(1476),
          q(0),
          ],
       q(bti) => [
-         q(1482),
+         q(1477),
          q(0),
          ],
       q(btj) => [
-         q(1483),
+         q(1478),
          q(0),
          ],
       q(btk) => [
@@ -62326,63 +62272,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(btl) => [
-         q(1484),
+         q(1479),
          q(0),
          ],
       q(btm) => [
-         q(1485),
+         q(1480),
          q(0),
          ],
       q(btn) => [
-         q(1486),
+         q(1481),
          q(0),
          ],
       q(bto) => [
-         q(1487),
+         q(1482),
          q(0),
          ],
       q(btp) => [
-         q(1488),
+         q(1483),
          q(0),
          ],
       q(btq) => [
-         q(1489),
+         q(1484),
          q(0),
          ],
       q(btr) => [
-         q(1490),
+         q(1485),
          q(0),
          ],
       q(bts) => [
-         q(1491),
+         q(1486),
          q(0),
          ],
       q(btt) => [
-         q(1492),
+         q(1487),
          q(0),
          ],
       q(btu) => [
-         q(1493),
+         q(1488),
          q(0),
          ],
       q(btv) => [
-         q(1494),
+         q(1489),
          q(0),
          ],
       q(btw) => [
-         q(1495),
+         q(1490),
          q(0),
          ],
       q(btx) => [
-         q(1496),
+         q(1491),
          q(0),
          ],
       q(bty) => [
-         q(1497),
+         q(1492),
          q(0),
          ],
       q(btz) => [
-         q(1498),
+         q(1493),
          q(0),
          ],
       q(bua) => [
@@ -62390,23 +62336,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bub) => [
-         q(1499),
+         q(1494),
          q(0),
          ],
       q(buc) => [
-         q(1500),
+         q(1495),
          q(0),
          ],
       q(bud) => [
-         q(1501),
+         q(1496),
          q(0),
          ],
       q(bue) => [
-         q(1502),
+         q(1497),
          q(0),
          ],
       q(buf) => [
-         q(1503),
+         q(1498),
          q(0),
          ],
       q(bug) => [
@@ -62414,19 +62360,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(buh) => [
-         q(1504),
+         q(1499),
          q(0),
          ],
       q(bui) => [
-         q(1505),
+         q(1500),
          q(0),
          ],
       q(buj) => [
-         q(1506),
+         q(1501),
          q(0),
          ],
       q(buk) => [
-         q(1507),
+         q(1502),
          q(0),
          ],
       q(bul) => [
@@ -62434,23 +62380,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bum) => [
-         q(1508),
+         q(1503),
          q(0),
          ],
       q(bun) => [
-         q(1509),
+         q(1504),
          q(0),
          ],
       q(buo) => [
-         q(1510),
+         q(1505),
          q(0),
          ],
       q(bup) => [
-         q(1511),
+         q(1506),
          q(0),
          ],
       q(buq) => [
-         q(1512),
+         q(1507),
          q(0),
          ],
       q(bur) => [
@@ -62458,383 +62404,379 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bus) => [
-         q(1513),
+         q(1508),
          q(0),
          ],
       q(but) => [
-         q(1514),
+         q(1509),
          q(0),
          ],
       q(buu) => [
-         q(1515),
+         q(1510),
          q(0),
          ],
       q(buv) => [
-         q(1516),
+         q(1511),
          q(0),
          ],
       q(buw) => [
-         q(1517),
+         q(1512),
          q(0),
          ],
       q(bux) => [
-         q(1518),
+         q(1513),
          q(0),
          ],
       q(buy) => [
-         q(1519),
+         q(1514),
          q(0),
          ],
       q(buz) => [
-         q(1520),
+         q(1515),
          q(0),
          ],
       q(bva) => [
-         q(1521),
+         q(1516),
          q(0),
          ],
       q(bvb) => [
-         q(1522),
+         q(1517),
          q(0),
          ],
       q(bvc) => [
-         q(1523),
+         q(1518),
          q(0),
          ],
       q(bvd) => [
-         q(1524),
+         q(1519),
          q(0),
          ],
       q(bve) => [
-         q(1525),
+         q(1520),
          q(0),
          ],
       q(bvf) => [
-         q(1526),
+         q(1521),
          q(0),
          ],
       q(bvg) => [
-         q(1527),
+         q(1522),
          q(0),
          ],
       q(bvh) => [
-         q(1528),
+         q(1523),
          q(0),
          ],
       q(bvi) => [
-         q(1529),
+         q(1524),
          q(0),
          ],
       q(bvj) => [
-         q(1530),
+         q(1525),
          q(0),
          ],
       q(bvk) => [
-         q(1531),
+         q(1526),
          q(0),
          ],
       q(bvl) => [
-         q(1532),
+         q(1527),
          q(0),
          ],
       q(bvm) => [
-         q(1533),
+         q(1528),
          q(0),
          ],
       q(bvn) => [
-         q(1534),
+         q(1529),
          q(0),
          ],
       q(bvo) => [
-         q(1535),
+         q(1530),
          q(0),
          ],
       q(bvp) => [
-         q(1536),
+         q(1531),
          q(0),
          ],
       q(bvq) => [
-         q(1537),
+         q(1532),
          q(0),
          ],
       q(bvr) => [
-         q(1538),
+         q(1533),
          q(0),
          ],
       q(bvt) => [
-         q(1539),
+         q(1534),
          q(0),
          ],
       q(bvu) => [
-         q(1540),
+         q(1535),
          q(0),
          ],
       q(bvv) => [
-         q(1541),
+         q(1536),
          q(0),
          ],
       q(bvw) => [
-         q(1542),
+         q(1537),
          q(0),
          ],
       q(bvx) => [
-         q(1543),
+         q(1538),
          q(0),
          ],
       q(bvy) => [
-         q(1544),
+         q(1539),
          q(0),
          ],
       q(bvz) => [
-         q(1545),
+         q(1540),
          q(0),
          ],
       q(bwa) => [
-         q(1546),
+         q(1541),
          q(0),
          ],
       q(bwb) => [
-         q(1547),
+         q(1542),
          q(0),
          ],
       q(bwc) => [
-         q(1548),
+         q(1543),
          q(0),
          ],
       q(bwd) => [
-         q(1549),
+         q(1544),
          q(0),
          ],
       q(bwe) => [
-         q(1550),
+         q(1545),
          q(0),
          ],
       q(bwf) => [
-         q(1551),
+         q(1546),
          q(0),
          ],
       q(bwg) => [
-         q(1552),
+         q(1547),
          q(0),
          ],
       q(bwh) => [
-         q(1553),
+         q(1548),
          q(0),
          ],
       q(bwi) => [
-         q(1554),
+         q(1549),
          q(0),
          ],
       q(bwj) => [
-         q(1555),
+         q(1550),
          q(0),
          ],
       q(bwk) => [
-         q(1556),
+         q(1551),
          q(0),
          ],
       q(bwl) => [
-         q(1557),
+         q(1552),
          q(0),
          ],
       q(bwm) => [
-         q(1558),
+         q(1553),
          q(0),
          ],
       q(bwn) => [
-         q(1559),
+         q(1554),
          q(0),
          ],
       q(bwo) => [
-         q(1560),
+         q(1555),
          q(0),
          ],
       q(bwp) => [
-         q(1561),
+         q(1556),
          q(0),
          ],
       q(bwq) => [
-         q(1562),
+         q(1557),
          q(0),
          ],
       q(bwr) => [
-         q(1563),
+         q(1558),
          q(0),
          ],
       q(bws) => [
-         q(1564),
+         q(1559),
          q(0),
          ],
       q(bwt) => [
-         q(1565),
+         q(1560),
          q(0),
          ],
       q(bwu) => [
-         q(1566),
+         q(1561),
          q(0),
          ],
       q(bww) => [
-         q(1567),
+         q(1562),
          q(0),
          ],
       q(bwx) => [
-         q(1568),
+         q(1563),
          q(0),
          ],
       q(bwy) => [
-         q(1569),
+         q(1564),
          q(0),
          ],
       q(bwz) => [
-         q(1570),
+         q(1565),
          q(0),
          ],
       q(bxa) => [
-         q(1571),
+         q(1566),
          q(0),
          ],
       q(bxb) => [
-         q(1572),
+         q(1567),
          q(0),
          ],
       q(bxc) => [
-         q(1573),
+         q(1568),
          q(0),
          ],
       q(bxd) => [
-         q(1574),
+         q(1569),
          q(0),
          ],
       q(bxe) => [
-         q(1575),
+         q(1570),
          q(0),
          ],
       q(bxf) => [
-         q(1576),
+         q(1571),
          q(0),
          ],
       q(bxg) => [
-         q(1577),
+         q(1572),
          q(0),
          ],
       q(bxh) => [
-         q(1578),
+         q(1573),
          q(0),
          ],
       q(bxi) => [
-         q(1579),
+         q(1574),
          q(0),
          ],
       q(bxj) => [
-         q(1580),
+         q(1575),
          q(0),
          ],
       q(bxk) => [
-         q(1581),
+         q(1576),
          q(0),
          ],
       q(bxl) => [
-         q(1582),
+         q(1577),
          q(0),
          ],
       q(bxm) => [
-         q(1583),
+         q(1578),
          q(0),
          ],
       q(bxn) => [
-         q(1584),
+         q(1579),
          q(0),
          ],
       q(bxo) => [
-         q(1585),
+         q(1580),
          q(0),
          ],
       q(bxp) => [
-         q(1586),
+         q(1581),
          q(0),
          ],
       q(bxq) => [
-         q(1587),
+         q(1582),
          q(0),
          ],
       q(bxr) => [
-         q(1588),
+         q(1583),
          q(0),
          ],
       q(bxs) => [
-         q(1589),
+         q(1584),
          q(0),
          ],
       q(bxu) => [
-         q(1590),
+         q(1585),
          q(0),
          ],
       q(bxv) => [
-         q(1591),
+         q(1586),
          q(0),
          ],
       q(bxw) => [
-         q(1592),
-         q(0),
-         ],
-      q(bxx) => [
-         q(1593),
+         q(1587),
          q(0),
          ],
       q(bxz) => [
-         q(1594),
+         q(1588),
          q(0),
          ],
       q(bya) => [
-         q(1595),
+         q(1589),
          q(0),
          ],
       q(byb) => [
-         q(1596),
+         q(1590),
          q(0),
          ],
       q(byc) => [
-         q(1597),
+         q(1591),
          q(0),
          ],
       q(byd) => [
-         q(1598),
+         q(1592),
          q(0),
          ],
       q(bye) => [
-         q(1599),
+         q(1593),
          q(0),
          ],
       q(byf) => [
-         q(1600),
+         q(1594),
          q(0),
          ],
       q(byg) => [
-         q(1601),
+         q(1595),
          q(0),
          ],
       q(byh) => [
-         q(1602),
+         q(1596),
          q(0),
          ],
       q(byi) => [
-         q(1603),
+         q(1597),
          q(0),
          ],
       q(byj) => [
-         q(1604),
+         q(1598),
          q(0),
          ],
       q(byk) => [
-         q(1605),
+         q(1599),
          q(0),
          ],
       q(byl) => [
-         q(1606),
+         q(1600),
          q(0),
          ],
       q(bym) => [
-         q(1607),
+         q(1601),
          q(0),
          ],
       q(byn) => [
@@ -62842,163 +62784,159 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(byo) => [
-         q(1608),
+         q(1602),
          q(0),
          ],
       q(byp) => [
-         q(1609),
+         q(1603),
          q(0),
          ],
       q(byq) => [
-         q(1610),
+         q(1604),
          q(0),
          ],
       q(byr) => [
-         q(1611),
+         q(1605),
          q(0),
          ],
       q(bys) => [
-         q(1612),
+         q(1606),
          q(0),
          ],
       q(byt) => [
-         q(1613),
+         q(1607),
          q(0),
          ],
       q(byv) => [
-         q(1614),
+         q(1608),
          q(0),
          ],
       q(byw) => [
-         q(1615),
+         q(1609),
          q(0),
          ],
       q(byx) => [
-         q(1616),
-         q(0),
-         ],
-      q(byy) => [
-         q(1617),
+         q(1610),
          q(0),
          ],
       q(byz) => [
-         q(1618),
+         q(1611),
          q(0),
          ],
       q(bza) => [
-         q(1619),
+         q(1612),
          q(0),
          ],
       q(bzb) => [
-         q(1620),
+         q(1613),
          q(0),
          ],
       q(bzc) => [
-         q(1621),
+         q(1614),
          q(0),
          ],
       q(bzd) => [
-         q(1622),
+         q(1615),
          q(0),
          ],
       q(bze) => [
-         q(1623),
+         q(1616),
          q(0),
          ],
       q(bzf) => [
-         q(1624),
+         q(1617),
          q(0),
          ],
       q(bzg) => [
-         q(1625),
+         q(1618),
          q(0),
          ],
       q(bzh) => [
-         q(1626),
+         q(1619),
          q(0),
          ],
       q(bzi) => [
-         q(1627),
+         q(1620),
          q(0),
          ],
       q(bzj) => [
-         q(1628),
+         q(1621),
          q(0),
          ],
       q(bzk) => [
-         q(1629),
+         q(1622),
          q(0),
          ],
       q(bzl) => [
-         q(1630),
+         q(1623),
          q(0),
          ],
       q(bzm) => [
-         q(1631),
+         q(1624),
          q(0),
          ],
       q(bzn) => [
-         q(1632),
+         q(1625),
          q(0),
          ],
       q(bzo) => [
-         q(1633),
+         q(1626),
          q(0),
          ],
       q(bzp) => [
-         q(1634),
+         q(1627),
          q(0),
          ],
       q(bzq) => [
-         q(1635),
+         q(1628),
          q(0),
          ],
       q(bzr) => [
-         q(1636),
+         q(1629),
          q(0),
          ],
       q(bzs) => [
-         q(1637),
+         q(1630),
          q(0),
          ],
       q(bzt) => [
-         q(1638),
+         q(1631),
          q(0),
          ],
       q(bzu) => [
-         q(1639),
+         q(1632),
          q(0),
          ],
       q(bzv) => [
-         q(1640),
+         q(1633),
          q(0),
          ],
       q(bzw) => [
-         q(1641),
+         q(1634),
          q(0),
          ],
       q(bzx) => [
-         q(1642),
+         q(1635),
          q(0),
          ],
       q(bzy) => [
-         q(1643),
+         q(1636),
          q(0),
          ],
       q(bzz) => [
-         q(1644),
+         q(1637),
          q(0),
          ],
       q(caa) => [
-         q(1645),
+         q(1638),
          q(0),
          ],
       q(cab) => [
-         q(1646),
+         q(1639),
          q(0),
          ],
       q(cac) => [
-         q(1647),
+         q(1640),
          q(0),
          ],
       q(cad) => [
@@ -63006,19 +62944,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cae) => [
-         q(1648),
+         q(1641),
          q(0),
          ],
       q(caf) => [
-         q(1649),
+         q(1642),
          q(0),
          ],
       q(cag) => [
-         q(1650),
+         q(1643),
          q(0),
          ],
       q(cah) => [
-         q(1651),
+         q(1644),
          q(0),
          ],
       q(cai) => [
@@ -63026,35 +62964,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(caj) => [
-         q(1652),
+         q(1645),
          q(0),
          ],
       q(cak) => [
-         q(1653),
+         q(1646),
          q(0),
          ],
       q(cal) => [
-         q(1654),
+         q(1647),
          q(0),
          ],
       q(cam) => [
-         q(1655),
+         q(1648),
          q(0),
          ],
       q(can) => [
-         q(1656),
+         q(1649),
          q(0),
          ],
       q(cao) => [
-         q(1657),
+         q(1650),
          q(0),
          ],
       q(cap) => [
-         q(1658),
+         q(1651),
          q(0),
          ],
       q(caq) => [
-         q(1659),
+         q(1652),
          q(0),
          ],
       q(car) => [
@@ -63062,7 +63000,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cas) => [
-         q(1660),
+         q(1653),
          q(0),
          ],
       q(cat) => [
@@ -63074,23 +63012,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cav) => [
-         q(1661),
+         q(1654),
          q(0),
          ],
       q(caw) => [
-         q(1662),
+         q(1655),
          q(0),
          ],
       q(cax) => [
-         q(1663),
+         q(1656),
          q(0),
          ],
       q(cay) => [
-         q(1664),
+         q(1657),
          q(0),
          ],
       q(caz) => [
-         q(1665),
+         q(1658),
          q(0),
          ],
       q(cba) => [
@@ -63098,115 +63036,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cbb) => [
-         q(1666),
+         q(1659),
          q(0),
          ],
       q(cbc) => [
-         q(1667),
+         q(1660),
          q(0),
          ],
       q(cbd) => [
-         q(1668),
+         q(1661),
          q(0),
          ],
       q(cbe) => [
-         q(1669),
+         q(1662),
          q(0),
          ],
       q(cbg) => [
-         q(1670),
+         q(1663),
          q(0),
          ],
       q(cbh) => [
-         q(1671),
+         q(1664),
          q(0),
          ],
       q(cbi) => [
-         q(1672),
+         q(1665),
          q(0),
          ],
       q(cbj) => [
-         q(1673),
+         q(1666),
          q(0),
          ],
       q(cbk) => [
-         q(1674),
+         q(1667),
          q(0),
          ],
       q(cbl) => [
-         q(1675),
+         q(1668),
          q(0),
          ],
       q(cbn) => [
-         q(1676),
+         q(1669),
          q(0),
          ],
       q(cbo) => [
-         q(1677),
+         q(1670),
+         q(0),
+         ],
+      q(cbq) => [
+         q(1671),
          q(0),
          ],
       q(cbr) => [
-         q(1678),
+         q(1672),
          q(0),
          ],
       q(cbs) => [
-         q(1679),
+         q(1673),
          q(0),
          ],
       q(cbt) => [
-         q(1680),
+         q(1674),
          q(0),
          ],
       q(cbu) => [
-         q(1681),
+         q(1675),
          q(0),
          ],
       q(cbv) => [
-         q(1682),
+         q(1676),
          q(0),
          ],
       q(cbw) => [
-         q(1683),
+         q(1677),
          q(0),
          ],
       q(cby) => [
-         q(1684),
+         q(1678),
          q(0),
          ],
       q(cca) => [
-         q(1685),
+         q(1679),
          q(0),
          ],
       q(ccc) => [
-         q(1686),
+         q(1680),
          q(0),
          ],
       q(ccd) => [
-         q(1687),
+         q(1681),
          q(0),
          ],
       q(cce) => [
-         q(1688),
+         q(1682),
          q(0),
          ],
       q(ccg) => [
-         q(1689),
+         q(1683),
          q(0),
          ],
       q(cch) => [
-         q(1690),
+         q(1684),
          q(0),
          ],
       q(ccj) => [
-         q(1691),
+         q(1685),
          q(0),
          ],
       q(ccl) => [
-         q(1692),
+         q(1686),
          q(0),
          ],
       q(ccm) => [
-         q(1693),
+         q(1687),
          q(0),
          ],
       q(ccn) => [
@@ -63214,15 +63156,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cco) => [
-         q(1694),
+         q(1688),
          q(0),
          ],
       q(ccp) => [
-         q(1695),
+         q(1689),
          q(0),
          ],
       q(ccr) => [
-         q(1696),
+         q(1690),
          q(0),
          ],
       q(ccs) => [
@@ -63230,7 +63172,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cda) => [
-         q(1697),
+         q(1691),
          q(0),
          ],
       q(cdc) => [
@@ -63242,59 +63184,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cde) => [
-         q(1698),
+         q(1692),
          q(0),
          ],
       q(cdf) => [
-         q(1699),
+         q(1693),
          q(0),
          ],
       q(cdg) => [
-         q(1700),
+         q(1694),
          q(0),
          ],
       q(cdh) => [
-         q(1701),
+         q(1695),
          q(0),
          ],
       q(cdi) => [
-         q(1702),
+         q(1696),
          q(0),
          ],
       q(cdj) => [
-         q(1703),
+         q(1697),
          q(0),
          ],
       q(cdm) => [
-         q(1704),
+         q(1698),
          q(0),
          ],
       q(cdn) => [
-         q(1705),
+         q(1699),
          q(0),
          ],
       q(cdo) => [
-         q(1706),
+         q(1700),
          q(0),
          ],
       q(cdr) => [
-         q(1707),
+         q(1701),
          q(0),
          ],
       q(cds) => [
-         q(1708),
+         q(1702),
          q(0),
          ],
       q(cdy) => [
-         q(1709),
+         q(1703),
          q(0),
          ],
       q(cdz) => [
-         q(1710),
+         q(1704),
          q(0),
          ],
       q(cea) => [
-         q(1711),
+         q(1705),
          q(0),
          ],
       q(ceb) => [
@@ -63302,11 +63244,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ceg) => [
-         q(1712),
+         q(1706),
          q(0),
          ],
       q(cek) => [
-         q(1713),
+         q(1707),
          q(0),
          ],
       q(cel) => [
@@ -63314,43 +63256,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cen) => [
-         q(1714),
+         q(1708),
          q(0),
          ],
       q(cet) => [
-         q(1715),
+         q(1709),
          q(0),
          ],
       q(cfa) => [
-         q(1716),
+         q(1710),
          q(0),
          ],
       q(cfd) => [
-         q(1717),
+         q(1711),
          q(0),
          ],
       q(cfg) => [
-         q(1718),
+         q(1712),
          q(0),
          ],
       q(cfm) => [
-         q(1719),
+         q(1713),
          q(0),
          ],
       q(cga) => [
-         q(1720),
+         q(1714),
          q(0),
          ],
       q(cgc) => [
-         q(1721),
+         q(1715),
          q(0),
          ],
       q(cgg) => [
-         q(1722),
+         q(1716),
          q(0),
          ],
       q(cgk) => [
-         q(1723),
+         q(1717),
          q(0),
          ],
       q(cha) => [
@@ -63362,11 +63304,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chc) => [
-         q(1724),
+         q(1718),
          q(0),
          ],
       q(chd) => [
-         q(1725),
+         q(1719),
          q(0),
          ],
       q(che) => [
@@ -63374,7 +63316,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chf) => [
-         q(1726),
+         q(1720),
          q(0),
          ],
       q(chg) => [
@@ -63382,7 +63324,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chh) => [
-         q(1727),
+         q(1721),
          q(0),
          ],
       q(chi) => [
@@ -63390,7 +63332,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chj) => [
-         q(1728),
+         q(1722),
          q(0),
          ],
       q(chk) => [
@@ -63398,7 +63340,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chl) => [
-         q(1729),
+         q(1723),
          q(0),
          ],
       q(chm) => [
@@ -63418,7 +63360,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chq) => [
-         q(1730),
+         q(1724),
          q(0),
          ],
       q(chr) => [
@@ -63426,7 +63368,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cht) => [
-         q(1731),
+         q(1725),
          q(0),
          ],
       q(chu) => [
@@ -63438,11 +63380,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chw) => [
-         q(1732),
+         q(1726),
          q(0),
          ],
       q(chx) => [
-         q(1733),
+         q(1727),
          q(0),
          ],
       q(chy) => [
@@ -63450,227 +63392,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chz) => [
-         q(1734),
+         q(1728),
          q(0),
          ],
       q(cia) => [
-         q(1735),
+         q(1729),
          q(0),
          ],
       q(cib) => [
-         q(1736),
+         q(1730),
          q(0),
          ],
       q(cic) => [
-         q(1737),
+         q(1731),
          q(0),
          ],
       q(cid) => [
-         q(1738),
+         q(1732),
          q(0),
          ],
       q(cie) => [
-         q(1739),
+         q(1733),
          q(0),
          ],
       q(cih) => [
-         q(1740),
+         q(1734),
          q(0),
          ],
       q(cik) => [
-         q(1741),
+         q(1735),
          q(0),
          ],
       q(cim) => [
-         q(1742),
+         q(1736),
          q(0),
          ],
       q(cin) => [
-         q(1743),
+         q(1737),
          q(0),
          ],
       q(cip) => [
-         q(1744),
+         q(1738),
          q(0),
          ],
       q(cir) => [
-         q(1745),
+         q(1739),
          q(0),
          ],
       q(ciw) => [
-         q(1746),
+         q(1740),
          q(0),
          ],
       q(ciy) => [
-         q(1747),
+         q(1741),
          q(0),
          ],
       q(cja) => [
-         q(1748),
+         q(1742),
          q(0),
          ],
       q(cje) => [
-         q(1749),
+         q(1743),
          q(0),
          ],
       q(cjh) => [
-         q(1750),
+         q(1744),
          q(0),
          ],
       q(cji) => [
-         q(1751),
+         q(1745),
          q(0),
          ],
       q(cjk) => [
-         q(1752),
+         q(1746),
          q(0),
          ],
       q(cjm) => [
-         q(1753),
+         q(1747),
          q(0),
          ],
       q(cjn) => [
-         q(1754),
+         q(1748),
          q(0),
          ],
       q(cjo) => [
-         q(1755),
+         q(1749),
          q(0),
          ],
       q(cjp) => [
-         q(1756),
+         q(1750),
          q(0),
          ],
       q(cjs) => [
-         q(1757),
+         q(1751),
          q(0),
          ],
       q(cjv) => [
-         q(1758),
+         q(1752),
          q(0),
          ],
       q(cjy) => [
-         q(1759),
+         q(1753),
          q(0),
          ],
       q(ckb) => [
-         q(1760),
+         q(1754),
          q(0),
          ],
       q(ckh) => [
-         q(1761),
+         q(1755),
          q(0),
          ],
       q(ckl) => [
-         q(1762),
+         q(1756),
          q(0),
          ],
       q(ckn) => [
-         q(1763),
+         q(1757),
          q(0),
          ],
       q(cko) => [
-         q(1764),
+         q(1758),
          q(0),
          ],
       q(ckq) => [
-         q(1765),
+         q(1759),
          q(0),
          ],
       q(ckr) => [
-         q(1766),
+         q(1760),
          q(0),
          ],
       q(cks) => [
-         q(1767),
+         q(1761),
          q(0),
          ],
       q(ckt) => [
-         q(1768),
+         q(1762),
          q(0),
          ],
       q(cku) => [
-         q(1769),
+         q(1763),
          q(0),
          ],
       q(ckv) => [
-         q(1770),
+         q(1764),
          q(0),
          ],
       q(ckx) => [
-         q(1771),
+         q(1765),
          q(0),
          ],
       q(cky) => [
-         q(1772),
+         q(1766),
          q(0),
          ],
       q(ckz) => [
-         q(1773),
+         q(1767),
          q(0),
          ],
       q(cla) => [
-         q(1774),
+         q(1768),
          q(0),
          ],
       q(clc) => [
-         q(1775),
+         q(1769),
          q(0),
          ],
       q(cld) => [
-         q(1776),
+         q(1770),
          q(0),
          ],
       q(cle) => [
-         q(1777),
+         q(1771),
          q(0),
          ],
       q(clh) => [
-         q(1778),
+         q(1772),
          q(0),
          ],
       q(cli) => [
-         q(1779),
+         q(1773),
          q(0),
          ],
       q(clj) => [
-         q(1780),
+         q(1774),
          q(0),
          ],
       q(clk) => [
-         q(1781),
+         q(1775),
          q(0),
          ],
       q(cll) => [
-         q(1782),
+         q(1776),
          q(0),
          ],
       q(clm) => [
-         q(1783),
+         q(1777),
          q(0),
          ],
       q(clo) => [
-         q(1784),
+         q(1778),
          q(0),
          ],
       q(clt) => [
-         q(1785),
+         q(1779),
          q(0),
          ],
       q(clu) => [
-         q(1786),
+         q(1780),
          q(0),
          ],
       q(clw) => [
-         q(1787),
+         q(1781),
          q(0),
          ],
       q(cly) => [
-         q(1788),
+         q(1782),
          q(0),
          ],
       q(cma) => [
-         q(1789),
+         q(1783),
          q(0),
          ],
       q(cmc) => [
@@ -63678,155 +63620,155 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cme) => [
-         q(1790),
+         q(1784),
          q(0),
          ],
       q(cmg) => [
-         q(1791),
+         q(1785),
          q(0),
          ],
       q(cmi) => [
-         q(1792),
+         q(1786),
          q(0),
          ],
       q(cml) => [
-         q(1793),
+         q(1787),
          q(0),
          ],
       q(cmm) => [
-         q(1794),
+         q(1788),
          q(0),
          ],
       q(cmn) => [
-         q(1795),
+         q(1789),
          q(0),
          ],
       q(cmo) => [
-         q(1796),
+         q(1790),
          q(0),
          ],
       q(cmr) => [
-         q(1797),
+         q(1791),
          q(0),
          ],
       q(cms) => [
-         q(1798),
+         q(1792),
          q(0),
          ],
       q(cmt) => [
-         q(1799),
+         q(1793),
          q(0),
          ],
       q(cna) => [
-         q(1800),
+         q(1794),
          q(0),
          ],
       q(cnb) => [
-         q(1801),
+         q(1795),
          q(0),
          ],
       q(cnc) => [
-         q(1802),
+         q(1796),
          q(0),
          ],
       q(cng) => [
-         q(1803),
+         q(1797),
          q(0),
          ],
       q(cnh) => [
-         q(1804),
+         q(1798),
          q(0),
          ],
       q(cni) => [
-         q(1805),
+         q(1799),
          q(0),
          ],
       q(cnk) => [
-         q(1806),
+         q(1800),
          q(0),
          ],
       q(cnl) => [
-         q(1807),
+         q(1801),
          q(0),
          ],
       q(cno) => [
-         q(1808),
+         q(1802),
          q(0),
          ],
       q(cns) => [
-         q(1809),
+         q(1803),
          q(0),
          ],
       q(cnt) => [
-         q(1810),
+         q(1804),
          q(0),
          ],
       q(cnu) => [
-         q(1811),
+         q(1805),
          q(0),
          ],
       q(cnw) => [
-         q(1812),
+         q(1806),
          q(0),
          ],
       q(cnx) => [
-         q(1813),
+         q(1807),
          q(0),
          ],
       q(coa) => [
-         q(1814),
+         q(1808),
          q(0),
          ],
       q(cob) => [
-         q(1815),
+         q(1809),
          q(0),
          ],
       q(coc) => [
-         q(1816),
+         q(1810),
          q(0),
          ],
       q(cod) => [
-         q(1817),
+         q(1811),
          q(0),
          ],
       q(coe) => [
-         q(1818),
+         q(1812),
          q(0),
          ],
       q(cof) => [
-         q(1819),
+         q(1813),
          q(0),
          ],
       q(cog) => [
-         q(1820),
+         q(1814),
          q(0),
          ],
       q(coh) => [
-         q(1821),
+         q(1815),
          q(0),
          ],
       q(coj) => [
-         q(1822),
+         q(1816),
          q(0),
          ],
       q(cok) => [
-         q(1823),
+         q(1817),
          q(0),
          ],
       q(col) => [
-         q(1824),
+         q(1818),
          q(0),
          ],
       q(com) => [
-         q(1825),
+         q(1819),
          q(0),
          ],
       q(con) => [
-         q(1826),
+         q(1820),
          q(0),
          ],
       q(coo) => [
-         q(1827),
+         q(1821),
          q(0),
          ],
       q(cop) => [
@@ -63834,7 +63776,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(coq) => [
-         q(1828),
+         q(1822),
          q(0),
          ],
       q(cor) => [
@@ -63846,43 +63788,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cot) => [
-         q(1829),
+         q(1823),
          q(0),
          ],
       q(cou) => [
-         q(1830),
+         q(1824),
          q(0),
          ],
       q(cov) => [
-         q(1831),
+         q(1825),
          q(0),
          ],
       q(cow) => [
-         q(1832),
+         q(1826),
          q(0),
          ],
       q(cox) => [
-         q(1833),
+         q(1827),
          q(0),
          ],
       q(coy) => [
-         q(1834),
+         q(1828),
          q(0),
          ],
       q(coz) => [
-         q(1835),
+         q(1829),
          q(0),
          ],
       q(cpa) => [
-         q(1836),
+         q(1830),
          q(0),
          ],
       q(cpb) => [
-         q(1837),
+         q(1831),
          q(0),
          ],
       q(cpc) => [
-         q(1838),
+         q(1832),
          q(0),
          ],
       q(cpe) => [
@@ -63894,19 +63836,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(2),
          ],
       q(cpg) => [
-         q(1839),
+         q(1833),
          q(0),
          ],
       q(cpi) => [
-         q(1840),
+         q(1834),
          q(0),
          ],
       q(cpn) => [
-         q(1841),
+         q(1835),
          q(0),
          ],
       q(cpo) => [
-         q(1842),
+         q(1836),
          q(0),
          ],
       q(cpp) => [
@@ -63914,43 +63856,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(2),
          ],
       q(cps) => [
-         q(1843),
+         q(1837),
          q(0),
          ],
       q(cpu) => [
-         q(1844),
+         q(1838),
          q(0),
          ],
       q(cpx) => [
-         q(1845),
+         q(1839),
          q(0),
          ],
       q(cpy) => [
-         q(1846),
+         q(1840),
          q(0),
          ],
       q(cqd) => [
-         q(1847),
+         q(1841),
          q(0),
          ],
       q(cqu) => [
-         q(1848),
+         q(1842),
          q(0),
          ],
       q(cra) => [
-         q(1849),
+         q(1843),
          q(0),
          ],
       q(crb) => [
-         q(1850),
+         q(1844),
          q(0),
          ],
       q(crc) => [
-         q(1851),
+         q(1845),
          q(0),
          ],
       q(crd) => [
-         q(1852),
+         q(1846),
          q(0),
          ],
       q(cre) => [
@@ -63958,11 +63900,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(crf) => [
-         q(1853),
+         q(1847),
          q(0),
          ],
       q(crg) => [
-         q(1854),
+         q(1848),
          q(0),
          ],
       q(crh) => [
@@ -63970,31 +63912,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cri) => [
-         q(1855),
+         q(1849),
          q(0),
          ],
       q(crj) => [
-         q(1856),
+         q(1850),
          q(0),
          ],
       q(crk) => [
-         q(1857),
+         q(1851),
          q(0),
          ],
       q(crl) => [
-         q(1858),
+         q(1852),
          q(0),
          ],
       q(crm) => [
-         q(1859),
+         q(1853),
          q(0),
          ],
       q(crn) => [
-         q(1860),
+         q(1854),
          q(0),
          ],
       q(cro) => [
-         q(1861),
+         q(1855),
          q(0),
          ],
       q(crp) => [
@@ -64002,43 +63944,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(crq) => [
-         q(1862),
+         q(1856),
          q(0),
          ],
       q(crr) => [
-         q(1863),
+         q(1857),
          q(0),
          ],
       q(crs) => [
-         q(1864),
+         q(1858),
          q(0),
          ],
       q(crt) => [
-         q(1865),
+         q(1859),
          q(0),
          ],
       q(crv) => [
-         q(1866),
+         q(1860),
          q(0),
          ],
       q(crw) => [
-         q(1867),
+         q(1861),
          q(0),
          ],
       q(crx) => [
-         q(1868),
+         q(1862),
          q(0),
          ],
       q(cry) => [
-         q(1869),
+         q(1863),
          q(0),
          ],
       q(crz) => [
-         q(1870),
+         q(1864),
          q(0),
          ],
       q(csa) => [
-         q(1871),
+         q(1865),
          q(0),
          ],
       q(csb) => [
@@ -64046,71 +63988,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(csc) => [
-         q(1872),
+         q(1866),
          q(0),
          ],
       q(csd) => [
-         q(1873),
+         q(1867),
          q(0),
          ],
       q(cse) => [
-         q(1874),
+         q(1868),
          q(0),
          ],
       q(csf) => [
-         q(1875),
+         q(1869),
          q(0),
          ],
       q(csg) => [
-         q(1876),
+         q(1870),
          q(0),
          ],
       q(csh) => [
-         q(1877),
+         q(1871),
          q(0),
          ],
       q(csi) => [
-         q(1878),
+         q(1872),
          q(0),
          ],
       q(csj) => [
-         q(1879),
+         q(1873),
          q(0),
          ],
       q(csk) => [
-         q(1880),
+         q(1874),
          q(0),
          ],
       q(csl) => [
-         q(1881),
+         q(1875),
          q(0),
          ],
       q(csm) => [
-         q(1882),
+         q(1876),
          q(0),
          ],
       q(csn) => [
-         q(1883),
+         q(1877),
          q(0),
          ],
       q(cso) => [
-         q(1884),
+         q(1878),
          q(0),
          ],
       q(csq) => [
-         q(1885),
+         q(1879),
          q(0),
          ],
       q(csr) => [
-         q(1886),
+         q(1880),
          q(0),
          ],
       q(css) => [
-         q(1887),
+         q(1881),
          q(0),
          ],
       q(cst) => [
-         q(1888),
+         q(1882),
          q(0),
          ],
       q(csu) => [
@@ -64118,135 +64060,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(csv) => [
-         q(1889),
+         q(1883),
          q(0),
          ],
       q(csw) => [
-         q(1890),
+         q(1884),
          q(0),
          ],
       q(csy) => [
-         q(1891),
+         q(1885),
          q(0),
          ],
       q(csz) => [
-         q(1892),
+         q(1886),
          q(0),
          ],
       q(cta) => [
-         q(1893),
+         q(1887),
          q(0),
          ],
       q(ctc) => [
-         q(1894),
+         q(1888),
          q(0),
          ],
       q(ctd) => [
-         q(1895),
+         q(1889),
          q(0),
          ],
       q(cte) => [
-         q(1896),
+         q(1890),
          q(0),
          ],
       q(ctg) => [
-         q(1897),
+         q(1891),
          q(0),
          ],
       q(cth) => [
-         q(1898),
+         q(1892),
          q(0),
          ],
       q(ctl) => [
-         q(1899),
+         q(1893),
          q(0),
          ],
       q(ctm) => [
-         q(1900),
+         q(1894),
          q(0),
          ],
       q(ctn) => [
-         q(1901),
+         q(1895),
          q(0),
          ],
       q(cto) => [
-         q(1902),
+         q(1896),
          q(0),
          ],
       q(ctp) => [
-         q(1903),
+         q(1897),
          q(0),
          ],
       q(cts) => [
-         q(1904),
+         q(1898),
          q(0),
          ],
       q(ctt) => [
-         q(1905),
+         q(1899),
          q(0),
          ],
       q(ctu) => [
-         q(1906),
+         q(1900),
          q(0),
          ],
       q(ctz) => [
-         q(1907),
+         q(1901),
          q(0),
          ],
       q(cua) => [
-         q(1908),
+         q(1902),
          q(0),
          ],
       q(cub) => [
-         q(1909),
+         q(1903),
          q(0),
          ],
       q(cuc) => [
-         q(1910),
+         q(1904),
          q(0),
          ],
       q(cug) => [
-         q(1911),
+         q(1905),
          q(0),
          ],
       q(cuh) => [
-         q(1912),
+         q(1906),
          q(0),
          ],
       q(cui) => [
-         q(1913),
+         q(1907),
          q(0),
          ],
       q(cuj) => [
-         q(1914),
+         q(1908),
          q(0),
          ],
       q(cuk) => [
-         q(1915),
+         q(1909),
          q(0),
          ],
       q(cul) => [
-         q(1916),
+         q(1910),
          q(0),
          ],
       q(cum) => [
-         q(1917),
+         q(1911),
          q(0),
          ],
       q(cuo) => [
-         q(1918),
+         q(1912),
          q(0),
          ],
       q(cup) => [
-         q(1919),
+         q(1913),
          q(0),
          ],
       q(cuq) => [
-         q(1920),
+         q(1914),
          q(0),
          ],
       q(cur) => [
-         q(1921),
+         q(1915),
          q(0),
          ],
       q(cus) => [
@@ -64254,67 +64196,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cut) => [
-         q(1922),
+         q(1916),
          q(0),
          ],
       q(cuu) => [
-         q(1923),
+         q(1917),
          q(0),
          ],
       q(cuv) => [
-         q(1924),
+         q(1918),
          q(0),
          ],
       q(cuw) => [
-         q(1925),
+         q(1919),
          q(0),
          ],
       q(cux) => [
-         q(1926),
+         q(1920),
          q(0),
          ],
       q(cvg) => [
-         q(1927),
+         q(1921),
          q(0),
          ],
       q(cvn) => [
-         q(1928),
+         q(1922),
          q(0),
          ],
       q(cwa) => [
-         q(1929),
+         q(1923),
          q(0),
          ],
       q(cwb) => [
-         q(1930),
+         q(1924),
          q(0),
          ],
       q(cwd) => [
-         q(1931),
+         q(1925),
          q(0),
          ],
       q(cwe) => [
-         q(1932),
+         q(1926),
          q(0),
          ],
       q(cwg) => [
-         q(1933),
+         q(1927),
          q(0),
          ],
       q(cwt) => [
-         q(1934),
+         q(1928),
          q(0),
          ],
       q(cya) => [
-         q(1935),
+         q(1929),
          q(0),
          ],
       q(cyb) => [
-         q(1936),
+         q(1930),
          q(0),
          ],
       q(cyo) => [
-         q(1937),
+         q(1931),
          q(0),
          ],
       q(cze) => [
@@ -64322,55 +64264,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(czh) => [
-         q(1938),
+         q(1932),
          q(0),
          ],
       q(czk) => [
-         q(1939),
+         q(1933),
          q(0),
          ],
       q(czn) => [
-         q(1940),
+         q(1934),
          q(0),
          ],
       q(czo) => [
-         q(1941),
+         q(1935),
          q(0),
          ],
       q(czt) => [
-         q(1942),
+         q(1936),
          q(0),
          ],
       q(daa) => [
-         q(1943),
+         q(1937),
          q(0),
          ],
       q(dac) => [
-         q(1944),
+         q(1938),
          q(0),
          ],
       q(dad) => [
-         q(1945),
+         q(1939),
          q(0),
          ],
       q(dae) => [
-         q(1946),
+         q(1940),
          q(0),
          ],
       q(dag) => [
-         q(1947),
+         q(1941),
          q(0),
          ],
       q(dah) => [
-         q(1948),
+         q(1942),
          q(0),
          ],
       q(dai) => [
-         q(1949),
+         q(1943),
          q(0),
          ],
       q(daj) => [
-         q(1950),
+         q(1944),
          q(0),
          ],
       q(dak) => [
@@ -64378,11 +64320,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dal) => [
-         q(1951),
+         q(1945),
          q(0),
          ],
       q(dam) => [
-         q(1952),
+         q(1946),
          q(0),
          ],
       q(dan) => [
@@ -64390,11 +64332,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dao) => [
-         q(1953),
+         q(1947),
          q(0),
          ],
       q(daq) => [
-         q(1954),
+         q(1948),
          q(0),
          ],
       q(dar) => [
@@ -64402,23 +64344,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(das) => [
-         q(1955),
+         q(1949),
          q(0),
          ],
       q(dau) => [
-         q(1956),
+         q(1950),
          q(0),
          ],
       q(dav) => [
-         q(1957),
+         q(1951),
          q(0),
          ],
       q(daw) => [
-         q(1958),
+         q(1952),
          q(0),
          ],
       q(dax) => [
-         q(1959),
+         q(1953),
          q(0),
          ],
       q(day) => [
@@ -64426,171 +64368,171 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(daz) => [
-         q(1960),
+         q(1954),
          q(0),
          ],
       q(dba) => [
-         q(1961),
+         q(1955),
          q(0),
          ],
       q(dbb) => [
-         q(1962),
+         q(1956),
          q(0),
          ],
       q(dbd) => [
-         q(1963),
+         q(1957),
          q(0),
          ],
       q(dbe) => [
-         q(1964),
+         q(1958),
          q(0),
          ],
       q(dbf) => [
-         q(1965),
+         q(1959),
          q(0),
          ],
       q(dbg) => [
-         q(1966),
+         q(1960),
          q(0),
          ],
       q(dbi) => [
-         q(1967),
+         q(1961),
          q(0),
          ],
       q(dbj) => [
-         q(1968),
+         q(1962),
          q(0),
          ],
       q(dbl) => [
-         q(1969),
+         q(1963),
          q(0),
          ],
       q(dbm) => [
-         q(1970),
+         q(1964),
          q(0),
          ],
       q(dbn) => [
-         q(1971),
+         q(1965),
          q(0),
          ],
       q(dbo) => [
-         q(1972),
+         q(1966),
          q(0),
          ],
       q(dbp) => [
-         q(1973),
+         q(1967),
          q(0),
          ],
       q(dbq) => [
-         q(1974),
+         q(1968),
          q(0),
          ],
       q(dbr) => [
-         q(1975),
+         q(1969),
          q(0),
          ],
       q(dbt) => [
-         q(1976),
+         q(1970),
          q(0),
          ],
       q(dbu) => [
-         q(1977),
+         q(1971),
          q(0),
          ],
       q(dbv) => [
-         q(1978),
+         q(1972),
          q(0),
          ],
       q(dbw) => [
-         q(1979),
+         q(1973),
          q(0),
          ],
       q(dby) => [
-         q(1980),
+         q(1974),
          q(0),
          ],
       q(dcc) => [
-         q(1981),
+         q(1975),
          q(0),
          ],
       q(dcr) => [
-         q(1982),
+         q(1976),
          q(0),
          ],
       q(dda) => [
-         q(1983),
+         q(1977),
          q(0),
          ],
       q(ddd) => [
-         q(1984),
+         q(1978),
          q(0),
          ],
       q(dde) => [
-         q(1985),
+         q(1979),
          q(0),
          ],
       q(ddg) => [
-         q(1986),
+         q(1980),
          q(0),
          ],
       q(ddi) => [
-         q(1987),
+         q(1981),
          q(0),
          ],
       q(ddj) => [
-         q(1988),
+         q(1982),
          q(0),
          ],
       q(ddn) => [
-         q(1989),
+         q(1983),
          q(0),
          ],
       q(ddo) => [
-         q(1990),
+         q(1984),
          q(0),
          ],
       q(ddr) => [
-         q(1991),
+         q(1985),
          q(0),
          ],
       q(dds) => [
-         q(1992),
+         q(1986),
          q(0),
          ],
       q(ddw) => [
-         q(1993),
+         q(1987),
          q(0),
          ],
       q(dec) => [
-         q(1994),
+         q(1988),
          q(0),
          ],
       q(ded) => [
-         q(1995),
+         q(1989),
          q(0),
          ],
       q(dee) => [
-         q(1996),
+         q(1990),
          q(0),
          ],
       q(def) => [
-         q(1997),
+         q(1991),
          q(0),
          ],
       q(deg) => [
-         q(1998),
+         q(1992),
          q(0),
          ],
       q(deh) => [
-         q(1999),
+         q(1993),
          q(0),
          ],
       q(dei) => [
-         q(2000),
+         q(1994),
          q(0),
          ],
       q(dek) => [
-         q(2001),
+         q(1995),
          q(0),
          ],
       q(del) => [
@@ -64598,7 +64540,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dem) => [
-         q(2002),
+         q(1996),
          q(0),
          ],
       q(den) => [
@@ -64606,75 +64548,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dep) => [
-         q(2003),
+         q(1997),
          q(0),
          ],
       q(deq) => [
-         q(2004),
+         q(1998),
          q(0),
          ],
       q(der) => [
-         q(2005),
+         q(1999),
          q(0),
          ],
       q(des) => [
-         q(2006),
+         q(2000),
          q(0),
          ],
       q(dev) => [
-         q(2007),
+         q(2001),
          q(0),
          ],
       q(dez) => [
-         q(2008),
+         q(2002),
          q(0),
          ],
       q(dga) => [
-         q(2009),
+         q(2003),
          q(0),
          ],
       q(dgb) => [
-         q(2010),
+         q(2004),
          q(0),
          ],
       q(dgc) => [
-         q(2011),
+         q(2005),
          q(0),
          ],
       q(dgd) => [
-         q(2012),
+         q(2006),
          q(0),
          ],
       q(dge) => [
-         q(2013),
+         q(2007),
          q(0),
          ],
       q(dgg) => [
-         q(2014),
+         q(2008),
          q(0),
          ],
       q(dgh) => [
-         q(2015),
+         q(2009),
          q(0),
          ],
       q(dgi) => [
-         q(2016),
+         q(2010),
          q(0),
          ],
       q(dgk) => [
-         q(2017),
+         q(2011),
          q(0),
          ],
       q(dgl) => [
-         q(2018),
+         q(2012),
          q(0),
          ],
       q(dgn) => [
-         q(2019),
+         q(2013),
          q(0),
          ],
       q(dgo) => [
-         q(2020),
+         q(2014),
          q(0),
          ],
       q(dgr) => [
@@ -64682,127 +64624,127 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dgs) => [
-         q(2021),
+         q(2015),
          q(0),
          ],
       q(dgt) => [
-         q(2022),
+         q(2016),
          q(0),
          ],
       q(dgu) => [
-         q(2023),
+         q(2017),
          q(0),
          ],
       q(dgw) => [
-         q(2024),
+         q(2018),
          q(0),
          ],
       q(dgx) => [
-         q(2025),
+         q(2019),
          q(0),
          ],
       q(dgz) => [
-         q(2026),
+         q(2020),
          q(0),
          ],
       q(dhd) => [
-         q(2027),
+         q(2021),
          q(0),
          ],
       q(dhg) => [
-         q(2028),
+         q(2022),
          q(0),
          ],
       q(dhi) => [
-         q(2029),
+         q(2023),
          q(0),
          ],
       q(dhl) => [
-         q(2030),
+         q(2024),
          q(0),
          ],
       q(dhm) => [
-         q(2031),
+         q(2025),
          q(0),
          ],
       q(dhn) => [
-         q(2032),
+         q(2026),
          q(0),
          ],
       q(dho) => [
-         q(2033),
+         q(2027),
          q(0),
          ],
       q(dhr) => [
-         q(2034),
+         q(2028),
          q(0),
          ],
       q(dhs) => [
-         q(2035),
+         q(2029),
          q(0),
          ],
       q(dhu) => [
-         q(2036),
+         q(2030),
          q(0),
          ],
       q(dhv) => [
-         q(2037),
+         q(2031),
          q(0),
          ],
       q(dhw) => [
-         q(2038),
+         q(2032),
          q(0),
          ],
       q(dhx) => [
-         q(2039),
+         q(2033),
          q(0),
          ],
       q(dia) => [
-         q(2040),
+         q(2034),
          q(0),
          ],
       q(dib) => [
-         q(2041),
+         q(2035),
          q(0),
          ],
       q(dic) => [
-         q(2042),
+         q(2036),
          q(0),
          ],
       q(did) => [
-         q(2043),
+         q(2037),
          q(0),
          ],
       q(dif) => [
-         q(2044),
+         q(2038),
          q(0),
          ],
       q(dig) => [
-         q(2045),
+         q(2039),
          q(0),
          ],
       q(dih) => [
-         q(2046),
+         q(2040),
          q(0),
          ],
       q(dii) => [
-         q(2047),
+         q(2041),
          q(0),
          ],
       q(dij) => [
-         q(2048),
+         q(2042),
          q(0),
          ],
       q(dik) => [
-         q(2049),
+         q(2043),
          q(0),
          ],
       q(dil) => [
-         q(2050),
+         q(2044),
          q(0),
          ],
       q(dim) => [
-         q(2051),
+         q(2045),
          q(0),
          ],
       q(din) => [
@@ -64810,31 +64752,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dio) => [
-         q(2052),
+         q(2046),
          q(0),
          ],
       q(dip) => [
-         q(2053),
+         q(2047),
          q(0),
          ],
       q(diq) => [
-         q(2054),
+         q(2048),
          q(0),
          ],
       q(dir) => [
-         q(2055),
+         q(2049),
          q(0),
          ],
       q(dis) => [
-         q(2056),
+         q(2050),
          q(0),
          ],
       q(dit) => [
-         q(2057),
+         q(2051),
          q(0),
          ],
       q(diu) => [
-         q(2058),
+         q(2052),
          q(0),
          ],
       q(div) => [
@@ -64842,151 +64784,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(diw) => [
-         q(2059),
+         q(2053),
          q(0),
          ],
       q(dix) => [
-         q(2060),
+         q(2054),
          q(0),
          ],
       q(diy) => [
-         q(2061),
+         q(2055),
          q(0),
          ],
       q(diz) => [
-         q(2062),
+         q(2056),
          q(0),
          ],
       q(dja) => [
-         q(2063),
+         q(2057),
          q(0),
          ],
       q(djb) => [
-         q(2064),
+         q(2058),
          q(0),
          ],
       q(djc) => [
-         q(2065),
+         q(2059),
          q(0),
          ],
       q(djd) => [
-         q(2066),
+         q(2060),
          q(0),
          ],
       q(dje) => [
-         q(2067),
+         q(2061),
          q(0),
          ],
       q(djf) => [
-         q(2068),
+         q(2062),
          q(0),
          ],
       q(dji) => [
-         q(2069),
+         q(2063),
          q(0),
          ],
       q(djj) => [
-         q(2070),
+         q(2064),
          q(0),
          ],
       q(djk) => [
-         q(2071),
+         q(2065),
          q(0),
          ],
       q(djm) => [
-         q(2072),
+         q(2066),
          q(0),
          ],
       q(djn) => [
-         q(2073),
+         q(2067),
          q(0),
          ],
       q(djo) => [
-         q(2074),
+         q(2068),
          q(0),
          ],
       q(djr) => [
-         q(2075),
+         q(2069),
          q(0),
          ],
       q(dju) => [
-         q(2076),
+         q(2070),
          q(0),
          ],
       q(djw) => [
-         q(2077),
+         q(2071),
          q(0),
          ],
       q(dka) => [
-         q(2078),
+         q(2072),
          q(0),
          ],
       q(dkk) => [
-         q(2079),
+         q(2073),
          q(0),
          ],
       q(dkr) => [
-         q(2080),
+         q(2074),
          q(0),
          ],
       q(dks) => [
-         q(2081),
+         q(2075),
          q(0),
          ],
       q(dkx) => [
-         q(2082),
+         q(2076),
          q(0),
          ],
       q(dlg) => [
-         q(2083),
+         q(2077),
          q(0),
          ],
       q(dlk) => [
-         q(2084),
+         q(2078),
          q(0),
          ],
       q(dlm) => [
-         q(2085),
+         q(2079),
          q(0),
          ],
       q(dln) => [
-         q(2086),
+         q(2080),
          q(0),
          ],
       q(dma) => [
-         q(2087),
+         q(2081),
          q(0),
          ],
       q(dmb) => [
-         q(2088),
+         q(2082),
          q(0),
          ],
       q(dmc) => [
-         q(2089),
+         q(2083),
          q(0),
          ],
       q(dmd) => [
-         q(2090),
+         q(2084),
          q(0),
          ],
       q(dme) => [
-         q(2091),
+         q(2085),
          q(0),
          ],
       q(dmg) => [
-         q(2092),
+         q(2086),
          q(0),
          ],
       q(dmk) => [
-         q(2093),
+         q(2087),
          q(0),
          ],
       q(dml) => [
-         q(2094),
+         q(2088),
          q(0),
          ],
       q(dmm) => [
-         q(2095),
+         q(2089),
          q(0),
          ],
       q(dmn) => [
@@ -64994,115 +64936,115 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dmo) => [
-         q(2096),
+         q(2090),
          q(0),
          ],
       q(dmr) => [
-         q(2097),
+         q(2091),
          q(0),
          ],
       q(dms) => [
-         q(2098),
+         q(2092),
          q(0),
          ],
       q(dmu) => [
-         q(2099),
+         q(2093),
          q(0),
          ],
       q(dmv) => [
-         q(2100),
+         q(2094),
          q(0),
          ],
       q(dmw) => [
-         q(2101),
+         q(2095),
          q(0),
          ],
       q(dmx) => [
-         q(2102),
+         q(2096),
          q(0),
          ],
       q(dmy) => [
-         q(2103),
+         q(2097),
          q(0),
          ],
       q(dna) => [
-         q(2104),
+         q(2098),
          q(0),
          ],
       q(dnd) => [
-         q(2105),
+         q(2099),
          q(0),
          ],
       q(dne) => [
-         q(2106),
+         q(2100),
          q(0),
          ],
       q(dng) => [
-         q(2107),
+         q(2101),
          q(0),
          ],
       q(dni) => [
-         q(2108),
+         q(2102),
          q(0),
          ],
       q(dnj) => [
-         q(2109),
+         q(2103),
          q(0),
          ],
       q(dnk) => [
-         q(2110),
+         q(2104),
          q(0),
          ],
       q(dnn) => [
-         q(2111),
+         q(2105),
          q(0),
          ],
       q(dnr) => [
-         q(2112),
+         q(2106),
          q(0),
          ],
       q(dnt) => [
-         q(2113),
+         q(2107),
          q(0),
          ],
       q(dnu) => [
-         q(2114),
+         q(2108),
          q(0),
          ],
       q(dnv) => [
-         q(2115),
+         q(2109),
          q(0),
          ],
       q(dnw) => [
-         q(2116),
+         q(2110),
          q(0),
          ],
       q(dny) => [
-         q(2117),
+         q(2111),
          q(0),
          ],
       q(doa) => [
-         q(2118),
+         q(2112),
          q(0),
          ],
       q(dob) => [
-         q(2119),
+         q(2113),
          q(0),
          ],
       q(doc) => [
-         q(2120),
+         q(2114),
          q(0),
          ],
       q(doe) => [
-         q(2121),
+         q(2115),
          q(0),
          ],
       q(dof) => [
-         q(2122),
+         q(2116),
          q(0),
          ],
       q(doh) => [
-         q(2123),
+         q(2117),
          q(0),
          ],
       q(doi) => [
@@ -65110,63 +65052,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(dok) => [
-         q(2124),
+         q(2118),
          q(0),
          ],
       q(dol) => [
-         q(2125),
+         q(2119),
          q(0),
          ],
       q(don) => [
-         q(2126),
+         q(2120),
          q(0),
          ],
       q(doo) => [
-         q(2127),
+         q(2121),
          q(0),
          ],
       q(dop) => [
-         q(2128),
+         q(2122),
          q(0),
          ],
       q(doq) => [
-         q(2129),
+         q(2123),
          q(0),
          ],
       q(dor) => [
-         q(2130),
+         q(2124),
          q(0),
          ],
       q(dos) => [
-         q(2131),
+         q(2125),
          q(0),
          ],
       q(dot) => [
-         q(2132),
+         q(2126),
          q(0),
          ],
       q(dov) => [
-         q(2133),
+         q(2127),
          q(0),
          ],
       q(dow) => [
-         q(2134),
+         q(2128),
          q(0),
          ],
       q(dox) => [
-         q(2135),
+         q(2129),
          q(0),
          ],
       q(doy) => [
-         q(2136),
+         q(2130),
          q(0),
          ],
       q(doz) => [
-         q(2137),
+         q(2131),
          q(0),
          ],
       q(dpp) => [
-         q(2138),
+         q(2132),
          q(0),
          ],
       q(dra) => [
@@ -65174,63 +65116,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(drb) => [
-         q(2139),
+         q(2133),
          q(0),
          ],
       q(drc) => [
-         q(2140),
+         q(2134),
          q(0),
          ],
       q(drd) => [
-         q(2141),
+         q(2135),
          q(0),
          ],
       q(dre) => [
-         q(2142),
+         q(2136),
          q(0),
          ],
       q(drg) => [
-         q(2143),
+         q(2137),
          q(0),
          ],
       q(dri) => [
-         q(2144),
+         q(2138),
          q(0),
          ],
       q(drl) => [
-         q(2145),
+         q(2139),
          q(0),
          ],
       q(drn) => [
-         q(2146),
+         q(2140),
          q(0),
          ],
       q(dro) => [
-         q(2147),
+         q(2141),
          q(0),
          ],
       q(drq) => [
-         q(2148),
+         q(2142),
          q(0),
          ],
       q(drr) => [
-         q(2149),
+         q(2143),
          q(0),
          ],
       q(drs) => [
-         q(2150),
+         q(2144),
          q(0),
          ],
       q(drt) => [
-         q(2151),
+         q(2145),
          q(0),
          ],
       q(dru) => [
-         q(2152),
+         q(2146),
          q(0),
          ],
       q(dry) => [
-         q(2153),
+         q(2147),
          q(0),
          ],
       q(dsb) => [
@@ -65238,87 +65180,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dse) => [
-         q(2154),
+         q(2148),
          q(0),
          ],
       q(dsh) => [
-         q(2155),
+         q(2149),
          q(0),
          ],
       q(dsi) => [
-         q(2156),
+         q(2150),
          q(0),
          ],
       q(dsl) => [
-         q(2157),
+         q(2151),
          q(0),
          ],
       q(dsn) => [
-         q(2158),
+         q(2152),
          q(0),
          ],
       q(dso) => [
-         q(2159),
+         q(2153),
          q(0),
          ],
       q(dsq) => [
-         q(2160),
+         q(2154),
          q(0),
          ],
       q(dta) => [
-         q(2161),
+         q(2155),
          q(0),
          ],
       q(dtb) => [
-         q(2162),
+         q(2156),
          q(0),
          ],
       q(dtd) => [
-         q(2163),
+         q(2157),
          q(0),
          ],
       q(dth) => [
-         q(2164),
+         q(2158),
          q(0),
          ],
       q(dti) => [
-         q(2165),
+         q(2159),
          q(0),
          ],
       q(dtk) => [
-         q(2166),
+         q(2160),
          q(0),
          ],
       q(dtm) => [
-         q(2167),
+         q(2161),
          q(0),
          ],
       q(dto) => [
-         q(2168),
+         q(2162),
          q(0),
          ],
       q(dtp) => [
-         q(2169),
+         q(2163),
          q(0),
          ],
       q(dtr) => [
-         q(2170),
+         q(2164),
          q(0),
          ],
       q(dts) => [
-         q(2171),
+         q(2165),
          q(0),
          ],
       q(dtt) => [
-         q(2172),
+         q(2166),
          q(0),
          ],
       q(dtu) => [
-         q(2173),
+         q(2167),
          q(0),
          ],
       q(dty) => [
-         q(2174),
+         q(2168),
          q(0),
          ],
       q(dua) => [
@@ -65326,47 +65268,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dub) => [
-         q(2175),
+         q(2169),
          q(0),
          ],
       q(duc) => [
-         q(2176),
+         q(2170),
          q(0),
          ],
       q(dud) => [
-         q(2177),
+         q(2171),
          q(0),
          ],
       q(due) => [
-         q(2178),
+         q(2172),
          q(0),
          ],
       q(duf) => [
-         q(2179),
+         q(2173),
          q(0),
          ],
       q(dug) => [
-         q(2180),
+         q(2174),
          q(0),
          ],
       q(duh) => [
-         q(2181),
+         q(2175),
          q(0),
          ],
       q(dui) => [
-         q(2182),
+         q(2176),
          q(0),
          ],
       q(duj) => [
-         q(2183),
+         q(2177),
          q(0),
          ],
       q(duk) => [
-         q(2184),
+         q(2178),
          q(0),
          ],
       q(dul) => [
-         q(2185),
+         q(2179),
          q(0),
          ],
       q(dum) => [
@@ -65374,27 +65316,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(dun) => [
-         q(2186),
+         q(2180),
          q(0),
          ],
       q(duo) => [
-         q(2187),
+         q(2181),
          q(0),
          ],
       q(dup) => [
-         q(2188),
+         q(2182),
          q(0),
          ],
       q(duq) => [
-         q(2189),
+         q(2183),
          q(0),
          ],
       q(dur) => [
-         q(2190),
+         q(2184),
          q(0),
          ],
       q(dus) => [
-         q(2191),
+         q(2185),
          q(0),
          ],
       q(dut) => [
@@ -65402,79 +65344,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(duu) => [
-         q(2192),
+         q(2186),
          q(0),
          ],
       q(duv) => [
-         q(2193),
+         q(2187),
          q(0),
          ],
       q(duw) => [
-         q(2194),
+         q(2188),
          q(0),
          ],
       q(dux) => [
-         q(2195),
+         q(2189),
          q(0),
          ],
       q(duy) => [
-         q(2196),
+         q(2190),
          q(0),
          ],
       q(duz) => [
-         q(2197),
+         q(2191),
          q(0),
          ],
       q(dva) => [
-         q(2198),
+         q(2192),
          q(0),
          ],
       q(dwa) => [
-         q(2199),
+         q(2193),
          q(0),
          ],
       q(dwr) => [
-         q(2200),
+         q(2194),
          q(0),
          ],
       q(dws) => [
-         q(2201),
+         q(2195),
          q(0),
          ],
       q(dww) => [
-         q(2202),
+         q(2196),
          q(0),
          ],
       q(dya) => [
-         q(2203),
+         q(2197),
          q(0),
          ],
       q(dyb) => [
-         q(2204),
+         q(2198),
          q(0),
          ],
       q(dyd) => [
-         q(2205),
+         q(2199),
          q(0),
          ],
       q(dyg) => [
-         q(2206),
+         q(2200),
          q(0),
          ],
       q(dyi) => [
-         q(2207),
+         q(2201),
          q(0),
          ],
       q(dym) => [
-         q(2208),
+         q(2202),
          q(0),
          ],
       q(dyn) => [
-         q(2209),
+         q(2203),
          q(0),
          ],
       q(dyo) => [
-         q(2210),
+         q(2204),
          q(0),
          ],
       q(dyu) => [
@@ -65482,31 +65424,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dyy) => [
-         q(2211),
+         q(2205),
          q(0),
          ],
       q(dza) => [
-         q(2212),
-         q(0),
-         ],
-      q(dzd) => [
-         q(2213),
+         q(2206),
          q(0),
          ],
       q(dze) => [
-         q(2214),
+         q(2207),
          q(0),
          ],
       q(dzg) => [
-         q(2215),
+         q(2208),
          q(0),
          ],
       q(dzl) => [
-         q(2216),
+         q(2209),
          q(0),
          ],
       q(dzn) => [
-         q(2217),
+         q(2210),
          q(0),
          ],
       q(dzo) => [
@@ -65514,51 +65452,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(eaa) => [
-         q(2218),
+         q(2211),
          q(0),
          ],
       q(ebg) => [
-         q(2219),
+         q(2212),
          q(0),
          ],
       q(ebk) => [
-         q(2220),
+         q(2213),
          q(0),
          ],
       q(ebo) => [
-         q(2221),
+         q(2214),
          q(0),
          ],
       q(ebr) => [
-         q(2222),
+         q(2215),
          q(0),
          ],
       q(ebu) => [
-         q(2223),
+         q(2216),
          q(0),
          ],
       q(ecr) => [
-         q(2224),
+         q(2217),
          q(0),
          ],
       q(ecs) => [
-         q(2225),
+         q(2218),
          q(0),
          ],
       q(ecy) => [
-         q(2226),
+         q(2219),
          q(0),
          ],
       q(eee) => [
-         q(2227),
+         q(2220),
          q(0),
          ],
       q(efa) => [
-         q(2228),
+         q(2221),
          q(0),
          ],
       q(efe) => [
-         q(2229),
+         q(2222),
          q(0),
          ],
       q(efi) => [
@@ -65566,15 +65504,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ega) => [
-         q(2230),
+         q(2223),
          q(0),
          ],
       q(egl) => [
-         q(2231),
+         q(2224),
          q(0),
          ],
       q(ego) => [
-         q(2232),
+         q(2225),
          q(0),
          ],
       q(egx) => [
@@ -65586,23 +65524,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ehu) => [
-         q(2233),
+         q(2226),
          q(0),
          ],
       q(eip) => [
-         q(2234),
+         q(2227),
          q(0),
          ],
       q(eit) => [
-         q(2235),
+         q(2228),
          q(0),
          ],
       q(eiv) => [
-         q(2236),
+         q(2229),
          q(0),
          ],
       q(eja) => [
-         q(2237),
+         q(2230),
          q(0),
          ],
       q(eka) => [
@@ -65610,75 +65548,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ekc) => [
-         q(2238),
+         q(2231),
          q(0),
          ],
       q(eke) => [
-         q(2239),
+         q(2232),
          q(0),
          ],
       q(ekg) => [
-         q(2240),
+         q(2233),
          q(0),
          ],
       q(eki) => [
-         q(2241),
+         q(2234),
          q(0),
          ],
       q(ekk) => [
-         q(2242),
+         q(2235),
          q(0),
          ],
       q(ekl) => [
-         q(2243),
+         q(2236),
          q(0),
          ],
       q(ekm) => [
-         q(2244),
+         q(2237),
          q(0),
          ],
       q(eko) => [
-         q(2245),
+         q(2238),
          q(0),
          ],
       q(ekp) => [
-         q(2246),
+         q(2239),
          q(0),
          ],
       q(ekr) => [
-         q(2247),
+         q(2240),
          q(0),
          ],
       q(eky) => [
-         q(2248),
+         q(2241),
          q(0),
          ],
       q(ele) => [
-         q(2249),
+         q(2242),
          q(0),
          ],
       q(elh) => [
-         q(2250),
+         q(2243),
          q(0),
          ],
       q(eli) => [
-         q(2251),
+         q(2244),
          q(0),
          ],
       q(elk) => [
-         q(2252),
+         q(2245),
          q(0),
          ],
       q(elm) => [
-         q(2253),
+         q(2246),
          q(0),
          ],
       q(elo) => [
-         q(2254),
+         q(2247),
          q(0),
          ],
       q(elu) => [
-         q(2255),
+         q(2248),
          q(0),
          ],
       q(elx) => [
@@ -65686,79 +65624,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ema) => [
-         q(2256),
+         q(2249),
          q(0),
          ],
       q(emb) => [
-         q(2257),
+         q(2250),
          q(0),
          ],
       q(eme) => [
-         q(2258),
+         q(2251),
          q(0),
          ],
       q(emg) => [
-         q(2259),
+         q(2252),
          q(0),
          ],
       q(emi) => [
-         q(2260),
+         q(2253),
          q(0),
          ],
       q(emk) => [
-         q(2261),
+         q(2254),
          q(0),
          ],
       q(emm) => [
-         q(2262),
+         q(2255),
          q(0),
          ],
       q(emn) => [
-         q(2263),
+         q(2256),
          q(0),
          ],
       q(emp) => [
-         q(2264),
+         q(2257),
          q(0),
          ],
       q(ems) => [
-         q(2265),
+         q(2258),
          q(0),
          ],
       q(emu) => [
-         q(2266),
+         q(2259),
          q(0),
          ],
       q(emw) => [
-         q(2267),
+         q(2260),
          q(0),
          ],
       q(emx) => [
-         q(2268),
+         q(2261),
          q(0),
          ],
       q(emy) => [
-         q(2269),
+         q(2262),
          q(0),
          ],
       q(ena) => [
-         q(2270),
+         q(2263),
          q(0),
          ],
       q(enb) => [
-         q(2271),
+         q(2264),
          q(0),
          ],
       q(enc) => [
-         q(2272),
+         q(2265),
          q(0),
          ],
       q(end) => [
-         q(2273),
+         q(2266),
          q(0),
          ],
       q(enf) => [
-         q(2274),
+         q(2267),
          q(0),
          ],
       q(eng) => [
@@ -65766,11 +65704,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(enh) => [
-         q(2275),
+         q(2268),
          q(0),
          ],
       q(enl) => [
-         q(2276),
+         q(2269),
          q(0),
          ],
       q(enm) => [
@@ -65778,43 +65716,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(enn) => [
-         q(2277),
+         q(2270),
          q(0),
          ],
       q(eno) => [
-         q(2278),
+         q(2271),
          q(0),
          ],
       q(enq) => [
-         q(2279),
+         q(2272),
          q(0),
          ],
       q(enr) => [
-         q(2280),
+         q(2273),
          q(0),
          ],
       q(enu) => [
-         q(2281),
+         q(2274),
          q(0),
          ],
       q(env) => [
-         q(2282),
+         q(2275),
          q(0),
          ],
       q(enw) => [
-         q(2283),
+         q(2276),
          q(0),
          ],
       q(enx) => [
-         q(2284),
+         q(2277),
          q(0),
          ],
       q(eot) => [
-         q(2285),
+         q(2278),
          q(0),
          ],
       q(epi) => [
-         q(2286),
+         q(2279),
          q(0),
          ],
       q(epo) => [
@@ -65822,83 +65760,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(era) => [
-         q(2287),
+         q(2280),
          q(0),
          ],
       q(erg) => [
-         q(2288),
+         q(2281),
          q(0),
          ],
       q(erh) => [
-         q(2289),
+         q(2282),
          q(0),
          ],
       q(eri) => [
-         q(2290),
+         q(2283),
          q(0),
          ],
       q(erk) => [
-         q(2291),
+         q(2284),
          q(0),
          ],
       q(ero) => [
-         q(2292),
+         q(2285),
          q(0),
          ],
       q(err) => [
-         q(2293),
+         q(2286),
          q(0),
          ],
       q(ers) => [
-         q(2294),
+         q(2287),
          q(0),
          ],
       q(ert) => [
-         q(2295),
+         q(2288),
          q(0),
          ],
       q(erw) => [
-         q(2296),
+         q(2289),
          q(0),
          ],
       q(ese) => [
-         q(2297),
+         q(2290),
          q(0),
          ],
       q(esh) => [
-         q(2298),
+         q(2291),
          q(0),
          ],
       q(esi) => [
-         q(2299),
+         q(2292),
          q(0),
          ],
       q(esk) => [
-         q(2300),
+         q(2293),
          q(0),
          ],
       q(esl) => [
-         q(2301),
+         q(2294),
          q(0),
          ],
       q(esm) => [
-         q(2302),
+         q(2295),
          q(0),
          ],
       q(esn) => [
-         q(2303),
+         q(2296),
          q(0),
          ],
       q(eso) => [
-         q(2304),
+         q(2297),
          q(0),
          ],
       q(esq) => [
-         q(2305),
+         q(2298),
          q(0),
          ],
       q(ess) => [
-         q(2306),
+         q(2299),
          q(0),
          ],
       q(est) => [
@@ -65906,7 +65844,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(esu) => [
-         q(2307),
+         q(2300),
          q(0),
          ],
       q(esx) => [
@@ -65914,51 +65852,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(esy) => [
-         q(2308),
+         q(2301),
          q(0),
          ],
       q(etb) => [
-         q(2309),
+         q(2302),
          q(0),
          ],
       q(etc) => [
-         q(2310),
+         q(2303),
          q(0),
          ],
       q(eth) => [
-         q(2311),
+         q(2304),
          q(0),
          ],
       q(etn) => [
-         q(2312),
+         q(2305),
          q(0),
          ],
       q(eto) => [
-         q(2313),
+         q(2306),
          q(0),
          ],
       q(etr) => [
-         q(2314),
+         q(2307),
          q(0),
          ],
       q(ets) => [
-         q(2315),
+         q(2308),
          q(0),
          ],
       q(ett) => [
-         q(2316),
+         q(2309),
          q(0),
          ],
       q(etu) => [
-         q(2317),
+         q(2310),
          q(0),
          ],
       q(etx) => [
-         q(2318),
+         q(2311),
          q(0),
          ],
       q(etz) => [
-         q(2319),
+         q(2312),
          q(0),
          ],
       q(euq) => [
@@ -65966,15 +65904,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(eve) => [
-         q(2320),
+         q(2313),
          q(0),
          ],
       q(evh) => [
-         q(2321),
+         q(2314),
          q(0),
          ],
       q(evn) => [
-         q(2322),
+         q(2315),
          q(0),
          ],
       q(ewe) => [
@@ -65986,67 +65924,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ext) => [
-         q(2323),
+         q(2316),
          q(0),
          ],
       q(eya) => [
-         q(2324),
+         q(2317),
          q(0),
          ],
       q(eyo) => [
-         q(2325),
+         q(2318),
          q(0),
          ],
       q(eza) => [
-         q(2326),
+         q(2319),
          q(0),
          ],
       q(eze) => [
-         q(2327),
+         q(2320),
          q(0),
          ],
       q(faa) => [
-         q(2328),
+         q(2321),
          q(0),
          ],
       q(fab) => [
-         q(2329),
+         q(2322),
          q(0),
          ],
       q(fad) => [
-         q(2330),
+         q(2323),
          q(0),
          ],
       q(faf) => [
-         q(2331),
+         q(2324),
          q(0),
          ],
       q(fag) => [
-         q(2332),
+         q(2325),
          q(0),
          ],
       q(fah) => [
-         q(2333),
+         q(2326),
          q(0),
          ],
       q(fai) => [
-         q(2334),
+         q(2327),
          q(0),
          ],
       q(faj) => [
-         q(2335),
+         q(2328),
          q(0),
          ],
       q(fak) => [
-         q(2336),
+         q(2329),
          q(0),
          ],
       q(fal) => [
-         q(2337),
+         q(2330),
          q(0),
          ],
       q(fam) => [
-         q(2338),
+         q(2331),
          q(0),
          ],
       q(fan) => [
@@ -66058,11 +65996,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fap) => [
-         q(2339),
+         q(2332),
          q(0),
          ],
       q(far) => [
-         q(2340),
+         q(2333),
          q(0),
          ],
       q(fat) => [
@@ -66070,51 +66008,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fau) => [
-         q(2341),
+         q(2334),
          q(0),
          ],
       q(fax) => [
-         q(2342),
+         q(2335),
          q(0),
          ],
       q(fay) => [
-         q(2343),
+         q(2336),
          q(0),
          ],
       q(faz) => [
-         q(2344),
+         q(2337),
          q(0),
          ],
       q(fbl) => [
-         q(2345),
+         q(2338),
          q(0),
          ],
       q(fcs) => [
-         q(2346),
+         q(2339),
          q(0),
          ],
       q(fer) => [
-         q(2347),
+         q(2340),
          q(0),
          ],
       q(ffi) => [
-         q(2348),
+         q(2341),
          q(0),
          ],
       q(ffm) => [
-         q(2349),
+         q(2342),
          q(0),
          ],
       q(fgr) => [
-         q(2350),
+         q(2343),
          q(0),
          ],
       q(fia) => [
-         q(2351),
+         q(2344),
          q(0),
          ],
       q(fie) => [
-         q(2352),
+         q(2345),
          q(0),
          ],
       q(fij) => [
@@ -66130,15 +66068,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fip) => [
-         q(2353),
+         q(2346),
          q(0),
          ],
       q(fir) => [
-         q(2354),
+         q(2347),
          q(0),
          ],
       q(fit) => [
-         q(2355),
+         q(2348),
          q(0),
          ],
       q(fiu) => [
@@ -66146,71 +66084,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fiw) => [
-         q(2356),
+         q(2349),
          q(0),
          ],
       q(fkk) => [
-         q(2357),
+         q(2350),
          q(0),
          ],
       q(fkv) => [
-         q(2358),
+         q(2351),
          q(0),
          ],
       q(fla) => [
-         q(2359),
+         q(2352),
          q(0),
          ],
       q(flh) => [
-         q(2360),
+         q(2353),
          q(0),
          ],
       q(fli) => [
-         q(2361),
+         q(2354),
          q(0),
          ],
       q(fll) => [
-         q(2362),
+         q(2355),
          q(0),
          ],
       q(fln) => [
-         q(2363),
+         q(2356),
          q(0),
          ],
       q(flr) => [
-         q(2364),
+         q(2357),
          q(0),
          ],
       q(fly) => [
-         q(2365),
+         q(2358),
          q(0),
          ],
       q(fmp) => [
-         q(2366),
+         q(2359),
          q(0),
          ],
       q(fmu) => [
-         q(2367),
+         q(2360),
          q(0),
          ],
       q(fng) => [
-         q(2368),
+         q(2361),
          q(0),
          ],
       q(fni) => [
-         q(2369),
+         q(2362),
          q(0),
          ],
       q(fod) => [
-         q(2370),
+         q(2363),
          q(0),
          ],
       q(foi) => [
-         q(2371),
+         q(2364),
          q(0),
          ],
       q(fom) => [
-         q(2372),
+         q(2365),
          q(0),
          ],
       q(fon) => [
@@ -66218,11 +66156,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(for) => [
-         q(2373),
+         q(2366),
          q(0),
          ],
       q(fos) => [
-         q(2374),
+         q(2367),
          q(0),
          ],
       q(fox) => [
@@ -66230,19 +66168,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fpe) => [
-         q(2375),
+         q(2368),
          q(0),
          ],
       q(fqs) => [
-         q(2376),
+         q(2369),
          q(0),
          ],
       q(frc) => [
-         q(2377),
+         q(2370),
          q(0),
          ],
       q(frd) => [
-         q(2378),
+         q(2371),
          q(0),
          ],
       q(fre) => [
@@ -66250,7 +66188,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(frk) => [
-         q(2379),
+         q(2372),
          q(0),
          ],
       q(frm) => [
@@ -66262,11 +66200,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(frp) => [
-         q(2380),
+         q(2373),
          q(0),
          ],
       q(frq) => [
-         q(2381),
+         q(2374),
          q(0),
          ],
       q(frr) => [
@@ -66278,7 +66216,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(frt) => [
-         q(2382),
+         q(2375),
          q(0),
          ],
       q(fry) => [
@@ -66286,47 +66224,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fse) => [
-         q(2383),
+         q(2376),
          q(0),
          ],
       q(fsl) => [
-         q(2384),
+         q(2377),
          q(0),
          ],
       q(fss) => [
-         q(2385),
+         q(2378),
          q(0),
          ],
       q(fub) => [
-         q(2386),
+         q(2379),
          q(0),
          ],
       q(fuc) => [
-         q(2387),
+         q(2380),
          q(0),
          ],
       q(fud) => [
-         q(2388),
+         q(2381),
          q(0),
          ],
       q(fue) => [
-         q(2389),
+         q(2382),
          q(0),
          ],
       q(fuf) => [
-         q(2390),
+         q(2383),
          q(0),
          ],
       q(fuh) => [
-         q(2391),
+         q(2384),
          q(0),
          ],
       q(fui) => [
-         q(2392),
+         q(2385),
          q(0),
          ],
       q(fuj) => [
-         q(2393),
+         q(2386),
          q(0),
          ],
       q(ful) => [
@@ -66334,15 +66272,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fum) => [
-         q(2394),
+         q(2387),
          q(0),
          ],
       q(fun) => [
-         q(2395),
+         q(2388),
          q(0),
          ],
       q(fuq) => [
-         q(2396),
+         q(2389),
          q(0),
          ],
       q(fur) => [
@@ -66350,31 +66288,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fut) => [
-         q(2397),
+         q(2390),
          q(0),
          ],
       q(fuu) => [
-         q(2398),
+         q(2391),
          q(0),
          ],
       q(fuv) => [
-         q(2399),
+         q(2392),
          q(0),
          ],
       q(fuy) => [
-         q(2400),
+         q(2393),
          q(0),
          ],
       q(fvr) => [
-         q(2401),
+         q(2394),
          q(0),
          ],
       q(fwa) => [
-         q(2402),
+         q(2395),
          q(0),
          ],
       q(fwe) => [
-         q(2403),
+         q(2396),
          q(0),
          ],
       q(gaa) => [
@@ -66382,91 +66320,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gab) => [
-         q(2404),
+         q(2397),
          q(0),
          ],
       q(gac) => [
-         q(2405),
+         q(2398),
          q(0),
          ],
       q(gad) => [
-         q(2406),
+         q(2399),
          q(0),
          ],
       q(gae) => [
-         q(2407),
+         q(2400),
          q(0),
          ],
       q(gaf) => [
-         q(2408),
+         q(2401),
          q(0),
          ],
       q(gag) => [
-         q(2409),
+         q(2402),
          q(0),
          ],
       q(gah) => [
-         q(2410),
+         q(2403),
          q(0),
          ],
       q(gai) => [
-         q(2411),
+         q(2404),
          q(0),
          ],
       q(gaj) => [
-         q(2412),
+         q(2405),
          q(0),
          ],
       q(gak) => [
-         q(2413),
+         q(2406),
          q(0),
          ],
       q(gal) => [
-         q(2414),
+         q(2407),
          q(0),
          ],
       q(gam) => [
-         q(2415),
+         q(2408),
          q(0),
          ],
       q(gan) => [
-         q(2416),
+         q(2409),
          q(0),
          ],
       q(gao) => [
-         q(2417),
+         q(2410),
          q(0),
          ],
       q(gap) => [
-         q(2418),
+         q(2411),
          q(0),
          ],
       q(gaq) => [
-         q(2419),
+         q(2412),
          q(0),
          ],
       q(gar) => [
-         q(2420),
+         q(2413),
          q(0),
          ],
       q(gas) => [
-         q(2421),
+         q(2414),
          q(0),
          ],
       q(gat) => [
-         q(2422),
+         q(2415),
          q(0),
          ],
       q(gau) => [
-         q(2423),
+         q(2416),
          q(0),
          ],
       q(gaw) => [
-         q(2424),
+         q(2417),
          q(0),
          ],
       q(gax) => [
-         q(2425),
+         q(2418),
          q(0),
          ],
       q(gay) => [
@@ -66474,7 +66412,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gaz) => [
-         q(2426),
+         q(2419),
          q(0),
          ],
       q(gba) => [
@@ -66482,251 +66420,251 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(gbb) => [
-         q(2427),
+         q(2420),
          q(0),
          ],
       q(gbd) => [
-         q(2428),
+         q(2421),
          q(0),
          ],
       q(gbe) => [
-         q(2429),
+         q(2422),
          q(0),
          ],
       q(gbf) => [
-         q(2430),
+         q(2423),
          q(0),
          ],
       q(gbg) => [
-         q(2431),
+         q(2424),
          q(0),
          ],
       q(gbh) => [
-         q(2432),
+         q(2425),
          q(0),
          ],
       q(gbi) => [
-         q(2433),
+         q(2426),
          q(0),
          ],
       q(gbj) => [
-         q(2434),
+         q(2427),
          q(0),
          ],
       q(gbk) => [
-         q(2435),
+         q(2428),
          q(0),
          ],
       q(gbl) => [
-         q(2436),
+         q(2429),
          q(0),
          ],
       q(gbm) => [
-         q(2437),
+         q(2430),
          q(0),
          ],
       q(gbn) => [
-         q(2438),
+         q(2431),
          q(0),
          ],
       q(gbo) => [
-         q(2439),
+         q(2432),
          q(0),
          ],
       q(gbp) => [
-         q(2440),
+         q(2433),
          q(0),
          ],
       q(gbq) => [
-         q(2441),
+         q(2434),
          q(0),
          ],
       q(gbr) => [
-         q(2442),
+         q(2435),
          q(0),
          ],
       q(gbs) => [
-         q(2443),
+         q(2436),
          q(0),
          ],
       q(gbu) => [
-         q(2444),
+         q(2437),
          q(0),
          ],
       q(gbv) => [
-         q(2445),
+         q(2438),
          q(0),
          ],
       q(gbw) => [
-         q(2446),
+         q(2439),
          q(0),
          ],
       q(gbx) => [
-         q(2447),
+         q(2440),
          q(0),
          ],
       q(gby) => [
-         q(2448),
+         q(2441),
          q(0),
          ],
       q(gbz) => [
-         q(2449),
+         q(2442),
          q(0),
          ],
       q(gcc) => [
-         q(2450),
+         q(2443),
          q(0),
          ],
       q(gcd) => [
-         q(2451),
+         q(2444),
          q(0),
          ],
       q(gce) => [
-         q(2452),
+         q(2445),
          q(0),
          ],
       q(gcf) => [
-         q(2453),
+         q(2446),
          q(0),
          ],
       q(gcl) => [
-         q(2454),
+         q(2447),
          q(0),
          ],
       q(gcn) => [
-         q(2455),
+         q(2448),
          q(0),
          ],
       q(gcr) => [
-         q(2456),
+         q(2449),
          q(0),
          ],
       q(gct) => [
-         q(2457),
+         q(2450),
          q(0),
          ],
       q(gda) => [
-         q(2458),
+         q(2451),
          q(0),
          ],
       q(gdb) => [
-         q(2459),
+         q(2452),
          q(0),
          ],
       q(gdc) => [
-         q(2460),
+         q(2453),
          q(0),
          ],
       q(gdd) => [
-         q(2461),
+         q(2454),
          q(0),
          ],
       q(gde) => [
-         q(2462),
+         q(2455),
          q(0),
          ],
       q(gdf) => [
-         q(2463),
+         q(2456),
          q(0),
          ],
       q(gdg) => [
-         q(2464),
+         q(2457),
          q(0),
          ],
       q(gdh) => [
-         q(2465),
+         q(2458),
          q(0),
          ],
       q(gdi) => [
-         q(2466),
+         q(2459),
          q(0),
          ],
       q(gdj) => [
-         q(2467),
+         q(2460),
          q(0),
          ],
       q(gdk) => [
-         q(2468),
+         q(2461),
          q(0),
          ],
       q(gdl) => [
-         q(2469),
+         q(2462),
          q(0),
          ],
       q(gdm) => [
-         q(2470),
+         q(2463),
          q(0),
          ],
       q(gdn) => [
-         q(2471),
+         q(2464),
          q(0),
          ],
       q(gdo) => [
-         q(2472),
+         q(2465),
          q(0),
          ],
       q(gdq) => [
-         q(2473),
+         q(2466),
          q(0),
          ],
       q(gdr) => [
-         q(2474),
+         q(2467),
          q(0),
          ],
       q(gds) => [
-         q(2475),
+         q(2468),
          q(0),
          ],
       q(gdt) => [
-         q(2476),
+         q(2469),
          q(0),
          ],
       q(gdu) => [
-         q(2477),
+         q(2470),
          q(0),
          ],
       q(gdx) => [
-         q(2478),
+         q(2471),
          q(0),
          ],
       q(gea) => [
-         q(2479),
+         q(2472),
          q(0),
          ],
       q(geb) => [
-         q(2480),
+         q(2473),
          q(0),
          ],
       q(gec) => [
-         q(2481),
+         q(2474),
          q(0),
          ],
       q(ged) => [
-         q(2482),
+         q(2475),
          q(0),
          ],
       q(geg) => [
-         q(2483),
+         q(2476),
          q(0),
          ],
       q(geh) => [
-         q(2484),
+         q(2477),
          q(0),
          ],
       q(gei) => [
-         q(2485),
+         q(2478),
          q(0),
          ],
       q(gej) => [
-         q(2486),
+         q(2479),
          q(0),
          ],
       q(gek) => [
-         q(2487),
+         q(2480),
          q(0),
          ],
       q(gel) => [
-         q(2488),
+         q(2481),
          q(0),
          ],
       q(gem) => [
@@ -66738,7 +66676,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(geq) => [
-         q(2489),
+         q(2482),
          q(0),
          ],
       q(ger) => [
@@ -66746,23 +66684,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ges) => [
-         q(2490),
+         q(2483),
          q(0),
          ],
       q(gev) => [
-         q(2491),
+         q(2484),
          q(0),
          ],
       q(gew) => [
-         q(2492),
+         q(2485),
          q(0),
          ],
       q(gex) => [
-         q(2493),
+         q(2486),
          q(0),
          ],
       q(gey) => [
-         q(2494),
+         q(2487),
          q(0),
          ],
       q(gez) => [
@@ -66770,131 +66708,127 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gfk) => [
-         q(2495),
+         q(2488),
          q(0),
          ],
       q(gft) => [
-         q(2496),
-         q(0),
-         ],
-      q(gfx) => [
-         q(2497),
+         q(2489),
          q(0),
          ],
       q(gga) => [
-         q(2498),
+         q(2490),
          q(0),
          ],
       q(ggb) => [
-         q(2499),
+         q(2491),
          q(0),
          ],
       q(ggd) => [
-         q(2500),
+         q(2492),
          q(0),
          ],
       q(gge) => [
-         q(2501),
+         q(2493),
          q(0),
          ],
       q(ggg) => [
-         q(2502),
+         q(2494),
          q(0),
          ],
       q(ggk) => [
-         q(2503),
+         q(2495),
          q(0),
          ],
       q(ggl) => [
-         q(2504),
+         q(2496),
          q(0),
          ],
       q(ggn) => [
-         q(2505),
+         q(2497),
          q(0),
          ],
       q(ggo) => [
-         q(2506),
+         q(2498),
          q(0),
          ],
       q(ggt) => [
-         q(2507),
+         q(2499),
          q(0),
          ],
       q(ggu) => [
-         q(2508),
+         q(2500),
          q(0),
          ],
       q(ggw) => [
-         q(2509),
+         q(2501),
          q(0),
          ],
       q(gha) => [
-         q(2510),
+         q(2502),
          q(0),
          ],
       q(ghc) => [
-         q(2511),
+         q(2503),
          q(0),
          ],
       q(ghe) => [
-         q(2512),
+         q(2504),
          q(0),
          ],
       q(ghh) => [
-         q(2513),
+         q(2505),
          q(0),
          ],
       q(ghk) => [
-         q(2514),
+         q(2506),
          q(0),
          ],
       q(ghl) => [
-         q(2515),
+         q(2507),
          q(0),
          ],
       q(ghn) => [
-         q(2516),
+         q(2508),
          q(0),
          ],
       q(gho) => [
-         q(2517),
+         q(2509),
          q(0),
          ],
       q(ghr) => [
-         q(2518),
+         q(2510),
          q(0),
          ],
       q(ghs) => [
-         q(2519),
+         q(2511),
          q(0),
          ],
       q(ght) => [
-         q(2520),
+         q(2512),
          q(0),
          ],
       q(gia) => [
-         q(2521),
+         q(2513),
          q(0),
          ],
       q(gib) => [
-         q(2522),
+         q(2514),
          q(0),
          ],
       q(gic) => [
-         q(2523),
+         q(2515),
          q(0),
          ],
       q(gid) => [
-         q(2524),
+         q(2516),
          q(0),
          ],
       q(gig) => [
-         q(2525),
+         q(2517),
          q(0),
          ],
       q(gih) => [
-         q(2526),
+         q(2518),
          q(0),
          ],
       q(gil) => [
@@ -66902,91 +66836,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gim) => [
-         q(2527),
+         q(2519),
          q(0),
          ],
       q(gin) => [
-         q(2528),
+         q(2520),
          q(0),
          ],
       q(gip) => [
-         q(2529),
+         q(2521),
          q(0),
          ],
       q(giq) => [
-         q(2530),
+         q(2522),
          q(0),
          ],
       q(gir) => [
-         q(2531),
+         q(2523),
          q(0),
          ],
       q(gis) => [
-         q(2532),
+         q(2524),
          q(0),
          ],
       q(git) => [
-         q(2533),
+         q(2525),
          q(0),
          ],
       q(giu) => [
-         q(2534),
+         q(2526),
          q(0),
          ],
       q(giw) => [
-         q(2535),
+         q(2527),
          q(0),
          ],
       q(gix) => [
-         q(2536),
+         q(2528),
          q(0),
          ],
       q(giy) => [
-         q(2537),
+         q(2529),
          q(0),
          ],
       q(giz) => [
-         q(2538),
+         q(2530),
          q(0),
          ],
       q(gji) => [
-         q(2539),
+         q(2531),
          q(0),
          ],
       q(gjk) => [
-         q(2540),
+         q(2532),
          q(0),
          ],
       q(gjm) => [
-         q(2541),
+         q(2533),
          q(0),
          ],
       q(gjn) => [
-         q(2542),
+         q(2534),
          q(0),
          ],
       q(gju) => [
-         q(2543),
+         q(2535),
          q(0),
          ],
       q(gka) => [
-         q(2544),
+         q(2536),
          q(0),
          ],
       q(gke) => [
-         q(2545),
+         q(2537),
          q(0),
          ],
       q(gkn) => [
-         q(2546),
+         q(2538),
          q(0),
          ],
       q(gko) => [
-         q(2547),
+         q(2539),
          q(0),
          ],
       q(gkp) => [
-         q(2548),
+         q(2540),
+         q(0),
+         ],
+      q(gku) => [
+         q(2541),
          q(0),
          ],
       q(gla) => [
@@ -66994,11 +66932,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(glc) => [
-         q(2549),
+         q(2542),
          q(0),
          ],
       q(gld) => [
-         q(2550),
+         q(2543),
          q(0),
          ],
       q(gle) => [
@@ -67010,35 +66948,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(glh) => [
-         q(2551),
+         q(2544),
          q(0),
          ],
       q(gli) => [
-         q(2552),
+         q(2545),
          q(0),
          ],
       q(glj) => [
-         q(2553),
+         q(2546),
          q(0),
          ],
       q(glk) => [
-         q(2554),
+         q(2547),
          q(0),
          ],
       q(gll) => [
-         q(2555),
+         q(2548),
          q(0),
          ],
       q(glo) => [
-         q(2556),
+         q(2549),
          q(0),
          ],
       q(glr) => [
-         q(2557),
+         q(2550),
          q(0),
          ],
       q(glu) => [
-         q(2558),
+         q(2551),
          q(0),
          ],
       q(glv) => [
@@ -67046,23 +66984,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(glw) => [
-         q(2559),
+         q(2552),
          q(0),
          ],
       q(gly) => [
-         q(2560),
+         q(2553),
          q(0),
          ],
       q(gma) => [
-         q(2561),
+         q(2554),
          q(0),
          ],
       q(gmb) => [
-         q(2562),
+         q(2555),
          q(0),
          ],
       q(gmd) => [
-         q(2563),
+         q(2556),
          q(0),
          ],
       q(gme) => [
@@ -67070,7 +67008,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gmg) => [
-         q(2564),
+         q(2557),
          q(0),
          ],
       q(gmh) => [
@@ -67078,15 +67016,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(gml) => [
-         q(2565),
+         q(2558),
          q(0),
          ],
       q(gmm) => [
-         q(2566),
+         q(2559),
          q(0),
          ],
       q(gmn) => [
-         q(2567),
+         q(2560),
          q(0),
          ],
       q(gmq) => [
@@ -67094,11 +67032,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gmu) => [
-         q(2568),
+         q(2561),
          q(0),
          ],
       q(gmv) => [
-         q(2569),
+         q(2562),
          q(0),
          ],
       q(gmw) => [
@@ -67106,119 +67044,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gmx) => [
-         q(2570),
+         q(2563),
          q(0),
          ],
       q(gmy) => [
-         q(2571),
+         q(2564),
          q(0),
          ],
       q(gmz) => [
-         q(2572),
+         q(2565),
          q(0),
          ],
       q(gna) => [
-         q(2573),
+         q(2566),
          q(0),
          ],
       q(gnb) => [
-         q(2574),
+         q(2567),
          q(0),
          ],
       q(gnc) => [
-         q(2575),
+         q(2568),
          q(0),
          ],
       q(gnd) => [
-         q(2576),
+         q(2569),
          q(0),
          ],
       q(gne) => [
-         q(2577),
+         q(2570),
          q(0),
          ],
       q(gng) => [
-         q(2578),
+         q(2571),
          q(0),
          ],
       q(gnh) => [
-         q(2579),
+         q(2572),
          q(0),
          ],
       q(gni) => [
-         q(2580),
+         q(2573),
          q(0),
          ],
       q(gnk) => [
-         q(2581),
+         q(2574),
          q(0),
          ],
       q(gnl) => [
-         q(2582),
+         q(2575),
          q(0),
          ],
       q(gnm) => [
-         q(2583),
+         q(2576),
          q(0),
          ],
       q(gnn) => [
-         q(2584),
+         q(2577),
          q(0),
          ],
       q(gno) => [
-         q(2585),
+         q(2578),
          q(0),
          ],
       q(gnq) => [
-         q(2586),
+         q(2579),
          q(0),
          ],
       q(gnr) => [
-         q(2587),
+         q(2580),
          q(0),
          ],
       q(gnt) => [
-         q(2588),
+         q(2581),
          q(0),
          ],
       q(gnu) => [
-         q(2589),
+         q(2582),
          q(0),
          ],
       q(gnw) => [
-         q(2590),
+         q(2583),
          q(0),
          ],
       q(gnz) => [
-         q(2591),
+         q(2584),
          q(0),
          ],
       q(goa) => [
-         q(2592),
+         q(2585),
          q(0),
          ],
       q(gob) => [
-         q(2593),
+         q(2586),
          q(0),
          ],
       q(goc) => [
-         q(2594),
+         q(2587),
          q(0),
          ],
       q(god) => [
-         q(2595),
+         q(2588),
          q(0),
          ],
       q(goe) => [
-         q(2596),
+         q(2589),
          q(0),
          ],
       q(gof) => [
-         q(2597),
+         q(2590),
          q(0),
          ],
       q(gog) => [
-         q(2598),
+         q(2591),
          q(0),
          ],
       q(goh) => [
@@ -67226,23 +67164,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(goi) => [
-         q(2599),
+         q(2592),
          q(0),
          ],
       q(goj) => [
-         q(2600),
+         q(2593),
          q(0),
          ],
       q(gok) => [
-         q(2601),
+         q(2594),
          q(0),
          ],
       q(gol) => [
-         q(2602),
+         q(2595),
          q(0),
          ],
       q(gom) => [
-         q(2603),
+         q(2596),
          q(0),
          ],
       q(gon) => [
@@ -67250,15 +67188,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(goo) => [
-         q(2604),
+         q(2597),
          q(0),
          ],
       q(gop) => [
-         q(2605),
+         q(2598),
          q(0),
          ],
       q(goq) => [
-         q(2606),
+         q(2599),
          q(0),
          ],
       q(gor) => [
@@ -67266,7 +67204,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gos) => [
-         q(2607),
+         q(2600),
          q(0),
          ],
       q(got) => [
@@ -67274,59 +67212,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gou) => [
-         q(2608),
+         q(2601),
          q(0),
          ],
       q(gow) => [
-         q(2609),
+         q(2602),
          q(0),
          ],
       q(gox) => [
-         q(2610),
+         q(2603),
          q(0),
          ],
       q(goy) => [
-         q(2611),
+         q(2604),
          q(0),
          ],
       q(goz) => [
-         q(2612),
+         q(2605),
          q(0),
          ],
       q(gpa) => [
-         q(2613),
+         q(2606),
          q(0),
          ],
       q(gpe) => [
-         q(2614),
+         q(2607),
          q(0),
          ],
       q(gpn) => [
-         q(2615),
+         q(2608),
          q(0),
          ],
       q(gqa) => [
-         q(2616),
+         q(2609),
          q(0),
          ],
       q(gqi) => [
-         q(2617),
+         q(2610),
          q(0),
          ],
       q(gqn) => [
-         q(2618),
+         q(2611),
          q(0),
          ],
       q(gqr) => [
-         q(2619),
+         q(2612),
          q(0),
          ],
       q(gqu) => [
-         q(2620),
+         q(2613),
          q(0),
          ],
       q(gra) => [
-         q(2621),
+         q(2614),
          q(0),
          ],
       q(grb) => [
@@ -67338,7 +67276,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(grd) => [
-         q(2622),
+         q(2615),
          q(0),
          ],
       q(gre) => [
@@ -67346,19 +67284,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(grg) => [
-         q(2623),
+         q(2616),
          q(0),
          ],
       q(grh) => [
-         q(2624),
+         q(2617),
          q(0),
          ],
       q(gri) => [
-         q(2625),
+         q(2618),
          q(0),
          ],
       q(grj) => [
-         q(2626),
+         q(2619),
          q(0),
          ],
       q(grk) => [
@@ -67366,7 +67304,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(grm) => [
-         q(2627),
+         q(2620),
          q(0),
          ],
       q(grn) => [
@@ -67374,79 +67312,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gro) => [
-         q(2628),
+         q(2621),
          q(0),
          ],
       q(grq) => [
-         q(2629),
+         q(2622),
          q(0),
          ],
       q(grr) => [
-         q(2630),
+         q(2623),
          q(0),
          ],
       q(grs) => [
-         q(2631),
+         q(2624),
          q(0),
          ],
       q(grt) => [
-         q(2632),
+         q(2625),
          q(0),
          ],
       q(gru) => [
-         q(2633),
+         q(2626),
          q(0),
          ],
       q(grv) => [
-         q(2634),
+         q(2627),
          q(0),
          ],
       q(grw) => [
-         q(2635),
+         q(2628),
          q(0),
          ],
       q(grx) => [
-         q(2636),
+         q(2629),
          q(0),
          ],
       q(gry) => [
-         q(2637),
+         q(2630),
          q(0),
          ],
       q(grz) => [
-         q(2638),
+         q(2631),
          q(0),
          ],
       q(gse) => [
-         q(2639),
+         q(2632),
          q(0),
          ],
       q(gsg) => [
-         q(2640),
+         q(2633),
          q(0),
          ],
       q(gsl) => [
-         q(2641),
+         q(2634),
          q(0),
          ],
       q(gsm) => [
-         q(2642),
+         q(2635),
          q(0),
          ],
       q(gsn) => [
-         q(2643),
+         q(2636),
          q(0),
          ],
       q(gso) => [
-         q(2644),
+         q(2637),
          q(0),
          ],
       q(gsp) => [
-         q(2645),
+         q(2638),
          q(0),
          ],
       q(gss) => [
-         q(2646),
+         q(2639),
          q(0),
          ],
       q(gsw) => [
@@ -67454,51 +67392,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gta) => [
-         q(2647),
-         q(0),
-         ],
-      q(gti) => [
-         q(2648),
+         q(2640),
          q(0),
          ],
       q(gtu) => [
-         q(2649),
+         q(2641),
          q(0),
          ],
       q(gua) => [
-         q(2650),
+         q(2642),
          q(0),
          ],
       q(gub) => [
-         q(2651),
+         q(2643),
          q(0),
          ],
       q(guc) => [
-         q(2652),
+         q(2644),
          q(0),
          ],
       q(gud) => [
-         q(2653),
+         q(2645),
          q(0),
          ],
       q(gue) => [
-         q(2654),
+         q(2646),
          q(0),
          ],
       q(guf) => [
-         q(2655),
+         q(2647),
          q(0),
          ],
       q(gug) => [
-         q(2656),
+         q(2648),
          q(0),
          ],
       q(guh) => [
-         q(2657),
+         q(2649),
          q(0),
          ],
       q(gui) => [
-         q(2658),
+         q(2650),
          q(0),
          ],
       q(guj) => [
@@ -67506,143 +67440,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(guk) => [
-         q(2659),
+         q(2651),
          q(0),
          ],
       q(gul) => [
-         q(2660),
+         q(2652),
          q(0),
          ],
       q(gum) => [
-         q(2661),
+         q(2653),
          q(0),
          ],
       q(gun) => [
-         q(2662),
+         q(2654),
          q(0),
          ],
       q(guo) => [
-         q(2663),
+         q(2655),
          q(0),
          ],
       q(gup) => [
-         q(2664),
+         q(2656),
          q(0),
          ],
       q(guq) => [
-         q(2665),
+         q(2657),
          q(0),
          ],
       q(gur) => [
-         q(2666),
+         q(2658),
          q(0),
          ],
       q(gus) => [
-         q(2667),
+         q(2659),
          q(0),
          ],
       q(gut) => [
-         q(2668),
+         q(2660),
          q(0),
          ],
       q(guu) => [
-         q(2669),
+         q(2661),
          q(0),
          ],
       q(guv) => [
-         q(2670),
+         q(2662),
          q(0),
          ],
       q(guw) => [
-         q(2671),
+         q(2663),
          q(0),
          ],
       q(gux) => [
-         q(2672),
+         q(2664),
          q(0),
          ],
       q(guz) => [
-         q(2673),
+         q(2665),
          q(0),
          ],
       q(gva) => [
-         q(2674),
+         q(2666),
          q(0),
          ],
       q(gvc) => [
-         q(2675),
+         q(2667),
          q(0),
          ],
       q(gve) => [
-         q(2676),
+         q(2668),
          q(0),
          ],
       q(gvf) => [
-         q(2677),
+         q(2669),
          q(0),
          ],
       q(gvj) => [
-         q(2678),
+         q(2670),
          q(0),
          ],
       q(gvl) => [
-         q(2679),
+         q(2671),
          q(0),
          ],
       q(gvm) => [
-         q(2680),
+         q(2672),
          q(0),
          ],
       q(gvn) => [
-         q(2681),
+         q(2673),
          q(0),
          ],
       q(gvo) => [
-         q(2682),
+         q(2674),
          q(0),
          ],
       q(gvp) => [
-         q(2683),
+         q(2675),
          q(0),
          ],
       q(gvr) => [
-         q(2684),
+         q(2676),
          q(0),
          ],
       q(gvs) => [
-         q(2685),
+         q(2677),
          q(0),
          ],
       q(gvy) => [
-         q(2686),
+         q(2678),
          q(0),
          ],
       q(gwa) => [
-         q(2687),
+         q(2679),
          q(0),
          ],
       q(gwb) => [
-         q(2688),
+         q(2680),
          q(0),
          ],
       q(gwc) => [
-         q(2689),
+         q(2681),
          q(0),
          ],
       q(gwd) => [
-         q(2690),
+         q(2682),
          q(0),
          ],
       q(gwe) => [
-         q(2691),
+         q(2683),
          q(0),
          ],
       q(gwf) => [
-         q(2692),
+         q(2684),
          q(0),
          ],
       q(gwg) => [
-         q(2693),
+         q(2685),
          q(0),
          ],
       q(gwi) => [
@@ -67650,131 +67584,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gwj) => [
-         q(2694),
+         q(2686),
          q(0),
          ],
       q(gwm) => [
-         q(2695),
+         q(2687),
          q(0),
          ],
       q(gwn) => [
-         q(2696),
+         q(2688),
          q(0),
          ],
       q(gwr) => [
-         q(2697),
+         q(2689),
          q(0),
          ],
       q(gwt) => [
-         q(2698),
+         q(2690),
          q(0),
          ],
       q(gwu) => [
-         q(2699),
+         q(2691),
          q(0),
          ],
       q(gww) => [
-         q(2700),
+         q(2692),
          q(0),
          ],
       q(gwx) => [
-         q(2701),
+         q(2693),
          q(0),
          ],
       q(gxx) => [
-         q(2702),
+         q(2694),
          q(0),
          ],
       q(gya) => [
-         q(2703),
+         q(2695),
          q(0),
          ],
       q(gyb) => [
-         q(2704),
+         q(2696),
          q(0),
          ],
       q(gyd) => [
-         q(2705),
+         q(2697),
          q(0),
          ],
       q(gye) => [
-         q(2706),
+         q(2698),
          q(0),
          ],
       q(gyf) => [
-         q(2707),
+         q(2699),
          q(0),
          ],
       q(gyg) => [
-         q(2708),
+         q(2700),
          q(0),
          ],
       q(gyi) => [
-         q(2709),
+         q(2701),
          q(0),
          ],
       q(gyl) => [
-         q(2710),
+         q(2702),
          q(0),
          ],
       q(gym) => [
-         q(2711),
+         q(2703),
          q(0),
          ],
       q(gyn) => [
-         q(2712),
+         q(2704),
          q(0),
          ],
       q(gyr) => [
-         q(2713),
+         q(2705),
          q(0),
          ],
       q(gyy) => [
-         q(2714),
+         q(2706),
          q(0),
          ],
       q(gza) => [
-         q(2715),
+         q(2707),
          q(0),
          ],
       q(gzi) => [
-         q(2716),
+         q(2708),
          q(0),
          ],
       q(gzn) => [
-         q(2717),
+         q(2709),
          q(0),
          ],
       q(haa) => [
-         q(2718),
+         q(2710),
          q(0),
          ],
       q(hab) => [
-         q(2719),
+         q(2711),
          q(0),
          ],
       q(hac) => [
-         q(2720),
+         q(2712),
          q(0),
          ],
       q(had) => [
-         q(2721),
+         q(2713),
          q(0),
          ],
       q(hae) => [
-         q(2722),
+         q(2714),
          q(0),
          ],
       q(haf) => [
-         q(2723),
+         q(2715),
          q(0),
          ],
       q(hag) => [
-         q(2724),
+         q(2716),
          q(0),
          ],
       q(hah) => [
-         q(2725),
+         q(2717),
          q(0),
          ],
       q(hai) => [
@@ -67782,43 +67716,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(haj) => [
-         q(2726),
+         q(2718),
          q(0),
          ],
       q(hak) => [
-         q(2727),
+         q(2719),
          q(0),
          ],
       q(hal) => [
-         q(2728),
+         q(2720),
          q(0),
          ],
       q(ham) => [
-         q(2729),
+         q(2721),
          q(0),
          ],
       q(han) => [
-         q(2730),
+         q(2722),
          q(0),
          ],
       q(hao) => [
-         q(2731),
+         q(2723),
          q(0),
          ],
       q(hap) => [
-         q(2732),
+         q(2724),
          q(0),
          ],
       q(haq) => [
-         q(2733),
+         q(2725),
          q(0),
          ],
       q(har) => [
-         q(2734),
+         q(2726),
          q(0),
          ],
       q(has) => [
-         q(2735),
+         q(2727),
          q(0),
          ],
       q(hat) => [
@@ -67830,7 +67764,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hav) => [
-         q(2736),
+         q(2728),
          q(0),
          ],
       q(haw) => [
@@ -67838,59 +67772,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hax) => [
-         q(2737),
+         q(2729),
          q(0),
          ],
       q(hay) => [
-         q(2738),
+         q(2730),
          q(0),
          ],
       q(haz) => [
-         q(2739),
+         q(2731),
          q(0),
          ],
       q(hba) => [
-         q(2740),
+         q(2732),
          q(0),
          ],
       q(hbb) => [
-         q(2741),
+         q(2733),
          q(0),
          ],
       q(hbn) => [
-         q(2742),
+         q(2734),
          q(0),
          ],
       q(hbo) => [
-         q(2743),
+         q(2735),
          q(0),
          ],
       q(hbu) => [
-         q(2744),
+         q(2736),
          q(0),
          ],
       q(hca) => [
-         q(2745),
+         q(2737),
          q(0),
          ],
       q(hch) => [
-         q(2746),
+         q(2738),
          q(0),
          ],
       q(hdn) => [
-         q(2747),
+         q(2739),
          q(0),
          ],
       q(hds) => [
-         q(2748),
+         q(2740),
          q(0),
          ],
       q(hdy) => [
-         q(2749),
+         q(2741),
          q(0),
          ],
       q(hea) => [
-         q(2750),
+         q(2742),
          q(0),
          ],
       q(heb) => [
@@ -67898,23 +67832,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hed) => [
-         q(2751),
+         q(2743),
          q(0),
          ],
       q(heg) => [
-         q(2752),
+         q(2744),
          q(0),
          ],
       q(heh) => [
-         q(2753),
+         q(2745),
          q(0),
          ],
       q(hei) => [
-         q(2754),
+         q(2746),
          q(0),
          ],
       q(hem) => [
-         q(2755),
+         q(2747),
          q(0),
          ],
       q(her) => [
@@ -67922,59 +67856,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hgm) => [
-         q(2756),
+         q(2748),
          q(0),
          ],
       q(hgw) => [
-         q(2757),
+         q(2749),
          q(0),
          ],
       q(hhi) => [
-         q(2758),
+         q(2750),
          q(0),
          ],
       q(hhr) => [
-         q(2759),
+         q(2751),
          q(0),
          ],
       q(hhy) => [
-         q(2760),
+         q(2752),
          q(0),
          ],
       q(hia) => [
-         q(2761),
+         q(2753),
          q(0),
          ],
       q(hib) => [
-         q(2762),
+         q(2754),
          q(0),
          ],
       q(hid) => [
-         q(2763),
+         q(2755),
          q(0),
          ],
       q(hif) => [
-         q(2764),
+         q(2756),
          q(0),
          ],
       q(hig) => [
-         q(2765),
+         q(2757),
          q(0),
          ],
       q(hih) => [
-         q(2766),
+         q(2758),
          q(0),
          ],
       q(hii) => [
-         q(2767),
+         q(2759),
          q(0),
          ],
       q(hij) => [
-         q(2768),
+         q(2760),
          q(0),
          ],
       q(hik) => [
-         q(2769),
+         q(2761),
          q(0),
          ],
       q(hil) => [
@@ -67990,11 +67924,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hio) => [
-         q(2770),
+         q(2762),
          q(0),
          ],
       q(hir) => [
-         q(2771),
+         q(2763),
          q(0),
          ],
       q(hit) => [
@@ -68002,107 +67936,107 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hiw) => [
-         q(2772),
+         q(2764),
          q(0),
          ],
       q(hix) => [
-         q(2773),
+         q(2765),
          q(0),
          ],
       q(hji) => [
-         q(2774),
+         q(2766),
          q(0),
          ],
       q(hka) => [
-         q(2775),
+         q(2767),
          q(0),
          ],
       q(hke) => [
-         q(2776),
+         q(2768),
          q(0),
          ],
       q(hkk) => [
-         q(2777),
+         q(2769),
          q(0),
          ],
       q(hks) => [
-         q(2778),
+         q(2770),
          q(0),
          ],
       q(hla) => [
-         q(2779),
+         q(2771),
          q(0),
          ],
       q(hlb) => [
-         q(2780),
+         q(2772),
          q(0),
          ],
       q(hld) => [
-         q(2781),
+         q(2773),
          q(0),
          ],
       q(hle) => [
-         q(2782),
+         q(2774),
          q(0),
          ],
       q(hlt) => [
-         q(2783),
+         q(2775),
          q(0),
          ],
       q(hlu) => [
-         q(2784),
+         q(2776),
          q(0),
          ],
       q(hma) => [
-         q(2785),
+         q(2777),
          q(0),
          ],
       q(hmb) => [
-         q(2786),
+         q(2778),
          q(0),
          ],
       q(hmc) => [
-         q(2787),
+         q(2779),
          q(0),
          ],
       q(hmd) => [
-         q(2788),
+         q(2780),
          q(0),
          ],
       q(hme) => [
-         q(2789),
+         q(2781),
          q(0),
          ],
       q(hmf) => [
-         q(2790),
+         q(2782),
          q(0),
          ],
       q(hmg) => [
-         q(2791),
+         q(2783),
          q(0),
          ],
       q(hmh) => [
-         q(2792),
+         q(2784),
          q(0),
          ],
       q(hmi) => [
-         q(2793),
+         q(2785),
          q(0),
          ],
       q(hmj) => [
-         q(2794),
+         q(2786),
          q(0),
          ],
       q(hmk) => [
-         q(2795),
+         q(2787),
          q(0),
          ],
       q(hml) => [
-         q(2796),
+         q(2788),
          q(0),
          ],
       q(hmm) => [
-         q(2797),
+         q(2789),
          q(0),
          ],
       q(hmn) => [
@@ -68114,35 +68048,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hmp) => [
-         q(2798),
+         q(2790),
          q(0),
          ],
       q(hmq) => [
-         q(2799),
+         q(2791),
          q(0),
          ],
       q(hmr) => [
-         q(2800),
+         q(2792),
          q(0),
          ],
       q(hms) => [
-         q(2801),
+         q(2793),
          q(0),
          ],
       q(hmt) => [
-         q(2802),
+         q(2794),
          q(0),
          ],
       q(hmu) => [
-         q(2803),
+         q(2795),
          q(0),
          ],
       q(hmv) => [
-         q(2804),
+         q(2796),
          q(0),
          ],
       q(hmw) => [
-         q(2805),
+         q(2797),
          q(0),
          ],
       q(hmx) => [
@@ -68150,83 +68084,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hmy) => [
-         q(2806),
+         q(2798),
          q(0),
          ],
       q(hmz) => [
-         q(2807),
+         q(2799),
          q(0),
          ],
       q(hna) => [
-         q(2808),
+         q(2800),
          q(0),
          ],
       q(hnd) => [
-         q(2809),
+         q(2801),
          q(0),
          ],
       q(hne) => [
-         q(2810),
+         q(2802),
          q(0),
          ],
       q(hnh) => [
-         q(2811),
+         q(2803),
          q(0),
          ],
       q(hni) => [
-         q(2812),
+         q(2804),
          q(0),
          ],
       q(hnj) => [
-         q(2813),
+         q(2805),
          q(0),
          ],
       q(hnn) => [
-         q(2814),
+         q(2806),
          q(0),
          ],
       q(hno) => [
-         q(2815),
+         q(2807),
          q(0),
          ],
       q(hns) => [
-         q(2816),
+         q(2808),
          q(0),
          ],
       q(hnu) => [
-         q(2817),
+         q(2809),
          q(0),
          ],
       q(hoa) => [
-         q(2818),
+         q(2810),
          q(0),
          ],
       q(hob) => [
-         q(2819),
+         q(2811),
          q(0),
          ],
       q(hoc) => [
-         q(2820),
+         q(2812),
          q(0),
          ],
       q(hod) => [
-         q(2821),
+         q(2813),
          q(0),
          ],
       q(hoe) => [
-         q(2822),
+         q(2814),
          q(0),
          ],
       q(hoh) => [
-         q(2823),
+         q(2815),
          q(0),
          ],
       q(hoi) => [
-         q(2824),
+         q(2816),
          q(0),
          ],
       q(hoj) => [
-         q(2825),
+         q(2817),
          q(0),
          ],
       q(hok) => [
@@ -68234,91 +68168,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hol) => [
-         q(2826),
+         q(2818),
          q(0),
          ],
       q(hom) => [
-         q(2827),
+         q(2819),
          q(0),
          ],
       q(hoo) => [
-         q(2828),
+         q(2820),
          q(0),
          ],
       q(hop) => [
-         q(2829),
+         q(2821),
          q(0),
          ],
       q(hor) => [
-         q(2830),
+         q(2822),
          q(0),
          ],
       q(hos) => [
-         q(2831),
+         q(2823),
          q(0),
          ],
       q(hot) => [
-         q(2832),
+         q(2824),
          q(0),
          ],
       q(hov) => [
-         q(2833),
+         q(2825),
          q(0),
          ],
       q(how) => [
-         q(2834),
+         q(2826),
          q(0),
          ],
       q(hoy) => [
-         q(2835),
+         q(2827),
          q(0),
          ],
       q(hoz) => [
-         q(2836),
+         q(2828),
          q(0),
          ],
       q(hpo) => [
-         q(2837),
+         q(2829),
          q(0),
          ],
       q(hps) => [
-         q(2838),
+         q(2830),
          q(0),
          ],
       q(hra) => [
-         q(2839),
+         q(2831),
          q(0),
          ],
       q(hrc) => [
-         q(2840),
+         q(2832),
          q(0),
          ],
       q(hre) => [
-         q(2841),
+         q(2833),
          q(0),
          ],
       q(hrk) => [
-         q(2842),
+         q(2834),
          q(0),
          ],
       q(hrm) => [
-         q(2843),
+         q(2835),
          q(0),
          ],
       q(hro) => [
-         q(2844),
+         q(2836),
          q(0),
          ],
       q(hrp) => [
-         q(2845),
+         q(2837),
          q(0),
          ],
       q(hrt) => [
-         q(2846),
+         q(2838),
          q(0),
          ],
       q(hru) => [
-         q(2847),
+         q(2839),
          q(0),
          ],
       q(hrv) => [
@@ -68326,15 +68260,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hrw) => [
-         q(2848),
+         q(2840),
          q(0),
          ],
       q(hrx) => [
-         q(2849),
+         q(2841),
          q(0),
          ],
       q(hrz) => [
-         q(2850),
+         q(2842),
          q(0),
          ],
       q(hsb) => [
@@ -68342,87 +68276,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hsh) => [
-         q(2851),
+         q(2843),
          q(0),
          ],
       q(hsl) => [
-         q(2852),
+         q(2844),
          q(0),
          ],
       q(hsn) => [
-         q(2853),
+         q(2845),
          q(0),
          ],
       q(hss) => [
-         q(2854),
+         q(2846),
          q(0),
          ],
       q(hti) => [
-         q(2855),
+         q(2847),
          q(0),
          ],
       q(hto) => [
-         q(2856),
+         q(2848),
          q(0),
          ],
       q(hts) => [
-         q(2857),
+         q(2849),
          q(0),
          ],
       q(htu) => [
-         q(2858),
+         q(2850),
          q(0),
          ],
       q(htx) => [
-         q(2859),
+         q(2851),
          q(0),
          ],
       q(hub) => [
-         q(2860),
+         q(2852),
          q(0),
          ],
       q(huc) => [
-         q(2861),
+         q(2853),
          q(0),
          ],
       q(hud) => [
-         q(2862),
+         q(2854),
          q(0),
          ],
       q(hue) => [
-         q(2863),
+         q(2855),
          q(0),
          ],
       q(huf) => [
-         q(2864),
+         q(2856),
          q(0),
          ],
       q(hug) => [
-         q(2865),
+         q(2857),
          q(0),
          ],
       q(huh) => [
-         q(2866),
+         q(2858),
          q(0),
          ],
       q(hui) => [
-         q(2867),
+         q(2859),
          q(0),
          ],
       q(huj) => [
-         q(2868),
+         q(2860),
          q(0),
          ],
       q(huk) => [
-         q(2869),
+         q(2861),
          q(0),
          ],
       q(hul) => [
-         q(2870),
+         q(2862),
          q(0),
          ],
       q(hum) => [
-         q(2871),
+         q(2863),
          q(0),
          ],
       q(hun) => [
@@ -68430,7 +68364,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(huo) => [
-         q(2872),
+         q(2864),
          q(0),
          ],
       q(hup) => [
@@ -68438,79 +68372,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(huq) => [
-         q(2873),
+         q(2865),
          q(0),
          ],
       q(hur) => [
-         q(2874),
+         q(2866),
          q(0),
          ],
       q(hus) => [
-         q(2875),
+         q(2867),
          q(0),
          ],
       q(hut) => [
-         q(2876),
+         q(2868),
          q(0),
          ],
       q(huu) => [
-         q(2877),
+         q(2869),
          q(0),
          ],
       q(huv) => [
-         q(2878),
+         q(2870),
          q(0),
          ],
       q(huw) => [
-         q(2879),
+         q(2871),
          q(0),
          ],
       q(hux) => [
-         q(2880),
+         q(2872),
          q(0),
          ],
       q(huy) => [
-         q(2881),
+         q(2873),
          q(0),
          ],
       q(huz) => [
-         q(2882),
+         q(2874),
          q(0),
          ],
       q(hvc) => [
-         q(2883),
+         q(2875),
          q(0),
          ],
       q(hve) => [
-         q(2884),
+         q(2876),
          q(0),
          ],
       q(hvk) => [
-         q(2885),
+         q(2877),
          q(0),
          ],
       q(hvn) => [
-         q(2886),
+         q(2878),
          q(0),
          ],
       q(hvv) => [
-         q(2887),
+         q(2879),
          q(0),
          ],
       q(hwa) => [
-         q(2888),
+         q(2880),
          q(0),
          ],
       q(hwc) => [
-         q(2889),
+         q(2881),
          q(0),
          ],
       q(hwo) => [
-         q(2890),
+         q(2882),
          q(0),
          ],
       q(hya) => [
-         q(2891),
+         q(2883),
          q(0),
          ],
       q(hyx) => [
@@ -68518,19 +68452,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(iai) => [
-         q(2892),
+         q(2884),
          q(0),
          ],
       q(ian) => [
-         q(2893),
+         q(2885),
          q(0),
          ],
       q(iap) => [
-         q(2894),
+         q(2886),
          q(0),
          ],
       q(iar) => [
-         q(2895),
+         q(2887),
          q(0),
          ],
       q(iba) => [
@@ -68538,31 +68472,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ibb) => [
-         q(2896),
+         q(2888),
          q(0),
          ],
       q(ibd) => [
-         q(2897),
+         q(2889),
          q(0),
          ],
       q(ibe) => [
-         q(2898),
+         q(2890),
          q(0),
          ],
       q(ibg) => [
-         q(2899),
+         q(2891),
          q(0),
          ],
       q(ibl) => [
-         q(2900),
+         q(2892),
          q(0),
          ],
       q(ibm) => [
-         q(2901),
+         q(2893),
          q(0),
          ],
       q(ibn) => [
-         q(2902),
+         q(2894),
          q(0),
          ],
       q(ibo) => [
@@ -68570,19 +68504,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ibr) => [
-         q(2903),
+         q(2895),
          q(0),
          ],
       q(ibu) => [
-         q(2904),
+         q(2896),
          q(0),
          ],
       q(iby) => [
-         q(2905),
+         q(2897),
          q(0),
          ],
       q(ica) => [
-         q(2906),
+         q(2898),
          q(0),
          ],
       q(ice) => [
@@ -68590,39 +68524,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ich) => [
-         q(2907),
+         q(2899),
          q(0),
          ],
       q(icl) => [
-         q(2908),
+         q(2900),
          q(0),
          ],
       q(icr) => [
-         q(2909),
+         q(2901),
          q(0),
          ],
       q(ida) => [
-         q(2910),
+         q(2902),
          q(0),
          ],
       q(idb) => [
-         q(2911),
+         q(2903),
          q(0),
          ],
       q(idc) => [
-         q(2912),
+         q(2904),
          q(0),
          ],
       q(idd) => [
-         q(2913),
+         q(2905),
          q(0),
          ],
       q(ide) => [
-         q(2914),
+         q(2906),
          q(0),
          ],
       q(idi) => [
-         q(2915),
+         q(2907),
          q(0),
          ],
       q(ido) => [
@@ -68630,103 +68564,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(idr) => [
-         q(2916),
+         q(2908),
          q(0),
          ],
       q(ids) => [
-         q(2917),
+         q(2909),
          q(0),
          ],
       q(idt) => [
-         q(2918),
+         q(2910),
          q(0),
          ],
       q(idu) => [
-         q(2919),
+         q(2911),
          q(0),
          ],
       q(ifa) => [
-         q(2920),
+         q(2912),
          q(0),
          ],
       q(ifb) => [
-         q(2921),
+         q(2913),
          q(0),
          ],
       q(ife) => [
-         q(2922),
+         q(2914),
          q(0),
          ],
       q(iff) => [
-         q(2923),
+         q(2915),
          q(0),
          ],
       q(ifk) => [
-         q(2924),
+         q(2916),
          q(0),
          ],
       q(ifm) => [
-         q(2925),
+         q(2917),
          q(0),
          ],
       q(ifu) => [
-         q(2926),
+         q(2918),
          q(0),
          ],
       q(ify) => [
-         q(2927),
+         q(2919),
          q(0),
          ],
       q(igb) => [
-         q(2928),
+         q(2920),
          q(0),
          ],
       q(ige) => [
-         q(2929),
+         q(2921),
          q(0),
          ],
       q(igg) => [
-         q(2930),
+         q(2922),
          q(0),
          ],
       q(igl) => [
-         q(2931),
+         q(2923),
          q(0),
          ],
       q(igm) => [
-         q(2932),
+         q(2924),
          q(0),
          ],
       q(ign) => [
-         q(2933),
+         q(2925),
          q(0),
          ],
       q(igo) => [
-         q(2934),
+         q(2926),
          q(0),
          ],
       q(igs) => [
-         q(2935),
+         q(2927),
          q(0),
          ],
       q(igw) => [
-         q(2936),
+         q(2928),
          q(0),
          ],
       q(ihb) => [
-         q(2937),
+         q(2929),
          q(0),
          ],
       q(ihi) => [
-         q(2938),
+         q(2930),
          q(0),
          ],
       q(ihp) => [
-         q(2939),
+         q(2931),
          q(0),
          ],
       q(ihw) => [
-         q(2940),
+         q(2932),
          q(0),
          ],
       q(iii) => [
@@ -68734,7 +68668,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(iin) => [
-         q(2941),
+         q(2933),
          q(0),
          ],
       q(iir) => [
@@ -68742,19 +68676,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ijc) => [
-         q(2942),
+         q(2934),
          q(0),
          ],
       q(ije) => [
-         q(2943),
+         q(2935),
          q(0),
          ],
       q(ijj) => [
-         q(2944),
+         q(2936),
          q(0),
          ],
       q(ijn) => [
-         q(2945),
+         q(2937),
          q(0),
          ],
       q(ijo) => [
@@ -68762,39 +68696,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ijs) => [
-         q(2946),
+         q(2938),
          q(0),
          ],
       q(ike) => [
-         q(2947),
+         q(2939),
          q(0),
          ],
       q(iki) => [
-         q(2948),
+         q(2940),
          q(0),
          ],
       q(ikk) => [
-         q(2949),
+         q(2941),
          q(0),
          ],
       q(ikl) => [
-         q(2950),
+         q(2942),
          q(0),
          ],
       q(iko) => [
-         q(2951),
+         q(2943),
          q(0),
          ],
       q(ikp) => [
-         q(2952),
+         q(2944),
          q(0),
          ],
       q(ikr) => [
-         q(2953),
+         q(2945),
+         q(0),
+         ],
+      q(iks) => [
+         q(2946),
          q(0),
          ],
       q(ikt) => [
-         q(2954),
+         q(2947),
          q(0),
          ],
       q(iku) => [
@@ -68802,27 +68740,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ikv) => [
-         q(2955),
+         q(2948),
          q(0),
          ],
       q(ikw) => [
-         q(2956),
+         q(2949),
          q(0),
          ],
       q(ikx) => [
-         q(2957),
+         q(2950),
          q(0),
          ],
       q(ikz) => [
-         q(2958),
+         q(2951),
          q(0),
          ],
       q(ila) => [
-         q(2959),
+         q(2952),
          q(0),
          ],
       q(ilb) => [
-         q(2960),
+         q(2953),
          q(0),
          ],
       q(ile) => [
@@ -68830,19 +68768,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ilg) => [
-         q(2961),
+         q(2954),
          q(0),
          ],
       q(ili) => [
-         q(2962),
+         q(2955),
          q(0),
          ],
       q(ilk) => [
-         q(2963),
+         q(2956),
          q(0),
          ],
       q(ill) => [
-         q(2964),
+         q(2957),
          q(0),
          ],
       q(ilo) => [
@@ -68850,51 +68788,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ils) => [
-         q(2965),
+         q(2958),
          q(0),
          ],
       q(ilu) => [
-         q(2966),
+         q(2959),
          q(0),
          ],
       q(ilv) => [
-         q(2967),
+         q(2960),
          q(0),
          ],
       q(ima) => [
-         q(2968),
-         q(0),
-         ],
-      q(ime) => [
-         q(2969),
+         q(2961),
          q(0),
          ],
       q(imi) => [
-         q(2970),
+         q(2962),
          q(0),
          ],
       q(iml) => [
-         q(2971),
+         q(2963),
          q(0),
          ],
       q(imn) => [
-         q(2972),
+         q(2964),
          q(0),
          ],
       q(imo) => [
-         q(2973),
+         q(2965),
          q(0),
          ],
       q(imr) => [
-         q(2974),
+         q(2966),
          q(0),
          ],
       q(ims) => [
-         q(2975),
+         q(2967),
          q(0),
          ],
       q(imy) => [
-         q(2976),
+         q(2968),
          q(0),
          ],
       q(ina) => [
@@ -68902,7 +68836,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(inb) => [
-         q(2977),
+         q(2969),
          q(0),
          ],
       q(inc) => [
@@ -68918,7 +68852,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ing) => [
-         q(2978),
+         q(2970),
          q(0),
          ],
       q(inh) => [
@@ -68926,55 +68860,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(inj) => [
-         q(2979),
+         q(2971),
          q(0),
          ],
       q(inl) => [
-         q(2980),
+         q(2972),
          q(0),
          ],
       q(inm) => [
-         q(2981),
+         q(2973),
          q(0),
          ],
       q(inn) => [
-         q(2982),
+         q(2974),
          q(0),
          ],
       q(ino) => [
-         q(2983),
+         q(2975),
          q(0),
          ],
       q(inp) => [
-         q(2984),
+         q(2976),
          q(0),
          ],
       q(ins) => [
-         q(2985),
+         q(2977),
          q(0),
          ],
       q(int) => [
-         q(2986),
+         q(2978),
          q(0),
          ],
       q(inz) => [
-         q(2987),
+         q(2979),
          q(0),
          ],
       q(ior) => [
-         q(2988),
+         q(2980),
          q(0),
          ],
       q(iou) => [
-         q(2989),
+         q(2981),
          q(0),
          ],
       q(iow) => [
-         q(2990),
+         q(2982),
          q(0),
          ],
       q(ipi) => [
-         q(2991),
+         q(2983),
          q(0),
          ],
       q(ipk) => [
@@ -68982,15 +68916,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ipo) => [
-         q(2992),
+         q(2984),
          q(0),
          ],
       q(iqu) => [
-         q(2993),
+         q(2985),
          q(0),
          ],
       q(iqw) => [
-         q(2994),
+         q(2986),
          q(0),
          ],
       q(ira) => [
@@ -68998,23 +68932,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ire) => [
-         q(2995),
+         q(2987),
          q(0),
          ],
       q(irh) => [
-         q(2996),
+         q(2988),
          q(0),
          ],
       q(iri) => [
-         q(2997),
+         q(2989),
          q(0),
          ],
       q(irk) => [
-         q(2998),
+         q(2990),
          q(0),
          ],
       q(irn) => [
-         q(2999),
+         q(2991),
          q(0),
          ],
       q(iro) => [
@@ -69022,75 +68956,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(irr) => [
-         q(3000),
+         q(2992),
          q(0),
          ],
       q(iru) => [
-         q(3001),
+         q(2993),
          q(0),
          ],
       q(irx) => [
-         q(3002),
+         q(2994),
          q(0),
          ],
       q(iry) => [
-         q(3003),
+         q(2995),
          q(0),
          ],
       q(isa) => [
-         q(3004),
+         q(2996),
          q(0),
          ],
       q(isc) => [
-         q(3005),
+         q(2997),
          q(0),
          ],
       q(isd) => [
-         q(3006),
+         q(2998),
          q(0),
          ],
       q(ise) => [
-         q(3007),
+         q(2999),
          q(0),
          ],
       q(isg) => [
-         q(3008),
+         q(3000),
          q(0),
          ],
       q(ish) => [
-         q(3009),
+         q(3001),
          q(0),
          ],
       q(isi) => [
-         q(3010),
+         q(3002),
          q(0),
          ],
       q(isk) => [
-         q(3011),
+         q(3003),
          q(0),
          ],
       q(ism) => [
-         q(3012),
+         q(3004),
          q(0),
          ],
       q(isn) => [
-         q(3013),
+         q(3005),
          q(0),
          ],
       q(iso) => [
-         q(3014),
+         q(3006),
          q(0),
          ],
       q(isr) => [
-         q(3015),
+         q(3007),
          q(0),
          ],
       q(ist) => [
-         q(3016),
+         q(3008),
          q(0),
          ],
       q(isu) => [
-         q(3017),
+         q(3009),
          q(0),
          ],
       q(ita) => [
@@ -69098,7 +69032,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(itb) => [
-         q(3018),
+         q(3010),
          q(0),
          ],
       q(itc) => [
@@ -69106,187 +69040,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ite) => [
-         q(3019),
+         q(3011),
          q(0),
          ],
       q(iti) => [
-         q(3020),
+         q(3012),
          q(0),
          ],
       q(itk) => [
-         q(3021),
+         q(3013),
          q(0),
          ],
       q(itl) => [
-         q(3022),
+         q(3014),
          q(0),
          ],
       q(itm) => [
-         q(3023),
+         q(3015),
          q(0),
          ],
       q(ito) => [
-         q(3024),
+         q(3016),
          q(0),
          ],
       q(itr) => [
-         q(3025),
+         q(3017),
          q(0),
          ],
       q(its) => [
-         q(3026),
+         q(3018),
          q(0),
          ],
       q(itt) => [
-         q(3027),
+         q(3019),
          q(0),
          ],
       q(itv) => [
-         q(3028),
+         q(3020),
          q(0),
          ],
       q(itw) => [
-         q(3029),
+         q(3021),
          q(0),
          ],
       q(itx) => [
-         q(3030),
+         q(3022),
          q(0),
          ],
       q(ity) => [
-         q(3031),
+         q(3023),
          q(0),
          ],
       q(itz) => [
-         q(3032),
+         q(3024),
          q(0),
          ],
       q(ium) => [
-         q(3033),
+         q(3025),
          q(0),
          ],
       q(ivb) => [
-         q(3034),
+         q(3026),
          q(0),
          ],
       q(ivv) => [
-         q(3035),
+         q(3027),
          q(0),
          ],
       q(iwk) => [
-         q(3036),
+         q(3028),
          q(0),
          ],
       q(iwm) => [
-         q(3037),
+         q(3029),
          q(0),
          ],
       q(iwo) => [
-         q(3038),
+         q(3030),
          q(0),
          ],
       q(iws) => [
-         q(3039),
+         q(3031),
          q(0),
          ],
       q(ixc) => [
-         q(3040),
+         q(3032),
          q(0),
          ],
       q(ixl) => [
-         q(3041),
+         q(3033),
          q(0),
          ],
       q(iya) => [
-         q(3042),
+         q(3034),
          q(0),
          ],
       q(iyo) => [
-         q(3043),
+         q(3035),
          q(0),
          ],
       q(iyx) => [
-         q(3044),
+         q(3036),
          q(0),
          ],
       q(izh) => [
-         q(3045),
+         q(3037),
          q(0),
          ],
       q(izr) => [
-         q(3046),
+         q(3038),
          q(0),
          ],
       q(izz) => [
-         q(3047),
+         q(3039),
          q(0),
          ],
       q(jaa) => [
-         q(3048),
+         q(3040),
          q(0),
          ],
       q(jab) => [
-         q(3049),
+         q(3041),
          q(0),
          ],
       q(jac) => [
-         q(3050),
+         q(3042),
          q(0),
          ],
       q(jad) => [
-         q(3051),
+         q(3043),
          q(0),
          ],
       q(jae) => [
-         q(3052),
+         q(3044),
          q(0),
          ],
       q(jaf) => [
-         q(3053),
+         q(3045),
          q(0),
          ],
       q(jah) => [
-         q(3054),
+         q(3046),
          q(0),
          ],
       q(jaj) => [
-         q(3055),
+         q(3047),
          q(0),
          ],
       q(jak) => [
-         q(3056),
+         q(3048),
          q(0),
          ],
       q(jal) => [
-         q(3057),
+         q(3049),
          q(0),
          ],
       q(jam) => [
-         q(3058),
+         q(3050),
          q(0),
          ],
       q(jan) => [
-         q(3059),
+         q(3051),
          q(0),
          ],
       q(jao) => [
-         q(3060),
+         q(3052),
          q(0),
          ],
       q(jaq) => [
-         q(3061),
+         q(3053),
          q(0),
          ],
       q(jas) => [
-         q(3062),
+         q(3054),
          q(0),
          ],
       q(jat) => [
-         q(3063),
+         q(3055),
          q(0),
          ],
       q(jau) => [
-         q(3064),
+         q(3056),
          q(0),
          ],
       q(jav) => [
@@ -69294,35 +69228,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(jax) => [
-         q(3065),
+         q(3057),
          q(0),
          ],
       q(jay) => [
-         q(3066),
+         q(3058),
          q(0),
          ],
       q(jaz) => [
-         q(3067),
+         q(3059),
          q(0),
          ],
       q(jbe) => [
-         q(3068),
+         q(3060),
          q(0),
          ],
       q(jbi) => [
-         q(3069),
+         q(3061),
          q(0),
          ],
       q(jbj) => [
-         q(3070),
+         q(3062),
          q(0),
          ],
       q(jbk) => [
-         q(3071),
+         q(3063),
          q(0),
          ],
       q(jbn) => [
-         q(3072),
+         q(3064),
          q(0),
          ],
       q(jbo) => [
@@ -69330,299 +69264,303 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(jbr) => [
-         q(3073),
+         q(3065),
          q(0),
          ],
       q(jbt) => [
-         q(3074),
+         q(3066),
          q(0),
          ],
       q(jbu) => [
-         q(3075),
+         q(3067),
          q(0),
          ],
       q(jbw) => [
-         q(3076),
+         q(3068),
          q(0),
          ],
       q(jcs) => [
-         q(3077),
+         q(3069),
          q(0),
          ],
       q(jct) => [
-         q(3078),
+         q(3070),
          q(0),
          ],
       q(jda) => [
-         q(3079),
+         q(3071),
          q(0),
          ],
       q(jdg) => [
-         q(3080),
+         q(3072),
          q(0),
          ],
       q(jdt) => [
-         q(3081),
+         q(3073),
          q(0),
          ],
       q(jeb) => [
-         q(3082),
+         q(3074),
          q(0),
          ],
       q(jee) => [
-         q(3083),
+         q(3075),
          q(0),
          ],
       q(jeg) => [
-         q(3084),
+         q(3076),
          q(0),
          ],
       q(jeh) => [
-         q(3085),
+         q(3077),
          q(0),
          ],
       q(jei) => [
-         q(3086),
+         q(3078),
          q(0),
          ],
       q(jek) => [
-         q(3087),
+         q(3079),
          q(0),
          ],
       q(jel) => [
-         q(3088),
+         q(3080),
          q(0),
          ],
       q(jen) => [
-         q(3089),
+         q(3081),
          q(0),
          ],
       q(jer) => [
-         q(3090),
+         q(3082),
          q(0),
          ],
       q(jet) => [
-         q(3091),
+         q(3083),
          q(0),
          ],
       q(jeu) => [
-         q(3092),
+         q(3084),
          q(0),
          ],
       q(jgb) => [
-         q(3093),
+         q(3085),
          q(0),
          ],
       q(jge) => [
-         q(3094),
+         q(3086),
          q(0),
          ],
       q(jgk) => [
-         q(3095),
+         q(3087),
          q(0),
          ],
       q(jgo) => [
-         q(3096),
+         q(3088),
          q(0),
          ],
       q(jhi) => [
-         q(3097),
+         q(3089),
          q(0),
          ],
       q(jhs) => [
-         q(3098),
+         q(3090),
          q(0),
          ],
       q(jia) => [
-         q(3099),
+         q(3091),
          q(0),
          ],
       q(jib) => [
-         q(3100),
+         q(3092),
          q(0),
          ],
       q(jic) => [
-         q(3101),
+         q(3093),
          q(0),
          ],
       q(jid) => [
-         q(3102),
+         q(3094),
          q(0),
          ],
       q(jie) => [
-         q(3103),
+         q(3095),
          q(0),
          ],
       q(jig) => [
-         q(3104),
+         q(3096),
          q(0),
          ],
       q(jih) => [
-         q(3105),
+         q(3097),
          q(0),
          ],
       q(jii) => [
-         q(3106),
+         q(3098),
          q(0),
          ],
       q(jil) => [
-         q(3107),
+         q(3099),
          q(0),
          ],
       q(jim) => [
-         q(3108),
+         q(3100),
          q(0),
          ],
       q(jio) => [
-         q(3109),
+         q(3101),
          q(0),
          ],
       q(jiq) => [
-         q(3110),
+         q(3102),
          q(0),
          ],
       q(jit) => [
-         q(3111),
+         q(3103),
          q(0),
          ],
       q(jiu) => [
-         q(3112),
+         q(3104),
          q(0),
          ],
       q(jiv) => [
-         q(3113),
+         q(3105),
          q(0),
          ],
       q(jiy) => [
-         q(3114),
+         q(3106),
+         q(0),
+         ],
+      q(jje) => [
+         q(3107),
          q(0),
          ],
       q(jjr) => [
-         q(3115),
+         q(3108),
          q(0),
          ],
       q(jkm) => [
-         q(3116),
+         q(3109),
          q(0),
          ],
       q(jko) => [
-         q(3117),
+         q(3110),
          q(0),
          ],
       q(jkp) => [
-         q(3118),
+         q(3111),
          q(0),
          ],
       q(jkr) => [
-         q(3119),
+         q(3112),
          q(0),
          ],
       q(jku) => [
-         q(3120),
+         q(3113),
          q(0),
          ],
       q(jle) => [
-         q(3121),
+         q(3114),
          q(0),
          ],
       q(jls) => [
-         q(3122),
+         q(3115),
          q(0),
          ],
       q(jma) => [
-         q(3123),
+         q(3116),
          q(0),
          ],
       q(jmb) => [
-         q(3124),
+         q(3117),
          q(0),
          ],
       q(jmc) => [
-         q(3125),
+         q(3118),
          q(0),
          ],
       q(jmd) => [
-         q(3126),
+         q(3119),
          q(0),
          ],
       q(jmi) => [
-         q(3127),
+         q(3120),
          q(0),
          ],
       q(jml) => [
-         q(3128),
+         q(3121),
          q(0),
          ],
       q(jmn) => [
-         q(3129),
+         q(3122),
          q(0),
          ],
       q(jmr) => [
-         q(3130),
+         q(3123),
          q(0),
          ],
       q(jms) => [
-         q(3131),
+         q(3124),
          q(0),
          ],
       q(jmw) => [
-         q(3132),
+         q(3125),
          q(0),
          ],
       q(jmx) => [
-         q(3133),
+         q(3126),
          q(0),
          ],
       q(jna) => [
-         q(3134),
+         q(3127),
          q(0),
          ],
       q(jnd) => [
-         q(3135),
+         q(3128),
          q(0),
          ],
       q(jng) => [
-         q(3136),
+         q(3129),
          q(0),
          ],
       q(jni) => [
-         q(3137),
+         q(3130),
          q(0),
          ],
       q(jnj) => [
-         q(3138),
+         q(3131),
          q(0),
          ],
       q(jnl) => [
-         q(3139),
+         q(3132),
          q(0),
          ],
       q(jns) => [
-         q(3140),
+         q(3133),
          q(0),
          ],
       q(job) => [
-         q(3141),
+         q(3134),
          q(0),
          ],
       q(jod) => [
-         q(3142),
+         q(3135),
          q(0),
          ],
       q(jor) => [
-         q(3143),
+         q(3136),
          q(0),
          ],
       q(jos) => [
-         q(3144),
+         q(3137),
          q(0),
          ],
       q(jow) => [
-         q(3145),
+         q(3138),
          q(0),
          ],
       q(jpa) => [
-         q(3146),
+         q(3139),
          q(0),
          ],
       q(jpn) => [
@@ -69638,11 +69576,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(jqr) => [
-         q(3147),
+         q(3140),
          q(0),
          ],
       q(jra) => [
-         q(3148),
+         q(3141),
          q(0),
          ],
       q(jrb) => [
@@ -69650,115 +69588,115 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(jrr) => [
-         q(3149),
+         q(3142),
          q(0),
          ],
       q(jrt) => [
-         q(3150),
+         q(3143),
          q(0),
          ],
       q(jru) => [
-         q(3151),
+         q(3144),
          q(0),
          ],
       q(jsl) => [
-         q(3152),
+         q(3145),
          q(0),
          ],
       q(jua) => [
-         q(3153),
+         q(3146),
          q(0),
          ],
       q(jub) => [
-         q(3154),
+         q(3147),
          q(0),
          ],
       q(juc) => [
-         q(3155),
+         q(3148),
          q(0),
          ],
       q(jud) => [
-         q(3156),
+         q(3149),
          q(0),
          ],
       q(juh) => [
-         q(3157),
+         q(3150),
          q(0),
          ],
       q(jui) => [
-         q(3158),
+         q(3151),
          q(0),
          ],
       q(juk) => [
-         q(3159),
+         q(3152),
          q(0),
          ],
       q(jul) => [
-         q(3160),
+         q(3153),
          q(0),
          ],
       q(jum) => [
-         q(3161),
+         q(3154),
          q(0),
          ],
       q(jun) => [
-         q(3162),
+         q(3155),
          q(0),
          ],
       q(juo) => [
-         q(3163),
+         q(3156),
          q(0),
          ],
       q(jup) => [
-         q(3164),
+         q(3157),
          q(0),
          ],
       q(jur) => [
-         q(3165),
+         q(3158),
          q(0),
          ],
       q(jus) => [
-         q(3166),
+         q(3159),
          q(0),
          ],
       q(jut) => [
-         q(3167),
+         q(3160),
          q(0),
          ],
       q(juu) => [
-         q(3168),
+         q(3161),
          q(0),
          ],
       q(juw) => [
-         q(3169),
+         q(3162),
          q(0),
          ],
       q(juy) => [
-         q(3170),
+         q(3163),
          q(0),
          ],
       q(jvd) => [
-         q(3171),
+         q(3164),
          q(0),
          ],
       q(jvn) => [
-         q(3172),
+         q(3165),
          q(0),
          ],
       q(jwi) => [
-         q(3173),
+         q(3166),
          q(0),
          ],
       q(jya) => [
-         q(3174),
+         q(3167),
          q(0),
          ],
       q(jye) => [
-         q(3175),
+         q(3168),
          q(0),
          ],
       q(jyy) => [
-         q(3176),
+         q(3169),
          q(0),
          ],
       q(kaa) => [
@@ -69774,35 +69712,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kad) => [
-         q(3177),
+         q(3170),
          q(0),
          ],
       q(kae) => [
-         q(3178),
+         q(3171),
          q(0),
          ],
       q(kaf) => [
-         q(3179),
+         q(3172),
          q(0),
          ],
       q(kag) => [
-         q(3180),
+         q(3173),
          q(0),
          ],
       q(kah) => [
-         q(3181),
+         q(3174),
          q(0),
          ],
       q(kai) => [
-         q(3182),
+         q(3175),
          q(0),
          ],
       q(kaj) => [
-         q(3183),
+         q(3176),
          q(0),
          ],
       q(kak) => [
-         q(3184),
+         q(3177),
          q(0),
          ],
       q(kal) => [
@@ -69818,15 +69756,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kao) => [
-         q(3185),
+         q(3178),
          q(0),
          ],
       q(kap) => [
-         q(3186),
+         q(3179),
          q(0),
          ],
       q(kaq) => [
-         q(3187),
+         q(3180),
          q(0),
          ],
       q(kar) => [
@@ -69842,7 +69780,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kav) => [
-         q(3188),
+         q(3181),
          q(0),
          ],
       q(kaw) => [
@@ -69850,11 +69788,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kax) => [
-         q(3189),
+         q(3182),
          q(0),
          ],
       q(kay) => [
-         q(3190),
+         q(3183),
          q(0),
          ],
       q(kaz) => [
@@ -69862,15 +69800,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kba) => [
-         q(3191),
+         q(3184),
          q(0),
          ],
       q(kbb) => [
-         q(3192),
+         q(3185),
          q(0),
          ],
       q(kbc) => [
-         q(3193),
+         q(3186),
          q(0),
          ],
       q(kbd) => [
@@ -69878,247 +69816,243 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kbe) => [
-         q(3194),
-         q(0),
-         ],
-      q(kbf) => [
-         q(3195),
+         q(3187),
          q(0),
          ],
       q(kbg) => [
-         q(3196),
+         q(3188),
          q(0),
          ],
       q(kbh) => [
-         q(3197),
+         q(3189),
          q(0),
          ],
       q(kbi) => [
-         q(3198),
+         q(3190),
          q(0),
          ],
       q(kbj) => [
-         q(3199),
+         q(3191),
          q(0),
          ],
       q(kbk) => [
-         q(3200),
+         q(3192),
          q(0),
          ],
       q(kbl) => [
-         q(3201),
+         q(3193),
          q(0),
          ],
       q(kbm) => [
-         q(3202),
+         q(3194),
          q(0),
          ],
       q(kbn) => [
-         q(3203),
+         q(3195),
          q(0),
          ],
       q(kbo) => [
-         q(3204),
+         q(3196),
          q(0),
          ],
       q(kbp) => [
-         q(3205),
+         q(3197),
          q(0),
          ],
       q(kbq) => [
-         q(3206),
+         q(3198),
          q(0),
          ],
       q(kbr) => [
-         q(3207),
+         q(3199),
          q(0),
          ],
       q(kbs) => [
-         q(3208),
+         q(3200),
          q(0),
          ],
       q(kbt) => [
-         q(3209),
+         q(3201),
          q(0),
          ],
       q(kbu) => [
-         q(3210),
+         q(3202),
          q(0),
          ],
       q(kbv) => [
-         q(3211),
+         q(3203),
          q(0),
          ],
       q(kbw) => [
-         q(3212),
+         q(3204),
          q(0),
          ],
       q(kbx) => [
-         q(3213),
+         q(3205),
          q(0),
          ],
       q(kby) => [
-         q(3214),
+         q(3206),
          q(0),
          ],
       q(kbz) => [
-         q(3215),
+         q(3207),
          q(0),
          ],
       q(kca) => [
-         q(3216),
+         q(3208),
          q(0),
          ],
       q(kcb) => [
-         q(3217),
+         q(3209),
          q(0),
          ],
       q(kcc) => [
-         q(3218),
+         q(3210),
          q(0),
          ],
       q(kcd) => [
-         q(3219),
+         q(3211),
          q(0),
          ],
       q(kce) => [
-         q(3220),
+         q(3212),
          q(0),
          ],
       q(kcf) => [
-         q(3221),
+         q(3213),
          q(0),
          ],
       q(kcg) => [
-         q(3222),
+         q(3214),
          q(0),
          ],
       q(kch) => [
-         q(3223),
+         q(3215),
          q(0),
          ],
       q(kci) => [
-         q(3224),
+         q(3216),
          q(0),
          ],
       q(kcj) => [
-         q(3225),
+         q(3217),
          q(0),
          ],
       q(kck) => [
-         q(3226),
+         q(3218),
          q(0),
          ],
       q(kcl) => [
-         q(3227),
+         q(3219),
          q(0),
          ],
       q(kcm) => [
-         q(3228),
+         q(3220),
          q(0),
          ],
       q(kcn) => [
-         q(3229),
+         q(3221),
          q(0),
          ],
       q(kco) => [
-         q(3230),
+         q(3222),
          q(0),
          ],
       q(kcp) => [
-         q(3231),
+         q(3223),
          q(0),
          ],
       q(kcq) => [
-         q(3232),
+         q(3224),
          q(0),
          ],
       q(kcr) => [
-         q(3233),
+         q(3225),
          q(0),
          ],
       q(kcs) => [
-         q(3234),
+         q(3226),
          q(0),
          ],
       q(kct) => [
-         q(3235),
+         q(3227),
          q(0),
          ],
       q(kcu) => [
-         q(3236),
+         q(3228),
          q(0),
          ],
       q(kcv) => [
-         q(3237),
+         q(3229),
          q(0),
          ],
       q(kcw) => [
-         q(3238),
+         q(3230),
          q(0),
          ],
       q(kcx) => [
-         q(3239),
+         q(3231),
          q(0),
          ],
       q(kcy) => [
-         q(3240),
+         q(3232),
          q(0),
          ],
       q(kcz) => [
-         q(3241),
+         q(3233),
          q(0),
          ],
       q(kda) => [
-         q(3242),
+         q(3234),
          q(0),
          ],
       q(kdc) => [
-         q(3243),
+         q(3235),
          q(0),
          ],
       q(kdd) => [
-         q(3244),
+         q(3236),
          q(0),
          ],
       q(kde) => [
-         q(3245),
+         q(3237),
          q(0),
          ],
       q(kdf) => [
-         q(3246),
+         q(3238),
          q(0),
          ],
       q(kdg) => [
-         q(3247),
+         q(3239),
          q(0),
          ],
       q(kdh) => [
-         q(3248),
+         q(3240),
          q(0),
          ],
       q(kdi) => [
-         q(3249),
+         q(3241),
          q(0),
          ],
       q(kdj) => [
-         q(3250),
+         q(3242),
          q(0),
          ],
       q(kdk) => [
-         q(3251),
+         q(3243),
          q(0),
          ],
       q(kdl) => [
-         q(3252),
+         q(3244),
          q(0),
          ],
       q(kdm) => [
-         q(3253),
+         q(3245),
          q(0),
          ],
       q(kdn) => [
-         q(3254),
+         q(3246),
          q(0),
          ],
       q(kdo) => [
@@ -70126,343 +70060,343 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kdp) => [
-         q(3255),
+         q(3247),
          q(0),
          ],
       q(kdq) => [
-         q(3256),
+         q(3248),
          q(0),
          ],
       q(kdr) => [
-         q(3257),
+         q(3249),
          q(0),
          ],
       q(kdt) => [
-         q(3258),
+         q(3250),
          q(0),
          ],
       q(kdu) => [
-         q(3259),
+         q(3251),
          q(0),
          ],
       q(kdw) => [
-         q(3260),
+         q(3252),
          q(0),
          ],
       q(kdx) => [
-         q(3261),
+         q(3253),
          q(0),
          ],
       q(kdy) => [
-         q(3262),
+         q(3254),
          q(0),
          ],
       q(kdz) => [
-         q(3263),
+         q(3255),
          q(0),
          ],
       q(kea) => [
-         q(3264),
+         q(3256),
          q(0),
          ],
       q(keb) => [
-         q(3265),
+         q(3257),
          q(0),
          ],
       q(kec) => [
-         q(3266),
+         q(3258),
          q(0),
          ],
       q(ked) => [
-         q(3267),
+         q(3259),
          q(0),
          ],
       q(kee) => [
-         q(3268),
+         q(3260),
          q(0),
          ],
       q(kef) => [
-         q(3269),
+         q(3261),
          q(0),
          ],
       q(keg) => [
-         q(3270),
+         q(3262),
          q(0),
          ],
       q(keh) => [
-         q(3271),
+         q(3263),
          q(0),
          ],
       q(kei) => [
-         q(3272),
+         q(3264),
          q(0),
          ],
       q(kej) => [
-         q(3273),
+         q(3265),
          q(0),
          ],
       q(kek) => [
-         q(3274),
+         q(3266),
          q(0),
          ],
       q(kel) => [
-         q(3275),
+         q(3267),
          q(0),
          ],
       q(kem) => [
-         q(3276),
+         q(3268),
          q(0),
          ],
       q(ken) => [
-         q(3277),
+         q(3269),
          q(0),
          ],
       q(keo) => [
-         q(3278),
+         q(3270),
          q(0),
          ],
       q(kep) => [
-         q(3279),
+         q(3271),
          q(0),
          ],
       q(keq) => [
-         q(3280),
+         q(3272),
          q(0),
          ],
       q(ker) => [
-         q(3281),
+         q(3273),
          q(0),
          ],
       q(kes) => [
-         q(3282),
+         q(3274),
          q(0),
          ],
       q(ket) => [
-         q(3283),
+         q(3275),
          q(0),
          ],
       q(keu) => [
-         q(3284),
+         q(3276),
          q(0),
          ],
       q(kev) => [
-         q(3285),
+         q(3277),
          q(0),
          ],
       q(kew) => [
-         q(3286),
+         q(3278),
          q(0),
          ],
       q(kex) => [
-         q(3287),
+         q(3279),
          q(0),
          ],
       q(key) => [
-         q(3288),
+         q(3280),
          q(0),
          ],
       q(kez) => [
-         q(3289),
+         q(3281),
          q(0),
          ],
       q(kfa) => [
-         q(3290),
+         q(3282),
          q(0),
          ],
       q(kfb) => [
-         q(3291),
+         q(3283),
          q(0),
          ],
       q(kfc) => [
-         q(3292),
+         q(3284),
          q(0),
          ],
       q(kfd) => [
-         q(3293),
+         q(3285),
          q(0),
          ],
       q(kfe) => [
-         q(3294),
+         q(3286),
          q(0),
          ],
       q(kff) => [
-         q(3295),
+         q(3287),
          q(0),
          ],
       q(kfg) => [
-         q(3296),
+         q(3288),
          q(0),
          ],
       q(kfh) => [
-         q(3297),
+         q(3289),
          q(0),
          ],
       q(kfi) => [
-         q(3298),
+         q(3290),
          q(0),
          ],
       q(kfj) => [
-         q(3299),
+         q(3291),
          q(0),
          ],
       q(kfk) => [
-         q(3300),
+         q(3292),
          q(0),
          ],
       q(kfl) => [
-         q(3301),
+         q(3293),
          q(0),
          ],
       q(kfm) => [
-         q(3302),
+         q(3294),
          q(0),
          ],
       q(kfn) => [
-         q(3303),
+         q(3295),
          q(0),
          ],
       q(kfo) => [
-         q(3304),
+         q(3296),
          q(0),
          ],
       q(kfp) => [
-         q(3305),
+         q(3297),
          q(0),
          ],
       q(kfq) => [
-         q(3306),
+         q(3298),
          q(0),
          ],
       q(kfr) => [
-         q(3307),
+         q(3299),
          q(0),
          ],
       q(kfs) => [
-         q(3308),
+         q(3300),
          q(0),
          ],
       q(kft) => [
-         q(3309),
+         q(3301),
          q(0),
          ],
       q(kfu) => [
-         q(3310),
+         q(3302),
          q(0),
          ],
       q(kfv) => [
-         q(3311),
+         q(3303),
          q(0),
          ],
       q(kfw) => [
-         q(3312),
+         q(3304),
          q(0),
          ],
       q(kfx) => [
-         q(3313),
+         q(3305),
          q(0),
          ],
       q(kfy) => [
-         q(3314),
+         q(3306),
          q(0),
          ],
       q(kfz) => [
-         q(3315),
+         q(3307),
          q(0),
          ],
       q(kga) => [
-         q(3316),
+         q(3308),
          q(0),
          ],
       q(kgb) => [
-         q(3317),
+         q(3309),
          q(0),
          ],
       q(kgc) => [
-         q(3318),
+         q(3310),
          q(0),
          ],
       q(kgd) => [
-         q(3319),
+         q(3311),
          q(0),
          ],
       q(kge) => [
-         q(3320),
+         q(3312),
          q(0),
          ],
       q(kgf) => [
-         q(3321),
+         q(3313),
          q(0),
          ],
       q(kgg) => [
-         q(3322),
+         q(3314),
          q(0),
          ],
       q(kgi) => [
-         q(3323),
+         q(3315),
          q(0),
          ],
       q(kgj) => [
-         q(3324),
+         q(3316),
          q(0),
          ],
       q(kgk) => [
-         q(3325),
+         q(3317),
          q(0),
          ],
       q(kgl) => [
-         q(3326),
+         q(3318),
          q(0),
          ],
       q(kgm) => [
-         q(3327),
+         q(3319),
          q(0),
          ],
       q(kgn) => [
-         q(3328),
+         q(3320),
          q(0),
          ],
       q(kgo) => [
-         q(3329),
+         q(3321),
          q(0),
          ],
       q(kgp) => [
-         q(3330),
+         q(3322),
          q(0),
          ],
       q(kgq) => [
-         q(3331),
+         q(3323),
          q(0),
          ],
       q(kgr) => [
-         q(3332),
+         q(3324),
          q(0),
          ],
       q(kgs) => [
-         q(3333),
+         q(3325),
          q(0),
          ],
       q(kgt) => [
-         q(3334),
+         q(3326),
          q(0),
          ],
       q(kgu) => [
-         q(3335),
+         q(3327),
          q(0),
          ],
       q(kgv) => [
-         q(3336),
+         q(3328),
          q(0),
          ],
       q(kgw) => [
-         q(3337),
+         q(3329),
          q(0),
          ],
       q(kgx) => [
-         q(3338),
+         q(3330),
          q(0),
          ],
       q(kgy) => [
-         q(3339),
+         q(3331),
          q(0),
          ],
       q(kha) => [
@@ -70470,31 +70404,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(khb) => [
-         q(3340),
+         q(3332),
          q(0),
          ],
       q(khc) => [
-         q(3341),
+         q(3333),
          q(0),
          ],
       q(khd) => [
-         q(3342),
+         q(3334),
          q(0),
          ],
       q(khe) => [
-         q(3343),
+         q(3335),
          q(0),
          ],
       q(khf) => [
-         q(3344),
+         q(3336),
          q(0),
          ],
       q(khg) => [
-         q(3345),
+         q(3337),
          q(0),
          ],
       q(khh) => [
-         q(3346),
+         q(3338),
          q(0),
          ],
       q(khi) => [
@@ -70502,15 +70436,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(khj) => [
-         q(3347),
+         q(3339),
          q(0),
          ],
       q(khk) => [
-         q(3348),
+         q(3340),
          q(0),
          ],
       q(khl) => [
-         q(3349),
+         q(3341),
          q(0),
          ],
       q(khm) => [
@@ -70518,7 +70452,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(khn) => [
-         q(3350),
+         q(3342),
          q(0),
          ],
       q(kho) => [
@@ -70526,87 +70460,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(khp) => [
-         q(3351),
+         q(3343),
          q(0),
          ],
       q(khq) => [
-         q(3352),
+         q(3344),
          q(0),
          ],
       q(khr) => [
-         q(3353),
+         q(3345),
          q(0),
          ],
       q(khs) => [
-         q(3354),
+         q(3346),
          q(0),
          ],
       q(kht) => [
-         q(3355),
+         q(3347),
          q(0),
          ],
       q(khu) => [
-         q(3356),
+         q(3348),
          q(0),
          ],
       q(khv) => [
-         q(3357),
+         q(3349),
          q(0),
          ],
       q(khw) => [
-         q(3358),
+         q(3350),
          q(0),
          ],
       q(khx) => [
-         q(3359),
+         q(3351),
          q(0),
          ],
       q(khy) => [
-         q(3360),
+         q(3352),
          q(0),
          ],
       q(khz) => [
-         q(3361),
+         q(3353),
          q(0),
          ],
       q(kia) => [
-         q(3362),
+         q(3354),
          q(0),
          ],
       q(kib) => [
-         q(3363),
+         q(3355),
          q(0),
          ],
       q(kic) => [
-         q(3364),
+         q(3356),
          q(0),
          ],
       q(kid) => [
-         q(3365),
+         q(3357),
          q(0),
          ],
       q(kie) => [
-         q(3366),
+         q(3358),
          q(0),
          ],
       q(kif) => [
-         q(3367),
+         q(3359),
          q(0),
          ],
       q(kig) => [
-         q(3368),
+         q(3360),
          q(0),
          ],
       q(kih) => [
-         q(3369),
+         q(3361),
          q(0),
          ],
       q(kii) => [
-         q(3370),
+         q(3362),
          q(0),
          ],
       q(kij) => [
-         q(3371),
+         q(3363),
          q(0),
          ],
       q(kik) => [
@@ -70614,11 +70548,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kil) => [
-         q(3372),
+         q(3364),
          q(0),
          ],
       q(kim) => [
-         q(3373),
+         q(3365),
          q(0),
          ],
       q(kin) => [
@@ -70626,15 +70560,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kio) => [
-         q(3374),
+         q(3366),
          q(0),
          ],
       q(kip) => [
-         q(3375),
+         q(3367),
          q(0),
          ],
       q(kiq) => [
-         q(3376),
+         q(3368),
          q(0),
          ],
       q(kir) => [
@@ -70642,343 +70576,347 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kis) => [
-         q(3377),
+         q(3369),
          q(0),
          ],
       q(kit) => [
-         q(3378),
+         q(3370),
          q(0),
          ],
       q(kiu) => [
-         q(3379),
+         q(3371),
          q(0),
          ],
       q(kiv) => [
-         q(3380),
+         q(3372),
          q(0),
          ],
       q(kiw) => [
-         q(3381),
+         q(3373),
          q(0),
          ],
       q(kix) => [
-         q(3382),
+         q(3374),
          q(0),
          ],
       q(kiy) => [
-         q(3383),
+         q(3375),
          q(0),
          ],
       q(kiz) => [
-         q(3384),
+         q(3376),
          q(0),
          ],
       q(kja) => [
-         q(3385),
+         q(3377),
          q(0),
          ],
       q(kjb) => [
-         q(3386),
+         q(3378),
          q(0),
          ],
       q(kjc) => [
-         q(3387),
+         q(3379),
          q(0),
          ],
       q(kjd) => [
-         q(3388),
+         q(3380),
          q(0),
          ],
       q(kje) => [
-         q(3389),
+         q(3381),
          q(0),
          ],
       q(kjf) => [
-         q(3390),
+         q(3382),
          q(0),
          ],
       q(kjg) => [
-         q(3391),
+         q(3383),
          q(0),
          ],
       q(kjh) => [
-         q(3392),
+         q(3384),
          q(0),
          ],
       q(kji) => [
-         q(3393),
+         q(3385),
          q(0),
          ],
       q(kjj) => [
-         q(3394),
+         q(3386),
          q(0),
          ],
       q(kjk) => [
-         q(3395),
+         q(3387),
          q(0),
          ],
       q(kjl) => [
-         q(3396),
+         q(3388),
          q(0),
          ],
       q(kjm) => [
-         q(3397),
+         q(3389),
          q(0),
          ],
       q(kjn) => [
-         q(3398),
+         q(3390),
          q(0),
          ],
       q(kjo) => [
-         q(3399),
+         q(3391),
          q(0),
          ],
       q(kjp) => [
-         q(3400),
+         q(3392),
          q(0),
          ],
       q(kjq) => [
-         q(3401),
+         q(3393),
          q(0),
          ],
       q(kjr) => [
-         q(3402),
+         q(3394),
          q(0),
          ],
       q(kjs) => [
-         q(3403),
+         q(3395),
          q(0),
          ],
       q(kjt) => [
-         q(3404),
+         q(3396),
          q(0),
          ],
       q(kju) => [
-         q(3405),
+         q(3397),
+         q(0),
+         ],
+      q(kjv) => [
+         q(3398),
          q(0),
          ],
       q(kjx) => [
-         q(3406),
+         q(3399),
          q(0),
          ],
       q(kjy) => [
-         q(3407),
+         q(3400),
          q(0),
          ],
       q(kjz) => [
-         q(3408),
+         q(3401),
          q(0),
          ],
       q(kka) => [
-         q(3409),
+         q(3402),
          q(0),
          ],
       q(kkb) => [
-         q(3410),
+         q(3403),
          q(0),
          ],
       q(kkc) => [
-         q(3411),
+         q(3404),
          q(0),
          ],
       q(kkd) => [
-         q(3412),
+         q(3405),
          q(0),
          ],
       q(kke) => [
-         q(3413),
+         q(3406),
          q(0),
          ],
       q(kkf) => [
-         q(3414),
+         q(3407),
          q(0),
          ],
       q(kkg) => [
-         q(3415),
+         q(3408),
          q(0),
          ],
       q(kkh) => [
-         q(3416),
+         q(3409),
          q(0),
          ],
       q(kki) => [
-         q(3417),
+         q(3410),
          q(0),
          ],
       q(kkj) => [
-         q(3418),
+         q(3411),
          q(0),
          ],
       q(kkk) => [
-         q(3419),
+         q(3412),
          q(0),
          ],
       q(kkl) => [
-         q(3420),
+         q(3413),
          q(0),
          ],
       q(kkm) => [
-         q(3421),
+         q(3414),
          q(0),
          ],
       q(kkn) => [
-         q(3422),
+         q(3415),
          q(0),
          ],
       q(kko) => [
-         q(3423),
+         q(3416),
          q(0),
          ],
       q(kkp) => [
-         q(3424),
+         q(3417),
          q(0),
          ],
       q(kkq) => [
-         q(3425),
+         q(3418),
          q(0),
          ],
       q(kkr) => [
-         q(3426),
+         q(3419),
          q(0),
          ],
       q(kks) => [
-         q(3427),
+         q(3420),
          q(0),
          ],
       q(kkt) => [
-         q(3428),
+         q(3421),
          q(0),
          ],
       q(kku) => [
-         q(3429),
+         q(3422),
          q(0),
          ],
       q(kkv) => [
-         q(3430),
+         q(3423),
          q(0),
          ],
       q(kkw) => [
-         q(3431),
+         q(3424),
          q(0),
          ],
       q(kkx) => [
-         q(3432),
+         q(3425),
          q(0),
          ],
       q(kky) => [
-         q(3433),
+         q(3426),
          q(0),
          ],
       q(kkz) => [
-         q(3434),
+         q(3427),
          q(0),
          ],
       q(kla) => [
-         q(3435),
+         q(3428),
          q(0),
          ],
       q(klb) => [
-         q(3436),
+         q(3429),
          q(0),
          ],
       q(klc) => [
-         q(3437),
+         q(3430),
          q(0),
          ],
       q(kld) => [
-         q(3438),
+         q(3431),
          q(0),
          ],
       q(kle) => [
-         q(3439),
+         q(3432),
          q(0),
          ],
       q(klf) => [
-         q(3440),
+         q(3433),
          q(0),
          ],
       q(klg) => [
-         q(3441),
+         q(3434),
          q(0),
          ],
       q(klh) => [
-         q(3442),
+         q(3435),
          q(0),
          ],
       q(kli) => [
-         q(3443),
+         q(3436),
          q(0),
          ],
       q(klj) => [
-         q(3444),
+         q(3437),
          q(0),
          ],
       q(klk) => [
-         q(3445),
+         q(3438),
          q(0),
          ],
       q(kll) => [
-         q(3446),
+         q(3439),
          q(0),
          ],
       q(klm) => [
-         q(3447),
+         q(3440),
          q(0),
          ],
       q(kln) => [
-         q(3448),
+         q(3441),
          q(0),
          ],
       q(klo) => [
-         q(3449),
+         q(3442),
          q(0),
          ],
       q(klp) => [
-         q(3450),
+         q(3443),
          q(0),
          ],
       q(klq) => [
-         q(3451),
+         q(3444),
          q(0),
          ],
       q(klr) => [
-         q(3452),
+         q(3445),
          q(0),
          ],
       q(kls) => [
-         q(3453),
+         q(3446),
          q(0),
          ],
       q(klt) => [
-         q(3454),
+         q(3447),
          q(0),
          ],
       q(klu) => [
-         q(3455),
+         q(3448),
          q(0),
          ],
       q(klv) => [
-         q(3456),
+         q(3449),
          q(0),
          ],
       q(klw) => [
-         q(3457),
+         q(3450),
          q(0),
          ],
       q(klx) => [
-         q(3458),
+         q(3451),
          q(0),
          ],
       q(kly) => [
-         q(3459),
+         q(3452),
          q(0),
          ],
       q(klz) => [
-         q(3460),
+         q(3453),
          q(0),
          ],
       q(kma) => [
-         q(3461),
+         q(3454),
          q(0),
          ],
       q(kmb) => [
@@ -70986,235 +70924,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kmc) => [
-         q(3462),
+         q(3455),
          q(0),
          ],
       q(kmd) => [
-         q(3463),
+         q(3456),
          q(0),
          ],
       q(kme) => [
-         q(3464),
+         q(3457),
          q(0),
          ],
       q(kmf) => [
-         q(3465),
+         q(3458),
          q(0),
          ],
       q(kmg) => [
-         q(3466),
+         q(3459),
          q(0),
          ],
       q(kmh) => [
-         q(3467),
+         q(3460),
          q(0),
          ],
       q(kmi) => [
-         q(3468),
+         q(3461),
          q(0),
          ],
       q(kmj) => [
-         q(3469),
+         q(3462),
          q(0),
          ],
       q(kmk) => [
-         q(3470),
+         q(3463),
          q(0),
          ],
       q(kml) => [
-         q(3471),
+         q(3464),
          q(0),
          ],
       q(kmm) => [
-         q(3472),
+         q(3465),
          q(0),
          ],
       q(kmn) => [
-         q(3473),
+         q(3466),
          q(0),
          ],
       q(kmo) => [
-         q(3474),
+         q(3467),
          q(0),
          ],
       q(kmp) => [
-         q(3475),
+         q(3468),
          q(0),
          ],
       q(kmq) => [
-         q(3476),
+         q(3469),
          q(0),
          ],
       q(kmr) => [
-         q(3477),
+         q(3470),
          q(0),
          ],
       q(kms) => [
-         q(3478),
+         q(3471),
          q(0),
          ],
       q(kmt) => [
-         q(3479),
+         q(3472),
          q(0),
          ],
       q(kmu) => [
-         q(3480),
+         q(3473),
          q(0),
          ],
       q(kmv) => [
-         q(3481),
+         q(3474),
          q(0),
          ],
       q(kmw) => [
-         q(3482),
+         q(3475),
          q(0),
          ],
       q(kmx) => [
-         q(3483),
+         q(3476),
          q(0),
          ],
       q(kmy) => [
-         q(3484),
+         q(3477),
          q(0),
          ],
       q(kmz) => [
-         q(3485),
+         q(3478),
          q(0),
          ],
       q(kna) => [
-         q(3486),
+         q(3479),
          q(0),
          ],
       q(knb) => [
-         q(3487),
+         q(3480),
          q(0),
          ],
       q(knc) => [
-         q(3488),
+         q(3481),
          q(0),
          ],
       q(knd) => [
-         q(3489),
+         q(3482),
          q(0),
          ],
       q(kne) => [
-         q(3490),
+         q(3483),
          q(0),
          ],
       q(knf) => [
-         q(3491),
+         q(3484),
          q(0),
          ],
       q(kng) => [
-         q(3492),
+         q(3485),
          q(0),
          ],
       q(kni) => [
-         q(3493),
+         q(3486),
          q(0),
          ],
       q(knj) => [
-         q(3494),
+         q(3487),
          q(0),
          ],
       q(knk) => [
-         q(3495),
+         q(3488),
          q(0),
          ],
       q(knl) => [
-         q(3496),
+         q(3489),
          q(0),
          ],
       q(knm) => [
-         q(3497),
+         q(3490),
          q(0),
          ],
       q(knn) => [
-         q(3498),
+         q(3491),
          q(0),
          ],
       q(kno) => [
-         q(3499),
+         q(3492),
          q(0),
          ],
       q(knp) => [
-         q(3500),
+         q(3493),
          q(0),
          ],
       q(knq) => [
-         q(3501),
+         q(3494),
          q(0),
          ],
       q(knr) => [
-         q(3502),
+         q(3495),
          q(0),
          ],
       q(kns) => [
-         q(3503),
+         q(3496),
          q(0),
          ],
       q(knt) => [
-         q(3504),
+         q(3497),
          q(0),
          ],
       q(knu) => [
-         q(3505),
+         q(3498),
          q(0),
          ],
       q(knv) => [
-         q(3506),
+         q(3499),
          q(0),
          ],
       q(knw) => [
-         q(3507),
+         q(3500),
          q(0),
          ],
       q(knx) => [
-         q(3508),
+         q(3501),
          q(0),
          ],
       q(kny) => [
-         q(3509),
+         q(3502),
          q(0),
          ],
       q(knz) => [
-         q(3510),
+         q(3503),
          q(0),
          ],
       q(koa) => [
-         q(3511),
+         q(3504),
          q(0),
          ],
       q(koc) => [
-         q(3512),
+         q(3505),
          q(0),
          ],
       q(kod) => [
-         q(3513),
+         q(3506),
          q(0),
          ],
       q(koe) => [
-         q(3514),
+         q(3507),
          q(0),
          ],
       q(kof) => [
-         q(3515),
+         q(3508),
          q(0),
          ],
       q(kog) => [
-         q(3516),
+         q(3509),
          q(0),
          ],
       q(koh) => [
-         q(3517),
+         q(3510),
          q(0),
          ],
       q(koi) => [
-         q(3518),
-         q(0),
-         ],
-      q(koj) => [
-         q(3519),
+         q(3511),
          q(0),
          ],
       q(kok) => [
@@ -71222,7 +71156,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(kol) => [
-         q(3520),
+         q(3512),
          q(0),
          ],
       q(kom) => [
@@ -71234,15 +71168,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(koo) => [
-         q(3521),
+         q(3513),
          q(0),
          ],
       q(kop) => [
-         q(3522),
+         q(3514),
          q(0),
          ],
       q(koq) => [
-         q(3523),
+         q(3515),
          q(0),
          ],
       q(kor) => [
@@ -71254,47 +71188,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kot) => [
-         q(3524),
+         q(3516),
          q(0),
          ],
       q(kou) => [
-         q(3525),
+         q(3517),
          q(0),
          ],
       q(kov) => [
-         q(3526),
+         q(3518),
          q(0),
          ],
       q(kow) => [
-         q(3527),
+         q(3519),
          q(0),
          ],
       q(kox) => [
-         q(3528),
+         q(3520),
          q(0),
          ],
       q(koy) => [
-         q(3529),
+         q(3521),
          q(0),
          ],
       q(koz) => [
-         q(3530),
+         q(3522),
          q(0),
          ],
       q(kpa) => [
-         q(3531),
+         q(3523),
          q(0),
          ],
       q(kpb) => [
-         q(3532),
+         q(3524),
          q(0),
          ],
       q(kpc) => [
-         q(3533),
+         q(3525),
          q(0),
          ],
       q(kpd) => [
-         q(3534),
+         q(3526),
          q(0),
          ],
       q(kpe) => [
@@ -71302,195 +71236,195 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kpf) => [
-         q(3535),
+         q(3527),
          q(0),
          ],
       q(kpg) => [
-         q(3536),
+         q(3528),
          q(0),
          ],
       q(kph) => [
-         q(3537),
+         q(3529),
          q(0),
          ],
       q(kpi) => [
-         q(3538),
+         q(3530),
          q(0),
          ],
       q(kpj) => [
-         q(3539),
+         q(3531),
          q(0),
          ],
       q(kpk) => [
-         q(3540),
+         q(3532),
          q(0),
          ],
       q(kpl) => [
-         q(3541),
+         q(3533),
          q(0),
          ],
       q(kpm) => [
-         q(3542),
+         q(3534),
          q(0),
          ],
       q(kpn) => [
-         q(3543),
+         q(3535),
          q(0),
          ],
       q(kpo) => [
-         q(3544),
+         q(3536),
          q(0),
          ],
       q(kpq) => [
-         q(3545),
+         q(3537),
          q(0),
          ],
       q(kpr) => [
-         q(3546),
+         q(3538),
          q(0),
          ],
       q(kps) => [
-         q(3547),
+         q(3539),
          q(0),
          ],
       q(kpt) => [
-         q(3548),
+         q(3540),
          q(0),
          ],
       q(kpu) => [
-         q(3549),
+         q(3541),
          q(0),
          ],
       q(kpv) => [
-         q(3550),
+         q(3542),
          q(0),
          ],
       q(kpw) => [
-         q(3551),
+         q(3543),
          q(0),
          ],
       q(kpx) => [
-         q(3552),
+         q(3544),
          q(0),
          ],
       q(kpy) => [
-         q(3553),
+         q(3545),
          q(0),
          ],
       q(kpz) => [
-         q(3554),
+         q(3546),
          q(0),
          ],
       q(kqa) => [
-         q(3555),
+         q(3547),
          q(0),
          ],
       q(kqb) => [
-         q(3556),
+         q(3548),
          q(0),
          ],
       q(kqc) => [
-         q(3557),
+         q(3549),
          q(0),
          ],
       q(kqd) => [
-         q(3558),
+         q(3550),
          q(0),
          ],
       q(kqe) => [
-         q(3559),
+         q(3551),
          q(0),
          ],
       q(kqf) => [
-         q(3560),
+         q(3552),
          q(0),
          ],
       q(kqg) => [
-         q(3561),
+         q(3553),
          q(0),
          ],
       q(kqh) => [
-         q(3562),
+         q(3554),
          q(0),
          ],
       q(kqi) => [
-         q(3563),
+         q(3555),
          q(0),
          ],
       q(kqj) => [
-         q(3564),
+         q(3556),
          q(0),
          ],
       q(kqk) => [
-         q(3565),
+         q(3557),
          q(0),
          ],
       q(kql) => [
-         q(3566),
+         q(3558),
          q(0),
          ],
       q(kqm) => [
-         q(3567),
+         q(3559),
          q(0),
          ],
       q(kqn) => [
-         q(3568),
+         q(3560),
          q(0),
          ],
       q(kqo) => [
-         q(3569),
+         q(3561),
          q(0),
          ],
       q(kqp) => [
-         q(3570),
+         q(3562),
          q(0),
          ],
       q(kqq) => [
-         q(3571),
+         q(3563),
          q(0),
          ],
       q(kqr) => [
-         q(3572),
+         q(3564),
          q(0),
          ],
       q(kqs) => [
-         q(3573),
+         q(3565),
          q(0),
          ],
       q(kqt) => [
-         q(3574),
+         q(3566),
          q(0),
          ],
       q(kqu) => [
-         q(3575),
+         q(3567),
          q(0),
          ],
       q(kqv) => [
-         q(3576),
+         q(3568),
          q(0),
          ],
       q(kqw) => [
-         q(3577),
+         q(3569),
          q(0),
          ],
       q(kqx) => [
-         q(3578),
+         q(3570),
          q(0),
          ],
       q(kqy) => [
-         q(3579),
+         q(3571),
          q(0),
          ],
       q(kqz) => [
-         q(3580),
+         q(3572),
          q(0),
          ],
       q(kra) => [
-         q(3581),
+         q(3573),
          q(0),
          ],
       q(krb) => [
-         q(3582),
+         q(3574),
          q(0),
          ],
       q(krc) => [
@@ -71498,31 +71432,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(krd) => [
-         q(3583),
+         q(3575),
          q(0),
          ],
       q(kre) => [
-         q(3584),
+         q(3576),
          q(0),
          ],
       q(krf) => [
-         q(3585),
+         q(3577),
          q(0),
          ],
       q(krh) => [
-         q(3586),
+         q(3578),
          q(0),
          ],
       q(kri) => [
-         q(3587),
+         q(3579),
          q(0),
          ],
       q(krj) => [
-         q(3588),
+         q(3580),
          q(0),
          ],
       q(krk) => [
-         q(3589),
+         q(3581),
          q(0),
          ],
       q(krl) => [
@@ -71530,11 +71464,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(krm) => [
-         q(3590),
+         q(3582),
          q(0),
          ],
       q(krn) => [
-         q(3591),
+         q(3583),
          q(0),
          ],
       q(kro) => [
@@ -71542,19 +71476,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(krp) => [
-         q(3592),
+         q(3584),
          q(0),
          ],
       q(krr) => [
-         q(3593),
+         q(3585),
          q(0),
          ],
       q(krs) => [
-         q(3594),
+         q(3586),
          q(0),
          ],
       q(krt) => [
-         q(3595),
+         q(3587),
          q(0),
          ],
       q(kru) => [
@@ -71562,231 +71496,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(krv) => [
-         q(3596),
+         q(3588),
          q(0),
          ],
       q(krw) => [
-         q(3597),
+         q(3589),
          q(0),
          ],
       q(krx) => [
-         q(3598),
+         q(3590),
          q(0),
          ],
       q(kry) => [
-         q(3599),
+         q(3591),
          q(0),
          ],
       q(krz) => [
-         q(3600),
+         q(3592),
          q(0),
          ],
       q(ksa) => [
-         q(3601),
+         q(3593),
          q(0),
          ],
       q(ksb) => [
-         q(3602),
+         q(3594),
          q(0),
          ],
       q(ksc) => [
-         q(3603),
+         q(3595),
          q(0),
          ],
       q(ksd) => [
-         q(3604),
+         q(3596),
          q(0),
          ],
       q(kse) => [
-         q(3605),
+         q(3597),
          q(0),
          ],
       q(ksf) => [
-         q(3606),
+         q(3598),
          q(0),
          ],
       q(ksg) => [
-         q(3607),
+         q(3599),
          q(0),
          ],
       q(ksh) => [
-         q(3608),
+         q(3600),
          q(0),
          ],
       q(ksi) => [
-         q(3609),
+         q(3601),
          q(0),
          ],
       q(ksj) => [
-         q(3610),
+         q(3602),
          q(0),
          ],
       q(ksk) => [
-         q(3611),
+         q(3603),
          q(0),
          ],
       q(ksl) => [
-         q(3612),
+         q(3604),
          q(0),
          ],
       q(ksm) => [
-         q(3613),
+         q(3605),
          q(0),
          ],
       q(ksn) => [
-         q(3614),
+         q(3606),
          q(0),
          ],
       q(kso) => [
-         q(3615),
+         q(3607),
          q(0),
          ],
       q(ksp) => [
-         q(3616),
+         q(3608),
          q(0),
          ],
       q(ksq) => [
-         q(3617),
+         q(3609),
          q(0),
          ],
       q(ksr) => [
-         q(3618),
+         q(3610),
          q(0),
          ],
       q(kss) => [
-         q(3619),
+         q(3611),
          q(0),
          ],
       q(kst) => [
-         q(3620),
+         q(3612),
          q(0),
          ],
       q(ksu) => [
-         q(3621),
+         q(3613),
          q(0),
          ],
       q(ksv) => [
-         q(3622),
+         q(3614),
          q(0),
          ],
       q(ksw) => [
-         q(3623),
+         q(3615),
          q(0),
          ],
       q(ksx) => [
-         q(3624),
+         q(3616),
          q(0),
          ],
       q(ksy) => [
-         q(3625),
+         q(3617),
          q(0),
          ],
       q(ksz) => [
-         q(3626),
+         q(3618),
          q(0),
          ],
       q(kta) => [
-         q(3627),
+         q(3619),
          q(0),
          ],
       q(ktb) => [
-         q(3628),
+         q(3620),
          q(0),
          ],
       q(ktc) => [
-         q(3629),
+         q(3621),
          q(0),
          ],
       q(ktd) => [
-         q(3630),
+         q(3622),
          q(0),
          ],
       q(kte) => [
-         q(3631),
+         q(3623),
          q(0),
          ],
       q(ktf) => [
-         q(3632),
+         q(3624),
          q(0),
          ],
       q(ktg) => [
-         q(3633),
+         q(3625),
          q(0),
          ],
       q(kth) => [
-         q(3634),
+         q(3626),
          q(0),
          ],
       q(kti) => [
-         q(3635),
+         q(3627),
          q(0),
          ],
       q(ktj) => [
-         q(3636),
+         q(3628),
          q(0),
          ],
       q(ktk) => [
-         q(3637),
+         q(3629),
          q(0),
          ],
       q(ktl) => [
-         q(3638),
+         q(3630),
          q(0),
          ],
       q(ktm) => [
-         q(3639),
+         q(3631),
          q(0),
          ],
       q(ktn) => [
-         q(3640),
+         q(3632),
          q(0),
          ],
       q(kto) => [
-         q(3641),
+         q(3633),
          q(0),
          ],
       q(ktp) => [
-         q(3642),
+         q(3634),
          q(0),
          ],
       q(ktq) => [
-         q(3643),
+         q(3635),
          q(0),
          ],
       q(ktr) => [
-         q(3644),
+         q(3636),
          q(0),
          ],
       q(kts) => [
-         q(3645),
+         q(3637),
          q(0),
          ],
       q(ktt) => [
-         q(3646),
+         q(3638),
          q(0),
          ],
       q(ktu) => [
-         q(3647),
+         q(3639),
          q(0),
          ],
       q(ktv) => [
-         q(3648),
+         q(3640),
          q(0),
          ],
       q(ktw) => [
-         q(3649),
+         q(3641),
          q(0),
          ],
       q(ktx) => [
-         q(3650),
+         q(3642),
          q(0),
          ],
       q(kty) => [
-         q(3651),
+         q(3643),
          q(0),
          ],
       q(ktz) => [
-         q(3652),
+         q(3644),
          q(0),
          ],
       q(kua) => [
@@ -71794,47 +71728,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kub) => [
-         q(3653),
+         q(3645),
          q(0),
          ],
       q(kuc) => [
-         q(3654),
+         q(3646),
          q(0),
          ],
       q(kud) => [
-         q(3655),
+         q(3647),
          q(0),
          ],
       q(kue) => [
-         q(3656),
+         q(3648),
          q(0),
          ],
       q(kuf) => [
-         q(3657),
+         q(3649),
          q(0),
          ],
       q(kug) => [
-         q(3658),
+         q(3650),
          q(0),
          ],
       q(kuh) => [
-         q(3659),
+         q(3651),
          q(0),
          ],
       q(kui) => [
-         q(3660),
+         q(3652),
          q(0),
          ],
       q(kuj) => [
-         q(3661),
+         q(3653),
          q(0),
          ],
       q(kuk) => [
-         q(3662),
+         q(3654),
          q(0),
          ],
       q(kul) => [
-         q(3663),
+         q(3655),
          q(0),
          ],
       q(kum) => [
@@ -71842,19 +71776,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kun) => [
-         q(3664),
+         q(3656),
          q(0),
          ],
       q(kuo) => [
-         q(3665),
+         q(3657),
          q(0),
          ],
       q(kup) => [
-         q(3666),
+         q(3658),
          q(0),
          ],
       q(kuq) => [
-         q(3327),
+         q(3319),
          q(0),
          ],
       q(kur) => [
@@ -71862,7 +71796,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kus) => [
-         q(3667),
+         q(3659),
          q(0),
          ],
       q(kut) => [
@@ -71870,551 +71804,543 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kuu) => [
-         q(3668),
+         q(3660),
          q(0),
          ],
       q(kuv) => [
-         q(3669),
+         q(3661),
          q(0),
          ],
       q(kuw) => [
-         q(3670),
+         q(3662),
          q(0),
          ],
       q(kux) => [
-         q(3671),
+         q(3663),
          q(0),
          ],
       q(kuy) => [
-         q(3672),
+         q(3664),
          q(0),
          ],
       q(kuz) => [
-         q(3673),
+         q(3665),
          q(0),
          ],
       q(kva) => [
-         q(3674),
+         q(3666),
          q(0),
          ],
       q(kvb) => [
-         q(3675),
+         q(3667),
          q(0),
          ],
       q(kvc) => [
-         q(3676),
+         q(3668),
          q(0),
          ],
       q(kvd) => [
-         q(3677),
+         q(3669),
          q(0),
          ],
       q(kve) => [
-         q(3678),
+         q(3670),
          q(0),
          ],
       q(kvf) => [
-         q(3679),
+         q(3671),
          q(0),
          ],
       q(kvg) => [
-         q(3680),
+         q(3672),
          q(0),
          ],
       q(kvh) => [
-         q(3681),
+         q(3673),
          q(0),
          ],
       q(kvi) => [
-         q(3682),
+         q(3674),
          q(0),
          ],
       q(kvj) => [
-         q(3683),
+         q(3675),
          q(0),
          ],
       q(kvk) => [
-         q(3684),
+         q(3676),
          q(0),
          ],
       q(kvl) => [
-         q(3685),
+         q(3677),
          q(0),
          ],
       q(kvm) => [
-         q(3686),
+         q(3678),
          q(0),
          ],
       q(kvn) => [
-         q(3687),
+         q(3679),
          q(0),
          ],
       q(kvo) => [
-         q(3688),
+         q(3680),
          q(0),
          ],
       q(kvp) => [
-         q(3689),
+         q(3681),
          q(0),
          ],
       q(kvq) => [
-         q(3690),
+         q(3682),
          q(0),
          ],
       q(kvr) => [
-         q(3691),
+         q(3683),
          q(0),
          ],
       q(kvs) => [
-         q(3692),
+         q(3684),
          q(0),
          ],
       q(kvt) => [
-         q(3693),
+         q(3685),
          q(0),
          ],
       q(kvu) => [
-         q(3694),
+         q(3686),
          q(0),
          ],
       q(kvv) => [
-         q(3695),
+         q(3687),
          q(0),
          ],
       q(kvw) => [
-         q(3696),
+         q(3688),
          q(0),
          ],
       q(kvx) => [
-         q(3697),
+         q(3689),
          q(0),
          ],
       q(kvy) => [
-         q(3698),
+         q(3690),
          q(0),
          ],
       q(kvz) => [
-         q(3699),
+         q(3691),
          q(0),
          ],
       q(kwa) => [
-         q(3700),
+         q(3692),
          q(0),
          ],
       q(kwb) => [
-         q(3701),
+         q(3693),
          q(0),
          ],
       q(kwc) => [
-         q(3702),
+         q(3694),
          q(0),
          ],
       q(kwd) => [
-         q(3703),
+         q(3695),
          q(0),
          ],
       q(kwe) => [
-         q(3704),
+         q(3696),
          q(0),
          ],
       q(kwf) => [
-         q(3705),
+         q(3697),
          q(0),
          ],
       q(kwg) => [
-         q(3706),
+         q(3698),
          q(0),
          ],
       q(kwh) => [
-         q(3707),
+         q(3699),
          q(0),
          ],
       q(kwi) => [
-         q(3708),
+         q(3700),
          q(0),
          ],
       q(kwj) => [
-         q(3709),
+         q(3701),
          q(0),
          ],
       q(kwk) => [
-         q(3710),
+         q(3702),
          q(0),
          ],
       q(kwl) => [
-         q(3711),
+         q(3703),
          q(0),
          ],
       q(kwm) => [
-         q(3712),
+         q(3704),
          q(0),
          ],
       q(kwn) => [
-         q(3713),
+         q(3705),
          q(0),
          ],
       q(kwo) => [
-         q(3714),
+         q(3706),
          q(0),
          ],
       q(kwp) => [
-         q(3715),
-         q(0),
-         ],
-      q(kwq) => [
-         q(3716),
+         q(3707),
          q(0),
          ],
       q(kwr) => [
-         q(3717),
+         q(3708),
          q(0),
          ],
       q(kws) => [
-         q(3718),
+         q(3709),
          q(0),
          ],
       q(kwt) => [
-         q(3719),
+         q(3710),
          q(0),
          ],
       q(kwu) => [
-         q(3720),
+         q(3711),
          q(0),
          ],
       q(kwv) => [
-         q(3721),
+         q(3712),
          q(0),
          ],
       q(kww) => [
-         q(3722),
+         q(3713),
          q(0),
          ],
       q(kwx) => [
-         q(3723),
+         q(3714),
          q(0),
          ],
       q(kwy) => [
-         q(3724),
+         q(3715),
          q(0),
          ],
       q(kwz) => [
-         q(3725),
+         q(3716),
          q(0),
          ],
       q(kxa) => [
-         q(3726),
+         q(3717),
          q(0),
          ],
       q(kxb) => [
-         q(3727),
+         q(3718),
          q(0),
          ],
       q(kxc) => [
-         q(3728),
+         q(3719),
          q(0),
          ],
       q(kxd) => [
-         q(3729),
-         q(0),
-         ],
-      q(kxe) => [
-         q(3730),
+         q(3720),
          q(0),
          ],
       q(kxf) => [
-         q(3731),
+         q(3721),
          q(0),
          ],
       q(kxh) => [
-         q(3732),
+         q(3722),
          q(0),
          ],
       q(kxi) => [
-         q(3733),
+         q(3723),
          q(0),
          ],
       q(kxj) => [
-         q(3734),
+         q(3724),
          q(0),
          ],
       q(kxk) => [
-         q(3735),
+         q(3725),
          q(0),
          ],
       q(kxl) => [
-         q(3736),
+         q(3726),
          q(0),
          ],
       q(kxm) => [
-         q(3737),
+         q(3727),
          q(0),
          ],
       q(kxn) => [
-         q(3738),
+         q(3728),
          q(0),
          ],
       q(kxo) => [
-         q(3739),
+         q(3729),
          q(0),
          ],
       q(kxp) => [
-         q(3740),
+         q(3730),
          q(0),
          ],
       q(kxq) => [
-         q(3741),
+         q(3731),
          q(0),
          ],
       q(kxr) => [
-         q(3742),
+         q(3732),
          q(0),
          ],
       q(kxs) => [
-         q(3743),
+         q(3733),
          q(0),
          ],
       q(kxt) => [
-         q(3744),
+         q(3734),
          q(0),
          ],
       q(kxu) => [
-         q(3745),
+         q(3735),
          q(0),
          ],
       q(kxv) => [
-         q(3746),
+         q(3736),
          q(0),
          ],
       q(kxw) => [
-         q(3747),
+         q(3737),
          q(0),
          ],
       q(kxx) => [
-         q(3748),
+         q(3738),
          q(0),
          ],
       q(kxy) => [
-         q(3749),
+         q(3739),
          q(0),
          ],
       q(kxz) => [
-         q(3750),
+         q(3740),
          q(0),
          ],
       q(kya) => [
-         q(3751),
+         q(3741),
          q(0),
          ],
       q(kyb) => [
-         q(3752),
+         q(3742),
          q(0),
          ],
       q(kyc) => [
-         q(3753),
+         q(3743),
          q(0),
          ],
       q(kyd) => [
-         q(3754),
+         q(3744),
          q(0),
          ],
       q(kye) => [
-         q(3755),
+         q(3745),
          q(0),
          ],
       q(kyf) => [
-         q(3756),
+         q(3746),
          q(0),
          ],
       q(kyg) => [
-         q(3757),
+         q(3747),
          q(0),
          ],
       q(kyh) => [
-         q(3758),
+         q(3748),
          q(0),
          ],
       q(kyi) => [
-         q(3759),
+         q(3749),
          q(0),
          ],
       q(kyj) => [
-         q(3760),
+         q(3750),
          q(0),
          ],
       q(kyk) => [
-         q(3761),
+         q(3751),
          q(0),
          ],
       q(kyl) => [
-         q(3762),
+         q(3752),
          q(0),
          ],
       q(kym) => [
-         q(3763),
+         q(3753),
          q(0),
          ],
       q(kyn) => [
-         q(3764),
+         q(3754),
          q(0),
          ],
       q(kyo) => [
-         q(3765),
+         q(3755),
          q(0),
          ],
       q(kyp) => [
-         q(3766),
+         q(3756),
          q(0),
          ],
       q(kyq) => [
-         q(3767),
+         q(3757),
          q(0),
          ],
       q(kyr) => [
-         q(3768),
+         q(3758),
          q(0),
          ],
       q(kys) => [
-         q(3769),
+         q(3759),
          q(0),
          ],
       q(kyt) => [
-         q(3770),
+         q(3760),
          q(0),
          ],
       q(kyu) => [
-         q(3771),
+         q(3761),
          q(0),
          ],
       q(kyv) => [
-         q(3772),
+         q(3762),
          q(0),
          ],
       q(kyw) => [
-         q(3773),
+         q(3763),
          q(0),
          ],
       q(kyx) => [
-         q(3774),
+         q(3764),
          q(0),
          ],
       q(kyy) => [
-         q(3775),
+         q(3765),
          q(0),
          ],
       q(kyz) => [
-         q(3776),
+         q(3766),
          q(0),
          ],
       q(kza) => [
-         q(3777),
+         q(3767),
          q(0),
          ],
       q(kzb) => [
-         q(3778),
+         q(3768),
          q(0),
          ],
       q(kzc) => [
-         q(3779),
+         q(3769),
          q(0),
          ],
       q(kzd) => [
-         q(3780),
+         q(3770),
          q(0),
          ],
       q(kze) => [
-         q(3781),
+         q(3771),
          q(0),
          ],
       q(kzf) => [
-         q(3782),
+         q(3772),
          q(0),
          ],
       q(kzg) => [
-         q(3783),
+         q(3773),
          q(0),
          ],
       q(kzi) => [
-         q(3784),
+         q(3774),
          q(0),
          ],
       q(kzj) => [
-         q(3785),
+         q(3775),
          q(0),
          ],
       q(kzk) => [
-         q(3786),
+         q(3776),
          q(0),
          ],
       q(kzl) => [
-         q(3787),
+         q(3777),
          q(0),
          ],
       q(kzm) => [
-         q(3788),
+         q(3778),
          q(0),
          ],
       q(kzn) => [
-         q(3789),
+         q(3779),
          q(0),
          ],
       q(kzo) => [
-         q(3790),
+         q(3780),
          q(0),
          ],
       q(kzp) => [
-         q(3791),
+         q(3781),
          q(0),
          ],
       q(kzq) => [
-         q(3792),
+         q(3782),
          q(0),
          ],
       q(kzr) => [
-         q(3793),
+         q(3783),
          q(0),
          ],
       q(kzs) => [
-         q(3794),
+         q(3784),
          q(0),
          ],
       q(kzt) => [
-         q(3795),
+         q(3785),
          q(0),
          ],
       q(kzu) => [
-         q(3796),
+         q(3786),
          q(0),
          ],
       q(kzv) => [
-         q(3797),
+         q(3787),
          q(0),
          ],
       q(kzw) => [
-         q(3798),
+         q(3788),
          q(0),
          ],
       q(kzx) => [
-         q(3799),
+         q(3789),
          q(0),
          ],
       q(kzy) => [
-         q(3800),
+         q(3790),
          q(0),
          ],
       q(kzz) => [
-         q(3801),
+         q(3791),
          q(0),
          ],
       q(laa) => [
-         q(3802),
+         q(3792),
          q(0),
          ],
       q(lab) => [
-         q(3803),
+         q(3793),
          q(0),
          ],
       q(lac) => [
-         q(3804),
+         q(3794),
          q(0),
          ],
       q(lad) => [
@@ -72422,15 +72348,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lae) => [
-         q(3805),
+         q(3795),
          q(0),
          ],
       q(laf) => [
-         q(3806),
+         q(3796),
          q(0),
          ],
       q(lag) => [
-         q(3807),
+         q(3797),
          q(0),
          ],
       q(lah) => [
@@ -72438,19 +72364,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lai) => [
-         q(3808),
+         q(3798),
          q(0),
          ],
       q(laj) => [
-         q(3809),
+         q(3799),
          q(0),
          ],
       q(lak) => [
-         q(3810),
+         q(3800),
          q(0),
          ],
       q(lal) => [
-         q(3811),
+         q(3801),
          q(0),
          ],
       q(lam) => [
@@ -72458,7 +72384,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lan) => [
-         q(3812),
+         q(3802),
          q(0),
          ],
       q(lao) => [
@@ -72466,19 +72392,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lap) => [
-         q(3813),
+         q(3803),
          q(0),
          ],
       q(laq) => [
-         q(3814),
+         q(3804),
          q(0),
          ],
       q(lar) => [
-         q(3815),
+         q(3805),
          q(0),
          ],
       q(las) => [
-         q(3816),
+         q(3806),
          q(0),
          ],
       q(lat) => [
@@ -72486,7 +72412,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lau) => [
-         q(3817),
+         q(3807),
          q(0),
          ],
       q(lav) => [
@@ -72494,303 +72420,303 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(law) => [
-         q(3818),
+         q(3808),
          q(0),
          ],
       q(lax) => [
-         q(3819),
+         q(3809),
          q(0),
          ],
       q(lay) => [
-         q(3820),
+         q(3810),
          q(0),
          ],
       q(laz) => [
-         q(3821),
+         q(3811),
          q(0),
          ],
       q(lba) => [
-         q(3822),
+         q(3812),
          q(0),
          ],
       q(lbb) => [
-         q(3823),
+         q(3813),
          q(0),
          ],
       q(lbc) => [
-         q(3824),
+         q(3814),
          q(0),
          ],
       q(lbe) => [
-         q(3825),
+         q(3815),
          q(0),
          ],
       q(lbf) => [
-         q(3826),
+         q(3816),
          q(0),
          ],
       q(lbg) => [
-         q(3827),
+         q(3817),
          q(0),
          ],
       q(lbi) => [
-         q(3828),
+         q(3818),
          q(0),
          ],
       q(lbj) => [
-         q(3829),
+         q(3819),
          q(0),
          ],
       q(lbk) => [
-         q(3830),
+         q(3820),
          q(0),
          ],
       q(lbl) => [
-         q(3831),
+         q(3821),
          q(0),
          ],
       q(lbm) => [
-         q(3832),
+         q(3822),
          q(0),
          ],
       q(lbn) => [
-         q(3833),
+         q(3823),
          q(0),
          ],
       q(lbo) => [
-         q(3834),
+         q(3824),
          q(0),
          ],
       q(lbq) => [
-         q(3835),
+         q(3825),
          q(0),
          ],
       q(lbr) => [
-         q(3836),
+         q(3826),
          q(0),
          ],
       q(lbs) => [
-         q(3837),
+         q(3827),
          q(0),
          ],
       q(lbt) => [
-         q(3838),
+         q(3828),
          q(0),
          ],
       q(lbu) => [
-         q(3839),
+         q(3829),
          q(0),
          ],
       q(lbv) => [
-         q(3840),
+         q(3830),
          q(0),
          ],
       q(lbw) => [
-         q(3841),
+         q(3831),
          q(0),
          ],
       q(lbx) => [
-         q(3842),
+         q(3832),
          q(0),
          ],
       q(lby) => [
-         q(3843),
+         q(3833),
          q(0),
          ],
       q(lbz) => [
-         q(3844),
+         q(3834),
          q(0),
          ],
       q(lcc) => [
-         q(3845),
+         q(3835),
          q(0),
          ],
       q(lcd) => [
-         q(3846),
+         q(3836),
          q(0),
          ],
       q(lce) => [
-         q(3847),
+         q(3837),
          q(0),
          ],
       q(lcf) => [
-         q(3848),
+         q(3838),
          q(0),
          ],
       q(lch) => [
-         q(3849),
+         q(3839),
          q(0),
          ],
       q(lcl) => [
-         q(3850),
+         q(3840),
          q(0),
          ],
       q(lcm) => [
-         q(3851),
+         q(3841),
          q(0),
          ],
       q(lcp) => [
-         q(3852),
+         q(3842),
          q(0),
          ],
       q(lcq) => [
-         q(3853),
+         q(3843),
          q(0),
          ],
       q(lcs) => [
-         q(3854),
+         q(3844),
          q(0),
          ],
       q(lda) => [
-         q(3855),
+         q(3845),
          q(0),
          ],
       q(ldb) => [
-         q(3856),
+         q(3846),
          q(0),
          ],
       q(ldd) => [
-         q(3857),
+         q(3847),
          q(0),
          ],
       q(ldg) => [
-         q(3858),
+         q(3848),
          q(0),
          ],
       q(ldh) => [
-         q(3859),
+         q(3849),
          q(0),
          ],
       q(ldi) => [
-         q(3860),
+         q(3850),
          q(0),
          ],
       q(ldj) => [
-         q(3861),
+         q(3851),
          q(0),
          ],
       q(ldk) => [
-         q(3862),
+         q(3852),
          q(0),
          ],
       q(ldl) => [
-         q(3863),
+         q(3853),
          q(0),
          ],
       q(ldm) => [
-         q(3864),
+         q(3854),
          q(0),
          ],
       q(ldn) => [
-         q(3865),
+         q(3855),
          q(0),
          ],
       q(ldo) => [
-         q(3866),
+         q(3856),
          q(0),
          ],
       q(ldp) => [
-         q(3867),
+         q(3857),
          q(0),
          ],
       q(ldq) => [
-         q(3868),
+         q(3858),
          q(0),
          ],
       q(lea) => [
-         q(3869),
+         q(3859),
          q(0),
          ],
       q(leb) => [
-         q(3870),
+         q(3860),
          q(0),
          ],
       q(lec) => [
-         q(3871),
+         q(3861),
          q(0),
          ],
       q(led) => [
-         q(3872),
+         q(3862),
          q(0),
          ],
       q(lee) => [
-         q(3873),
+         q(3863),
          q(0),
          ],
       q(lef) => [
-         q(3874),
+         q(3864),
          q(0),
          ],
       q(leh) => [
-         q(3875),
+         q(3865),
          q(0),
          ],
       q(lei) => [
-         q(3876),
+         q(3866),
          q(0),
          ],
       q(lej) => [
-         q(3877),
+         q(3867),
          q(0),
          ],
       q(lek) => [
-         q(3878),
+         q(3868),
          q(0),
          ],
       q(lel) => [
-         q(3879),
+         q(3869),
          q(0),
          ],
       q(lem) => [
-         q(3880),
+         q(3870),
          q(0),
          ],
       q(len) => [
-         q(3881),
+         q(3871),
          q(0),
          ],
       q(leo) => [
-         q(3882),
+         q(3872),
          q(0),
          ],
       q(lep) => [
-         q(3883),
+         q(3873),
          q(0),
          ],
       q(leq) => [
-         q(3884),
+         q(3874),
          q(0),
          ],
       q(ler) => [
-         q(3885),
+         q(3875),
          q(0),
          ],
       q(les) => [
-         q(3886),
+         q(3876),
          q(0),
          ],
       q(let) => [
-         q(3887),
+         q(3877),
          q(0),
          ],
       q(leu) => [
-         q(3888),
+         q(3878),
          q(0),
          ],
       q(lev) => [
-         q(3889),
+         q(3879),
          q(0),
          ],
       q(lew) => [
-         q(3890),
+         q(3880),
          q(0),
          ],
       q(lex) => [
-         q(3891),
+         q(3881),
          q(0),
          ],
       q(ley) => [
-         q(3892),
+         q(3882),
          q(0),
          ],
       q(lez) => [
@@ -72798,155 +72724,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lfa) => [
-         q(3893),
+         q(3883),
          q(0),
          ],
       q(lfn) => [
-         q(3894),
+         q(3884),
          q(0),
          ],
       q(lga) => [
-         q(3895),
+         q(3885),
          q(0),
          ],
       q(lgb) => [
-         q(3896),
+         q(3886),
          q(0),
          ],
       q(lgg) => [
-         q(3897),
+         q(3887),
          q(0),
          ],
       q(lgh) => [
-         q(3898),
+         q(3888),
          q(0),
          ],
       q(lgi) => [
-         q(3899),
+         q(3889),
          q(0),
          ],
       q(lgk) => [
-         q(3900),
+         q(3890),
          q(0),
          ],
       q(lgl) => [
-         q(3901),
+         q(3891),
          q(0),
          ],
       q(lgm) => [
-         q(3902),
+         q(3892),
          q(0),
          ],
       q(lgn) => [
-         q(3903),
+         q(3893),
          q(0),
          ],
       q(lgq) => [
-         q(3904),
+         q(3894),
          q(0),
          ],
       q(lgr) => [
-         q(3905),
+         q(3895),
          q(0),
          ],
       q(lgt) => [
-         q(3906),
+         q(3896),
          q(0),
          ],
       q(lgu) => [
-         q(3907),
+         q(3897),
          q(0),
          ],
       q(lgz) => [
-         q(3908),
+         q(3898),
          q(0),
          ],
       q(lha) => [
-         q(3909),
+         q(3899),
          q(0),
          ],
       q(lhh) => [
-         q(3910),
+         q(3900),
          q(0),
          ],
       q(lhi) => [
-         q(3911),
+         q(3901),
          q(0),
          ],
       q(lhl) => [
-         q(3912),
+         q(3902),
          q(0),
          ],
       q(lhm) => [
-         q(3913),
+         q(3903),
          q(0),
          ],
       q(lhn) => [
-         q(3914),
+         q(3904),
          q(0),
          ],
       q(lhp) => [
-         q(3915),
+         q(3905),
          q(0),
          ],
       q(lhs) => [
-         q(3916),
+         q(3906),
          q(0),
          ],
       q(lht) => [
-         q(3917),
+         q(3907),
          q(0),
          ],
       q(lhu) => [
-         q(3918),
+         q(3908),
          q(0),
          ],
       q(lia) => [
-         q(3919),
+         q(3909),
          q(0),
          ],
       q(lib) => [
-         q(3920),
+         q(3910),
          q(0),
          ],
       q(lic) => [
-         q(3921),
+         q(3911),
          q(0),
          ],
       q(lid) => [
-         q(3922),
+         q(3912),
          q(0),
          ],
       q(lie) => [
-         q(3923),
+         q(3913),
          q(0),
          ],
       q(lif) => [
-         q(3924),
+         q(3914),
          q(0),
          ],
       q(lig) => [
-         q(3925),
+         q(3915),
          q(0),
          ],
       q(lih) => [
-         q(3926),
-         q(0),
-         ],
-      q(lii) => [
-         q(3927),
+         q(3916),
          q(0),
          ],
       q(lij) => [
-         q(3928),
+         q(3917),
          q(0),
          ],
       q(lik) => [
-         q(3929),
+         q(3918),
          q(0),
          ],
       q(lil) => [
-         q(3930),
+         q(3919),
          q(0),
          ],
       q(lim) => [
@@ -72958,23 +72880,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lio) => [
-         q(3931),
+         q(3920),
          q(0),
          ],
       q(lip) => [
-         q(3932),
+         q(3921),
          q(0),
          ],
       q(liq) => [
-         q(3933),
+         q(3922),
          q(0),
          ],
       q(lir) => [
-         q(3934),
+         q(3923),
          q(0),
          ],
       q(lis) => [
-         q(3935),
+         q(3924),
          q(0),
          ],
       q(lit) => [
@@ -72982,395 +72904,395 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(liu) => [
-         q(3936),
+         q(3925),
          q(0),
          ],
       q(liv) => [
-         q(3937),
+         q(3926),
          q(0),
          ],
       q(liw) => [
-         q(3938),
+         q(3927),
          q(0),
          ],
       q(lix) => [
-         q(3939),
+         q(3928),
          q(0),
          ],
       q(liy) => [
-         q(3940),
+         q(3929),
          q(0),
          ],
       q(liz) => [
-         q(3941),
+         q(3930),
          q(0),
          ],
       q(lja) => [
-         q(3942),
+         q(3931),
          q(0),
          ],
       q(lje) => [
-         q(3943),
+         q(3932),
          q(0),
          ],
       q(lji) => [
-         q(3944),
+         q(3933),
          q(0),
          ],
       q(ljl) => [
-         q(3945),
+         q(3934),
          q(0),
          ],
       q(ljp) => [
-         q(3946),
+         q(3935),
          q(0),
          ],
       q(ljw) => [
-         q(3947),
+         q(3936),
          q(0),
          ],
       q(ljx) => [
-         q(3948),
+         q(3937),
          q(0),
          ],
       q(lka) => [
-         q(3949),
+         q(3938),
          q(0),
          ],
       q(lkb) => [
-         q(3950),
+         q(3939),
          q(0),
          ],
       q(lkc) => [
-         q(3951),
+         q(3940),
          q(0),
          ],
       q(lkd) => [
-         q(3952),
+         q(3941),
          q(0),
          ],
       q(lke) => [
-         q(3953),
+         q(3942),
          q(0),
          ],
       q(lkh) => [
-         q(3954),
+         q(3943),
          q(0),
          ],
       q(lki) => [
-         q(3955),
+         q(3944),
          q(0),
          ],
       q(lkj) => [
-         q(3956),
+         q(3945),
          q(0),
          ],
       q(lkl) => [
-         q(3957),
+         q(3946),
          q(0),
          ],
       q(lkm) => [
-         q(3958),
+         q(3947),
          q(0),
          ],
       q(lkn) => [
-         q(3959),
+         q(3948),
          q(0),
          ],
       q(lko) => [
-         q(3960),
+         q(3949),
          q(0),
          ],
       q(lkr) => [
-         q(3961),
+         q(3950),
          q(0),
          ],
       q(lks) => [
-         q(3962),
+         q(3951),
          q(0),
          ],
       q(lkt) => [
-         q(3963),
+         q(3952),
          q(0),
          ],
       q(lku) => [
-         q(3964),
+         q(3953),
          q(0),
          ],
       q(lky) => [
-         q(3965),
+         q(3954),
          q(0),
          ],
       q(lla) => [
-         q(3966),
+         q(3955),
          q(0),
          ],
       q(llb) => [
-         q(3967),
+         q(3956),
          q(0),
          ],
       q(llc) => [
-         q(3968),
+         q(3957),
          q(0),
          ],
       q(lld) => [
-         q(3969),
+         q(3958),
          q(0),
          ],
       q(lle) => [
-         q(3970),
+         q(3959),
          q(0),
          ],
       q(llf) => [
-         q(3971),
+         q(3960),
          q(0),
          ],
       q(llg) => [
-         q(3972),
+         q(3961),
          q(0),
          ],
       q(llh) => [
-         q(3973),
+         q(3962),
          q(0),
          ],
       q(lli) => [
-         q(3974),
+         q(3963),
          q(0),
          ],
       q(llj) => [
-         q(3975),
+         q(3964),
          q(0),
          ],
       q(llk) => [
-         q(3976),
+         q(3965),
          q(0),
          ],
       q(lll) => [
-         q(3977),
+         q(3966),
          q(0),
          ],
       q(llm) => [
-         q(3978),
+         q(3967),
          q(0),
          ],
       q(lln) => [
-         q(3979),
+         q(3968),
          q(0),
          ],
       q(llo) => [
-         q(3980),
+         q(3969),
          q(0),
          ],
       q(llp) => [
-         q(3981),
+         q(3970),
          q(0),
          ],
       q(llq) => [
-         q(3982),
+         q(3971),
          q(0),
          ],
       q(lls) => [
-         q(3983),
+         q(3972),
          q(0),
          ],
       q(llu) => [
-         q(3984),
+         q(3973),
          q(0),
          ],
       q(llx) => [
-         q(3985),
+         q(3974),
          q(0),
          ],
       q(lma) => [
-         q(3986),
+         q(3975),
          q(0),
          ],
       q(lmb) => [
-         q(3987),
+         q(3976),
          q(0),
          ],
       q(lmc) => [
-         q(3988),
+         q(3977),
          q(0),
          ],
       q(lmd) => [
-         q(3989),
+         q(3978),
          q(0),
          ],
       q(lme) => [
-         q(3990),
+         q(3979),
          q(0),
          ],
       q(lmf) => [
-         q(3991),
+         q(3980),
          q(0),
          ],
       q(lmg) => [
-         q(3992),
+         q(3981),
          q(0),
          ],
       q(lmh) => [
-         q(3993),
+         q(3982),
          q(0),
          ],
       q(lmi) => [
-         q(3994),
+         q(3983),
          q(0),
          ],
       q(lmj) => [
-         q(3995),
+         q(3984),
          q(0),
          ],
       q(lmk) => [
-         q(3996),
+         q(3985),
          q(0),
          ],
       q(lml) => [
-         q(3997),
+         q(3986),
          q(0),
          ],
       q(lmn) => [
-         q(3998),
+         q(3987),
          q(0),
          ],
       q(lmo) => [
-         q(3999),
+         q(3988),
          q(0),
          ],
       q(lmp) => [
-         q(4000),
+         q(3989),
          q(0),
          ],
       q(lmq) => [
-         q(4001),
+         q(3990),
          q(0),
          ],
       q(lmr) => [
-         q(4002),
+         q(3991),
          q(0),
          ],
       q(lmu) => [
-         q(4003),
+         q(3992),
          q(0),
          ],
       q(lmv) => [
-         q(4004),
+         q(3993),
          q(0),
          ],
       q(lmw) => [
-         q(4005),
+         q(3994),
          q(0),
          ],
       q(lmx) => [
-         q(4006),
+         q(3995),
          q(0),
          ],
       q(lmy) => [
-         q(4007),
+         q(3996),
          q(0),
          ],
       q(lmz) => [
-         q(4008),
+         q(3997),
          q(0),
          ],
       q(lna) => [
-         q(4009),
+         q(3998),
          q(0),
          ],
       q(lnb) => [
-         q(4010),
+         q(3999),
          q(0),
          ],
       q(lnd) => [
-         q(4011),
+         q(4000),
          q(0),
          ],
       q(lng) => [
-         q(4012),
+         q(4001),
          q(0),
          ],
       q(lnh) => [
-         q(4013),
+         q(4002),
          q(0),
          ],
       q(lni) => [
-         q(4014),
+         q(4003),
          q(0),
          ],
       q(lnj) => [
-         q(4015),
+         q(4004),
          q(0),
          ],
       q(lnl) => [
-         q(4016),
+         q(4005),
          q(0),
          ],
       q(lnm) => [
-         q(4017),
+         q(4006),
          q(0),
          ],
       q(lnn) => [
-         q(4018),
+         q(4007),
          q(0),
          ],
       q(lno) => [
-         q(4019),
+         q(4008),
          q(0),
          ],
       q(lns) => [
-         q(4020),
+         q(4009),
          q(0),
          ],
       q(lnu) => [
-         q(4021),
+         q(4010),
          q(0),
          ],
       q(lnw) => [
-         q(4022),
+         q(4011),
          q(0),
          ],
       q(lnz) => [
-         q(4023),
+         q(4012),
          q(0),
          ],
       q(loa) => [
-         q(4024),
+         q(4013),
          q(0),
          ],
       q(lob) => [
-         q(4025),
+         q(4014),
          q(0),
          ],
       q(loc) => [
-         q(4026),
+         q(4015),
          q(0),
          ],
       q(loe) => [
-         q(4027),
+         q(4016),
          q(0),
          ],
       q(lof) => [
-         q(4028),
+         q(4017),
          q(0),
          ],
       q(log) => [
-         q(4029),
+         q(4018),
          q(0),
          ],
       q(loh) => [
-         q(4030),
+         q(4019),
          q(0),
          ],
       q(loi) => [
-         q(4031),
+         q(4020),
          q(0),
          ],
       q(loj) => [
-         q(4032),
+         q(4021),
          q(0),
          ],
       q(lok) => [
-         q(4033),
+         q(4022),
          q(0),
          ],
       q(lol) => [
@@ -73378,55 +73300,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lom) => [
-         q(4034),
+         q(4023),
          q(0),
          ],
       q(lon) => [
-         q(4035),
+         q(4024),
          q(0),
          ],
       q(loo) => [
-         q(4036),
+         q(4025),
          q(0),
          ],
       q(lop) => [
-         q(4037),
+         q(4026),
          q(0),
          ],
       q(loq) => [
-         q(4038),
+         q(4027),
          q(0),
          ],
       q(lor) => [
-         q(4039),
+         q(4028),
          q(0),
          ],
       q(los) => [
-         q(4040),
+         q(4029),
          q(0),
          ],
       q(lot) => [
-         q(4041),
+         q(4030),
          q(0),
          ],
       q(lou) => [
-         q(4042),
+         q(4031),
          q(0),
          ],
       q(lov) => [
-         q(4043),
+         q(4032),
          q(0),
          ],
       q(low) => [
-         q(4044),
+         q(4033),
          q(0),
          ],
       q(lox) => [
-         q(4045),
+         q(4034),
          q(0),
          ],
       q(loy) => [
-         q(4046),
+         q(4035),
          q(0),
          ],
       q(loz) => [
@@ -73434,163 +73356,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lpa) => [
-         q(4047),
+         q(4036),
          q(0),
          ],
       q(lpe) => [
-         q(4048),
+         q(4037),
          q(0),
          ],
       q(lpn) => [
-         q(4049),
+         q(4038),
          q(0),
          ],
       q(lpo) => [
-         q(4050),
+         q(4039),
          q(0),
          ],
       q(lpx) => [
-         q(4051),
+         q(4040),
          q(0),
          ],
       q(lra) => [
-         q(4052),
+         q(4041),
          q(0),
          ],
       q(lrc) => [
-         q(4053),
+         q(4042),
          q(0),
          ],
       q(lre) => [
-         q(4054),
+         q(4043),
          q(0),
          ],
       q(lrg) => [
-         q(4055),
+         q(4044),
          q(0),
          ],
       q(lri) => [
-         q(4056),
+         q(4045),
          q(0),
          ],
       q(lrk) => [
-         q(4057),
+         q(4046),
          q(0),
          ],
       q(lrl) => [
-         q(4058),
+         q(4047),
          q(0),
          ],
       q(lrm) => [
-         q(4059),
+         q(4048),
          q(0),
          ],
       q(lrn) => [
-         q(4060),
+         q(4049),
          q(0),
          ],
       q(lro) => [
-         q(4061),
+         q(4050),
          q(0),
          ],
       q(lrr) => [
-         q(4062),
+         q(4051),
          q(0),
          ],
       q(lrt) => [
-         q(4063),
+         q(4052),
          q(0),
          ],
       q(lrv) => [
-         q(4064),
+         q(4053),
          q(0),
          ],
       q(lrz) => [
-         q(4065),
+         q(4054),
          q(0),
          ],
       q(lsa) => [
-         q(4066),
+         q(4055),
          q(0),
          ],
       q(lsd) => [
-         q(4067),
+         q(4056),
          q(0),
          ],
       q(lse) => [
-         q(4068),
+         q(4057),
          q(0),
          ],
       q(lsg) => [
-         q(4069),
+         q(4058),
          q(0),
          ],
       q(lsh) => [
-         q(4070),
+         q(4059),
          q(0),
          ],
       q(lsi) => [
-         q(4071),
+         q(4060),
          q(0),
          ],
       q(lsl) => [
-         q(4072),
+         q(4061),
          q(0),
          ],
       q(lsm) => [
-         q(4073),
+         q(4062),
          q(0),
          ],
       q(lso) => [
-         q(4074),
+         q(4063),
          q(0),
          ],
       q(lsp) => [
-         q(4075),
+         q(4064),
          q(0),
          ],
       q(lsr) => [
-         q(4076),
+         q(4065),
          q(0),
          ],
       q(lss) => [
-         q(4077),
+         q(4066),
          q(0),
          ],
       q(lst) => [
-         q(4078),
+         q(4067),
          q(0),
          ],
       q(lsy) => [
-         q(4079),
+         q(4068),
          q(0),
          ],
       q(ltc) => [
-         q(4080),
+         q(4069),
          q(0),
          ],
       q(ltg) => [
-         q(4081),
+         q(4070),
          q(0),
          ],
       q(lti) => [
-         q(4082),
+         q(4071),
          q(0),
          ],
       q(ltn) => [
-         q(4083),
+         q(4072),
          q(0),
          ],
       q(lto) => [
-         q(4084),
+         q(4073),
          q(0),
          ],
       q(lts) => [
-         q(4085),
+         q(4074),
          q(0),
          ],
       q(ltu) => [
-         q(4086),
+         q(4075),
          q(0),
          ],
       q(ltz) => [
@@ -73606,19 +73528,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(luc) => [
-         q(4087),
+         q(4076),
          q(0),
          ],
       q(lud) => [
-         q(4088),
+         q(4077),
          q(0),
          ],
       q(lue) => [
-         q(4089),
+         q(4078),
          q(0),
          ],
       q(luf) => [
-         q(4090),
+         q(4079),
          q(0),
          ],
       q(lug) => [
@@ -73630,19 +73552,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(luj) => [
-         q(4091),
+         q(4080),
          q(0),
          ],
       q(luk) => [
-         q(4092),
+         q(4081),
          q(0),
          ],
       q(lul) => [
-         q(4093),
+         q(4082),
          q(0),
          ],
       q(lum) => [
-         q(4094),
+         q(4083),
          q(0),
          ],
       q(lun) => [
@@ -73654,15 +73576,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lup) => [
-         q(4095),
+         q(4084),
          q(0),
          ],
       q(luq) => [
-         q(4096),
+         q(4085),
          q(0),
          ],
       q(lur) => [
-         q(4097),
+         q(4086),
          q(0),
          ],
       q(lus) => [
@@ -73670,119 +73592,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lut) => [
-         q(4098),
+         q(4087),
          q(0),
          ],
       q(luu) => [
-         q(4099),
+         q(4088),
          q(0),
          ],
       q(luv) => [
-         q(4100),
+         q(4089),
          q(0),
          ],
       q(luw) => [
-         q(4101),
+         q(4090),
          q(0),
          ],
       q(luy) => [
-         q(4102),
+         q(4091),
          q(0),
          ],
       q(luz) => [
-         q(4103),
+         q(4092),
          q(0),
          ],
       q(lva) => [
-         q(4104),
+         q(4093),
          q(0),
          ],
       q(lvk) => [
-         q(4105),
+         q(4094),
          q(0),
          ],
       q(lvs) => [
-         q(4106),
+         q(4095),
          q(0),
          ],
       q(lvu) => [
-         q(4107),
+         q(4096),
          q(0),
          ],
       q(lwa) => [
-         q(4108),
+         q(4097),
          q(0),
          ],
       q(lwe) => [
-         q(4109),
+         q(4098),
          q(0),
          ],
       q(lwg) => [
-         q(4110),
+         q(4099),
          q(0),
          ],
       q(lwh) => [
-         q(4111),
+         q(4100),
          q(0),
          ],
       q(lwl) => [
-         q(4112),
+         q(4101),
          q(0),
          ],
       q(lwm) => [
-         q(4113),
+         q(4102),
          q(0),
          ],
       q(lwo) => [
-         q(4114),
+         q(4103),
          q(0),
          ],
       q(lwt) => [
-         q(4115),
+         q(4104),
          q(0),
          ],
       q(lwu) => [
-         q(4116),
+         q(4105),
          q(0),
          ],
       q(lww) => [
-         q(4117),
+         q(4106),
          q(0),
          ],
       q(lya) => [
-         q(4118),
+         q(4107),
          q(0),
          ],
       q(lyg) => [
-         q(4119),
+         q(4108),
          q(0),
          ],
       q(lyn) => [
-         q(4120),
+         q(4109),
          q(0),
          ],
       q(lzh) => [
-         q(4121),
+         q(4110),
          q(0),
          ],
       q(lzl) => [
-         q(4122),
+         q(4111),
          q(0),
          ],
       q(lzn) => [
-         q(4123),
+         q(4112),
          q(0),
          ],
       q(lzz) => [
-         q(4124),
+         q(4113),
          q(0),
          ],
       q(maa) => [
-         q(4125),
+         q(4114),
          q(0),
          ],
       q(mab) => [
-         q(4126),
+         q(4115),
          q(0),
          ],
       q(mac) => [
@@ -73794,11 +73716,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mae) => [
-         q(4127),
+         q(4116),
          q(0),
          ],
       q(maf) => [
-         q(4128),
+         q(4117),
          q(0),
          ],
       q(mag) => [
@@ -73814,7 +73736,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(maj) => [
-         q(4129),
+         q(4118),
          q(0),
          ],
       q(mak) => [
@@ -73826,7 +73748,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mam) => [
-         q(4130),
+         q(4119),
          q(0),
          ],
       q(man) => [
@@ -73842,7 +73764,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(maq) => [
-         q(4131),
+         q(4120),
          q(0),
          ],
       q(mar) => [
@@ -73854,23 +73776,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mat) => [
-         q(4132),
+         q(4121),
          q(0),
          ],
       q(mau) => [
-         q(4133),
+         q(4122),
          q(0),
          ],
       q(mav) => [
-         q(4134),
+         q(4123),
          q(0),
          ],
       q(maw) => [
-         q(4135),
+         q(4124),
          q(0),
          ],
       q(max) => [
-         q(4136),
+         q(4125),
          q(0),
          ],
       q(may) => [
@@ -73878,231 +73800,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(maz) => [
-         q(4137),
+         q(4126),
          q(0),
          ],
       q(mba) => [
-         q(4138),
+         q(4127),
          q(0),
          ],
       q(mbb) => [
-         q(4139),
+         q(4128),
          q(0),
          ],
       q(mbc) => [
-         q(4140),
+         q(4129),
          q(0),
          ],
       q(mbd) => [
-         q(4141),
+         q(4130),
          q(0),
          ],
       q(mbe) => [
-         q(4142),
+         q(4131),
          q(0),
          ],
       q(mbf) => [
-         q(4143),
+         q(4132),
          q(0),
          ],
       q(mbh) => [
-         q(4144),
+         q(4133),
          q(0),
          ],
       q(mbi) => [
-         q(4145),
+         q(4134),
          q(0),
          ],
       q(mbj) => [
-         q(4146),
+         q(4135),
          q(0),
          ],
       q(mbk) => [
-         q(4147),
+         q(4136),
          q(0),
          ],
       q(mbl) => [
-         q(4148),
+         q(4137),
          q(0),
          ],
       q(mbm) => [
-         q(4149),
+         q(4138),
          q(0),
          ],
       q(mbn) => [
-         q(4150),
+         q(4139),
          q(0),
          ],
       q(mbo) => [
-         q(4151),
+         q(4140),
          q(0),
          ],
       q(mbp) => [
-         q(4152),
+         q(4141),
          q(0),
          ],
       q(mbq) => [
-         q(4153),
+         q(4142),
          q(0),
          ],
       q(mbr) => [
-         q(4154),
+         q(4143),
          q(0),
          ],
       q(mbs) => [
-         q(4155),
+         q(4144),
          q(0),
          ],
       q(mbt) => [
-         q(4156),
+         q(4145),
          q(0),
          ],
       q(mbu) => [
-         q(4157),
+         q(4146),
          q(0),
          ],
       q(mbv) => [
-         q(4158),
+         q(4147),
          q(0),
          ],
       q(mbw) => [
-         q(4159),
+         q(4148),
          q(0),
          ],
       q(mbx) => [
-         q(4160),
+         q(4149),
          q(0),
          ],
       q(mby) => [
-         q(4161),
+         q(4150),
          q(0),
          ],
       q(mbz) => [
-         q(4162),
+         q(4151),
          q(0),
          ],
       q(mca) => [
-         q(4163),
+         q(4152),
          q(0),
          ],
       q(mcb) => [
-         q(4164),
+         q(4153),
          q(0),
          ],
       q(mcc) => [
-         q(4165),
+         q(4154),
          q(0),
          ],
       q(mcd) => [
-         q(4166),
+         q(4155),
          q(0),
          ],
       q(mce) => [
-         q(4167),
+         q(4156),
          q(0),
          ],
       q(mcf) => [
-         q(4168),
+         q(4157),
          q(0),
          ],
       q(mcg) => [
-         q(4169),
+         q(4158),
          q(0),
          ],
       q(mch) => [
-         q(4170),
+         q(4159),
          q(0),
          ],
       q(mci) => [
-         q(4171),
+         q(4160),
          q(0),
          ],
       q(mcj) => [
-         q(4172),
+         q(4161),
          q(0),
          ],
       q(mck) => [
-         q(4173),
+         q(4162),
          q(0),
          ],
       q(mcl) => [
-         q(4174),
+         q(4163),
          q(0),
          ],
       q(mcm) => [
-         q(4175),
+         q(4164),
          q(0),
          ],
       q(mcn) => [
-         q(4176),
+         q(4165),
          q(0),
          ],
       q(mco) => [
-         q(4177),
+         q(4166),
          q(0),
          ],
       q(mcp) => [
-         q(4178),
+         q(4167),
          q(0),
          ],
       q(mcq) => [
-         q(4179),
+         q(4168),
          q(0),
          ],
       q(mcr) => [
-         q(4180),
+         q(4169),
          q(0),
          ],
       q(mcs) => [
-         q(4181),
+         q(4170),
          q(0),
          ],
       q(mct) => [
-         q(4182),
+         q(4171),
          q(0),
          ],
       q(mcu) => [
-         q(4183),
+         q(4172),
          q(0),
          ],
       q(mcv) => [
-         q(4184),
+         q(4173),
          q(0),
          ],
       q(mcw) => [
-         q(4185),
+         q(4174),
          q(0),
          ],
       q(mcx) => [
-         q(4186),
+         q(4175),
          q(0),
          ],
       q(mcy) => [
-         q(4187),
+         q(4176),
          q(0),
          ],
       q(mcz) => [
-         q(4188),
+         q(4177),
          q(0),
          ],
       q(mda) => [
-         q(4189),
+         q(4178),
          q(0),
          ],
       q(mdb) => [
-         q(4190),
+         q(4179),
          q(0),
          ],
       q(mdc) => [
-         q(4191),
+         q(4180),
          q(0),
          ],
       q(mdd) => [
-         q(4192),
+         q(4181),
          q(0),
          ],
       q(mde) => [
-         q(4193),
+         q(4182),
          q(0),
          ],
       q(mdf) => [
@@ -74110,43 +74032,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mdg) => [
-         q(4194),
+         q(4183),
          q(0),
          ],
       q(mdh) => [
-         q(4195),
+         q(4184),
          q(0),
          ],
       q(mdi) => [
-         q(4196),
+         q(4185),
          q(0),
          ],
       q(mdj) => [
-         q(4197),
+         q(4186),
          q(0),
          ],
       q(mdk) => [
-         q(4198),
+         q(4187),
          q(0),
          ],
       q(mdl) => [
-         q(4199),
+         q(4188),
          q(0),
          ],
       q(mdm) => [
-         q(4200),
+         q(4189),
          q(0),
          ],
       q(mdn) => [
-         q(4201),
+         q(4190),
          q(0),
          ],
       q(mdp) => [
-         q(4202),
+         q(4191),
          q(0),
          ],
       q(mdq) => [
-         q(4203),
+         q(4192),
          q(0),
          ],
       q(mdr) => [
@@ -74154,83 +74076,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mds) => [
-         q(4204),
+         q(4193),
          q(0),
          ],
       q(mdt) => [
-         q(4205),
+         q(4194),
          q(0),
          ],
       q(mdu) => [
-         q(4206),
+         q(4195),
          q(0),
          ],
       q(mdv) => [
-         q(4207),
+         q(4196),
          q(0),
          ],
       q(mdw) => [
-         q(4208),
+         q(4197),
          q(0),
          ],
       q(mdx) => [
-         q(4209),
+         q(4198),
          q(0),
          ],
       q(mdy) => [
-         q(4210),
+         q(4199),
          q(0),
          ],
       q(mdz) => [
-         q(4211),
+         q(4200),
          q(0),
          ],
       q(mea) => [
-         q(4212),
+         q(4201),
          q(0),
          ],
       q(meb) => [
-         q(4213),
+         q(4202),
          q(0),
          ],
       q(mec) => [
-         q(4214),
+         q(4203),
          q(0),
          ],
       q(med) => [
-         q(4215),
+         q(4204),
          q(0),
          ],
       q(mee) => [
-         q(4216),
+         q(4205),
          q(0),
          ],
       q(mef) => [
-         q(4217),
+         q(4206),
          q(0),
          ],
       q(meh) => [
-         q(4218),
+         q(4207),
          q(0),
          ],
       q(mei) => [
-         q(4219),
+         q(4208),
          q(0),
          ],
       q(mej) => [
-         q(4220),
+         q(4209),
          q(0),
          ],
       q(mek) => [
-         q(4221),
+         q(4210),
          q(0),
          ],
       q(mel) => [
-         q(4222),
+         q(4211),
          q(0),
          ],
       q(mem) => [
-         q(4223),
+         q(4212),
          q(0),
          ],
       q(men) => [
@@ -74238,151 +74160,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(meo) => [
-         q(4224),
+         q(4213),
          q(0),
          ],
       q(mep) => [
-         q(4225),
+         q(4214),
          q(0),
          ],
       q(meq) => [
-         q(4226),
+         q(4215),
          q(0),
          ],
       q(mer) => [
-         q(4227),
+         q(4216),
          q(0),
          ],
       q(mes) => [
-         q(4228),
+         q(4217),
          q(0),
          ],
       q(met) => [
-         q(4229),
+         q(4218),
          q(0),
          ],
       q(meu) => [
-         q(4230),
+         q(4219),
          q(0),
          ],
       q(mev) => [
-         q(4231),
+         q(4220),
          q(0),
          ],
       q(mew) => [
-         q(4232),
+         q(4221),
          q(0),
          ],
       q(mey) => [
-         q(4233),
+         q(4222),
          q(0),
          ],
       q(mez) => [
-         q(4234),
+         q(4223),
          q(0),
          ],
       q(mfa) => [
-         q(4235),
+         q(4224),
          q(0),
          ],
       q(mfb) => [
-         q(4236),
+         q(4225),
          q(0),
          ],
       q(mfc) => [
-         q(4237),
+         q(4226),
          q(0),
          ],
       q(mfd) => [
-         q(4238),
+         q(4227),
          q(0),
          ],
       q(mfe) => [
-         q(4239),
+         q(4228),
          q(0),
          ],
       q(mff) => [
-         q(4240),
+         q(4229),
          q(0),
          ],
       q(mfg) => [
-         q(4241),
+         q(4230),
          q(0),
          ],
       q(mfh) => [
-         q(4242),
+         q(4231),
          q(0),
          ],
       q(mfi) => [
-         q(4243),
+         q(4232),
          q(0),
          ],
       q(mfj) => [
-         q(4244),
+         q(4233),
          q(0),
          ],
       q(mfk) => [
-         q(4245),
+         q(4234),
          q(0),
          ],
       q(mfl) => [
-         q(4246),
+         q(4235),
          q(0),
          ],
       q(mfm) => [
-         q(4247),
+         q(4236),
          q(0),
          ],
       q(mfn) => [
-         q(4248),
+         q(4237),
          q(0),
          ],
       q(mfo) => [
-         q(4249),
+         q(4238),
          q(0),
          ],
       q(mfp) => [
-         q(4250),
+         q(4239),
          q(0),
          ],
       q(mfq) => [
-         q(4251),
+         q(4240),
          q(0),
          ],
       q(mfr) => [
-         q(4252),
+         q(4241),
          q(0),
          ],
       q(mfs) => [
-         q(4253),
+         q(4242),
          q(0),
          ],
       q(mft) => [
-         q(4254),
+         q(4243),
          q(0),
          ],
       q(mfu) => [
-         q(4255),
+         q(4244),
          q(0),
          ],
       q(mfv) => [
-         q(4256),
+         q(4245),
          q(0),
          ],
       q(mfw) => [
-         q(4257),
+         q(4246),
          q(0),
          ],
       q(mfx) => [
-         q(4258),
+         q(4247),
          q(0),
          ],
       q(mfy) => [
-         q(4259),
+         q(4248),
          q(0),
          ],
       q(mfz) => [
-         q(4260),
+         q(4249),
          q(0),
          ],
       q(mga) => [
@@ -74390,203 +74312,203 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(mgb) => [
-         q(4261),
+         q(4250),
          q(0),
          ],
       q(mgc) => [
-         q(4262),
+         q(4251),
          q(0),
          ],
       q(mgd) => [
-         q(4263),
+         q(4252),
          q(0),
          ],
       q(mge) => [
-         q(4264),
+         q(4253),
          q(0),
          ],
       q(mgf) => [
-         q(4265),
+         q(4254),
          q(0),
          ],
       q(mgg) => [
-         q(4266),
+         q(4255),
          q(0),
          ],
       q(mgh) => [
-         q(4267),
+         q(4256),
          q(0),
          ],
       q(mgi) => [
-         q(4268),
+         q(4257),
          q(0),
          ],
       q(mgj) => [
-         q(4269),
+         q(4258),
          q(0),
          ],
       q(mgk) => [
-         q(4270),
+         q(4259),
          q(0),
          ],
       q(mgl) => [
-         q(4271),
+         q(4260),
          q(0),
          ],
       q(mgm) => [
-         q(4272),
+         q(4261),
          q(0),
          ],
       q(mgn) => [
-         q(4273),
+         q(4262),
          q(0),
          ],
       q(mgo) => [
-         q(4274),
+         q(4263),
          q(0),
          ],
       q(mgp) => [
-         q(4275),
+         q(4264),
          q(0),
          ],
       q(mgq) => [
-         q(4276),
+         q(4265),
          q(0),
          ],
       q(mgr) => [
-         q(4277),
+         q(4266),
          q(0),
          ],
       q(mgs) => [
-         q(4278),
+         q(4267),
          q(0),
          ],
       q(mgt) => [
-         q(4279),
+         q(4268),
          q(0),
          ],
       q(mgu) => [
-         q(4280),
+         q(4269),
          q(0),
          ],
       q(mgv) => [
-         q(4281),
+         q(4270),
          q(0),
          ],
       q(mgw) => [
-         q(4282),
+         q(4271),
          q(0),
          ],
       q(mgy) => [
-         q(4283),
+         q(4272),
          q(0),
          ],
       q(mgz) => [
-         q(4284),
+         q(4273),
          q(0),
          ],
       q(mha) => [
-         q(4285),
+         q(4274),
          q(0),
          ],
       q(mhb) => [
-         q(4286),
+         q(4275),
          q(0),
          ],
       q(mhc) => [
-         q(4287),
+         q(4276),
          q(0),
          ],
       q(mhd) => [
-         q(4288),
+         q(4277),
          q(0),
          ],
       q(mhe) => [
-         q(4289),
+         q(4278),
          q(0),
          ],
       q(mhf) => [
-         q(4290),
+         q(4279),
          q(0),
          ],
       q(mhg) => [
-         q(4291),
+         q(4280),
          q(0),
          ],
       q(mhi) => [
-         q(4292),
+         q(4281),
          q(0),
          ],
       q(mhj) => [
-         q(4293),
+         q(4282),
          q(0),
          ],
       q(mhk) => [
-         q(4294),
+         q(4283),
          q(0),
          ],
       q(mhl) => [
-         q(4295),
+         q(4284),
          q(0),
          ],
       q(mhm) => [
-         q(4296),
+         q(4285),
          q(0),
          ],
       q(mhn) => [
-         q(4297),
+         q(4286),
          q(0),
          ],
       q(mho) => [
-         q(4298),
+         q(4287),
          q(0),
          ],
       q(mhp) => [
-         q(4299),
+         q(4288),
          q(0),
          ],
       q(mhq) => [
-         q(4300),
+         q(4289),
          q(0),
          ],
       q(mhr) => [
-         q(4301),
+         q(4290),
          q(0),
          ],
       q(mhs) => [
-         q(4302),
+         q(4291),
          q(0),
          ],
       q(mht) => [
-         q(4303),
+         q(4292),
          q(0),
          ],
       q(mhu) => [
-         q(4304),
+         q(4293),
          q(0),
          ],
       q(mhw) => [
-         q(4305),
+         q(4294),
          q(0),
          ],
       q(mhx) => [
-         q(4306),
+         q(4295),
          q(0),
          ],
       q(mhy) => [
-         q(4307),
+         q(4296),
          q(0),
          ],
       q(mhz) => [
-         q(4308),
+         q(4297),
          q(0),
          ],
       q(mia) => [
-         q(4309),
+         q(4298),
          q(0),
          ],
       q(mib) => [
-         q(4310),
+         q(4299),
          q(0),
          ],
       q(mic) => [
@@ -74594,43 +74516,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mid) => [
-         q(4311),
+         q(4300),
          q(0),
          ],
       q(mie) => [
-         q(4312),
+         q(4301),
          q(0),
          ],
       q(mif) => [
-         q(4313),
+         q(4302),
          q(0),
          ],
       q(mig) => [
-         q(4314),
+         q(4303),
          q(0),
          ],
       q(mih) => [
-         q(4315),
+         q(4304),
          q(0),
          ],
       q(mii) => [
-         q(4316),
+         q(4305),
          q(0),
          ],
       q(mij) => [
-         q(4317),
+         q(4306),
          q(0),
          ],
       q(mik) => [
-         q(4318),
+         q(4307),
          q(0),
          ],
       q(mil) => [
-         q(4319),
+         q(4308),
          q(0),
          ],
       q(mim) => [
-         q(4320),
+         q(4309),
          q(0),
          ],
       q(min) => [
@@ -74638,19 +74560,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mio) => [
-         q(4321),
+         q(4310),
          q(0),
          ],
       q(mip) => [
-         q(4322),
+         q(4311),
          q(0),
          ],
       q(miq) => [
-         q(4323),
+         q(4312),
          q(0),
          ],
       q(mir) => [
-         q(4324),
+         q(4313),
          q(0),
          ],
       q(mis) => [
@@ -74658,143 +74580,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mit) => [
-         q(4325),
+         q(4314),
          q(0),
          ],
       q(miu) => [
-         q(4326),
+         q(4315),
          q(0),
          ],
       q(miw) => [
-         q(4327),
+         q(4316),
          q(0),
          ],
       q(mix) => [
-         q(4328),
+         q(4317),
          q(0),
          ],
       q(miy) => [
-         q(4329),
+         q(4318),
          q(0),
          ],
       q(miz) => [
-         q(4330),
+         q(4319),
          q(0),
          ],
       q(mjc) => [
-         q(4331),
+         q(4320),
          q(0),
          ],
       q(mjd) => [
-         q(4332),
+         q(4321),
          q(0),
          ],
       q(mje) => [
-         q(4333),
+         q(4322),
          q(0),
          ],
       q(mjg) => [
-         q(4334),
+         q(4323),
          q(0),
          ],
       q(mjh) => [
-         q(4335),
+         q(4324),
          q(0),
          ],
       q(mji) => [
-         q(4336),
+         q(4325),
          q(0),
          ],
       q(mjj) => [
-         q(4337),
+         q(4326),
          q(0),
          ],
       q(mjk) => [
-         q(4338),
+         q(4327),
          q(0),
          ],
       q(mjl) => [
-         q(4339),
+         q(4328),
          q(0),
          ],
       q(mjm) => [
-         q(4340),
+         q(4329),
          q(0),
          ],
       q(mjn) => [
-         q(4341),
+         q(4330),
          q(0),
          ],
       q(mjo) => [
-         q(4342),
+         q(4331),
          q(0),
          ],
       q(mjp) => [
-         q(4343),
+         q(4332),
          q(0),
          ],
       q(mjq) => [
-         q(4344),
+         q(4333),
          q(0),
          ],
       q(mjr) => [
-         q(4345),
+         q(4334),
          q(0),
          ],
       q(mjs) => [
-         q(4346),
+         q(4335),
          q(0),
          ],
       q(mjt) => [
-         q(4347),
+         q(4336),
          q(0),
          ],
       q(mju) => [
-         q(4348),
+         q(4337),
          q(0),
          ],
       q(mjv) => [
-         q(4349),
+         q(4338),
          q(0),
          ],
       q(mjw) => [
-         q(4350),
+         q(4339),
          q(0),
          ],
       q(mjx) => [
-         q(4351),
+         q(4340),
          q(0),
          ],
       q(mjy) => [
-         q(4352),
+         q(4341),
          q(0),
          ],
       q(mjz) => [
-         q(4353),
+         q(4342),
          q(0),
          ],
       q(mka) => [
-         q(4354),
+         q(4343),
          q(0),
          ],
       q(mkb) => [
-         q(4355),
+         q(4344),
          q(0),
          ],
       q(mkc) => [
-         q(4356),
+         q(4345),
          q(0),
          ],
       q(mke) => [
-         q(4357),
+         q(4346),
          q(0),
          ],
       q(mkf) => [
-         q(4358),
+         q(4347),
          q(0),
          ],
       q(mkg) => [
-         q(4359),
+         q(4348),
          q(0),
          ],
       q(mkh) => [
@@ -74802,95 +74724,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mki) => [
-         q(4360),
+         q(4349),
          q(0),
          ],
       q(mkj) => [
-         q(4361),
+         q(4350),
          q(0),
          ],
       q(mkk) => [
-         q(4362),
+         q(4351),
          q(0),
          ],
       q(mkl) => [
-         q(4363),
+         q(4352),
          q(0),
          ],
       q(mkm) => [
-         q(4364),
+         q(4353),
          q(0),
          ],
       q(mkn) => [
-         q(4365),
+         q(4354),
          q(0),
          ],
       q(mko) => [
-         q(4366),
+         q(4355),
          q(0),
          ],
       q(mkp) => [
-         q(4367),
+         q(4356),
          q(0),
          ],
       q(mkq) => [
-         q(4368),
+         q(4357),
          q(0),
          ],
       q(mkr) => [
-         q(4369),
+         q(4358),
          q(0),
          ],
       q(mks) => [
-         q(4370),
+         q(4359),
          q(0),
          ],
       q(mkt) => [
-         q(4371),
+         q(4360),
          q(0),
          ],
       q(mku) => [
-         q(4372),
+         q(4361),
          q(0),
          ],
       q(mkv) => [
-         q(4373),
+         q(4362),
          q(0),
          ],
       q(mkw) => [
-         q(4374),
+         q(4363),
          q(0),
          ],
       q(mkx) => [
-         q(4375),
+         q(4364),
          q(0),
          ],
       q(mky) => [
-         q(4376),
+         q(4365),
          q(0),
          ],
       q(mkz) => [
-         q(4377),
+         q(4366),
          q(0),
          ],
       q(mla) => [
-         q(4378),
+         q(4367),
          q(0),
          ],
       q(mlb) => [
-         q(4379),
+         q(4368),
          q(0),
          ],
       q(mlc) => [
-         q(4380),
+         q(4369),
          q(0),
          ],
       q(mle) => [
-         q(4381),
+         q(4370),
          q(0),
          ],
       q(mlf) => [
-         q(4382),
+         q(4371),
          q(0),
          ],
       q(mlg) => [
@@ -74898,51 +74820,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mlh) => [
-         q(4383),
+         q(4372),
          q(0),
          ],
       q(mli) => [
-         q(4384),
+         q(4373),
          q(0),
          ],
       q(mlj) => [
-         q(4385),
+         q(4374),
          q(0),
          ],
       q(mlk) => [
-         q(4386),
+         q(4375),
          q(0),
          ],
       q(mll) => [
-         q(4387),
+         q(4376),
          q(0),
          ],
       q(mlm) => [
-         q(4388),
+         q(4377),
          q(0),
          ],
       q(mln) => [
-         q(4389),
+         q(4378),
          q(0),
          ],
       q(mlo) => [
-         q(4390),
+         q(4379),
          q(0),
          ],
       q(mlp) => [
-         q(4391),
+         q(4380),
          q(0),
          ],
       q(mlq) => [
-         q(4392),
+         q(4381),
          q(0),
          ],
       q(mlr) => [
-         q(4393),
+         q(4382),
          q(0),
          ],
       q(mls) => [
-         q(4394),
+         q(4383),
          q(0),
          ],
       q(mlt) => [
@@ -74950,131 +74872,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mlu) => [
-         q(4395),
+         q(4384),
          q(0),
          ],
       q(mlv) => [
-         q(4396),
+         q(4385),
          q(0),
          ],
       q(mlw) => [
-         q(4397),
+         q(4386),
          q(0),
          ],
       q(mlx) => [
-         q(4398),
+         q(4387),
          q(0),
          ],
       q(mlz) => [
-         q(4399),
+         q(4388),
          q(0),
          ],
       q(mma) => [
-         q(4400),
+         q(4389),
          q(0),
          ],
       q(mmb) => [
-         q(4401),
+         q(4390),
          q(0),
          ],
       q(mmc) => [
-         q(4402),
+         q(4391),
          q(0),
          ],
       q(mmd) => [
-         q(4403),
+         q(4392),
          q(0),
          ],
       q(mme) => [
-         q(4404),
+         q(4393),
          q(0),
          ],
       q(mmf) => [
-         q(4405),
+         q(4394),
          q(0),
          ],
       q(mmg) => [
-         q(4406),
+         q(4395),
          q(0),
          ],
       q(mmh) => [
-         q(4407),
+         q(4396),
          q(0),
          ],
       q(mmi) => [
-         q(4408),
+         q(4397),
          q(0),
          ],
       q(mmj) => [
-         q(4409),
+         q(4398),
          q(0),
          ],
       q(mmk) => [
-         q(4410),
+         q(4399),
          q(0),
          ],
       q(mml) => [
-         q(4411),
+         q(4400),
          q(0),
          ],
       q(mmm) => [
-         q(4412),
+         q(4401),
          q(0),
          ],
       q(mmn) => [
-         q(4413),
+         q(4402),
          q(0),
          ],
       q(mmo) => [
-         q(4414),
+         q(4403),
          q(0),
          ],
       q(mmp) => [
-         q(4415),
+         q(4404),
          q(0),
          ],
       q(mmq) => [
-         q(4416),
+         q(4405),
          q(0),
          ],
       q(mmr) => [
-         q(4417),
+         q(4406),
          q(0),
          ],
       q(mmt) => [
-         q(4418),
+         q(4407),
          q(0),
          ],
       q(mmu) => [
-         q(4419),
+         q(4408),
          q(0),
          ],
       q(mmv) => [
-         q(4420),
+         q(4409),
          q(0),
          ],
       q(mmw) => [
-         q(4421),
+         q(4410),
          q(0),
          ],
       q(mmx) => [
-         q(4422),
+         q(4411),
          q(0),
          ],
       q(mmy) => [
-         q(4423),
+         q(4412),
          q(0),
          ],
       q(mmz) => [
-         q(4424),
+         q(4413),
          q(0),
          ],
       q(mna) => [
-         q(4425),
+         q(4414),
          q(0),
          ],
       q(mnb) => [
-         q(4426),
+         q(4415),
          q(0),
          ],
       q(mnc) => [
@@ -75082,23 +75004,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mnd) => [
-         q(4427),
+         q(4416),
          q(0),
          ],
       q(mne) => [
-         q(4428),
+         q(4417),
          q(0),
          ],
       q(mnf) => [
-         q(4429),
+         q(4418),
          q(0),
          ],
       q(mng) => [
-         q(4430),
+         q(4419),
          q(0),
          ],
       q(mnh) => [
-         q(4431),
+         q(4420),
          q(0),
          ],
       q(mni) => [
@@ -75106,23 +75028,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mnj) => [
-         q(4432),
+         q(4421),
          q(0),
          ],
       q(mnk) => [
-         q(4433),
+         q(4422),
          q(0),
          ],
       q(mnl) => [
-         q(4434),
+         q(4423),
          q(0),
          ],
       q(mnm) => [
-         q(4435),
+         q(4424),
          q(0),
          ],
       q(mnn) => [
-         q(4436),
+         q(4425),
          q(0),
          ],
       q(mno) => [
@@ -75130,63 +75052,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mnp) => [
-         q(4437),
+         q(4426),
          q(0),
          ],
       q(mnq) => [
-         q(4438),
+         q(4427),
          q(0),
          ],
       q(mnr) => [
-         q(4439),
+         q(4428),
          q(0),
          ],
       q(mns) => [
-         q(4440),
+         q(4429),
          q(0),
          ],
       q(mnu) => [
-         q(4441),
+         q(4430),
          q(0),
          ],
       q(mnv) => [
-         q(4442),
+         q(4431),
          q(0),
          ],
       q(mnw) => [
-         q(4443),
+         q(4432),
          q(0),
          ],
       q(mnx) => [
-         q(4444),
+         q(4433),
          q(0),
          ],
       q(mny) => [
-         q(4445),
+         q(4434),
          q(0),
          ],
       q(mnz) => [
-         q(4446),
+         q(4435),
          q(0),
          ],
       q(moa) => [
-         q(4447),
+         q(4436),
          q(0),
          ],
       q(moc) => [
-         q(4448),
+         q(4437),
          q(0),
          ],
       q(mod) => [
-         q(4449),
+         q(4438),
          q(0),
          ],
       q(moe) => [
-         q(4450),
+         q(4439),
          q(0),
          ],
       q(mog) => [
-         q(4451),
+         q(4440),
          q(0),
          ],
       q(moh) => [
@@ -75194,19 +75116,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(moi) => [
-         q(4452),
+         q(4441),
          q(0),
          ],
       q(moj) => [
-         q(4453),
+         q(4442),
          q(0),
          ],
       q(mok) => [
-         q(4454),
+         q(4443),
          q(0),
          ],
       q(mom) => [
-         q(4455),
+         q(4444),
          q(0),
          ],
       q(mon) => [
@@ -75214,19 +75136,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(moo) => [
-         q(4456),
+         q(4445),
          q(0),
          ],
       q(mop) => [
-         q(4457),
+         q(4446),
          q(0),
          ],
       q(moq) => [
-         q(4458),
+         q(4447),
          q(0),
          ],
       q(mor) => [
-         q(4459),
+         q(4448),
          q(0),
          ],
       q(mos) => [
@@ -75234,567 +75156,567 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mot) => [
-         q(1139),
+         q(1135),
          q(0),
          ],
       q(mou) => [
-         q(4460),
+         q(4449),
          q(0),
          ],
       q(mov) => [
-         q(4461),
+         q(4450),
          q(0),
          ],
       q(mow) => [
-         q(4462),
+         q(4451),
          q(0),
          ],
       q(mox) => [
-         q(4463),
+         q(4452),
          q(0),
          ],
       q(moy) => [
-         q(4464),
+         q(4453),
          q(0),
          ],
       q(moz) => [
-         q(4465),
+         q(4454),
          q(0),
          ],
       q(mpa) => [
-         q(4466),
+         q(4455),
          q(0),
          ],
       q(mpb) => [
-         q(4467),
+         q(4456),
          q(0),
          ],
       q(mpc) => [
-         q(4468),
+         q(4457),
          q(0),
          ],
       q(mpd) => [
-         q(4469),
+         q(4458),
          q(0),
          ],
       q(mpe) => [
-         q(4470),
+         q(4459),
          q(0),
          ],
       q(mpg) => [
-         q(4471),
+         q(4460),
          q(0),
          ],
       q(mph) => [
-         q(4472),
+         q(4461),
          q(0),
          ],
       q(mpi) => [
-         q(4473),
+         q(4462),
          q(0),
          ],
       q(mpj) => [
-         q(4474),
+         q(4463),
          q(0),
          ],
       q(mpk) => [
-         q(4475),
+         q(4464),
          q(0),
          ],
       q(mpl) => [
-         q(4476),
+         q(4465),
          q(0),
          ],
       q(mpm) => [
-         q(4477),
+         q(4466),
          q(0),
          ],
       q(mpn) => [
-         q(4478),
+         q(4467),
          q(0),
          ],
       q(mpo) => [
-         q(4479),
+         q(4468),
          q(0),
          ],
       q(mpp) => [
-         q(4480),
+         q(4469),
          q(0),
          ],
       q(mpq) => [
-         q(4481),
+         q(4470),
          q(0),
          ],
       q(mpr) => [
-         q(4482),
+         q(4471),
          q(0),
          ],
       q(mps) => [
-         q(4483),
+         q(4472),
          q(0),
          ],
       q(mpt) => [
-         q(4484),
+         q(4473),
          q(0),
          ],
       q(mpu) => [
-         q(4485),
+         q(4474),
          q(0),
          ],
       q(mpv) => [
-         q(4486),
+         q(4475),
          q(0),
          ],
       q(mpw) => [
-         q(4487),
+         q(4476),
          q(0),
          ],
       q(mpx) => [
-         q(4488),
+         q(4477),
          q(0),
          ],
       q(mpy) => [
-         q(4489),
+         q(4478),
          q(0),
          ],
       q(mpz) => [
-         q(4490),
+         q(4479),
          q(0),
          ],
       q(mqa) => [
-         q(4491),
+         q(4480),
          q(0),
          ],
       q(mqb) => [
-         q(4492),
+         q(4481),
          q(0),
          ],
       q(mqc) => [
-         q(4493),
+         q(4482),
          q(0),
          ],
       q(mqe) => [
-         q(4494),
+         q(4483),
          q(0),
          ],
       q(mqf) => [
-         q(4495),
+         q(4484),
          q(0),
          ],
       q(mqg) => [
-         q(4496),
+         q(4485),
          q(0),
          ],
       q(mqh) => [
-         q(4497),
+         q(4486),
          q(0),
          ],
       q(mqi) => [
-         q(4498),
+         q(4487),
          q(0),
          ],
       q(mqj) => [
-         q(4499),
+         q(4488),
          q(0),
          ],
       q(mqk) => [
-         q(4500),
+         q(4489),
          q(0),
          ],
       q(mql) => [
-         q(4501),
+         q(4490),
          q(0),
          ],
       q(mqm) => [
-         q(4502),
+         q(4491),
          q(0),
          ],
       q(mqn) => [
-         q(4503),
+         q(4492),
          q(0),
          ],
       q(mqo) => [
-         q(4504),
+         q(4493),
          q(0),
          ],
       q(mqp) => [
-         q(4505),
+         q(4494),
          q(0),
          ],
       q(mqq) => [
-         q(4506),
+         q(4495),
          q(0),
          ],
       q(mqr) => [
-         q(4507),
+         q(4496),
          q(0),
          ],
       q(mqs) => [
-         q(4508),
+         q(4497),
          q(0),
          ],
       q(mqt) => [
-         q(4509),
+         q(4498),
          q(0),
          ],
       q(mqu) => [
-         q(4510),
+         q(4499),
          q(0),
          ],
       q(mqv) => [
-         q(4511),
+         q(4500),
          q(0),
          ],
       q(mqw) => [
-         q(4512),
+         q(4501),
          q(0),
          ],
       q(mqx) => [
-         q(4513),
+         q(4502),
          q(0),
          ],
       q(mqy) => [
-         q(4514),
+         q(4503),
          q(0),
          ],
       q(mqz) => [
-         q(4515),
+         q(4504),
          q(0),
          ],
       q(mra) => [
-         q(4516),
+         q(4505),
          q(0),
          ],
       q(mrb) => [
-         q(4517),
+         q(4506),
          q(0),
          ],
       q(mrc) => [
-         q(4518),
+         q(4507),
          q(0),
          ],
       q(mrd) => [
-         q(4519),
+         q(4508),
          q(0),
          ],
       q(mre) => [
-         q(4520),
+         q(4509),
          q(0),
          ],
       q(mrf) => [
-         q(4521),
+         q(4510),
          q(0),
          ],
       q(mrg) => [
-         q(4522),
+         q(4511),
          q(0),
          ],
       q(mrh) => [
-         q(4523),
+         q(4512),
          q(0),
          ],
       q(mrj) => [
-         q(4524),
+         q(4513),
          q(0),
          ],
       q(mrk) => [
-         q(4525),
+         q(4514),
          q(0),
          ],
       q(mrl) => [
-         q(4526),
+         q(4515),
          q(0),
          ],
       q(mrm) => [
-         q(4527),
+         q(4516),
          q(0),
          ],
       q(mrn) => [
-         q(4528),
+         q(4517),
          q(0),
          ],
       q(mro) => [
-         q(4529),
+         q(4518),
          q(0),
          ],
       q(mrp) => [
-         q(4530),
+         q(4519),
          q(0),
          ],
       q(mrq) => [
-         q(4531),
+         q(4520),
          q(0),
          ],
       q(mrr) => [
-         q(4532),
+         q(4521),
          q(0),
          ],
       q(mrs) => [
-         q(4533),
+         q(4522),
          q(0),
          ],
       q(mrt) => [
-         q(4534),
+         q(4523),
          q(0),
          ],
       q(mru) => [
-         q(4535),
+         q(4524),
          q(0),
          ],
       q(mrv) => [
-         q(4536),
+         q(4525),
          q(0),
          ],
       q(mrw) => [
-         q(4537),
+         q(4526),
          q(0),
          ],
       q(mrx) => [
-         q(4538),
+         q(4527),
          q(0),
          ],
       q(mry) => [
-         q(4539),
+         q(4528),
          q(0),
          ],
       q(mrz) => [
-         q(4540),
+         q(4529),
          q(0),
          ],
       q(msb) => [
-         q(4541),
+         q(4530),
          q(0),
          ],
       q(msc) => [
-         q(4542),
+         q(4531),
          q(0),
          ],
       q(msd) => [
-         q(4543),
+         q(4532),
          q(0),
          ],
       q(mse) => [
-         q(4544),
+         q(4533),
          q(0),
          ],
       q(msf) => [
-         q(4545),
+         q(4534),
          q(0),
          ],
       q(msg) => [
-         q(4546),
+         q(4535),
          q(0),
          ],
       q(msh) => [
-         q(4547),
+         q(4536),
          q(0),
          ],
       q(msi) => [
-         q(4548),
+         q(4537),
          q(0),
          ],
       q(msj) => [
-         q(4549),
+         q(4538),
          q(0),
          ],
       q(msk) => [
-         q(4550),
+         q(4539),
          q(0),
          ],
       q(msl) => [
-         q(4551),
+         q(4540),
          q(0),
          ],
       q(msm) => [
-         q(4552),
+         q(4541),
          q(0),
          ],
       q(msn) => [
-         q(4553),
+         q(4542),
          q(0),
          ],
       q(mso) => [
-         q(4554),
+         q(4543),
          q(0),
          ],
       q(msp) => [
-         q(4555),
+         q(4544),
          q(0),
          ],
       q(msq) => [
-         q(4556),
+         q(4545),
          q(0),
          ],
       q(msr) => [
-         q(4557),
+         q(4546),
          q(0),
          ],
       q(mss) => [
-         q(4558),
+         q(4547),
          q(0),
          ],
       q(msu) => [
-         q(4559),
+         q(4548),
          q(0),
          ],
       q(msv) => [
-         q(4560),
+         q(4549),
          q(0),
          ],
       q(msw) => [
-         q(4561),
+         q(4550),
          q(0),
          ],
       q(msx) => [
-         q(4562),
+         q(4551),
          q(0),
          ],
       q(msy) => [
-         q(4563),
+         q(4552),
          q(0),
          ],
       q(msz) => [
-         q(4564),
+         q(4553),
          q(0),
          ],
       q(mta) => [
-         q(4565),
+         q(4554),
          q(0),
          ],
       q(mtb) => [
-         q(4566),
+         q(4555),
          q(0),
          ],
       q(mtc) => [
-         q(4567),
+         q(4556),
          q(0),
          ],
       q(mtd) => [
-         q(4568),
+         q(4557),
          q(0),
          ],
       q(mte) => [
-         q(4569),
+         q(4558),
          q(0),
          ],
       q(mtf) => [
-         q(4570),
+         q(4559),
          q(0),
          ],
       q(mtg) => [
-         q(4571),
+         q(4560),
          q(0),
          ],
       q(mth) => [
-         q(4572),
+         q(4561),
          q(0),
          ],
       q(mti) => [
-         q(4573),
+         q(4562),
          q(0),
          ],
       q(mtj) => [
-         q(4574),
+         q(4563),
          q(0),
          ],
       q(mtk) => [
-         q(4575),
+         q(4564),
          q(0),
          ],
       q(mtl) => [
-         q(4576),
+         q(4565),
          q(0),
          ],
       q(mtm) => [
-         q(4577),
+         q(4566),
          q(0),
          ],
       q(mtn) => [
-         q(4578),
+         q(4567),
          q(0),
          ],
       q(mto) => [
-         q(4579),
+         q(4568),
          q(0),
          ],
       q(mtp) => [
-         q(4580),
+         q(4569),
          q(0),
          ],
       q(mtq) => [
-         q(4581),
+         q(4570),
          q(0),
          ],
       q(mtr) => [
-         q(4582),
+         q(4571),
          q(0),
          ],
       q(mts) => [
-         q(4583),
+         q(4572),
          q(0),
          ],
       q(mtt) => [
-         q(4584),
+         q(4573),
          q(0),
          ],
       q(mtu) => [
-         q(4585),
+         q(4574),
          q(0),
          ],
       q(mtv) => [
-         q(4586),
+         q(4575),
          q(0),
          ],
       q(mtw) => [
-         q(4587),
+         q(4576),
          q(0),
          ],
       q(mtx) => [
-         q(4588),
+         q(4577),
          q(0),
          ],
       q(mty) => [
-         q(4589),
+         q(4578),
          q(0),
          ],
       q(mua) => [
-         q(4590),
+         q(4579),
          q(0),
          ],
       q(mub) => [
-         q(4591),
+         q(4580),
          q(0),
          ],
       q(muc) => [
-         q(4592),
+         q(4581),
          q(0),
          ],
       q(mud) => [
-         q(4593),
+         q(4582),
          q(0),
          ],
       q(mue) => [
-         q(4594),
+         q(4583),
          q(0),
          ],
       q(mug) => [
-         q(4595),
+         q(4584),
          q(0),
          ],
       q(muh) => [
-         q(4596),
+         q(4585),
          q(0),
          ],
       q(mui) => [
-         q(4597),
+         q(4586),
          q(0),
          ],
       q(muj) => [
-         q(4598),
+         q(4587),
          q(0),
          ],
       q(muk) => [
-         q(4599),
+         q(4588),
          q(0),
          ],
       q(mul) => [
@@ -75802,7 +75724,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mum) => [
-         q(4600),
+         q(4589),
          q(0),
          ],
       q(mun) => [
@@ -75810,19 +75732,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(muo) => [
-         q(4601),
+         q(4590),
          q(0),
          ],
       q(mup) => [
-         q(4602),
+         q(4591),
          q(0),
          ],
       q(muq) => [
-         q(4603),
+         q(4592),
          q(0),
          ],
       q(mur) => [
-         q(4604),
+         q(4593),
          q(0),
          ],
       q(mus) => [
@@ -75830,163 +75752,159 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mut) => [
-         q(4605),
+         q(4594),
          q(0),
          ],
       q(muu) => [
-         q(4606),
+         q(4595),
          q(0),
          ],
       q(muv) => [
-         q(4607),
+         q(4596),
          q(0),
          ],
       q(mux) => [
-         q(4608),
+         q(4597),
          q(0),
          ],
       q(muy) => [
-         q(4609),
+         q(4598),
          q(0),
          ],
       q(muz) => [
-         q(4610),
+         q(4599),
          q(0),
          ],
       q(mva) => [
-         q(4611),
+         q(4600),
          q(0),
          ],
       q(mvb) => [
-         q(4612),
+         q(4601),
          q(0),
          ],
       q(mvd) => [
-         q(4613),
+         q(4602),
          q(0),
          ],
       q(mve) => [
-         q(4614),
+         q(4603),
          q(0),
          ],
       q(mvf) => [
-         q(4615),
+         q(4604),
          q(0),
          ],
       q(mvg) => [
-         q(4616),
+         q(4605),
          q(0),
          ],
       q(mvh) => [
-         q(4617),
+         q(4606),
          q(0),
          ],
       q(mvi) => [
-         q(4618),
+         q(4607),
          q(0),
          ],
       q(mvk) => [
-         q(4619),
+         q(4608),
          q(0),
          ],
       q(mvl) => [
-         q(4620),
+         q(4609),
          q(0),
          ],
       q(mvm) => [
-         q(4621),
+         q(4610),
          q(0),
          ],
       q(mvn) => [
-         q(4622),
+         q(4611),
          q(0),
          ],
       q(mvo) => [
-         q(4623),
+         q(4612),
          q(0),
          ],
       q(mvp) => [
-         q(4624),
+         q(4613),
          q(0),
          ],
       q(mvq) => [
-         q(4625),
+         q(4614),
          q(0),
          ],
       q(mvr) => [
-         q(4626),
+         q(4615),
          q(0),
          ],
       q(mvs) => [
-         q(4627),
+         q(4616),
          q(0),
          ],
       q(mvt) => [
-         q(4628),
+         q(4617),
          q(0),
          ],
       q(mvu) => [
-         q(4629),
+         q(4618),
          q(0),
          ],
       q(mvv) => [
-         q(4630),
+         q(4619),
          q(0),
          ],
       q(mvw) => [
-         q(4631),
+         q(4620),
          q(0),
          ],
       q(mvx) => [
-         q(4632),
+         q(4621),
          q(0),
          ],
       q(mvy) => [
-         q(4633),
+         q(4622),
          q(0),
          ],
       q(mvz) => [
-         q(4634),
+         q(4623),
          q(0),
          ],
       q(mwa) => [
-         q(4635),
+         q(4624),
          q(0),
          ],
       q(mwb) => [
-         q(4636),
+         q(4625),
          q(0),
          ],
       q(mwc) => [
-         q(4637),
+         q(4626),
          q(0),
          ],
       q(mwe) => [
-         q(4638),
+         q(4627),
          q(0),
          ],
       q(mwf) => [
-         q(4639),
+         q(4628),
          q(0),
          ],
       q(mwg) => [
-         q(4640),
+         q(4629),
          q(0),
          ],
       q(mwh) => [
-         q(4641),
+         q(4630),
          q(0),
          ],
       q(mwi) => [
-         q(4642),
-         q(0),
-         ],
-      q(mwj) => [
-         q(4643),
+         q(4631),
          q(0),
          ],
       q(mwk) => [
-         q(4644),
+         q(4632),
          q(0),
          ],
       q(mwl) => [
@@ -75994,23 +75912,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mwm) => [
-         q(4645),
+         q(4633),
          q(0),
          ],
       q(mwn) => [
-         q(4646),
+         q(4634),
          q(0),
          ],
       q(mwo) => [
-         q(4647),
+         q(4635),
          q(0),
          ],
       q(mwp) => [
-         q(4648),
+         q(4636),
          q(0),
          ],
       q(mwq) => [
-         q(4649),
+         q(4637),
          q(0),
          ],
       q(mwr) => [
@@ -76018,187 +75936,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mws) => [
-         q(4650),
+         q(4638),
          q(0),
          ],
       q(mwt) => [
-         q(4651),
+         q(4639),
          q(0),
          ],
       q(mwu) => [
-         q(4652),
+         q(4640),
          q(0),
          ],
       q(mwv) => [
-         q(4653),
+         q(4641),
          q(0),
          ],
       q(mww) => [
-         q(4654),
+         q(4642),
          q(0),
          ],
       q(mwx) => [
-         q(4655),
+         q(4643),
          q(0),
          ],
       q(mwy) => [
-         q(4656),
+         q(4644),
          q(0),
          ],
       q(mwz) => [
-         q(4657),
+         q(4645),
          q(0),
          ],
       q(mxa) => [
-         q(4658),
+         q(4646),
          q(0),
          ],
       q(mxb) => [
-         q(4659),
+         q(4647),
          q(0),
          ],
       q(mxc) => [
-         q(4660),
+         q(4648),
          q(0),
          ],
       q(mxd) => [
-         q(4661),
+         q(4649),
          q(0),
          ],
       q(mxe) => [
-         q(4662),
+         q(4650),
          q(0),
          ],
       q(mxf) => [
-         q(4663),
+         q(4651),
          q(0),
          ],
       q(mxg) => [
-         q(4664),
+         q(4652),
          q(0),
          ],
       q(mxh) => [
-         q(4665),
+         q(4653),
          q(0),
          ],
       q(mxi) => [
-         q(4666),
+         q(4654),
          q(0),
          ],
       q(mxj) => [
-         q(4667),
+         q(4655),
          q(0),
          ],
       q(mxk) => [
-         q(4668),
+         q(4656),
          q(0),
          ],
       q(mxl) => [
-         q(4669),
+         q(4657),
          q(0),
          ],
       q(mxm) => [
-         q(4670),
+         q(4658),
          q(0),
          ],
       q(mxn) => [
-         q(4671),
+         q(4659),
          q(0),
          ],
       q(mxo) => [
-         q(4672),
+         q(4660),
          q(0),
          ],
       q(mxp) => [
-         q(4673),
+         q(4661),
          q(0),
          ],
       q(mxq) => [
-         q(4674),
+         q(4662),
          q(0),
          ],
       q(mxr) => [
-         q(4675),
+         q(4663),
          q(0),
          ],
       q(mxs) => [
-         q(4676),
+         q(4664),
          q(0),
          ],
       q(mxt) => [
-         q(4677),
+         q(4665),
          q(0),
          ],
       q(mxu) => [
-         q(4678),
+         q(4666),
          q(0),
          ],
       q(mxv) => [
-         q(4679),
+         q(4667),
          q(0),
          ],
       q(mxw) => [
-         q(4680),
+         q(4668),
          q(0),
          ],
       q(mxx) => [
-         q(4681),
+         q(4669),
          q(0),
          ],
       q(mxy) => [
-         q(4682),
+         q(4670),
          q(0),
          ],
       q(mxz) => [
-         q(4683),
+         q(4671),
          q(0),
          ],
       q(myb) => [
-         q(4684),
+         q(4672),
          q(0),
          ],
       q(myc) => [
-         q(4685),
+         q(4673),
          q(0),
          ],
       q(myd) => [
-         q(4686),
+         q(4674),
          q(0),
          ],
       q(mye) => [
-         q(4687),
+         q(4675),
          q(0),
          ],
       q(myf) => [
-         q(4688),
+         q(4676),
          q(0),
          ],
       q(myg) => [
-         q(4689),
+         q(4677),
          q(0),
          ],
       q(myh) => [
-         q(4690),
+         q(4678),
          q(0),
          ],
       q(myi) => [
-         q(4691),
+         q(4679),
          q(0),
          ],
       q(myj) => [
-         q(4692),
+         q(4680),
          q(0),
          ],
       q(myk) => [
-         q(4693),
+         q(4681),
          q(0),
          ],
       q(myl) => [
-         q(4694),
+         q(4682),
          q(0),
          ],
       q(mym) => [
-         q(4695),
+         q(4683),
          q(0),
          ],
       q(myn) => [
@@ -76206,23 +76124,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(myo) => [
-         q(4696),
+         q(4684),
          q(0),
          ],
       q(myp) => [
-         q(4697),
+         q(4685),
          q(0),
          ],
       q(myr) => [
-         q(4698),
+         q(4686),
          q(0),
          ],
       q(mys) => [
-         q(4699),
+         q(4687),
          q(0),
          ],
       q(myu) => [
-         q(4700),
+         q(4688),
          q(0),
          ],
       q(myv) => [
@@ -76230,147 +76148,147 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(myw) => [
-         q(4701),
+         q(4689),
          q(0),
          ],
       q(myx) => [
-         q(4702),
+         q(4690),
          q(0),
          ],
       q(myy) => [
-         q(4703),
+         q(4691),
          q(0),
          ],
       q(myz) => [
-         q(4704),
+         q(4692),
          q(0),
          ],
       q(mza) => [
-         q(4705),
+         q(4693),
          q(0),
          ],
       q(mzb) => [
-         q(4706),
+         q(4694),
          q(0),
          ],
       q(mzc) => [
-         q(4707),
+         q(4695),
          q(0),
          ],
       q(mzd) => [
-         q(4708),
+         q(4696),
          q(0),
          ],
       q(mze) => [
-         q(4709),
+         q(4697),
          q(0),
          ],
       q(mzg) => [
-         q(4710),
+         q(4698),
          q(0),
          ],
       q(mzh) => [
-         q(4711),
+         q(4699),
          q(0),
          ],
       q(mzi) => [
-         q(4712),
+         q(4700),
          q(0),
          ],
       q(mzj) => [
-         q(4713),
+         q(4701),
          q(0),
          ],
       q(mzk) => [
-         q(4714),
+         q(4702),
          q(0),
          ],
       q(mzl) => [
-         q(4715),
+         q(4703),
          q(0),
          ],
       q(mzm) => [
-         q(4716),
+         q(4704),
          q(0),
          ],
       q(mzn) => [
-         q(4717),
+         q(4705),
          q(0),
          ],
       q(mzo) => [
-         q(4718),
+         q(4706),
          q(0),
          ],
       q(mzp) => [
-         q(4719),
+         q(4707),
          q(0),
          ],
       q(mzq) => [
-         q(4720),
+         q(4708),
          q(0),
          ],
       q(mzr) => [
-         q(4721),
+         q(4709),
          q(0),
          ],
       q(mzs) => [
-         q(4722),
+         q(4710),
          q(0),
          ],
       q(mzt) => [
-         q(4723),
+         q(4711),
          q(0),
          ],
       q(mzu) => [
-         q(4724),
+         q(4712),
          q(0),
          ],
       q(mzv) => [
-         q(4725),
+         q(4713),
          q(0),
          ],
       q(mzw) => [
-         q(4726),
+         q(4714),
          q(0),
          ],
       q(mzx) => [
-         q(4727),
+         q(4715),
          q(0),
          ],
       q(mzy) => [
-         q(4728),
+         q(4716),
          q(0),
          ],
       q(mzz) => [
-         q(4729),
+         q(4717),
          q(0),
          ],
       q(naa) => [
-         q(4730),
+         q(4718),
          q(0),
          ],
       q(nab) => [
-         q(4731),
+         q(4719),
          q(0),
          ],
       q(nac) => [
-         q(4732),
+         q(4720),
          q(0),
          ],
       q(nad) => [
-         q(4733),
+         q(4721),
          q(0),
          ],
       q(nae) => [
-         q(4734),
+         q(4722),
          q(0),
          ],
       q(naf) => [
-         q(4735),
+         q(4723),
          q(0),
          ],
       q(nag) => [
-         q(4736),
+         q(4724),
          q(0),
          ],
       q(nah) => [
@@ -76382,27 +76300,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(naj) => [
-         q(4737),
+         q(4725),
          q(0),
          ],
       q(nak) => [
-         q(4738),
+         q(4726),
          q(0),
          ],
       q(nal) => [
-         q(4739),
+         q(4727),
          q(0),
          ],
       q(nam) => [
-         q(4740),
+         q(4728),
          q(0),
          ],
       q(nan) => [
-         q(4741),
+         q(4729),
          q(0),
          ],
       q(nao) => [
-         q(4742),
+         q(4730),
          q(0),
          ],
       q(nap) => [
@@ -76410,19 +76328,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(naq) => [
-         q(4743),
+         q(4731),
          q(0),
          ],
       q(nar) => [
-         q(4744),
+         q(4732),
          q(0),
          ],
       q(nas) => [
-         q(4745),
+         q(4733),
          q(0),
          ],
       q(nat) => [
-         q(4746),
+         q(4734),
          q(0),
          ],
       q(nau) => [
@@ -76434,59 +76352,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(naw) => [
-         q(4747),
+         q(4735),
          q(0),
          ],
       q(nax) => [
-         q(4748),
+         q(4736),
          q(0),
          ],
       q(nay) => [
-         q(4749),
+         q(4737),
          q(0),
          ],
       q(naz) => [
-         q(4750),
+         q(4738),
          q(0),
          ],
       q(nba) => [
-         q(4751),
+         q(4739),
          q(0),
          ],
       q(nbb) => [
-         q(4752),
+         q(4740),
          q(0),
          ],
       q(nbc) => [
-         q(4753),
+         q(4741),
          q(0),
          ],
       q(nbd) => [
-         q(4754),
+         q(4742),
          q(0),
          ],
       q(nbe) => [
-         q(4755),
+         q(4743),
          q(0),
          ],
       q(nbg) => [
-         q(4756),
+         q(4744),
          q(0),
          ],
       q(nbh) => [
-         q(4757),
+         q(4745),
          q(0),
          ],
       q(nbi) => [
-         q(4758),
+         q(4746),
          q(0),
          ],
       q(nbj) => [
-         q(4759),
+         q(4747),
          q(0),
          ],
       q(nbk) => [
-         q(4760),
+         q(4748),
          q(0),
          ],
       q(nbl) => [
@@ -76494,155 +76412,155 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nbm) => [
-         q(4761),
+         q(4749),
          q(0),
          ],
       q(nbn) => [
-         q(4762),
+         q(4750),
          q(0),
          ],
       q(nbo) => [
-         q(4763),
+         q(4751),
          q(0),
          ],
       q(nbp) => [
-         q(4764),
+         q(4752),
          q(0),
          ],
       q(nbq) => [
-         q(4765),
+         q(4753),
          q(0),
          ],
       q(nbr) => [
-         q(4766),
+         q(4754),
          q(0),
          ],
       q(nbs) => [
-         q(4767),
+         q(4755),
          q(0),
          ],
       q(nbt) => [
-         q(4768),
+         q(4756),
          q(0),
          ],
       q(nbu) => [
-         q(4769),
+         q(4757),
          q(0),
          ],
       q(nbv) => [
-         q(4770),
+         q(4758),
          q(0),
          ],
       q(nbw) => [
-         q(4771),
+         q(4759),
          q(0),
          ],
       q(nby) => [
-         q(4772),
+         q(4760),
          q(0),
          ],
       q(nca) => [
-         q(4773),
+         q(4761),
          q(0),
          ],
       q(ncb) => [
-         q(4774),
+         q(4762),
          q(0),
          ],
       q(ncc) => [
-         q(4775),
+         q(4763),
          q(0),
          ],
       q(ncd) => [
-         q(4776),
+         q(4764),
          q(0),
          ],
       q(nce) => [
-         q(4777),
+         q(4765),
          q(0),
          ],
       q(ncf) => [
-         q(4778),
+         q(4766),
          q(0),
          ],
       q(ncg) => [
-         q(4779),
+         q(4767),
          q(0),
          ],
       q(nch) => [
-         q(4780),
+         q(4768),
          q(0),
          ],
       q(nci) => [
-         q(4781),
+         q(4769),
          q(0),
          ],
       q(ncj) => [
-         q(4782),
+         q(4770),
          q(0),
          ],
       q(nck) => [
-         q(4783),
+         q(4771),
          q(0),
          ],
       q(ncl) => [
-         q(4784),
+         q(4772),
          q(0),
          ],
       q(ncm) => [
-         q(4785),
+         q(4773),
          q(0),
          ],
       q(ncn) => [
-         q(4786),
+         q(4774),
          q(0),
          ],
       q(nco) => [
-         q(4787),
+         q(4775),
          q(0),
          ],
       q(ncp) => [
-         q(4788),
+         q(4776),
          q(0),
          ],
       q(ncr) => [
-         q(4789),
+         q(4777),
          q(0),
          ],
       q(ncs) => [
-         q(4790),
+         q(4778),
          q(0),
          ],
       q(nct) => [
-         q(4791),
+         q(4779),
          q(0),
          ],
       q(ncu) => [
-         q(4792),
+         q(4780),
          q(0),
          ],
       q(ncx) => [
-         q(4793),
+         q(4781),
          q(0),
          ],
       q(ncz) => [
-         q(4794),
+         q(4782),
          q(0),
          ],
       q(nda) => [
-         q(4795),
+         q(4783),
          q(0),
          ],
       q(ndb) => [
-         q(4796),
+         q(4784),
          q(0),
          ],
       q(ndc) => [
-         q(4797),
+         q(4785),
          q(0),
          ],
       q(ndd) => [
-         q(4798),
+         q(4786),
          q(0),
          ],
       q(nde) => [
@@ -76650,39 +76568,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ndf) => [
-         q(4799),
+         q(4787),
          q(0),
          ],
       q(ndg) => [
-         q(4800),
+         q(4788),
          q(0),
          ],
       q(ndh) => [
-         q(4801),
+         q(4789),
          q(0),
          ],
       q(ndi) => [
-         q(4802),
+         q(4790),
          q(0),
          ],
       q(ndj) => [
-         q(4803),
+         q(4791),
          q(0),
          ],
       q(ndk) => [
-         q(4804),
+         q(4792),
          q(0),
          ],
       q(ndl) => [
-         q(4805),
+         q(4793),
          q(0),
          ],
       q(ndm) => [
-         q(4806),
+         q(4794),
          q(0),
          ],
       q(ndn) => [
-         q(4807),
+         q(4795),
          q(0),
          ],
       q(ndo) => [
@@ -76690,15 +76608,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ndp) => [
-         q(4808),
+         q(4796),
          q(0),
          ],
       q(ndq) => [
-         q(4809),
+         q(4797),
          q(0),
          ],
       q(ndr) => [
-         q(4810),
+         q(4798),
          q(0),
          ],
       q(nds) => [
@@ -76706,87 +76624,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ndt) => [
-         q(4811),
+         q(4799),
          q(0),
          ],
       q(ndu) => [
-         q(4812),
+         q(4800),
          q(0),
          ],
       q(ndv) => [
-         q(4813),
+         q(4801),
          q(0),
          ],
       q(ndw) => [
-         q(4814),
+         q(4802),
          q(0),
          ],
       q(ndx) => [
-         q(4815),
+         q(4803),
          q(0),
          ],
       q(ndy) => [
-         q(4816),
+         q(4804),
          q(0),
          ],
       q(ndz) => [
-         q(4817),
+         q(4805),
          q(0),
          ],
       q(nea) => [
-         q(4818),
+         q(4806),
          q(0),
          ],
       q(neb) => [
-         q(4819),
+         q(4807),
          q(0),
          ],
       q(nec) => [
-         q(4820),
+         q(4808),
          q(0),
          ],
       q(ned) => [
-         q(4821),
+         q(4809),
          q(0),
          ],
       q(nee) => [
-         q(4822),
+         q(4810),
          q(0),
          ],
       q(nef) => [
-         q(4823),
+         q(4811),
          q(0),
          ],
       q(neg) => [
-         q(4824),
+         q(4812),
          q(0),
          ],
       q(neh) => [
-         q(4825),
+         q(4813),
          q(0),
          ],
       q(nei) => [
-         q(4826),
+         q(4814),
          q(0),
          ],
       q(nej) => [
-         q(4827),
+         q(4815),
          q(0),
          ],
       q(nek) => [
-         q(4828),
+         q(4816),
          q(0),
          ],
       q(nem) => [
-         q(4829),
+         q(4817),
          q(0),
          ],
       q(nen) => [
-         q(4830),
+         q(4818),
          q(0),
          ],
       q(neo) => [
-         q(4831),
+         q(4819),
          q(0),
          ],
       q(nep) => [
@@ -76794,27 +76712,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(neq) => [
-         q(4832),
+         q(4820),
          q(0),
          ],
       q(ner) => [
-         q(4833),
+         q(4821),
          q(0),
          ],
       q(nes) => [
-         q(4834),
+         q(4822),
          q(0),
          ],
       q(net) => [
-         q(4835),
+         q(4823),
          q(0),
          ],
       q(neu) => [
-         q(4836),
+         q(4824),
          q(0),
          ],
       q(nev) => [
-         q(4837),
+         q(4825),
          q(0),
          ],
       q(new) => [
@@ -76822,55 +76740,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(nex) => [
-         q(4838),
+         q(4826),
          q(0),
          ],
       q(ney) => [
-         q(4839),
+         q(4827),
          q(0),
          ],
       q(nez) => [
-         q(4840),
+         q(4828),
          q(0),
          ],
       q(nfa) => [
-         q(4841),
+         q(4829),
          q(0),
          ],
       q(nfd) => [
-         q(4842),
+         q(4830),
          q(0),
          ],
       q(nfl) => [
-         q(4843),
+         q(4831),
          q(0),
          ],
       q(nfr) => [
-         q(4844),
+         q(4832),
          q(0),
          ],
       q(nfu) => [
-         q(4845),
+         q(4833),
          q(0),
          ],
       q(nga) => [
-         q(4846),
+         q(4834),
          q(0),
          ],
       q(ngb) => [
-         q(4847),
+         q(4835),
          q(0),
          ],
       q(ngc) => [
-         q(4848),
+         q(4836),
          q(0),
          ],
       q(ngd) => [
-         q(4849),
+         q(4837),
          q(0),
          ],
       q(nge) => [
-         q(4850),
+         q(4838),
          q(0),
          ],
       q(ngf) => [
@@ -76878,175 +76796,175 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ngg) => [
-         q(4851),
+         q(4839),
          q(0),
          ],
       q(ngh) => [
-         q(4852),
+         q(4840),
          q(0),
          ],
       q(ngi) => [
-         q(4853),
+         q(4841),
          q(0),
          ],
       q(ngj) => [
-         q(4854),
+         q(4842),
          q(0),
          ],
       q(ngk) => [
-         q(4855),
+         q(4843),
          q(0),
          ],
       q(ngl) => [
-         q(4856),
+         q(4844),
          q(0),
          ],
       q(ngm) => [
-         q(4857),
+         q(4845),
          q(0),
          ],
       q(ngn) => [
-         q(4858),
+         q(4846),
          q(0),
          ],
       q(ngo) => [
-         q(4859),
+         q(4847),
          q(0),
          ],
       q(ngp) => [
-         q(4860),
+         q(4848),
          q(0),
          ],
       q(ngq) => [
-         q(4861),
+         q(4849),
          q(0),
          ],
       q(ngr) => [
-         q(4862),
+         q(4850),
          q(0),
          ],
       q(ngs) => [
-         q(4863),
+         q(4851),
          q(0),
          ],
       q(ngt) => [
-         q(4864),
+         q(4852),
          q(0),
          ],
       q(ngu) => [
-         q(4865),
+         q(4853),
          q(0),
          ],
       q(ngv) => [
-         q(4866),
+         q(4854),
          q(0),
          ],
       q(ngw) => [
-         q(4867),
+         q(4855),
          q(0),
          ],
       q(ngx) => [
-         q(4868),
+         q(4856),
          q(0),
          ],
       q(ngy) => [
-         q(4869),
+         q(4857),
          q(0),
          ],
       q(ngz) => [
-         q(4870),
+         q(4858),
          q(0),
          ],
       q(nha) => [
-         q(4871),
+         q(4859),
          q(0),
          ],
       q(nhb) => [
-         q(4872),
+         q(4860),
          q(0),
          ],
       q(nhc) => [
-         q(4873),
+         q(4861),
          q(0),
          ],
       q(nhd) => [
-         q(4874),
+         q(4862),
          q(0),
          ],
       q(nhe) => [
-         q(4875),
+         q(4863),
          q(0),
          ],
       q(nhf) => [
-         q(4876),
+         q(4864),
          q(0),
          ],
       q(nhg) => [
-         q(4877),
+         q(4865),
          q(0),
          ],
       q(nhh) => [
-         q(4878),
+         q(4866),
          q(0),
          ],
       q(nhi) => [
-         q(4879),
+         q(4867),
          q(0),
          ],
       q(nhk) => [
-         q(4880),
+         q(4868),
          q(0),
          ],
       q(nhm) => [
-         q(4881),
+         q(4869),
          q(0),
          ],
       q(nhn) => [
-         q(4882),
+         q(4870),
          q(0),
          ],
       q(nho) => [
-         q(4883),
+         q(4871),
          q(0),
          ],
       q(nhp) => [
-         q(4884),
+         q(4872),
          q(0),
          ],
       q(nhq) => [
-         q(4885),
+         q(4873),
          q(0),
          ],
       q(nhr) => [
-         q(4886),
+         q(4874),
          q(0),
          ],
       q(nht) => [
-         q(4887),
+         q(4875),
          q(0),
          ],
       q(nhu) => [
-         q(4888),
+         q(4876),
          q(0),
          ],
       q(nhv) => [
-         q(4889),
+         q(4877),
          q(0),
          ],
       q(nhw) => [
-         q(4890),
+         q(4878),
          q(0),
          ],
       q(nhx) => [
-         q(4891),
+         q(4879),
          q(0),
          ],
       q(nhy) => [
-         q(4892),
+         q(4880),
          q(0),
          ],
       q(nhz) => [
-         q(4893),
+         q(4881),
          q(0),
          ],
       q(nia) => [
@@ -77054,7 +76972,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nib) => [
-         q(4894),
+         q(4882),
          q(0),
          ],
       q(nic) => [
@@ -77062,67 +76980,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nid) => [
-         q(4895),
+         q(4883),
          q(0),
          ],
       q(nie) => [
-         q(4896),
+         q(4884),
          q(0),
          ],
       q(nif) => [
-         q(4897),
+         q(4885),
          q(0),
          ],
       q(nig) => [
-         q(4898),
+         q(4886),
          q(0),
          ],
       q(nih) => [
-         q(4899),
+         q(4887),
          q(0),
          ],
       q(nii) => [
-         q(4900),
+         q(4888),
          q(0),
          ],
       q(nij) => [
-         q(4901),
+         q(4889),
          q(0),
          ],
       q(nik) => [
-         q(4902),
+         q(4890),
          q(0),
          ],
       q(nil) => [
-         q(4903),
+         q(4891),
          q(0),
          ],
       q(nim) => [
-         q(4904),
+         q(4892),
          q(0),
          ],
       q(nin) => [
-         q(4905),
+         q(4893),
          q(0),
          ],
       q(nio) => [
-         q(4906),
+         q(4894),
          q(0),
          ],
       q(niq) => [
-         q(4907),
+         q(4895),
          q(0),
          ],
       q(nir) => [
-         q(4908),
+         q(4896),
          q(0),
          ],
       q(nis) => [
-         q(4909),
+         q(4897),
          q(0),
          ],
       q(nit) => [
-         q(4910),
+         q(4898),
          q(0),
          ],
       q(niu) => [
@@ -77130,411 +77048,411 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(niv) => [
-         q(4911),
+         q(4899),
          q(0),
          ],
       q(niw) => [
-         q(4912),
+         q(4900),
          q(0),
          ],
       q(nix) => [
-         q(4913),
+         q(4901),
          q(0),
          ],
       q(niy) => [
-         q(4914),
+         q(4902),
          q(0),
          ],
       q(niz) => [
-         q(4915),
+         q(4903),
          q(0),
          ],
       q(nja) => [
-         q(4916),
+         q(4904),
          q(0),
          ],
       q(njb) => [
-         q(4917),
+         q(4905),
          q(0),
          ],
       q(njd) => [
-         q(4918),
+         q(4906),
          q(0),
          ],
       q(njh) => [
-         q(4919),
+         q(4907),
          q(0),
          ],
       q(nji) => [
-         q(4920),
+         q(4908),
          q(0),
          ],
       q(njj) => [
-         q(4921),
+         q(4909),
          q(0),
          ],
       q(njl) => [
-         q(4922),
+         q(4910),
          q(0),
          ],
       q(njm) => [
-         q(4923),
+         q(4911),
          q(0),
          ],
       q(njn) => [
-         q(4924),
+         q(4912),
          q(0),
          ],
       q(njo) => [
-         q(4925),
+         q(4913),
          q(0),
          ],
       q(njr) => [
-         q(4926),
+         q(4914),
          q(0),
          ],
       q(njs) => [
-         q(4927),
+         q(4915),
          q(0),
          ],
       q(njt) => [
-         q(4928),
+         q(4916),
          q(0),
          ],
       q(nju) => [
-         q(4929),
+         q(4917),
          q(0),
          ],
       q(njx) => [
-         q(4930),
+         q(4918),
          q(0),
          ],
       q(njy) => [
-         q(4931),
+         q(4919),
          q(0),
          ],
       q(njz) => [
-         q(4932),
+         q(4920),
          q(0),
          ],
       q(nka) => [
-         q(4933),
+         q(4921),
          q(0),
          ],
       q(nkb) => [
-         q(4934),
+         q(4922),
          q(0),
          ],
       q(nkc) => [
-         q(4935),
+         q(4923),
          q(0),
          ],
       q(nkd) => [
-         q(4936),
+         q(4924),
          q(0),
          ],
       q(nke) => [
-         q(4937),
+         q(4925),
          q(0),
          ],
       q(nkf) => [
-         q(4938),
+         q(4926),
          q(0),
          ],
       q(nkg) => [
-         q(4939),
+         q(4927),
          q(0),
          ],
       q(nkh) => [
-         q(4940),
+         q(4928),
          q(0),
          ],
       q(nki) => [
-         q(4941),
+         q(4929),
          q(0),
          ],
       q(nkj) => [
-         q(4942),
+         q(4930),
          q(0),
          ],
       q(nkk) => [
-         q(4943),
+         q(4931),
          q(0),
          ],
       q(nkm) => [
-         q(4944),
+         q(4932),
          q(0),
          ],
       q(nkn) => [
-         q(4945),
+         q(4933),
          q(0),
          ],
       q(nko) => [
-         q(4946),
+         q(4934),
          q(0),
          ],
       q(nkp) => [
-         q(4947),
+         q(4935),
          q(0),
          ],
       q(nkq) => [
-         q(4948),
+         q(4936),
          q(0),
          ],
       q(nkr) => [
-         q(4949),
+         q(4937),
          q(0),
          ],
       q(nks) => [
-         q(4950),
+         q(4938),
          q(0),
          ],
       q(nkt) => [
-         q(4951),
+         q(4939),
          q(0),
          ],
       q(nku) => [
-         q(4952),
+         q(4940),
          q(0),
          ],
       q(nkv) => [
-         q(4953),
+         q(4941),
          q(0),
          ],
       q(nkw) => [
-         q(4954),
+         q(4942),
          q(0),
          ],
       q(nkx) => [
-         q(4955),
+         q(4943),
          q(0),
          ],
       q(nkz) => [
-         q(4956),
+         q(4944),
          q(0),
          ],
       q(nla) => [
-         q(4957),
+         q(4945),
          q(0),
          ],
       q(nlc) => [
-         q(4958),
+         q(4946),
          q(0),
          ],
       q(nle) => [
-         q(4959),
+         q(4947),
          q(0),
          ],
       q(nlg) => [
-         q(4960),
+         q(4948),
          q(0),
          ],
       q(nli) => [
-         q(4961),
+         q(4949),
          q(0),
          ],
       q(nlj) => [
-         q(4962),
+         q(4950),
          q(0),
          ],
       q(nlk) => [
-         q(4963),
+         q(4951),
          q(0),
          ],
       q(nll) => [
-         q(4964),
+         q(4952),
          q(0),
          ],
       q(nlo) => [
-         q(4965),
+         q(4953),
          q(0),
          ],
       q(nlq) => [
-         q(4966),
+         q(4954),
          q(0),
          ],
       q(nlu) => [
-         q(4967),
+         q(4955),
          q(0),
          ],
       q(nlv) => [
-         q(4968),
+         q(4956),
          q(0),
          ],
       q(nlw) => [
-         q(4969),
+         q(4957),
          q(0),
          ],
       q(nlx) => [
-         q(4970),
+         q(4958),
          q(0),
          ],
       q(nly) => [
-         q(4971),
+         q(4959),
          q(0),
          ],
       q(nlz) => [
-         q(4972),
+         q(4960),
          q(0),
          ],
       q(nma) => [
-         q(4973),
+         q(4961),
          q(0),
          ],
       q(nmb) => [
-         q(4974),
+         q(4962),
          q(0),
          ],
       q(nmc) => [
-         q(4975),
+         q(4963),
          q(0),
          ],
       q(nmd) => [
-         q(4976),
+         q(4964),
          q(0),
          ],
       q(nme) => [
-         q(4977),
+         q(4965),
          q(0),
          ],
       q(nmf) => [
-         q(4978),
+         q(4966),
          q(0),
          ],
       q(nmg) => [
-         q(4979),
+         q(4967),
          q(0),
          ],
       q(nmh) => [
-         q(4980),
+         q(4968),
          q(0),
          ],
       q(nmi) => [
-         q(4981),
+         q(4969),
          q(0),
          ],
       q(nmj) => [
-         q(4982),
+         q(4970),
          q(0),
          ],
       q(nmk) => [
-         q(4983),
+         q(4971),
          q(0),
          ],
       q(nml) => [
-         q(4984),
+         q(4972),
          q(0),
          ],
       q(nmm) => [
-         q(4985),
+         q(4973),
          q(0),
          ],
       q(nmn) => [
-         q(4986),
+         q(4974),
          q(0),
          ],
       q(nmo) => [
-         q(4987),
+         q(4975),
          q(0),
          ],
       q(nmp) => [
-         q(4988),
+         q(4976),
          q(0),
          ],
       q(nmq) => [
-         q(4989),
+         q(4977),
          q(0),
          ],
       q(nmr) => [
-         q(4990),
+         q(4978),
          q(0),
          ],
       q(nms) => [
-         q(4991),
+         q(4979),
          q(0),
          ],
       q(nmt) => [
-         q(4992),
+         q(4980),
          q(0),
          ],
       q(nmu) => [
-         q(4993),
+         q(4981),
          q(0),
          ],
       q(nmv) => [
-         q(4994),
+         q(4982),
          q(0),
          ],
       q(nmw) => [
-         q(4995),
+         q(4983),
          q(0),
          ],
       q(nmx) => [
-         q(4996),
+         q(4984),
          q(0),
          ],
       q(nmy) => [
-         q(4997),
+         q(4985),
          q(0),
          ],
       q(nmz) => [
-         q(4998),
+         q(4986),
          q(0),
          ],
       q(nna) => [
-         q(4999),
+         q(4987),
          q(0),
          ],
       q(nnb) => [
-         q(5000),
+         q(4988),
          q(0),
          ],
       q(nnc) => [
-         q(5001),
+         q(4989),
          q(0),
          ],
       q(nnd) => [
-         q(5002),
+         q(4990),
          q(0),
          ],
       q(nne) => [
-         q(5003),
+         q(4991),
          q(0),
          ],
       q(nnf) => [
-         q(5004),
+         q(4992),
          q(0),
          ],
       q(nng) => [
-         q(5005),
+         q(4993),
          q(0),
          ],
       q(nnh) => [
-         q(5006),
+         q(4994),
          q(0),
          ],
       q(nni) => [
-         q(5007),
+         q(4995),
          q(0),
          ],
       q(nnj) => [
-         q(5008),
+         q(4996),
          q(0),
          ],
       q(nnk) => [
-         q(5009),
+         q(4997),
          q(0),
          ],
       q(nnl) => [
-         q(5010),
+         q(4998),
          q(0),
          ],
       q(nnm) => [
-         q(5011),
+         q(4999),
          q(0),
          ],
       q(nnn) => [
-         q(5012),
+         q(5000),
          q(0),
          ],
       q(nno) => [
@@ -77542,51 +77460,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nnp) => [
-         q(5013),
+         q(5001),
          q(0),
          ],
       q(nnq) => [
-         q(5014),
+         q(5002),
          q(0),
          ],
       q(nnr) => [
-         q(5015),
+         q(5003),
          q(0),
          ],
       q(nns) => [
-         q(5016),
+         q(5004),
          q(0),
          ],
       q(nnt) => [
-         q(5017),
+         q(5005),
          q(0),
          ],
       q(nnu) => [
-         q(5018),
+         q(5006),
          q(0),
          ],
       q(nnv) => [
-         q(5019),
+         q(5007),
          q(0),
          ],
       q(nnw) => [
-         q(5020),
-         q(0),
-         ],
-      q(nnx) => [
-         q(5021),
+         q(5008),
          q(0),
          ],
       q(nny) => [
-         q(5022),
+         q(5009),
          q(0),
          ],
       q(nnz) => [
-         q(5023),
+         q(5010),
          q(0),
          ],
       q(noa) => [
-         q(5024),
+         q(5011),
          q(0),
          ],
       q(nob) => [
@@ -77594,19 +77508,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(noc) => [
-         q(5025),
+         q(5012),
          q(0),
          ],
       q(nod) => [
-         q(5026),
+         q(5013),
          q(0),
          ],
       q(noe) => [
-         q(5027),
+         q(5014),
          q(0),
          ],
       q(nof) => [
-         q(5028),
+         q(5015),
          q(0),
          ],
       q(nog) => [
@@ -77614,27 +77528,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(noh) => [
-         q(5029),
+         q(5016),
          q(0),
          ],
       q(noi) => [
-         q(5030),
+         q(5017),
          q(0),
          ],
       q(noj) => [
-         q(5031),
+         q(5018),
          q(0),
          ],
       q(nok) => [
-         q(5032),
+         q(5019),
          q(0),
          ],
       q(nol) => [
-         q(5033),
+         q(5020),
          q(0),
          ],
       q(nom) => [
-         q(5034),
+         q(5021),
          q(0),
          ],
       q(non) => [
@@ -77642,11 +77556,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(nop) => [
-         q(5035),
+         q(5022),
          q(0),
          ],
       q(noq) => [
-         q(5036),
+         q(5023),
          q(0),
          ],
       q(nor) => [
@@ -77654,91 +77568,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nos) => [
-         q(5037),
+         q(5024),
          q(0),
          ],
       q(not) => [
-         q(5038),
+         q(5025),
          q(0),
          ],
       q(nou) => [
-         q(5039),
+         q(5026),
          q(0),
          ],
       q(nov) => [
-         q(5040),
+         q(5027),
          q(0),
          ],
       q(now) => [
-         q(5041),
+         q(5028),
          q(0),
          ],
       q(noy) => [
-         q(5042),
+         q(5029),
          q(0),
          ],
       q(noz) => [
-         q(5043),
+         q(5030),
          q(0),
          ],
       q(npa) => [
-         q(5044),
+         q(5031),
          q(0),
          ],
       q(npb) => [
-         q(5045),
+         q(5032),
          q(0),
          ],
       q(npg) => [
-         q(5046),
+         q(5033),
          q(0),
          ],
       q(nph) => [
-         q(5047),
+         q(5034),
          q(0),
          ],
       q(npi) => [
-         q(5048),
+         q(5035),
          q(0),
          ],
       q(npl) => [
-         q(5049),
+         q(5036),
          q(0),
          ],
       q(npn) => [
-         q(5050),
+         q(5037),
          q(0),
          ],
       q(npo) => [
-         q(5051),
+         q(5038),
          q(0),
          ],
       q(nps) => [
-         q(5052),
+         q(5039),
          q(0),
          ],
       q(npu) => [
-         q(5053),
+         q(5040),
          q(0),
          ],
       q(npy) => [
-         q(5054),
+         q(5041),
          q(0),
          ],
       q(nqg) => [
-         q(5055),
+         q(5042),
          q(0),
          ],
       q(nqk) => [
-         q(5056),
+         q(5043),
          q(0),
          ],
       q(nqm) => [
-         q(5057),
+         q(5044),
          q(0),
          ],
       q(nqn) => [
-         q(5058),
+         q(5045),
          q(0),
          ],
       q(nqo) => [
@@ -77746,123 +77660,127 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nqq) => [
-         q(5059),
+         q(5046),
          q(0),
          ],
       q(nqy) => [
-         q(5060),
+         q(5047),
          q(0),
          ],
       q(nra) => [
-         q(5061),
+         q(5048),
          q(0),
          ],
       q(nrb) => [
-         q(5062),
+         q(5049),
          q(0),
          ],
       q(nrc) => [
-         q(5063),
+         q(5050),
          q(0),
          ],
       q(nre) => [
-         q(5064),
+         q(5051),
+         q(0),
+         ],
+      q(nrf) => [
+         q(5052),
          q(0),
          ],
       q(nrg) => [
-         q(5065),
+         q(5053),
          q(0),
          ],
       q(nri) => [
-         q(5066),
+         q(5054),
          q(0),
          ],
       q(nrk) => [
-         q(5067),
+         q(5055),
          q(0),
          ],
       q(nrl) => [
-         q(5068),
+         q(5056),
          q(0),
          ],
       q(nrm) => [
-         q(5069),
+         q(5057),
          q(0),
          ],
       q(nrn) => [
-         q(5070),
+         q(5058),
          q(0),
          ],
       q(nrp) => [
-         q(5071),
+         q(5059),
          q(0),
          ],
       q(nrr) => [
-         q(5072),
+         q(5060),
          q(0),
          ],
       q(nrt) => [
-         q(5073),
+         q(5061),
          q(0),
          ],
       q(nru) => [
-         q(5074),
+         q(5062),
          q(0),
          ],
       q(nrx) => [
-         q(5075),
+         q(5063),
          q(0),
          ],
       q(nrz) => [
-         q(5076),
+         q(5064),
          q(0),
          ],
       q(nsa) => [
-         q(5077),
+         q(5065),
          q(0),
          ],
       q(nsc) => [
-         q(5078),
+         q(5066),
          q(0),
          ],
       q(nsd) => [
-         q(5079),
+         q(5067),
          q(0),
          ],
       q(nse) => [
-         q(5080),
+         q(5068),
          q(0),
          ],
       q(nsf) => [
-         q(5081),
+         q(5069),
          q(0),
          ],
       q(nsg) => [
-         q(5082),
+         q(5070),
          q(0),
          ],
       q(nsh) => [
-         q(5083),
+         q(5071),
          q(0),
          ],
       q(nsi) => [
-         q(5084),
+         q(5072),
          q(0),
          ],
       q(nsk) => [
-         q(5085),
+         q(5073),
          q(0),
          ],
       q(nsl) => [
-         q(5086),
+         q(5074),
          q(0),
          ],
       q(nsm) => [
-         q(5087),
+         q(5075),
          q(0),
          ],
       q(nsn) => [
-         q(5088),
+         q(5076),
          q(0),
          ],
       q(nso) => [
@@ -77870,111 +77788,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nsp) => [
-         q(5089),
+         q(5077),
          q(0),
          ],
       q(nsq) => [
-         q(5090),
+         q(5078),
          q(0),
          ],
       q(nsr) => [
-         q(5091),
+         q(5079),
          q(0),
          ],
       q(nss) => [
-         q(5092),
+         q(5080),
          q(0),
          ],
       q(nst) => [
-         q(5093),
+         q(5081),
          q(0),
          ],
       q(nsu) => [
-         q(5094),
+         q(5082),
          q(0),
          ],
       q(nsv) => [
-         q(5095),
+         q(5083),
          q(0),
          ],
       q(nsw) => [
-         q(5096),
+         q(5084),
          q(0),
          ],
       q(nsx) => [
-         q(5097),
+         q(5085),
          q(0),
          ],
       q(nsy) => [
-         q(5098),
+         q(5086),
          q(0),
          ],
       q(nsz) => [
-         q(5099),
+         q(5087),
          q(0),
          ],
       q(nte) => [
-         q(5100),
+         q(5088),
          q(0),
          ],
       q(ntg) => [
-         q(5101),
+         q(5089),
          q(0),
          ],
       q(nti) => [
-         q(5102),
+         q(5090),
          q(0),
          ],
       q(ntj) => [
-         q(5103),
+         q(5091),
          q(0),
          ],
       q(ntk) => [
-         q(5104),
+         q(5092),
          q(0),
          ],
       q(ntm) => [
-         q(5105),
+         q(5093),
          q(0),
          ],
       q(nto) => [
-         q(5106),
+         q(5094),
          q(0),
          ],
       q(ntp) => [
-         q(5107),
+         q(5095),
          q(0),
          ],
       q(ntr) => [
-         q(5108),
+         q(5096),
          q(0),
          ],
       q(nts) => [
-         q(5109),
+         q(5097),
          q(0),
          ],
       q(ntu) => [
-         q(5110),
+         q(5098),
          q(0),
          ],
       q(ntw) => [
-         q(5111),
+         q(5099),
          q(0),
          ],
       q(ntx) => [
-         q(5112),
+         q(5100),
          q(0),
          ],
       q(nty) => [
-         q(5113),
+         q(5101),
          q(0),
          ],
       q(ntz) => [
-         q(5114),
+         q(5102),
          q(0),
          ],
       q(nua) => [
-         q(5115),
+         q(5103),
          q(0),
          ],
       q(nub) => [
@@ -77982,119 +77900,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nuc) => [
-         q(5116),
+         q(5104),
          q(0),
          ],
       q(nud) => [
-         q(5117),
+         q(5105),
          q(0),
          ],
       q(nue) => [
-         q(5118),
+         q(5106),
          q(0),
          ],
       q(nuf) => [
-         q(5119),
+         q(5107),
          q(0),
          ],
       q(nug) => [
-         q(5120),
+         q(5108),
          q(0),
          ],
       q(nuh) => [
-         q(5121),
+         q(5109),
          q(0),
          ],
       q(nui) => [
-         q(5122),
+         q(5110),
          q(0),
          ],
       q(nuj) => [
-         q(5123),
+         q(5111),
          q(0),
          ],
       q(nuk) => [
-         q(5124),
+         q(5112),
          q(0),
          ],
       q(nul) => [
-         q(5125),
+         q(5113),
          q(0),
          ],
       q(num) => [
-         q(5126),
+         q(5114),
          q(0),
          ],
       q(nun) => [
-         q(5127),
+         q(5115),
          q(0),
          ],
       q(nuo) => [
-         q(5128),
+         q(5116),
          q(0),
          ],
       q(nup) => [
-         q(5129),
+         q(5117),
          q(0),
          ],
       q(nuq) => [
-         q(5130),
+         q(5118),
          q(0),
          ],
       q(nur) => [
-         q(5131),
+         q(5119),
          q(0),
          ],
       q(nus) => [
-         q(5132),
+         q(5120),
          q(0),
          ],
       q(nut) => [
-         q(5133),
+         q(5121),
          q(0),
          ],
       q(nuu) => [
-         q(5134),
+         q(5122),
          q(0),
          ],
       q(nuv) => [
-         q(5135),
+         q(5123),
          q(0),
          ],
       q(nuw) => [
-         q(5136),
+         q(5124),
          q(0),
          ],
       q(nux) => [
-         q(5137),
+         q(5125),
          q(0),
          ],
       q(nuy) => [
-         q(5138),
+         q(5126),
          q(0),
          ],
       q(nuz) => [
-         q(5139),
+         q(5127),
          q(0),
          ],
       q(nvh) => [
-         q(5140),
+         q(5128),
          q(0),
          ],
       q(nvm) => [
-         q(5141),
+         q(5129),
          q(0),
          ],
       q(nvo) => [
-         q(5142),
+         q(5130),
          q(0),
          ],
       q(nwa) => [
-         q(5143),
+         q(5131),
          q(0),
          ],
       q(nwb) => [
-         q(5144),
+         q(5132),
          q(0),
          ],
       q(nwc) => [
@@ -78102,87 +78020,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nwe) => [
-         q(5145),
+         q(5133),
          q(0),
          ],
       q(nwg) => [
-         q(5146),
+         q(5134),
          q(0),
          ],
       q(nwi) => [
-         q(5147),
+         q(5135),
          q(0),
          ],
       q(nwm) => [
-         q(5148),
+         q(5136),
          q(0),
          ],
       q(nwo) => [
-         q(5149),
+         q(5137),
          q(0),
          ],
       q(nwr) => [
-         q(5150),
+         q(5138),
          q(0),
          ],
       q(nwx) => [
-         q(5151),
+         q(5139),
          q(0),
          ],
       q(nwy) => [
-         q(5152),
+         q(5140),
          q(0),
          ],
       q(nxa) => [
-         q(5153),
+         q(5141),
          q(0),
          ],
       q(nxd) => [
-         q(5154),
+         q(5142),
          q(0),
          ],
       q(nxe) => [
-         q(5155),
+         q(5143),
          q(0),
          ],
       q(nxg) => [
-         q(5156),
+         q(5144),
          q(0),
          ],
       q(nxi) => [
-         q(5157),
+         q(5145),
          q(0),
          ],
       q(nxk) => [
-         q(5158),
+         q(5146),
          q(0),
          ],
       q(nxl) => [
-         q(5159),
+         q(5147),
          q(0),
          ],
       q(nxm) => [
-         q(5160),
+         q(5148),
          q(0),
          ],
       q(nxn) => [
-         q(5161),
+         q(5149),
+         q(0),
+         ],
+      q(nxo) => [
+         q(5150),
          q(0),
          ],
       q(nxq) => [
-         q(5162),
+         q(5151),
          q(0),
          ],
       q(nxr) => [
-         q(5163),
+         q(5152),
          q(0),
          ],
       q(nxu) => [
-         q(5164),
+         q(5153),
          q(0),
          ],
       q(nxx) => [
-         q(5165),
+         q(5154),
          q(0),
          ],
       q(nya) => [
@@ -78190,47 +78112,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nyb) => [
-         q(5166),
+         q(5155),
          q(0),
          ],
       q(nyc) => [
-         q(5167),
+         q(5156),
          q(0),
          ],
       q(nyd) => [
-         q(5168),
+         q(5157),
          q(0),
          ],
       q(nye) => [
-         q(5169),
+         q(5158),
          q(0),
          ],
       q(nyf) => [
-         q(5170),
+         q(5159),
          q(0),
          ],
       q(nyg) => [
-         q(5171),
+         q(5160),
          q(0),
          ],
       q(nyh) => [
-         q(5172),
+         q(5161),
          q(0),
          ],
       q(nyi) => [
-         q(5173),
+         q(5162),
          q(0),
          ],
       q(nyj) => [
-         q(5174),
+         q(5163),
          q(0),
          ],
       q(nyk) => [
-         q(5175),
+         q(5164),
          q(0),
          ],
       q(nyl) => [
-         q(5176),
+         q(5165),
          q(0),
          ],
       q(nym) => [
@@ -78246,51 +78168,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nyp) => [
-         q(5177),
+         q(5166),
          q(0),
          ],
       q(nyq) => [
-         q(5178),
+         q(5167),
          q(0),
          ],
       q(nyr) => [
-         q(5179),
+         q(5168),
          q(0),
          ],
       q(nys) => [
-         q(5180),
+         q(5169),
          q(0),
          ],
       q(nyt) => [
-         q(5181),
+         q(5170),
          q(0),
          ],
       q(nyu) => [
-         q(5182),
+         q(5171),
          q(0),
          ],
       q(nyv) => [
-         q(5183),
+         q(5172),
          q(0),
          ],
       q(nyw) => [
-         q(5184),
+         q(5173),
          q(0),
          ],
       q(nyx) => [
-         q(5185),
+         q(5174),
          q(0),
          ],
       q(nyy) => [
-         q(5186),
+         q(5175),
          q(0),
          ],
       q(nza) => [
-         q(5187),
+         q(5176),
          q(0),
          ],
       q(nzb) => [
-         q(5188),
+         q(5177),
          q(0),
          ],
       q(nzi) => [
@@ -78298,83 +78220,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nzk) => [
-         q(5189),
+         q(5178),
          q(0),
          ],
       q(nzm) => [
-         q(5190),
+         q(5179),
          q(0),
          ],
       q(nzs) => [
-         q(5191),
+         q(5180),
          q(0),
          ],
       q(nzu) => [
-         q(5192),
+         q(5181),
          q(0),
          ],
       q(nzy) => [
-         q(5193),
+         q(5182),
          q(0),
          ],
       q(nzz) => [
-         q(5194),
+         q(5183),
          q(0),
          ],
       q(oaa) => [
-         q(5195),
+         q(5184),
          q(0),
          ],
       q(oac) => [
-         q(5196),
+         q(5185),
          q(0),
          ],
       q(oar) => [
-         q(5197),
+         q(5186),
          q(0),
          ],
       q(oav) => [
-         q(5198),
+         q(5187),
          q(0),
          ],
       q(obi) => [
-         q(5199),
+         q(5188),
          q(0),
          ],
       q(obk) => [
-         q(5200),
+         q(5189),
          q(0),
          ],
       q(obl) => [
-         q(5201),
+         q(5190),
          q(0),
          ],
       q(obm) => [
-         q(5202),
+         q(5191),
          q(0),
          ],
       q(obo) => [
-         q(5203),
+         q(5192),
          q(0),
          ],
       q(obr) => [
-         q(5204),
+         q(5193),
          q(0),
          ],
       q(obt) => [
-         q(5205),
+         q(5194),
          q(0),
          ],
       q(obu) => [
-         q(5206),
+         q(5195),
          q(0),
          ],
       q(oca) => [
-         q(5207),
+         q(5196),
          q(0),
          ],
       q(och) => [
-         q(5208),
+         q(5197),
          q(0),
          ],
       q(oci) => [
@@ -78382,91 +78304,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(oco) => [
-         q(5209),
+         q(5198),
          q(0),
          ],
       q(ocu) => [
-         q(5210),
+         q(5199),
          q(0),
          ],
       q(oda) => [
-         q(5211),
+         q(5200),
          q(0),
          ],
       q(odk) => [
-         q(5212),
+         q(5201),
          q(0),
          ],
       q(odt) => [
-         q(5213),
+         q(5202),
          q(0),
          ],
       q(odu) => [
-         q(5214),
+         q(5203),
          q(0),
          ],
       q(ofo) => [
-         q(5215),
+         q(5204),
          q(0),
          ],
       q(ofs) => [
-         q(5216),
+         q(5205),
          q(0),
          ],
       q(ofu) => [
-         q(5217),
+         q(5206),
          q(0),
          ],
       q(ogb) => [
-         q(5218),
+         q(5207),
          q(0),
          ],
       q(ogc) => [
-         q(5219),
+         q(5208),
          q(0),
          ],
       q(oge) => [
-         q(5220),
+         q(5209),
          q(0),
          ],
       q(ogg) => [
-         q(5221),
+         q(5210),
          q(0),
          ],
       q(ogo) => [
-         q(5222),
+         q(5211),
          q(0),
          ],
       q(ogu) => [
-         q(5223),
+         q(5212),
          q(0),
          ],
       q(oht) => [
-         q(5224),
+         q(5213),
          q(0),
          ],
       q(ohu) => [
-         q(5225),
+         q(5214),
          q(0),
          ],
       q(oia) => [
-         q(5226),
+         q(5215),
          q(0),
          ],
       q(oin) => [
-         q(5227),
+         q(5216),
          q(0),
          ],
       q(ojb) => [
-         q(5228),
+         q(5217),
          q(0),
          ],
       q(ojc) => [
-         q(5229),
+         q(5218),
          q(0),
          ],
       q(ojg) => [
-         q(5230),
+         q(5219),
          q(0),
          ],
       q(oji) => [
@@ -78474,167 +78396,167 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ojp) => [
-         q(5231),
+         q(5220),
          q(0),
          ],
       q(ojs) => [
-         q(5232),
+         q(5221),
          q(0),
          ],
       q(ojv) => [
-         q(5233),
+         q(5222),
          q(0),
          ],
       q(ojw) => [
-         q(5234),
+         q(5223),
          q(0),
          ],
       q(oka) => [
-         q(5235),
+         q(5224),
          q(0),
          ],
       q(okb) => [
-         q(5236),
+         q(5225),
          q(0),
          ],
       q(okd) => [
-         q(5237),
+         q(5226),
          q(0),
          ],
       q(oke) => [
-         q(5238),
+         q(5227),
          q(0),
          ],
       q(okg) => [
-         q(5239),
+         q(5228),
          q(0),
          ],
       q(okh) => [
-         q(5240),
+         q(5229),
          q(0),
          ],
       q(oki) => [
-         q(5241),
+         q(5230),
          q(0),
          ],
       q(okj) => [
-         q(5242),
+         q(5231),
          q(0),
          ],
       q(okk) => [
-         q(5243),
+         q(5232),
          q(0),
          ],
       q(okl) => [
-         q(5244),
+         q(5233),
          q(0),
          ],
       q(okm) => [
-         q(5245),
+         q(5234),
          q(0),
          ],
       q(okn) => [
-         q(5246),
+         q(5235),
          q(0),
          ],
       q(oko) => [
-         q(5247),
+         q(5236),
          q(0),
          ],
       q(okr) => [
-         q(5248),
+         q(5237),
          q(0),
          ],
       q(oks) => [
-         q(5249),
+         q(5238),
          q(0),
          ],
       q(oku) => [
-         q(5250),
+         q(5239),
          q(0),
          ],
       q(okv) => [
-         q(5251),
+         q(5240),
          q(0),
          ],
       q(okx) => [
-         q(5252),
+         q(5241),
          q(0),
          ],
       q(ola) => [
-         q(5253),
+         q(5242),
          q(0),
          ],
       q(old) => [
-         q(5254),
+         q(5243),
          q(0),
          ],
       q(ole) => [
-         q(5255),
+         q(5244),
          q(0),
          ],
       q(olk) => [
-         q(5256),
+         q(5245),
          q(0),
          ],
       q(olm) => [
-         q(5257),
+         q(5246),
          q(0),
          ],
       q(olo) => [
-         q(5258),
+         q(5247),
          q(0),
          ],
       q(olr) => [
-         q(5259),
+         q(5248),
          q(0),
          ],
       q(olt) => [
-         q(5260),
+         q(5249),
          q(0),
          ],
       q(oma) => [
-         q(5261),
+         q(5250),
          q(0),
          ],
       q(omb) => [
-         q(5262),
+         q(5251),
          q(0),
          ],
       q(omc) => [
-         q(5263),
+         q(5252),
          q(0),
          ],
       q(ome) => [
-         q(5264),
+         q(5253),
          q(0),
          ],
       q(omg) => [
-         q(5265),
+         q(5254),
          q(0),
          ],
       q(omi) => [
-         q(5266),
+         q(5255),
          q(0),
          ],
       q(omk) => [
-         q(5267),
+         q(5256),
          q(0),
          ],
       q(oml) => [
-         q(5268),
+         q(5257),
          q(0),
          ],
       q(omn) => [
-         q(5269),
+         q(5258),
          q(0),
          ],
       q(omo) => [
-         q(5270),
+         q(5259),
          q(0),
          ],
       q(omp) => [
-         q(5271),
+         q(5260),
          q(0),
          ],
       q(omq) => [
@@ -78642,15 +78564,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(omr) => [
-         q(5272),
+         q(5261),
          q(0),
          ],
       q(omt) => [
-         q(5273),
+         q(5262),
          q(0),
          ],
       q(omu) => [
-         q(5274),
+         q(5263),
          q(0),
          ],
       q(omv) => [
@@ -78658,139 +78580,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(omw) => [
-         q(5275),
+         q(5264),
          q(0),
          ],
       q(omx) => [
-         q(5276),
+         q(5265),
          q(0),
          ],
       q(ona) => [
-         q(5277),
+         q(5266),
          q(0),
          ],
       q(onb) => [
-         q(5278),
+         q(5267),
          q(0),
          ],
       q(one) => [
-         q(5279),
+         q(5268),
          q(0),
          ],
       q(ong) => [
-         q(5280),
+         q(5269),
          q(0),
          ],
       q(oni) => [
-         q(5281),
+         q(5270),
          q(0),
          ],
       q(onj) => [
-         q(5282),
+         q(5271),
          q(0),
          ],
       q(onk) => [
-         q(5283),
+         q(5272),
          q(0),
          ],
       q(onn) => [
-         q(5284),
+         q(5273),
          q(0),
          ],
       q(ono) => [
-         q(5285),
+         q(5274),
          q(0),
          ],
       q(onp) => [
-         q(5286),
+         q(5275),
          q(0),
          ],
       q(onr) => [
-         q(5287),
+         q(5276),
          q(0),
          ],
       q(ons) => [
-         q(5288),
+         q(5277),
          q(0),
          ],
       q(ont) => [
-         q(5289),
+         q(5278),
          q(0),
          ],
       q(onu) => [
-         q(5290),
+         q(5279),
          q(0),
          ],
       q(onw) => [
-         q(5291),
+         q(5280),
          q(0),
          ],
       q(onx) => [
-         q(5292),
+         q(5281),
          q(0),
          ],
       q(ood) => [
-         q(5293),
+         q(5282),
          q(0),
          ],
       q(oog) => [
-         q(5294),
+         q(5283),
          q(0),
          ],
       q(oon) => [
-         q(5295),
+         q(5284),
          q(0),
          ],
       q(oor) => [
-         q(5296),
+         q(5285),
          q(0),
          ],
       q(oos) => [
-         q(5297),
+         q(5286),
          q(0),
          ],
       q(opa) => [
-         q(5298),
+         q(5287),
          q(0),
          ],
       q(opk) => [
-         q(5299),
+         q(5288),
          q(0),
          ],
       q(opm) => [
-         q(5300),
+         q(5289),
          q(0),
          ],
       q(opo) => [
-         q(5301),
+         q(5290),
          q(0),
          ],
       q(opt) => [
-         q(5302),
+         q(5291),
          q(0),
          ],
       q(opy) => [
-         q(5303),
+         q(5292),
          q(0),
          ],
       q(ora) => [
-         q(5304),
+         q(5293),
          q(0),
          ],
       q(orc) => [
-         q(5305),
+         q(5294),
          q(0),
          ],
       q(ore) => [
-         q(5306),
+         q(5295),
          q(0),
          ],
       q(org) => [
-         q(5307),
+         q(5296),
          q(0),
          ],
       q(orh) => [
-         q(5308),
+         q(5297),
          q(0),
          ],
       q(ori) => [
@@ -78802,47 +78724,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(orn) => [
-         q(5309),
+         q(5298),
          q(0),
          ],
       q(oro) => [
-         q(5310),
+         q(5299),
          q(0),
          ],
       q(orr) => [
-         q(5311),
+         q(5300),
          q(0),
          ],
       q(ors) => [
-         q(5312),
+         q(5301),
          q(0),
          ],
       q(ort) => [
-         q(5313),
+         q(5302),
          q(0),
          ],
       q(oru) => [
-         q(5314),
+         q(5303),
          q(0),
          ],
       q(orv) => [
-         q(5315),
+         q(5304),
          q(0),
          ],
       q(orw) => [
-         q(5316),
+         q(5305),
          q(0),
          ],
       q(orx) => [
-         q(5317),
+         q(5306),
          q(0),
          ],
       q(ory) => [
-         q(5318),
+         q(5307),
          q(0),
          ],
       q(orz) => [
-         q(5319),
+         q(5308),
          q(0),
          ],
       q(osa) => [
@@ -78850,19 +78772,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(osc) => [
-         q(5320),
+         q(5309),
          q(0),
          ],
       q(osi) => [
-         q(5321),
+         q(5310),
          q(0),
          ],
       q(oso) => [
-         q(5322),
+         q(5311),
          q(0),
          ],
       q(osp) => [
-         q(5323),
+         q(5312),
          q(0),
          ],
       q(oss) => [
@@ -78870,15 +78792,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ost) => [
-         q(5324),
+         q(5313),
          q(0),
          ],
       q(osu) => [
-         q(5325),
+         q(5314),
          q(0),
          ],
       q(osx) => [
-         q(5326),
+         q(5315),
          q(0),
          ],
       q(ota) => [
@@ -78886,35 +78808,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(otb) => [
-         q(5327),
+         q(5316),
          q(0),
          ],
       q(otd) => [
-         q(5328),
+         q(5317),
          q(0),
          ],
       q(ote) => [
-         q(5329),
+         q(5318),
          q(0),
          ],
       q(oti) => [
-         q(5330),
+         q(5319),
          q(0),
          ],
       q(otk) => [
-         q(5331),
+         q(5320),
          q(0),
          ],
       q(otl) => [
-         q(5332),
+         q(5321),
          q(0),
          ],
       q(otm) => [
-         q(5333),
+         q(5322),
          q(0),
          ],
       q(otn) => [
-         q(5334),
+         q(5323),
          q(0),
          ],
       q(oto) => [
@@ -78922,91 +78844,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(otq) => [
-         q(5335),
+         q(5324),
          q(0),
          ],
       q(otr) => [
-         q(5336),
+         q(5325),
          q(0),
          ],
       q(ots) => [
-         q(5337),
+         q(5326),
          q(0),
          ],
       q(ott) => [
-         q(5338),
+         q(5327),
          q(0),
          ],
       q(otu) => [
-         q(5339),
+         q(5328),
          q(0),
          ],
       q(otw) => [
-         q(5340),
+         q(5329),
          q(0),
          ],
       q(otx) => [
-         q(5341),
+         q(5330),
          q(0),
          ],
       q(oty) => [
-         q(5342),
+         q(5331),
          q(0),
          ],
       q(otz) => [
-         q(5343),
+         q(5332),
          q(0),
          ],
       q(oua) => [
-         q(5344),
+         q(5333),
          q(0),
          ],
       q(oub) => [
-         q(5345),
+         q(5334),
          q(0),
          ],
       q(oue) => [
-         q(5346),
+         q(5335),
          q(0),
          ],
       q(oui) => [
-         q(5347),
+         q(5336),
          q(0),
          ],
       q(oum) => [
-         q(5348),
-         q(0),
-         ],
-      q(oun) => [
-         q(5349),
+         q(5337),
          q(0),
          ],
       q(owi) => [
-         q(5350),
+         q(5338),
          q(0),
          ],
       q(owl) => [
-         q(5351),
+         q(5339),
          q(0),
          ],
       q(oyb) => [
-         q(5352),
+         q(5340),
          q(0),
          ],
       q(oyd) => [
-         q(5353),
+         q(5341),
          q(0),
          ],
       q(oym) => [
-         q(5354),
+         q(5342),
          q(0),
          ],
       q(oyy) => [
-         q(5355),
+         q(5343),
          q(0),
          ],
       q(ozm) => [
-         q(5356),
+         q(5344),
          q(0),
          ],
       q(paa) => [
@@ -79014,23 +78932,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pab) => [
-         q(5357),
+         q(5345),
          q(0),
          ],
       q(pac) => [
-         q(5358),
+         q(5346),
          q(0),
          ],
       q(pad) => [
-         q(5359),
+         q(5347),
          q(0),
          ],
       q(pae) => [
-         q(5360),
+         q(5348),
          q(0),
          ],
       q(paf) => [
-         q(5361),
+         q(5349),
          q(0),
          ],
       q(pag) => [
@@ -79038,15 +78956,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pah) => [
-         q(5362),
+         q(5350),
          q(0),
          ],
       q(pai) => [
-         q(5363),
+         q(5351),
          q(0),
          ],
       q(pak) => [
-         q(5364),
+         q(5352),
          q(0),
          ],
       q(pal) => [
@@ -79062,7 +78980,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pao) => [
-         q(5365),
+         q(5353),
          q(0),
          ],
       q(pap) => [
@@ -79070,19 +78988,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(paq) => [
-         q(5366),
+         q(5354),
          q(0),
          ],
       q(par) => [
-         q(5367),
+         q(5355),
          q(0),
          ],
       q(pas) => [
-         q(5368),
+         q(5356),
          q(0),
          ],
       q(pat) => [
-         q(5369),
+         q(5357),
          q(0),
          ],
       q(pau) => [
@@ -79090,231 +79008,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pav) => [
-         q(5370),
+         q(5358),
          q(0),
          ],
       q(paw) => [
-         q(5371),
+         q(5359),
          q(0),
          ],
       q(pax) => [
-         q(5372),
+         q(5360),
          q(0),
          ],
       q(pay) => [
-         q(5373),
+         q(5361),
          q(0),
          ],
       q(paz) => [
-         q(5374),
+         q(5362),
          q(0),
          ],
       q(pbb) => [
-         q(5375),
+         q(5363),
          q(0),
          ],
       q(pbc) => [
-         q(5376),
+         q(5364),
          q(0),
          ],
       q(pbe) => [
-         q(5377),
+         q(5365),
          q(0),
          ],
       q(pbf) => [
-         q(5378),
+         q(5366),
          q(0),
          ],
       q(pbg) => [
-         q(5379),
+         q(5367),
          q(0),
          ],
       q(pbh) => [
-         q(5380),
+         q(5368),
          q(0),
          ],
       q(pbi) => [
-         q(5381),
+         q(5369),
          q(0),
          ],
       q(pbl) => [
-         q(5382),
+         q(5370),
          q(0),
          ],
       q(pbn) => [
-         q(5383),
+         q(5371),
          q(0),
          ],
       q(pbo) => [
-         q(5384),
+         q(5372),
          q(0),
          ],
       q(pbp) => [
-         q(5385),
+         q(5373),
          q(0),
          ],
       q(pbr) => [
-         q(5386),
+         q(5374),
          q(0),
          ],
       q(pbs) => [
-         q(5387),
+         q(5375),
          q(0),
          ],
       q(pbt) => [
-         q(5388),
+         q(5376),
          q(0),
          ],
       q(pbu) => [
-         q(5389),
+         q(5377),
          q(0),
          ],
       q(pbv) => [
-         q(5390),
+         q(5378),
          q(0),
          ],
       q(pby) => [
-         q(5391),
+         q(5379),
          q(0),
          ],
       q(pca) => [
-         q(5392),
+         q(5380),
          q(0),
          ],
       q(pcb) => [
-         q(5393),
+         q(5381),
          q(0),
          ],
       q(pcc) => [
-         q(5394),
+         q(5382),
          q(0),
          ],
       q(pcd) => [
-         q(5395),
+         q(5383),
          q(0),
          ],
       q(pce) => [
-         q(5396),
+         q(5384),
          q(0),
          ],
       q(pcf) => [
-         q(5397),
+         q(5385),
          q(0),
          ],
       q(pcg) => [
-         q(5398),
+         q(5386),
          q(0),
          ],
       q(pch) => [
-         q(5399),
+         q(5387),
          q(0),
          ],
       q(pci) => [
-         q(5400),
+         q(5388),
          q(0),
          ],
       q(pcj) => [
-         q(5401),
+         q(5389),
          q(0),
          ],
       q(pck) => [
-         q(5402),
+         q(5390),
          q(0),
          ],
       q(pcl) => [
-         q(5403),
+         q(5391),
          q(0),
          ],
       q(pcm) => [
-         q(5404),
+         q(5392),
          q(0),
          ],
       q(pcn) => [
-         q(5405),
+         q(5393),
          q(0),
          ],
       q(pcp) => [
-         q(5406),
+         q(5394),
          q(0),
          ],
       q(pcw) => [
-         q(5407),
+         q(5395),
          q(0),
          ],
       q(pda) => [
-         q(5408),
+         q(5396),
          q(0),
          ],
       q(pdc) => [
-         q(5409),
+         q(5397),
          q(0),
          ],
       q(pdi) => [
-         q(5410),
+         q(5398),
          q(0),
          ],
       q(pdn) => [
-         q(5411),
+         q(5399),
          q(0),
          ],
       q(pdo) => [
-         q(5412),
+         q(5400),
          q(0),
          ],
       q(pdt) => [
-         q(5413),
+         q(5401),
          q(0),
          ],
       q(pdu) => [
-         q(5414),
+         q(5402),
          q(0),
          ],
       q(pea) => [
-         q(5415),
+         q(5403),
          q(0),
          ],
       q(peb) => [
-         q(5416),
+         q(5404),
          q(0),
          ],
       q(ped) => [
-         q(5417),
+         q(5405),
          q(0),
          ],
       q(pee) => [
-         q(5418),
+         q(5406),
          q(0),
          ],
       q(pef) => [
-         q(5419),
+         q(5407),
          q(0),
          ],
       q(peg) => [
-         q(5420),
+         q(5408),
          q(0),
          ],
       q(peh) => [
-         q(5421),
+         q(5409),
          q(0),
          ],
       q(pei) => [
-         q(5422),
+         q(5410),
          q(0),
          ],
       q(pej) => [
-         q(5423),
+         q(5411),
          q(0),
          ],
       q(pek) => [
-         q(5424),
+         q(5412),
          q(0),
          ],
       q(pel) => [
-         q(5425),
+         q(5413),
          q(0),
          ],
       q(pem) => [
-         q(5426),
+         q(5414),
          q(0),
          ],
       q(peo) => [
@@ -79322,11 +79240,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(pep) => [
-         q(5427),
+         q(5415),
          q(0),
          ],
       q(peq) => [
-         q(5428),
+         q(5416),
          q(0),
          ],
       q(per) => [
@@ -79334,83 +79252,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pes) => [
-         q(5429),
+         q(5417),
          q(0),
          ],
       q(pev) => [
-         q(5430),
+         q(5418),
          q(0),
          ],
       q(pex) => [
-         q(5431),
+         q(5419),
          q(0),
          ],
       q(pey) => [
-         q(5432),
+         q(5420),
          q(0),
          ],
       q(pez) => [
-         q(5433),
+         q(5421),
          q(0),
          ],
       q(pfa) => [
-         q(5434),
+         q(5422),
          q(0),
          ],
       q(pfe) => [
-         q(5435),
+         q(5423),
          q(0),
          ],
       q(pfl) => [
-         q(5436),
+         q(5424),
          q(0),
          ],
       q(pga) => [
-         q(5437),
+         q(5425),
+         q(0),
+         ],
+      q(pgd) => [
+         q(5426),
          q(0),
          ],
       q(pgg) => [
-         q(5438),
+         q(5427),
          q(0),
          ],
       q(pgi) => [
-         q(5439),
+         q(5428),
          q(0),
          ],
       q(pgk) => [
-         q(5440),
+         q(5429),
          q(0),
          ],
       q(pgl) => [
-         q(5441),
+         q(5430),
          q(0),
          ],
       q(pgn) => [
-         q(5442),
+         q(5431),
          q(0),
          ],
       q(pgs) => [
-         q(5443),
+         q(5432),
          q(0),
          ],
       q(pgu) => [
-         q(5444),
+         q(5433),
          q(0),
          ],
       q(pha) => [
-         q(5445),
+         q(5434),
          q(0),
          ],
       q(phd) => [
-         q(5446),
+         q(5435),
          q(0),
          ],
       q(phg) => [
-         q(5447),
+         q(5436),
          q(0),
          ],
       q(phh) => [
-         q(5448),
+         q(5437),
          q(0),
          ],
       q(phi) => [
@@ -79418,15 +79340,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(phk) => [
-         q(5449),
+         q(5438),
          q(0),
          ],
       q(phl) => [
-         q(5450),
+         q(5439),
          q(0),
          ],
       q(phm) => [
-         q(5451),
+         q(5440),
          q(0),
          ],
       q(phn) => [
@@ -79434,199 +79356,199 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pho) => [
-         q(5452),
+         q(5441),
          q(0),
          ],
       q(phq) => [
-         q(5453),
+         q(5442),
          q(0),
          ],
       q(phr) => [
-         q(5454),
+         q(5443),
          q(0),
          ],
       q(pht) => [
-         q(5455),
+         q(5444),
          q(0),
          ],
       q(phu) => [
-         q(5456),
+         q(5445),
          q(0),
          ],
       q(phv) => [
-         q(5457),
+         q(5446),
          q(0),
          ],
       q(phw) => [
-         q(5458),
+         q(5447),
          q(0),
          ],
       q(pia) => [
-         q(5459),
+         q(5448),
          q(0),
          ],
       q(pib) => [
-         q(5460),
+         q(5449),
          q(0),
          ],
       q(pic) => [
-         q(5461),
+         q(5450),
          q(0),
          ],
       q(pid) => [
-         q(5462),
+         q(5451),
          q(0),
          ],
       q(pie) => [
-         q(5463),
+         q(5452),
          q(0),
          ],
       q(pif) => [
-         q(5464),
+         q(5453),
          q(0),
          ],
       q(pig) => [
-         q(5465),
+         q(5454),
          q(0),
          ],
       q(pih) => [
-         q(5466),
+         q(5455),
          q(0),
          ],
       q(pii) => [
-         q(5467),
+         q(5456),
          q(0),
          ],
       q(pij) => [
-         q(5468),
+         q(5457),
          q(0),
          ],
       q(pil) => [
-         q(5469),
+         q(5458),
          q(0),
          ],
       q(pim) => [
-         q(5470),
+         q(5459),
          q(0),
          ],
       q(pin) => [
-         q(5471),
+         q(5460),
          q(0),
          ],
       q(pio) => [
-         q(5472),
+         q(5461),
          q(0),
          ],
       q(pip) => [
-         q(5473),
+         q(5462),
          q(0),
          ],
       q(pir) => [
-         q(5474),
+         q(5463),
          q(0),
          ],
       q(pis) => [
-         q(5475),
+         q(5464),
          q(0),
          ],
       q(pit) => [
-         q(5476),
+         q(5465),
          q(0),
          ],
       q(piu) => [
-         q(5477),
+         q(5466),
          q(0),
          ],
       q(piv) => [
-         q(5478),
+         q(5467),
          q(0),
          ],
       q(piw) => [
-         q(5479),
+         q(5468),
          q(0),
          ],
       q(pix) => [
-         q(5480),
+         q(5469),
          q(0),
          ],
       q(piy) => [
-         q(5481),
+         q(5470),
          q(0),
          ],
       q(piz) => [
-         q(5482),
+         q(5471),
          q(0),
          ],
       q(pjt) => [
-         q(5483),
+         q(5472),
          q(0),
          ],
       q(pka) => [
-         q(5484),
+         q(5473),
          q(0),
          ],
       q(pkb) => [
-         q(5485),
+         q(5474),
          q(0),
          ],
       q(pkc) => [
-         q(5486),
+         q(5475),
          q(0),
          ],
       q(pkg) => [
-         q(5487),
+         q(5476),
          q(0),
          ],
       q(pkh) => [
-         q(5488),
+         q(5477),
          q(0),
          ],
       q(pkn) => [
-         q(5489),
+         q(5478),
          q(0),
          ],
       q(pko) => [
-         q(5490),
+         q(5479),
          q(0),
          ],
       q(pkp) => [
-         q(5491),
+         q(5480),
          q(0),
          ],
       q(pkr) => [
-         q(5492),
+         q(5481),
          q(0),
          ],
       q(pks) => [
-         q(5493),
+         q(5482),
          q(0),
          ],
       q(pkt) => [
-         q(5494),
+         q(5483),
          q(0),
          ],
       q(pku) => [
-         q(5495),
+         q(5484),
          q(0),
          ],
       q(pla) => [
-         q(5496),
+         q(5485),
          q(0),
          ],
       q(plb) => [
-         q(5497),
+         q(5486),
          q(0),
          ],
       q(plc) => [
-         q(5498),
+         q(5487),
          q(0),
          ],
       q(pld) => [
-         q(5499),
+         q(5488),
          q(0),
          ],
       q(ple) => [
-         q(5500),
+         q(5489),
          q(0),
          ],
       q(plf) => [
@@ -79634,11 +79556,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(plg) => [
-         q(5501),
+         q(5490),
          q(0),
          ],
       q(plh) => [
-         q(5502),
+         q(5491),
          q(0),
          ],
       q(pli) => [
@@ -79646,283 +79568,279 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(plj) => [
-         q(5503),
+         q(5492),
          q(0),
          ],
       q(plk) => [
-         q(5504),
+         q(5493),
          q(0),
          ],
       q(pll) => [
-         q(5505),
+         q(5494),
          q(0),
          ],
       q(pln) => [
-         q(5506),
+         q(5495),
          q(0),
          ],
       q(plo) => [
-         q(5507),
+         q(5496),
          q(0),
          ],
       q(plp) => [
-         q(5508),
+         q(5497),
          q(0),
          ],
       q(plq) => [
-         q(5509),
+         q(5498),
          q(0),
          ],
       q(plr) => [
-         q(5510),
+         q(5499),
          q(0),
          ],
       q(pls) => [
-         q(5511),
+         q(5500),
          q(0),
          ],
       q(plt) => [
-         q(5512),
+         q(5501),
          q(0),
          ],
       q(plu) => [
-         q(5513),
+         q(5502),
          q(0),
          ],
       q(plv) => [
-         q(5514),
+         q(5503),
          q(0),
          ],
       q(plw) => [
-         q(5515),
+         q(5504),
          q(0),
          ],
       q(ply) => [
-         q(5516),
+         q(5505),
          q(0),
          ],
       q(plz) => [
-         q(5517),
+         q(5506),
          q(0),
          ],
       q(pma) => [
-         q(5518),
+         q(5507),
          q(0),
          ],
       q(pmb) => [
-         q(5519),
+         q(5508),
          q(0),
          ],
       q(pmc) => [
-         q(5520),
+         q(5509),
          q(0),
          ],
       q(pmd) => [
-         q(5521),
+         q(5510),
          q(0),
          ],
       q(pme) => [
-         q(5522),
+         q(5511),
          q(0),
          ],
       q(pmf) => [
-         q(5523),
+         q(5512),
          q(0),
          ],
       q(pmh) => [
-         q(5524),
+         q(5513),
          q(0),
          ],
       q(pmi) => [
-         q(5525),
+         q(5514),
          q(0),
          ],
       q(pmj) => [
-         q(5526),
+         q(5515),
          q(0),
          ],
       q(pmk) => [
-         q(5527),
+         q(5516),
          q(0),
          ],
       q(pml) => [
-         q(5528),
+         q(5517),
          q(0),
          ],
       q(pmm) => [
-         q(5529),
+         q(5518),
          q(0),
          ],
       q(pmn) => [
-         q(5530),
+         q(5519),
          q(0),
          ],
       q(pmo) => [
-         q(5531),
+         q(5520),
          q(0),
          ],
       q(pmq) => [
-         q(5532),
+         q(5521),
          q(0),
          ],
       q(pmr) => [
-         q(5533),
+         q(5522),
          q(0),
          ],
       q(pms) => [
-         q(5534),
+         q(5523),
          q(0),
          ],
       q(pmt) => [
-         q(5535),
-         q(0),
-         ],
-      q(pmu) => [
-         q(5536),
+         q(5524),
          q(0),
          ],
       q(pmw) => [
-         q(5537),
+         q(5525),
          q(0),
          ],
       q(pmx) => [
-         q(5538),
+         q(5526),
          q(0),
          ],
       q(pmy) => [
-         q(5539),
+         q(5527),
          q(0),
          ],
       q(pmz) => [
-         q(5540),
+         q(5528),
          q(0),
          ],
       q(pna) => [
-         q(5541),
+         q(5529),
          q(0),
          ],
       q(pnb) => [
-         q(5542),
+         q(5530),
          q(0),
          ],
       q(pnc) => [
-         q(5543),
+         q(5531),
          q(0),
          ],
       q(pne) => [
-         q(5544),
+         q(5532),
          q(0),
          ],
       q(png) => [
-         q(5545),
+         q(5533),
          q(0),
          ],
       q(pnh) => [
-         q(5546),
+         q(5534),
          q(0),
          ],
       q(pni) => [
-         q(5547),
+         q(5535),
          q(0),
          ],
       q(pnj) => [
-         q(5548),
+         q(5536),
          q(0),
          ],
       q(pnk) => [
-         q(5549),
+         q(5537),
          q(0),
          ],
       q(pnl) => [
-         q(5550),
+         q(5538),
          q(0),
          ],
       q(pnm) => [
-         q(5551),
+         q(5539),
          q(0),
          ],
       q(pnn) => [
-         q(5552),
+         q(5540),
          q(0),
          ],
       q(pno) => [
-         q(5553),
+         q(5541),
          q(0),
          ],
       q(pnp) => [
-         q(5554),
+         q(5542),
          q(0),
          ],
       q(pnq) => [
-         q(5555),
+         q(5543),
          q(0),
          ],
       q(pnr) => [
-         q(5556),
+         q(5544),
          q(0),
          ],
       q(pns) => [
-         q(5557),
+         q(5545),
          q(0),
          ],
       q(pnt) => [
-         q(5558),
+         q(5546),
          q(0),
          ],
       q(pnu) => [
-         q(5559),
+         q(5547),
          q(0),
          ],
       q(pnv) => [
-         q(5560),
+         q(5548),
          q(0),
          ],
       q(pnw) => [
-         q(5561),
+         q(5549),
          q(0),
          ],
       q(pnx) => [
-         q(5562),
+         q(5550),
          q(0),
          ],
       q(pny) => [
-         q(5563),
+         q(5551),
          q(0),
          ],
       q(pnz) => [
-         q(5564),
+         q(5552),
          q(0),
          ],
       q(poc) => [
-         q(5565),
+         q(5553),
          q(0),
          ],
       q(pod) => [
-         q(5566),
+         q(5554),
          q(0),
          ],
       q(poe) => [
-         q(5567),
+         q(5555),
          q(0),
          ],
       q(pof) => [
-         q(5568),
+         q(5556),
          q(0),
          ],
       q(pog) => [
-         q(5569),
+         q(5557),
          q(0),
          ],
       q(poh) => [
-         q(5570),
+         q(5558),
          q(0),
          ],
       q(poi) => [
-         q(5571),
+         q(5559),
          q(0),
          ],
       q(pok) => [
-         q(5572),
+         q(5560),
          q(0),
          ],
       q(pol) => [
@@ -79930,7 +79848,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pom) => [
-         q(5573),
+         q(5561),
          q(0),
          ],
       q(pon) => [
@@ -79938,15 +79856,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(poo) => [
-         q(5574),
+         q(5562),
          q(0),
          ],
       q(pop) => [
-         q(5575),
+         q(5563),
          q(0),
          ],
       q(poq) => [
-         q(5576),
+         q(5564),
          q(0),
          ],
       q(por) => [
@@ -79954,27 +79872,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pos) => [
-         q(5577),
+         q(5565),
          q(0),
          ],
       q(pot) => [
-         q(5578),
+         q(5566),
          q(0),
          ],
       q(pov) => [
-         q(5579),
+         q(5567),
          q(0),
          ],
       q(pow) => [
-         q(5580),
+         q(5568),
          q(0),
          ],
       q(pox) => [
-         q(5581),
+         q(5569),
          q(0),
          ],
       q(poy) => [
-         q(5582),
+         q(5570),
          q(0),
          ],
       q(poz) => [
@@ -79982,59 +79900,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ppa) => [
-         q(5583),
+         q(5571),
          q(0),
          ],
       q(ppe) => [
-         q(5584),
+         q(5572),
          q(0),
          ],
       q(ppi) => [
-         q(5585),
+         q(5573),
          q(0),
          ],
       q(ppk) => [
-         q(5586),
+         q(5574),
          q(0),
          ],
       q(ppl) => [
-         q(5587),
+         q(5575),
          q(0),
          ],
       q(ppm) => [
-         q(5588),
+         q(5576),
          q(0),
          ],
       q(ppn) => [
-         q(5589),
+         q(5577),
          q(0),
          ],
       q(ppo) => [
-         q(5590),
+         q(5578),
          q(0),
          ],
       q(ppp) => [
-         q(5591),
+         q(5579),
          q(0),
          ],
       q(ppq) => [
-         q(5592),
+         q(5580),
          q(0),
          ],
       q(pps) => [
-         q(5593),
+         q(5581),
          q(0),
          ],
       q(ppt) => [
-         q(5594),
+         q(5582),
          q(0),
          ],
       q(ppu) => [
-         q(5595),
+         q(5583),
          q(0),
          ],
       q(pqa) => [
-         q(5596),
+         q(5584),
          q(0),
          ],
       q(pqe) => [
@@ -80042,7 +79960,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pqm) => [
-         q(5597),
+         q(5585),
          q(0),
          ],
       q(pqw) => [
@@ -80054,51 +79972,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(prb) => [
-         q(5598),
+         q(5586),
          q(0),
          ],
       q(prc) => [
-         q(5599),
+         q(5587),
          q(0),
          ],
       q(prd) => [
-         q(5600),
+         q(5588),
          q(0),
          ],
       q(pre) => [
-         q(5601),
+         q(5589),
          q(0),
          ],
       q(prf) => [
-         q(5602),
+         q(5590),
          q(0),
          ],
       q(prg) => [
-         q(5603),
+         q(5591),
          q(0),
          ],
       q(prh) => [
-         q(5604),
+         q(5592),
          q(0),
          ],
       q(pri) => [
-         q(5605),
+         q(5593),
          q(0),
          ],
       q(prk) => [
-         q(5606),
+         q(5594),
          q(0),
          ],
       q(prl) => [
-         q(5607),
+         q(5595),
          q(0),
          ],
       q(prm) => [
-         q(5608),
+         q(5596),
          q(0),
          ],
       q(prn) => [
-         q(5609),
+         q(5597),
          q(0),
          ],
       q(pro) => [
@@ -80106,231 +80024,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(prp) => [
-         q(5610),
+         q(5598),
          q(0),
          ],
       q(prq) => [
-         q(5611),
+         q(5599),
          q(0),
          ],
       q(prr) => [
-         q(5612),
+         q(5600),
          q(0),
          ],
       q(prs) => [
-         q(5613),
+         q(5601),
          q(0),
          ],
       q(prt) => [
-         q(5614),
+         q(5602),
          q(0),
          ],
       q(pru) => [
-         q(5615),
+         q(5603),
          q(0),
          ],
       q(prw) => [
-         q(5616),
+         q(5604),
          q(0),
          ],
       q(prx) => [
-         q(5617),
+         q(5605),
          q(0),
          ],
       q(pry) => [
-         q(5618),
+         q(5606),
          q(0),
          ],
       q(prz) => [
-         q(5619),
+         q(5607),
          q(0),
          ],
       q(psa) => [
-         q(5620),
+         q(5608),
          q(0),
          ],
       q(psc) => [
-         q(5621),
+         q(5609),
          q(0),
          ],
       q(psd) => [
-         q(5622),
+         q(5610),
          q(0),
          ],
       q(pse) => [
-         q(5623),
+         q(5611),
          q(0),
          ],
       q(psg) => [
-         q(5624),
+         q(5612),
          q(0),
          ],
       q(psh) => [
-         q(5625),
+         q(5613),
          q(0),
          ],
       q(psi) => [
-         q(5626),
+         q(5614),
          q(0),
          ],
       q(psl) => [
-         q(5627),
+         q(5615),
          q(0),
          ],
       q(psm) => [
-         q(5628),
+         q(5616),
          q(0),
          ],
       q(psn) => [
-         q(5629),
+         q(5617),
          q(0),
          ],
       q(pso) => [
-         q(5630),
+         q(5618),
          q(0),
          ],
       q(psp) => [
-         q(5631),
+         q(5619),
          q(0),
          ],
       q(psq) => [
-         q(5632),
+         q(5620),
          q(0),
          ],
       q(psr) => [
-         q(5633),
+         q(5621),
          q(0),
          ],
       q(pss) => [
-         q(5634),
+         q(5622),
          q(0),
          ],
       q(pst) => [
-         q(5635),
+         q(5623),
          q(0),
          ],
       q(psu) => [
-         q(5636),
+         q(5624),
          q(0),
          ],
       q(psw) => [
-         q(5637),
+         q(5625),
          q(0),
          ],
       q(psy) => [
-         q(5638),
+         q(5626),
          q(0),
          ],
       q(pta) => [
-         q(5639),
+         q(5627),
          q(0),
          ],
       q(pth) => [
-         q(5640),
+         q(5628),
          q(0),
          ],
       q(pti) => [
-         q(5641),
+         q(5629),
          q(0),
          ],
       q(ptn) => [
-         q(5642),
+         q(5630),
          q(0),
          ],
       q(pto) => [
-         q(5643),
+         q(5631),
          q(0),
          ],
       q(ptp) => [
-         q(5644),
+         q(5632),
          q(0),
          ],
       q(ptq) => [
-         q(5645),
+         q(5633),
          q(0),
          ],
       q(ptr) => [
-         q(5646),
+         q(5634),
          q(0),
          ],
       q(ptt) => [
-         q(5647),
+         q(5635),
          q(0),
          ],
       q(ptu) => [
-         q(5648),
+         q(5636),
          q(0),
          ],
       q(ptv) => [
-         q(5649),
+         q(5637),
          q(0),
          ],
       q(ptw) => [
-         q(5650),
+         q(5638),
          q(0),
          ],
       q(pty) => [
-         q(5651),
+         q(5639),
          q(0),
          ],
       q(pua) => [
-         q(5652),
+         q(5640),
          q(0),
          ],
       q(pub) => [
-         q(5653),
+         q(5641),
          q(0),
          ],
       q(puc) => [
-         q(5654),
+         q(5642),
          q(0),
          ],
       q(pud) => [
-         q(5655),
+         q(5643),
          q(0),
          ],
       q(pue) => [
-         q(5656),
+         q(5644),
          q(0),
          ],
       q(puf) => [
-         q(5657),
+         q(5645),
          q(0),
          ],
       q(pug) => [
-         q(5658),
+         q(5646),
          q(0),
          ],
       q(pui) => [
-         q(5659),
+         q(5647),
          q(0),
          ],
       q(puj) => [
-         q(5660),
+         q(5648),
          q(0),
          ],
       q(puk) => [
-         q(5661),
+         q(5649),
          q(0),
          ],
       q(pum) => [
-         q(5662),
+         q(5650),
          q(0),
          ],
       q(puo) => [
-         q(5663),
+         q(5651),
          q(0),
          ],
       q(pup) => [
-         q(5664),
+         q(5652),
          q(0),
          ],
       q(puq) => [
-         q(5665),
+         q(5653),
          q(0),
          ],
       q(pur) => [
-         q(5666),
+         q(5654),
          q(0),
          ],
       q(pus) => [
@@ -80338,95 +80256,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(put) => [
-         q(5667),
+         q(5655),
          q(0),
          ],
       q(puu) => [
-         q(5668),
+         q(5656),
          q(0),
          ],
       q(puw) => [
-         q(5669),
+         q(5657),
          q(0),
          ],
       q(pux) => [
-         q(5670),
+         q(5658),
          q(0),
          ],
       q(puy) => [
-         q(5671),
+         q(5659),
          q(0),
          ],
       q(pwa) => [
-         q(5672),
+         q(5660),
          q(0),
          ],
       q(pwb) => [
-         q(5673),
+         q(5661),
          q(0),
          ],
       q(pwg) => [
-         q(5674),
+         q(5662),
          q(0),
          ],
       q(pwi) => [
-         q(5675),
+         q(5663),
          q(0),
          ],
       q(pwm) => [
-         q(5676),
+         q(5664),
          q(0),
          ],
       q(pwn) => [
-         q(5677),
+         q(5665),
          q(0),
          ],
       q(pwo) => [
-         q(5678),
+         q(5666),
          q(0),
          ],
       q(pwr) => [
-         q(5679),
+         q(5667),
          q(0),
          ],
       q(pww) => [
-         q(5680),
+         q(5668),
          q(0),
          ],
       q(pxm) => [
-         q(5681),
+         q(5669),
          q(0),
          ],
       q(pye) => [
-         q(5682),
+         q(5670),
          q(0),
          ],
       q(pym) => [
-         q(5683),
+         q(5671),
          q(0),
          ],
       q(pyn) => [
-         q(5684),
+         q(5672),
          q(0),
          ],
       q(pys) => [
-         q(5685),
+         q(5673),
          q(0),
          ],
       q(pyu) => [
-         q(5686),
+         q(5674),
          q(0),
          ],
       q(pyx) => [
-         q(5687),
+         q(5675),
          q(0),
          ],
       q(pyy) => [
-         q(5688),
+         q(5676),
          q(0),
          ],
       q(pzn) => [
-         q(5689),
+         q(5677),
          q(0),
          ],
       q(qtz) => [
@@ -80434,19 +80352,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(qua) => [
-         q(5690),
+         q(5678),
          q(0),
          ],
       q(qub) => [
-         q(5691),
+         q(5679),
          q(0),
          ],
       q(quc) => [
-         q(5692),
+         q(5680),
          q(0),
          ],
       q(qud) => [
-         q(5693),
+         q(5681),
          q(0),
          ],
       q(que) => [
@@ -80454,139 +80372,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(quf) => [
-         q(5694),
+         q(5682),
          q(0),
          ],
       q(qug) => [
-         q(5695),
+         q(5683),
          q(0),
          ],
       q(quh) => [
-         q(5696),
+         q(5684),
          q(0),
          ],
       q(qui) => [
-         q(5697),
+         q(5685),
          q(0),
          ],
       q(quk) => [
-         q(5698),
+         q(5686),
          q(0),
          ],
       q(qul) => [
-         q(5699),
+         q(5687),
          q(0),
          ],
       q(qum) => [
-         q(5700),
+         q(5688),
          q(0),
          ],
       q(qun) => [
-         q(5701),
+         q(5689),
          q(0),
          ],
       q(qup) => [
-         q(5702),
+         q(5690),
          q(0),
          ],
       q(quq) => [
-         q(5703),
+         q(5691),
          q(0),
          ],
       q(qur) => [
-         q(5704),
+         q(5692),
          q(0),
          ],
       q(qus) => [
-         q(5705),
+         q(5693),
          q(0),
          ],
       q(quv) => [
-         q(5706),
+         q(5694),
          q(0),
          ],
       q(quw) => [
-         q(5707),
+         q(5695),
          q(0),
          ],
       q(qux) => [
-         q(5708),
+         q(5696),
          q(0),
          ],
       q(quy) => [
-         q(5709),
+         q(5697),
          q(0),
          ],
       q(quz) => [
-         q(5710),
+         q(5698),
          q(0),
          ],
       q(qva) => [
-         q(5711),
+         q(5699),
          q(0),
          ],
       q(qvc) => [
-         q(5712),
+         q(5700),
          q(0),
          ],
       q(qve) => [
-         q(5713),
+         q(5701),
          q(0),
          ],
       q(qvh) => [
-         q(5714),
+         q(5702),
          q(0),
          ],
       q(qvi) => [
-         q(5715),
+         q(5703),
          q(0),
          ],
       q(qvj) => [
-         q(5716),
+         q(5704),
          q(0),
          ],
       q(qvl) => [
-         q(5717),
+         q(5705),
          q(0),
          ],
       q(qvm) => [
-         q(5718),
+         q(5706),
          q(0),
          ],
       q(qvn) => [
-         q(5719),
+         q(5707),
          q(0),
          ],
       q(qvo) => [
-         q(5720),
+         q(5708),
          q(0),
          ],
       q(qvp) => [
-         q(5721),
+         q(5709),
          q(0),
          ],
       q(qvs) => [
-         q(5722),
+         q(5710),
          q(0),
          ],
       q(qvw) => [
-         q(5723),
+         q(5711),
          q(0),
          ],
       q(qvy) => [
-         q(5724),
+         q(5712),
          q(0),
          ],
       q(qvz) => [
-         q(5725),
+         q(5713),
          q(0),
          ],
       q(qwa) => [
-         q(5726),
+         q(5714),
          q(0),
          ],
       q(qwc) => [
-         q(5727),
+         q(5715),
          q(0),
          ],
       q(qwe) => [
@@ -80594,111 +80512,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(qwh) => [
-         q(5728),
+         q(5716),
          q(0),
          ],
       q(qwm) => [
-         q(5729),
+         q(5717),
          q(0),
          ],
       q(qws) => [
-         q(5730),
+         q(5718),
          q(0),
          ],
       q(qwt) => [
-         q(5731),
+         q(5719),
          q(0),
          ],
       q(qxa) => [
-         q(5732),
+         q(5720),
          q(0),
          ],
       q(qxc) => [
-         q(5733),
+         q(5721),
          q(0),
          ],
       q(qxh) => [
-         q(5734),
+         q(5722),
          q(0),
          ],
       q(qxl) => [
-         q(5735),
+         q(5723),
          q(0),
          ],
       q(qxn) => [
-         q(5736),
+         q(5724),
          q(0),
          ],
       q(qxo) => [
-         q(5737),
+         q(5725),
          q(0),
          ],
       q(qxp) => [
-         q(5738),
+         q(5726),
          q(0),
          ],
       q(qxq) => [
-         q(5739),
+         q(5727),
          q(0),
          ],
       q(qxr) => [
-         q(5740),
+         q(5728),
          q(0),
          ],
       q(qxs) => [
-         q(5741),
+         q(5729),
          q(0),
          ],
       q(qxt) => [
-         q(5742),
+         q(5730),
          q(0),
          ],
       q(qxu) => [
-         q(5743),
+         q(5731),
          q(0),
          ],
       q(qxw) => [
-         q(5744),
+         q(5732),
          q(0),
          ],
       q(qya) => [
-         q(5745),
+         q(5733),
          q(0),
          ],
       q(qyp) => [
-         q(5746),
+         q(5734),
          q(0),
          ],
       q(raa) => [
-         q(5747),
+         q(5735),
          q(0),
          ],
       q(rab) => [
-         q(5748),
+         q(5736),
          q(0),
          ],
       q(rac) => [
-         q(5749),
+         q(5737),
          q(0),
          ],
       q(rad) => [
-         q(5750),
+         q(5738),
          q(0),
          ],
       q(raf) => [
-         q(5751),
+         q(5739),
          q(0),
          ],
       q(rag) => [
-         q(5752),
+         q(5740),
          q(0),
          ],
       q(rah) => [
-         q(5753),
+         q(5741),
          q(0),
          ],
       q(rai) => [
-         q(5754),
+         q(5742),
          q(0),
          ],
       q(raj) => [
@@ -80706,23 +80624,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(rak) => [
-         q(5755),
+         q(5743),
          q(0),
          ],
       q(ral) => [
-         q(5756),
+         q(5744),
          q(0),
          ],
       q(ram) => [
-         q(5757),
+         q(5745),
          q(0),
          ],
       q(ran) => [
-         q(5758),
+         q(5746),
          q(0),
          ],
       q(rao) => [
-         q(5759),
+         q(5747),
          q(0),
          ],
       q(rap) => [
@@ -80730,7 +80648,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(raq) => [
-         q(5760),
+         q(5748),
          q(0),
          ],
       q(rar) => [
@@ -80738,351 +80656,351 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ras) => [
-         q(5761),
+         q(5749),
          q(0),
          ],
       q(rat) => [
-         q(5762),
+         q(5750),
          q(0),
          ],
       q(rau) => [
-         q(5763),
+         q(5751),
          q(0),
          ],
       q(rav) => [
-         q(5764),
+         q(5752),
          q(0),
          ],
       q(raw) => [
-         q(5765),
+         q(5753),
          q(0),
          ],
       q(rax) => [
-         q(5766),
+         q(5754),
          q(0),
          ],
       q(ray) => [
-         q(5767),
+         q(5755),
          q(0),
          ],
       q(raz) => [
-         q(5768),
+         q(5756),
          q(0),
          ],
       q(rbb) => [
-         q(5769),
+         q(5757),
          q(0),
          ],
       q(rbk) => [
-         q(5770),
+         q(5758),
          q(0),
          ],
       q(rbl) => [
-         q(5771),
+         q(5759),
          q(0),
          ],
       q(rbp) => [
-         q(5772),
+         q(5760),
          q(0),
          ],
       q(rcf) => [
-         q(5773),
+         q(5761),
          q(0),
          ],
       q(rdb) => [
-         q(5774),
+         q(5762),
          q(0),
          ],
       q(rea) => [
-         q(5775),
+         q(5763),
          q(0),
          ],
       q(reb) => [
-         q(5776),
+         q(5764),
          q(0),
          ],
       q(ree) => [
-         q(5777),
+         q(5765),
          q(0),
          ],
       q(reg) => [
-         q(5778),
+         q(5766),
          q(0),
          ],
       q(rei) => [
-         q(5779),
+         q(5767),
          q(0),
          ],
       q(rej) => [
-         q(5780),
+         q(5768),
          q(0),
          ],
       q(rel) => [
-         q(5781),
+         q(5769),
          q(0),
          ],
       q(rem) => [
-         q(5782),
+         q(5770),
          q(0),
          ],
       q(ren) => [
-         q(5783),
+         q(5771),
          q(0),
          ],
       q(rer) => [
-         q(5784),
+         q(5772),
          q(0),
          ],
       q(res) => [
-         q(5785),
+         q(5773),
          q(0),
          ],
       q(ret) => [
-         q(5786),
+         q(5774),
          q(0),
          ],
       q(rey) => [
-         q(5787),
+         q(5775),
          q(0),
          ],
       q(rga) => [
-         q(5788),
+         q(5776),
          q(0),
          ],
       q(rge) => [
-         q(5789),
+         q(5777),
          q(0),
          ],
       q(rgk) => [
-         q(5790),
+         q(5778),
          q(0),
          ],
       q(rgn) => [
-         q(5791),
+         q(5779),
          q(0),
          ],
       q(rgr) => [
-         q(5792),
+         q(5780),
          q(0),
          ],
       q(rgs) => [
-         q(5793),
+         q(5781),
          q(0),
          ],
       q(rgu) => [
-         q(5794),
+         q(5782),
          q(0),
          ],
       q(rhg) => [
-         q(5795),
+         q(5783),
          q(0),
          ],
       q(rhp) => [
-         q(5796),
+         q(5784),
          q(0),
          ],
       q(ria) => [
-         q(5797),
+         q(5785),
          q(0),
          ],
       q(rie) => [
-         q(5798),
+         q(5786),
          q(0),
          ],
       q(rif) => [
-         q(5799),
+         q(5787),
          q(0),
          ],
       q(ril) => [
-         q(5800),
+         q(5788),
          q(0),
          ],
       q(rim) => [
-         q(5801),
+         q(5789),
          q(0),
          ],
       q(rin) => [
-         q(5802),
+         q(5790),
          q(0),
          ],
       q(rir) => [
-         q(5803),
+         q(5791),
          q(0),
          ],
       q(rit) => [
-         q(5804),
+         q(5792),
          q(0),
          ],
       q(riu) => [
-         q(5805),
+         q(5793),
          q(0),
          ],
       q(rjg) => [
-         q(5806),
+         q(5794),
          q(0),
          ],
       q(rji) => [
-         q(5807),
+         q(5795),
          q(0),
          ],
       q(rjs) => [
-         q(5808),
+         q(5796),
          q(0),
          ],
       q(rka) => [
-         q(5809),
+         q(5797),
          q(0),
          ],
       q(rkb) => [
-         q(5810),
+         q(5798),
          q(0),
          ],
       q(rkh) => [
-         q(5811),
+         q(5799),
          q(0),
          ],
       q(rki) => [
-         q(5812),
+         q(5800),
          q(0),
          ],
       q(rkm) => [
-         q(5813),
+         q(5801),
          q(0),
          ],
       q(rkt) => [
-         q(5814),
+         q(5802),
          q(0),
          ],
       q(rkw) => [
-         q(5815),
+         q(5803),
          q(0),
          ],
       q(rma) => [
-         q(5816),
+         q(5804),
          q(0),
          ],
       q(rmb) => [
-         q(5817),
+         q(5805),
          q(0),
          ],
       q(rmc) => [
-         q(5818),
+         q(5806),
          q(0),
          ],
       q(rmd) => [
-         q(5819),
+         q(5807),
          q(0),
          ],
       q(rme) => [
-         q(5820),
+         q(5808),
          q(0),
          ],
       q(rmf) => [
-         q(5821),
+         q(5809),
          q(0),
          ],
       q(rmg) => [
-         q(5822),
+         q(5810),
          q(0),
          ],
       q(rmh) => [
-         q(5823),
+         q(5811),
          q(0),
          ],
       q(rmi) => [
-         q(5824),
+         q(5812),
          q(0),
          ],
       q(rmk) => [
-         q(5825),
+         q(5813),
          q(0),
          ],
       q(rml) => [
-         q(5826),
+         q(5814),
          q(0),
          ],
       q(rmm) => [
-         q(5827),
+         q(5815),
          q(0),
          ],
       q(rmn) => [
-         q(5828),
+         q(5816),
          q(0),
          ],
       q(rmo) => [
-         q(5829),
+         q(5817),
          q(0),
          ],
       q(rmp) => [
-         q(5830),
+         q(5818),
          q(0),
          ],
       q(rmq) => [
-         q(5831),
+         q(5819),
          q(0),
          ],
       q(rms) => [
-         q(5832),
+         q(5820),
          q(0),
          ],
       q(rmt) => [
-         q(5833),
+         q(5821),
          q(0),
          ],
       q(rmu) => [
-         q(5834),
+         q(5822),
          q(0),
          ],
       q(rmv) => [
-         q(5835),
+         q(5823),
          q(0),
          ],
       q(rmw) => [
-         q(5836),
+         q(5824),
          q(0),
          ],
       q(rmx) => [
-         q(5837),
+         q(5825),
          q(0),
          ],
       q(rmy) => [
-         q(5838),
+         q(5826),
          q(0),
          ],
       q(rmz) => [
-         q(5839),
+         q(5827),
          q(0),
          ],
       q(rna) => [
-         q(5840),
+         q(5828),
          q(0),
          ],
       q(rnd) => [
-         q(5841),
+         q(5829),
          q(0),
          ],
       q(rng) => [
-         q(5842),
+         q(5830),
          q(0),
          ],
       q(rnl) => [
-         q(5843),
+         q(5831),
          q(0),
          ],
       q(rnn) => [
-         q(5844),
+         q(5832),
          q(0),
          ],
       q(rnp) => [
-         q(5845),
+         q(5833),
          q(0),
          ],
       q(rnr) => [
-         q(5846),
+         q(5834),
          q(0),
          ],
       q(rnw) => [
-         q(5847),
+         q(5835),
          q(0),
          ],
       q(roa) => [
@@ -81090,27 +81008,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(rob) => [
-         q(5848),
+         q(5836),
          q(0),
          ],
       q(roc) => [
-         q(5849),
+         q(5837),
          q(0),
          ],
       q(rod) => [
-         q(5850),
+         q(5838),
          q(0),
          ],
       q(roe) => [
-         q(5851),
+         q(5839),
          q(0),
          ],
       q(rof) => [
-         q(5852),
+         q(5840),
          q(0),
          ],
       q(rog) => [
-         q(5853),
+         q(5841),
          q(0),
          ],
       q(roh) => [
@@ -81118,7 +81036,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(rol) => [
-         q(5854),
+         q(5842),
          q(0),
          ],
       q(rom) => [
@@ -81126,103 +81044,107 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(roo) => [
-         q(5855),
+         q(5843),
          q(0),
          ],
       q(rop) => [
-         q(5856),
+         q(5844),
          q(0),
          ],
       q(ror) => [
-         q(5857),
+         q(5845),
          q(0),
          ],
       q(rou) => [
-         q(5858),
+         q(5846),
          q(0),
          ],
       q(row) => [
-         q(5859),
+         q(5847),
          q(0),
          ],
       q(rpn) => [
-         q(5860),
+         q(5848),
          q(0),
          ],
       q(rpt) => [
-         q(5861),
+         q(5849),
          q(0),
          ],
       q(rri) => [
-         q(5862),
+         q(5850),
          q(0),
          ],
       q(rro) => [
-         q(5863),
+         q(5851),
          q(0),
          ],
       q(rrt) => [
-         q(5864),
+         q(5852),
          q(0),
          ],
       q(rsb) => [
-         q(5865),
+         q(5853),
          q(0),
          ],
       q(rsi) => [
-         q(5866),
+         q(5854),
          q(0),
          ],
       q(rsl) => [
-         q(5867),
+         q(5855),
          q(0),
          ],
       q(rtc) => [
-         q(5868),
+         q(5856),
          q(0),
          ],
       q(rth) => [
-         q(5869),
+         q(5857),
          q(0),
          ],
       q(rtm) => [
-         q(5870),
+         q(5858),
+         q(0),
+         ],
+      q(rts) => [
+         q(5859),
          q(0),
          ],
       q(rtw) => [
-         q(5871),
+         q(5860),
          q(0),
          ],
       q(rub) => [
-         q(5872),
+         q(5861),
          q(0),
          ],
       q(ruc) => [
-         q(5873),
+         q(5862),
          q(0),
          ],
       q(rue) => [
-         q(5874),
+         q(5863),
          q(0),
          ],
       q(ruf) => [
-         q(5875),
+         q(5864),
          q(0),
          ],
       q(rug) => [
-         q(5876),
+         q(5865),
          q(0),
          ],
       q(ruh) => [
-         q(5877),
+         q(5866),
          q(0),
          ],
       q(rui) => [
-         q(5878),
+         q(5867),
          q(0),
          ],
       q(ruk) => [
-         q(5879),
+         q(5868),
          q(0),
          ],
       q(rum) => [
@@ -81234,7 +81156,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ruo) => [
-         q(5880),
+         q(5869),
          q(0),
          ],
       q(rup) => [
@@ -81242,7 +81164,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(2),
          ],
       q(ruq) => [
-         q(5881),
+         q(5870),
          q(0),
          ],
       q(rus) => [
@@ -81250,71 +81172,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(rut) => [
-         q(5882),
+         q(5871),
          q(0),
          ],
       q(ruu) => [
-         q(5883),
+         q(5872),
          q(0),
          ],
       q(ruy) => [
-         q(5884),
+         q(5873),
          q(0),
          ],
       q(ruz) => [
-         q(5885),
+         q(5874),
          q(0),
          ],
       q(rwa) => [
-         q(5886),
+         q(5875),
          q(0),
          ],
       q(rwk) => [
-         q(5887),
+         q(5876),
          q(0),
          ],
       q(rwm) => [
-         q(5888),
+         q(5877),
          q(0),
          ],
       q(rwo) => [
-         q(5889),
+         q(5878),
          q(0),
          ],
       q(rwr) => [
-         q(5890),
+         q(5879),
          q(0),
          ],
       q(rxd) => [
-         q(5891),
+         q(5880),
          q(0),
          ],
       q(rxw) => [
-         q(5892),
+         q(5881),
          q(0),
          ],
       q(ryn) => [
-         q(5893),
+         q(5882),
          q(0),
          ],
       q(rys) => [
-         q(5894),
+         q(5883),
          q(0),
          ],
       q(ryu) => [
-         q(5895),
+         q(5884),
          q(0),
          ],
       q(saa) => [
-         q(5896),
+         q(5885),
          q(0),
          ],
       q(sab) => [
-         q(5897),
+         q(5886),
          q(0),
          ],
       q(sac) => [
-         q(5898),
+         q(5887),
          q(0),
          ],
       q(sad) => [
@@ -81322,11 +81244,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sae) => [
-         q(5899),
+         q(5888),
          q(0),
          ],
       q(saf) => [
-         q(5900),
+         q(5889),
          q(0),
          ],
       q(sag) => [
@@ -81342,11 +81264,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(saj) => [
-         q(5901),
+         q(5890),
          q(0),
          ],
       q(sak) => [
-         q(5902),
+         q(5891),
          q(0),
          ],
       q(sal) => [
@@ -81362,15 +81284,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sao) => [
-         q(5903),
+         q(5892),
          q(0),
          ],
       q(saq) => [
-         q(5904),
+         q(5893),
          q(0),
          ],
       q(sar) => [
-         q(5905),
+         q(5894),
          q(0),
          ],
       q(sas) => [
@@ -81382,163 +81304,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sau) => [
-         q(5906),
+         q(5895),
          q(0),
          ],
       q(sav) => [
-         q(5907),
+         q(5896),
          q(0),
          ],
       q(saw) => [
-         q(5908),
+         q(5897),
          q(0),
          ],
       q(sax) => [
-         q(5909),
+         q(5898),
          q(0),
          ],
       q(say) => [
-         q(5910),
+         q(5899),
          q(0),
          ],
       q(saz) => [
-         q(5911),
+         q(5900),
          q(0),
          ],
       q(sba) => [
-         q(5912),
+         q(5901),
          q(0),
          ],
       q(sbb) => [
-         q(5913),
+         q(5902),
          q(0),
          ],
       q(sbc) => [
-         q(5914),
+         q(5903),
          q(0),
          ],
       q(sbd) => [
-         q(5915),
+         q(5904),
          q(0),
          ],
       q(sbe) => [
-         q(5916),
+         q(5905),
          q(0),
          ],
       q(sbf) => [
-         q(5917),
+         q(5906),
          q(0),
          ],
       q(sbg) => [
-         q(5918),
+         q(5907),
          q(0),
          ],
       q(sbh) => [
-         q(5919),
+         q(5908),
          q(0),
          ],
       q(sbi) => [
-         q(5920),
+         q(5909),
          q(0),
          ],
       q(sbj) => [
-         q(5921),
+         q(5910),
          q(0),
          ],
       q(sbk) => [
-         q(5922),
+         q(5911),
          q(0),
          ],
       q(sbl) => [
-         q(5923),
+         q(5912),
          q(0),
          ],
       q(sbm) => [
-         q(5924),
+         q(5913),
          q(0),
          ],
       q(sbn) => [
-         q(5925),
+         q(5914),
          q(0),
          ],
       q(sbo) => [
-         q(5926),
+         q(5915),
          q(0),
          ],
       q(sbp) => [
-         q(5927),
+         q(5916),
          q(0),
          ],
       q(sbq) => [
-         q(5928),
+         q(5917),
          q(0),
          ],
       q(sbr) => [
-         q(5929),
+         q(5918),
          q(0),
          ],
       q(sbs) => [
-         q(5930),
+         q(5919),
          q(0),
          ],
       q(sbt) => [
-         q(5931),
+         q(5920),
          q(0),
          ],
       q(sbu) => [
-         q(5932),
+         q(5921),
          q(0),
          ],
       q(sbv) => [
-         q(5933),
+         q(5922),
          q(0),
          ],
       q(sbw) => [
-         q(5934),
+         q(5923),
          q(0),
          ],
       q(sbx) => [
-         q(5935),
+         q(5924),
          q(0),
          ],
       q(sby) => [
-         q(5936),
+         q(5925),
          q(0),
          ],
       q(sbz) => [
-         q(5937),
+         q(5926),
          q(0),
          ],
       q(scb) => [
-         q(5938),
+         q(5927),
          q(0),
          ],
       q(sce) => [
-         q(5939),
+         q(5928),
          q(0),
          ],
       q(scf) => [
-         q(5940),
+         q(5929),
          q(0),
          ],
       q(scg) => [
-         q(5941),
+         q(5930),
          q(0),
          ],
       q(sch) => [
-         q(5942),
+         q(5931),
          q(0),
          ],
       q(sci) => [
-         q(5943),
+         q(5932),
          q(0),
          ],
       q(sck) => [
-         q(5944),
+         q(5933),
          q(0),
          ],
       q(scl) => [
-         q(5945),
+         q(5934),
          q(0),
          ],
       q(scn) => [
@@ -81550,103 +81472,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(scp) => [
-         q(5946),
+         q(5935),
          q(0),
          ],
       q(scq) => [
-         q(5947),
+         q(5936),
          q(0),
          ],
       q(scs) => [
-         q(5948),
+         q(5937),
          q(0),
          ],
       q(scu) => [
-         q(5949),
+         q(5938),
          q(0),
          ],
       q(scv) => [
-         q(5950),
+         q(5939),
          q(0),
          ],
       q(scw) => [
-         q(5951),
+         q(5940),
          q(0),
          ],
       q(scx) => [
-         q(5952),
+         q(5941),
          q(0),
          ],
       q(sda) => [
-         q(5953),
+         q(5942),
          q(0),
          ],
       q(sdb) => [
-         q(5954),
+         q(5943),
          q(0),
          ],
       q(sdc) => [
-         q(5955),
+         q(5944),
          q(0),
          ],
       q(sde) => [
-         q(5956),
+         q(5945),
          q(0),
          ],
       q(sdf) => [
-         q(5957),
+         q(5946),
          q(0),
          ],
       q(sdg) => [
-         q(5958),
+         q(5947),
          q(0),
          ],
       q(sdh) => [
-         q(5959),
+         q(5948),
          q(0),
          ],
       q(sdj) => [
-         q(5960),
+         q(5949),
          q(0),
          ],
       q(sdk) => [
-         q(5961),
+         q(5950),
          q(0),
          ],
       q(sdl) => [
-         q(5962),
+         q(5951),
          q(0),
          ],
       q(sdm) => [
-         q(5963),
+         q(5952),
          q(0),
          ],
       q(sdn) => [
-         q(5964),
+         q(5953),
          q(0),
          ],
       q(sdo) => [
-         q(5965),
+         q(5954),
          q(0),
          ],
       q(sdp) => [
-         q(5966),
+         q(5955),
          q(0),
          ],
       q(sdr) => [
-         q(5967),
+         q(5956),
          q(0),
          ],
       q(sds) => [
-         q(5968),
+         q(5957),
          q(0),
          ],
       q(sdt) => [
-         q(5969),
+         q(5958),
          q(0),
          ],
       q(sdu) => [
-         q(5970),
+         q(5959),
          q(0),
          ],
       q(sdv) => [
@@ -81654,55 +81576,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sdx) => [
-         q(5971),
+         q(5960),
          q(0),
          ],
       q(sdz) => [
-         q(5972),
+         q(5961),
          q(0),
          ],
       q(sea) => [
-         q(5973),
+         q(5962),
          q(0),
          ],
       q(seb) => [
-         q(5974),
+         q(5963),
          q(0),
          ],
       q(sec) => [
-         q(5975),
+         q(5964),
          q(0),
          ],
       q(sed) => [
-         q(5976),
+         q(5965),
          q(0),
          ],
       q(see) => [
-         q(5977),
+         q(5966),
          q(0),
          ],
       q(sef) => [
-         q(5978),
+         q(5967),
          q(0),
          ],
       q(seg) => [
-         q(5979),
+         q(5968),
          q(0),
          ],
       q(seh) => [
-         q(5980),
+         q(5969),
          q(0),
          ],
       q(sei) => [
-         q(5981),
+         q(5970),
          q(0),
          ],
       q(sej) => [
-         q(5982),
+         q(5971),
          q(0),
          ],
       q(sek) => [
-         q(5983),
+         q(5972),
          q(0),
          ],
       q(sel) => [
@@ -81714,71 +81636,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sen) => [
-         q(5984),
+         q(5973),
          q(0),
          ],
       q(seo) => [
-         q(5985),
+         q(5974),
          q(0),
          ],
       q(sep) => [
-         q(5986),
+         q(5975),
          q(0),
          ],
       q(seq) => [
-         q(5987),
+         q(5976),
          q(0),
          ],
       q(ser) => [
-         q(5988),
+         q(5977),
          q(0),
          ],
       q(ses) => [
-         q(5989),
+         q(5978),
          q(0),
          ],
       q(set) => [
-         q(5990),
+         q(5979),
          q(0),
          ],
       q(seu) => [
-         q(5991),
+         q(5980),
          q(0),
          ],
       q(sev) => [
-         q(5992),
+         q(5981),
          q(0),
          ],
       q(sew) => [
-         q(5993),
+         q(5982),
          q(0),
          ],
       q(sey) => [
-         q(5994),
+         q(5983),
          q(0),
          ],
       q(sez) => [
-         q(5995),
+         q(5984),
          q(0),
          ],
       q(sfb) => [
-         q(5996),
+         q(5985),
          q(0),
          ],
       q(sfe) => [
-         q(5997),
+         q(5986),
          q(0),
          ],
       q(sfm) => [
-         q(5998),
+         q(5987),
          q(0),
          ],
       q(sfs) => [
-         q(5999),
+         q(5988),
          q(0),
          ],
       q(sfw) => [
-         q(6000),
+         q(5989),
          q(0),
          ],
       q(sga) => [
@@ -81786,135 +81708,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(sgb) => [
-         q(6001),
+         q(5990),
          q(0),
          ],
       q(sgc) => [
-         q(6002),
+         q(5991),
          q(0),
          ],
       q(sgd) => [
-         q(6003),
+         q(5992),
          q(0),
          ],
       q(sge) => [
-         q(6004),
+         q(5993),
          q(0),
          ],
       q(sgg) => [
-         q(6005),
+         q(5994),
          q(0),
          ],
       q(sgh) => [
-         q(6006),
+         q(5995),
          q(0),
          ],
       q(sgi) => [
-         q(6007),
+         q(5996),
          q(0),
          ],
       q(sgj) => [
-         q(6008),
+         q(5997),
          q(0),
          ],
       q(sgk) => [
-         q(6009),
+         q(5998),
          q(0),
          ],
       q(sgm) => [
-         q(6010),
+         q(5999),
          q(0),
          ],
       q(sgn) => [
          q(0378),
          q(0),
          ],
-      q(sgo) => [
-         q(6011),
-         q(0),
-         ],
       q(sgp) => [
-         q(6012),
+         q(6000),
          q(0),
          ],
       q(sgr) => [
-         q(6013),
+         q(6001),
          q(0),
          ],
       q(sgs) => [
-         q(6014),
+         q(6002),
          q(0),
          ],
       q(sgt) => [
-         q(6015),
+         q(6003),
          q(0),
          ],
       q(sgu) => [
-         q(6016),
+         q(6004),
          q(0),
          ],
       q(sgw) => [
-         q(6017),
+         q(6005),
          q(0),
          ],
       q(sgx) => [
-         q(6018),
+         q(6006),
          q(0),
          ],
       q(sgy) => [
-         q(6019),
+         q(6007),
          q(0),
          ],
       q(sgz) => [
-         q(6020),
+         q(6008),
          q(0),
          ],
       q(sha) => [
-         q(6021),
+         q(6009),
          q(0),
          ],
       q(shb) => [
-         q(6022),
+         q(6010),
          q(0),
          ],
       q(shc) => [
-         q(6023),
+         q(6011),
          q(0),
          ],
       q(shd) => [
-         q(6024),
+         q(6012),
          q(0),
          ],
       q(she) => [
-         q(6025),
+         q(6013),
          q(0),
          ],
       q(shg) => [
-         q(6026),
+         q(6014),
          q(0),
          ],
       q(shh) => [
-         q(6027),
+         q(6015),
          q(0),
          ],
       q(shi) => [
-         q(6028),
+         q(6016),
          q(0),
          ],
       q(shj) => [
-         q(6029),
+         q(6017),
          q(0),
          ],
       q(shk) => [
-         q(6030),
+         q(6018),
          q(0),
          ],
       q(shl) => [
-         q(6031),
+         q(6019),
          q(0),
          ],
       q(shm) => [
-         q(6032),
+         q(6020),
          q(0),
          ],
       q(shn) => [
@@ -81922,59 +81840,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sho) => [
-         q(6033),
+         q(6021),
          q(0),
          ],
       q(shp) => [
-         q(6034),
+         q(6022),
          q(0),
          ],
       q(shq) => [
-         q(6035),
+         q(6023),
          q(0),
          ],
       q(shr) => [
-         q(6036),
+         q(6024),
          q(0),
          ],
       q(shs) => [
-         q(6037),
+         q(6025),
          q(0),
          ],
       q(sht) => [
-         q(6038),
+         q(6026),
          q(0),
          ],
       q(shu) => [
-         q(6039),
+         q(6027),
          q(0),
          ],
       q(shv) => [
-         q(6040),
+         q(6028),
          q(0),
          ],
       q(shw) => [
-         q(6041),
+         q(6029),
          q(0),
          ],
       q(shx) => [
-         q(6042),
+         q(6030),
          q(0),
          ],
       q(shy) => [
-         q(6043),
+         q(6031),
          q(0),
          ],
       q(shz) => [
-         q(6044),
+         q(6032),
          q(0),
          ],
       q(sia) => [
-         q(6045),
+         q(6033),
          q(0),
          ],
       q(sib) => [
-         q(6046),
+         q(6034),
          q(0),
          ],
       q(sid) => [
@@ -81982,39 +81900,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sie) => [
-         q(6047),
+         q(6035),
          q(0),
          ],
       q(sif) => [
-         q(6048),
+         q(6036),
          q(0),
          ],
       q(sig) => [
-         q(6049),
+         q(6037),
          q(0),
          ],
       q(sih) => [
-         q(6050),
+         q(6038),
          q(0),
          ],
       q(sii) => [
-         q(6051),
+         q(6039),
          q(0),
          ],
       q(sij) => [
-         q(6052),
+         q(6040),
          q(0),
          ],
       q(sik) => [
-         q(6053),
+         q(6041),
          q(0),
          ],
       q(sil) => [
-         q(6054),
+         q(6042),
          q(0),
          ],
       q(sim) => [
-         q(6055),
+         q(6043),
          q(0),
          ],
       q(sin) => [
@@ -82026,19 +81944,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sip) => [
-         q(6056),
+         q(6044),
          q(0),
          ],
       q(siq) => [
-         q(6057),
+         q(6045),
          q(0),
          ],
       q(sir) => [
-         q(6058),
+         q(6046),
          q(0),
          ],
       q(sis) => [
-         q(6059),
+         q(6047),
          q(0),
          ],
       q(sit) => [
@@ -82046,191 +81964,191 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(siu) => [
-         q(6060),
+         q(6048),
          q(0),
          ],
       q(siv) => [
-         q(6061),
+         q(6049),
          q(0),
          ],
       q(siw) => [
-         q(6062),
+         q(6050),
          q(0),
          ],
       q(six) => [
-         q(6063),
+         q(6051),
          q(0),
          ],
       q(siy) => [
-         q(6064),
+         q(6052),
          q(0),
          ],
       q(siz) => [
-         q(6065),
+         q(6053),
          q(0),
          ],
       q(sja) => [
-         q(6066),
+         q(6054),
          q(0),
          ],
       q(sjb) => [
-         q(6067),
+         q(6055),
          q(0),
          ],
       q(sjd) => [
-         q(6068),
+         q(6056),
          q(0),
          ],
       q(sje) => [
-         q(6069),
+         q(6057),
          q(0),
          ],
       q(sjg) => [
-         q(6070),
+         q(6058),
          q(0),
          ],
       q(sjk) => [
-         q(6071),
+         q(6059),
          q(0),
          ],
       q(sjl) => [
-         q(6072),
+         q(6060),
          q(0),
          ],
       q(sjm) => [
-         q(6073),
+         q(6061),
          q(0),
          ],
       q(sjn) => [
-         q(6074),
+         q(6062),
          q(0),
          ],
       q(sjo) => [
-         q(6075),
+         q(6063),
          q(0),
          ],
       q(sjp) => [
-         q(6076),
+         q(6064),
          q(0),
          ],
       q(sjr) => [
-         q(6077),
+         q(6065),
          q(0),
          ],
       q(sjs) => [
-         q(6078),
+         q(6066),
          q(0),
          ],
       q(sjt) => [
-         q(6079),
+         q(6067),
          q(0),
          ],
       q(sju) => [
-         q(6080),
+         q(6068),
          q(0),
          ],
       q(sjw) => [
-         q(6081),
+         q(6069),
          q(0),
          ],
       q(ska) => [
-         q(6082),
+         q(6070),
          q(0),
          ],
       q(skb) => [
-         q(6083),
+         q(6071),
          q(0),
          ],
       q(skc) => [
-         q(6084),
+         q(6072),
          q(0),
          ],
       q(skd) => [
-         q(6085),
+         q(6073),
          q(0),
          ],
       q(ske) => [
-         q(6086),
+         q(6074),
          q(0),
          ],
       q(skf) => [
-         q(6087),
+         q(6075),
          q(0),
          ],
       q(skg) => [
-         q(6088),
+         q(6076),
          q(0),
          ],
       q(skh) => [
-         q(6089),
+         q(6077),
          q(0),
          ],
       q(ski) => [
-         q(6090),
+         q(6078),
          q(0),
          ],
       q(skj) => [
-         q(6091),
+         q(6079),
          q(0),
          ],
       q(skk) => [
-         q(6092),
+         q(6080),
          q(0),
          ],
       q(skm) => [
-         q(6093),
+         q(6081),
          q(0),
          ],
       q(skn) => [
-         q(6094),
+         q(6082),
          q(0),
          ],
       q(sko) => [
-         q(6095),
+         q(6083),
          q(0),
          ],
       q(skp) => [
-         q(6096),
+         q(6084),
          q(0),
          ],
       q(skq) => [
-         q(6097),
+         q(6085),
          q(0),
          ],
       q(skr) => [
-         q(6098),
+         q(6086),
          q(0),
          ],
       q(sks) => [
-         q(6099),
+         q(6087),
          q(0),
          ],
       q(skt) => [
-         q(6100),
+         q(6088),
          q(0),
          ],
       q(sku) => [
-         q(6101),
+         q(6089),
          q(0),
          ],
       q(skv) => [
-         q(6102),
+         q(6090),
          q(0),
          ],
       q(skw) => [
-         q(6103),
+         q(6091),
          q(0),
          ],
       q(skx) => [
-         q(6104),
+         q(6092),
          q(0),
          ],
       q(sky) => [
-         q(6105),
+         q(6093),
          q(0),
          ],
       q(skz) => [
-         q(6106),
+         q(6094),
          q(0),
          ],
       q(sla) => [
@@ -82238,47 +82156,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(slc) => [
-         q(5916),
+         q(5905),
          q(0),
          ],
       q(sld) => [
-         q(6107),
+         q(6095),
          q(0),
          ],
       q(sle) => [
-         q(6108),
+         q(6096),
          q(0),
          ],
       q(slf) => [
-         q(6109),
+         q(6097),
          q(0),
          ],
       q(slg) => [
-         q(6110),
+         q(6098),
          q(0),
          ],
       q(slh) => [
-         q(6111),
+         q(6099),
          q(0),
          ],
       q(sli) => [
-         q(6112),
+         q(6100),
          q(0),
          ],
       q(slj) => [
-         q(6113),
+         q(6101),
          q(0),
          ],
       q(sll) => [
-         q(6114),
+         q(6102),
          q(0),
          ],
       q(slm) => [
-         q(6115),
+         q(6103),
          q(0),
          ],
       q(sln) => [
-         q(6116),
+         q(6104),
          q(0),
          ],
       q(slo) => [
@@ -82286,27 +82204,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(slp) => [
-         q(6117),
+         q(6105),
          q(0),
          ],
       q(slq) => [
-         q(6118),
+         q(6106),
          q(0),
          ],
       q(slr) => [
-         q(6119),
+         q(6107),
          q(0),
          ],
       q(sls) => [
-         q(6120),
+         q(6108),
          q(0),
          ],
       q(slt) => [
-         q(6121),
+         q(6109),
          q(0),
          ],
       q(slu) => [
-         q(6122),
+         q(6110),
          q(0),
          ],
       q(slv) => [
@@ -82314,19 +82232,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(slw) => [
-         q(6123),
+         q(6111),
          q(0),
          ],
       q(slx) => [
-         q(6124),
+         q(6112),
          q(0),
          ],
       q(sly) => [
-         q(6125),
+         q(6113),
          q(0),
          ],
       q(slz) => [
-         q(6126),
+         q(6114),
          q(0),
          ],
       q(sma) => [
@@ -82334,15 +82252,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smb) => [
-         q(6127),
+         q(6115),
          q(0),
          ],
       q(smc) => [
-         q(6128),
+         q(6116),
          q(0),
          ],
       q(smd) => [
-         q(6129),
+         q(6117),
          q(0),
          ],
       q(sme) => [
@@ -82350,15 +82268,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smf) => [
-         q(6130),
+         q(6118),
          q(0),
          ],
       q(smg) => [
-         q(6131),
+         q(6119),
          q(0),
          ],
       q(smh) => [
-         q(6132),
+         q(6120),
          q(0),
          ],
       q(smi) => [
@@ -82370,15 +82288,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smk) => [
-         q(6133),
+         q(6121),
          q(0),
          ],
       q(sml) => [
-         q(6134),
+         q(6122),
          q(0),
          ],
       q(smm) => [
-         q(6135),
+         q(6123),
          q(0),
          ],
       q(smn) => [
@@ -82390,15 +82308,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smp) => [
-         q(6136),
+         q(6124),
          q(0),
          ],
       q(smq) => [
-         q(6137),
+         q(6125),
          q(0),
          ],
       q(smr) => [
-         q(6138),
+         q(6126),
          q(0),
          ],
       q(sms) => [
@@ -82406,31 +82324,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smt) => [
-         q(6139),
+         q(6127),
          q(0),
          ],
       q(smu) => [
-         q(6140),
+         q(6128),
          q(0),
          ],
       q(smv) => [
-         q(6141),
+         q(6129),
          q(0),
          ],
       q(smw) => [
-         q(6142),
+         q(6130),
          q(0),
          ],
       q(smx) => [
-         q(6143),
+         q(6131),
          q(0),
          ],
       q(smy) => [
-         q(6144),
+         q(6132),
          q(0),
          ],
       q(smz) => [
-         q(6145),
+         q(6133),
          q(0),
          ],
       q(sna) => [
@@ -82438,11 +82356,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(snb) => [
-         q(6146),
+         q(6134),
          q(0),
          ],
       q(snc) => [
-         q(6147),
+         q(6135),
          q(0),
          ],
       q(snd) => [
@@ -82450,27 +82368,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sne) => [
-         q(6148),
+         q(6136),
          q(0),
          ],
       q(snf) => [
-         q(6149),
+         q(6137),
          q(0),
          ],
       q(sng) => [
-         q(6150),
+         q(6138),
          q(0),
          ],
       q(snh) => [
-         q(6151),
+         q(6139),
          q(0),
          ],
       q(sni) => [
-         q(6152),
+         q(6140),
          q(0),
          ],
       q(snj) => [
-         q(6153),
+         q(6141),
          q(0),
          ],
       q(snk) => [
@@ -82478,79 +82396,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(snl) => [
-         q(6154),
+         q(6142),
          q(0),
          ],
       q(snm) => [
-         q(6155),
+         q(6143),
          q(0),
          ],
       q(snn) => [
-         q(6156),
+         q(6144),
          q(0),
          ],
       q(sno) => [
-         q(6157),
+         q(6145),
          q(0),
          ],
       q(snp) => [
-         q(6158),
+         q(6146),
          q(0),
          ],
       q(snq) => [
-         q(6159),
+         q(6147),
          q(0),
          ],
       q(snr) => [
-         q(6160),
+         q(6148),
          q(0),
          ],
       q(sns) => [
-         q(6161),
+         q(6149),
          q(0),
          ],
       q(snu) => [
-         q(6162),
+         q(6150),
          q(0),
          ],
       q(snv) => [
-         q(6163),
+         q(6151),
          q(0),
          ],
       q(snw) => [
-         q(6164),
+         q(6152),
          q(0),
          ],
       q(snx) => [
-         q(6165),
+         q(6153),
          q(0),
          ],
       q(sny) => [
-         q(6166),
+         q(6154),
          q(0),
          ],
       q(snz) => [
-         q(6167),
+         q(6155),
          q(0),
          ],
       q(soa) => [
-         q(6168),
+         q(6156),
          q(0),
          ],
       q(sob) => [
-         q(6169),
+         q(6157),
          q(0),
          ],
       q(soc) => [
-         q(6170),
+         q(6158),
          q(0),
          ],
       q(sod) => [
-         q(6171),
+         q(6159),
          q(0),
          ],
       q(soe) => [
-         q(6172),
+         q(6160),
          q(0),
          ],
       q(sog) => [
@@ -82558,23 +82476,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(soh) => [
-         q(6173),
+         q(6161),
          q(0),
          ],
       q(soi) => [
-         q(6174),
+         q(6162),
          q(0),
          ],
       q(soj) => [
-         q(6175),
+         q(6163),
          q(0),
          ],
       q(sok) => [
-         q(6176),
+         q(6164),
          q(0),
          ],
       q(sol) => [
-         q(6177),
+         q(6165),
          q(0),
          ],
       q(som) => [
@@ -82586,23 +82504,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(soo) => [
-         q(6178),
+         q(6166),
          q(0),
          ],
       q(sop) => [
-         q(6179),
+         q(6167),
          q(0),
          ],
       q(soq) => [
-         q(6180),
+         q(6168),
          q(0),
          ],
       q(sor) => [
-         q(6181),
+         q(6169),
          q(0),
          ],
       q(sos) => [
-         q(6182),
+         q(6170),
          q(0),
          ],
       q(sot) => [
@@ -82610,27 +82528,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sou) => [
-         q(6183),
+         q(6171),
          q(0),
          ],
       q(sov) => [
-         q(6184),
+         q(6172),
          q(0),
          ],
       q(sow) => [
-         q(6185),
+         q(6173),
          q(0),
          ],
       q(sox) => [
-         q(6186),
+         q(6174),
          q(0),
          ],
       q(soy) => [
-         q(6187),
+         q(6175),
          q(0),
          ],
       q(soz) => [
-         q(6188),
+         q(6176),
          q(0),
          ],
       q(spa) => [
@@ -82638,91 +82556,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(spb) => [
-         q(6189),
+         q(6177),
          q(0),
          ],
       q(spc) => [
-         q(6190),
+         q(6178),
          q(0),
          ],
       q(spd) => [
-         q(6191),
+         q(6179),
          q(0),
          ],
       q(spe) => [
-         q(6192),
+         q(6180),
          q(0),
          ],
       q(spg) => [
-         q(6193),
+         q(6181),
          q(0),
          ],
       q(spi) => [
-         q(6194),
+         q(6182),
          q(0),
          ],
       q(spk) => [
-         q(6195),
+         q(6183),
          q(0),
          ],
       q(spl) => [
-         q(6196),
+         q(6184),
          q(0),
          ],
       q(spm) => [
-         q(6197),
+         q(6185),
          q(0),
          ],
       q(spn) => [
-         q(6198),
+         q(6186),
          q(0),
          ],
       q(spo) => [
-         q(6199),
+         q(6187),
          q(0),
          ],
       q(spp) => [
-         q(6200),
+         q(6188),
          q(0),
          ],
       q(spq) => [
-         q(6201),
+         q(6189),
          q(0),
          ],
       q(spr) => [
-         q(6202),
+         q(6190),
          q(0),
          ],
       q(sps) => [
-         q(6203),
+         q(6191),
          q(0),
          ],
       q(spt) => [
-         q(6204),
+         q(6192),
          q(0),
          ],
       q(spu) => [
-         q(6205),
+         q(6193),
          q(0),
          ],
       q(spv) => [
-         q(6206),
+         q(6194),
          q(0),
          ],
       q(spx) => [
-         q(6207),
+         q(6195),
          q(0),
          ],
       q(spy) => [
-         q(6208),
+         q(6196),
          q(0),
          ],
       q(sqa) => [
-         q(6209),
+         q(6197),
          q(0),
          ],
       q(sqh) => [
-         q(6210),
+         q(6198),
          q(0),
          ],
       q(sqj) => [
@@ -82730,51 +82648,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sqk) => [
-         q(6211),
+         q(6199),
          q(0),
          ],
       q(sqm) => [
-         q(6212),
+         q(6200),
          q(0),
          ],
       q(sqn) => [
-         q(6213),
+         q(6201),
          q(0),
          ],
       q(sqo) => [
-         q(6214),
+         q(6202),
          q(0),
          ],
       q(sqq) => [
-         q(6215),
+         q(6203),
          q(0),
          ],
       q(sqr) => [
-         q(6216),
+         q(6204),
          q(0),
          ],
       q(sqs) => [
-         q(6217),
+         q(6205),
          q(0),
          ],
       q(sqt) => [
-         q(6218),
+         q(6206),
          q(0),
          ],
       q(squ) => [
-         q(6219),
+         q(6207),
          q(0),
          ],
       q(sra) => [
-         q(6220),
+         q(6208),
          q(0),
          ],
       q(srb) => [
-         q(6221),
+         q(6209),
          q(0),
          ],
       q(src) => [
-         q(6222),
+         q(6210),
          q(0),
          ],
       q(srd) => [
@@ -82782,35 +82700,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sre) => [
-         q(6223),
+         q(6211),
          q(0),
          ],
       q(srf) => [
-         q(6224),
+         q(6212),
          q(0),
          ],
       q(srg) => [
-         q(6225),
+         q(6213),
          q(0),
          ],
       q(srh) => [
-         q(6226),
+         q(6214),
          q(0),
          ],
       q(sri) => [
-         q(6227),
+         q(6215),
          q(0),
          ],
       q(srk) => [
-         q(6228),
+         q(6216),
          q(0),
          ],
       q(srl) => [
-         q(6229),
+         q(6217),
          q(0),
          ],
       q(srm) => [
-         q(6230),
+         q(6218),
          q(0),
          ],
       q(srn) => [
@@ -82818,7 +82736,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sro) => [
-         q(6231),
+         q(6219),
          q(0),
          ],
       q(srp) => [
@@ -82826,7 +82744,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(srq) => [
-         q(6232),
+         q(6220),
          q(0),
          ],
       q(srr) => [
@@ -82834,35 +82752,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(srs) => [
-         q(6233),
+         q(6221),
          q(0),
          ],
       q(srt) => [
-         q(6234),
+         q(6222),
          q(0),
          ],
       q(sru) => [
-         q(6235),
+         q(6223),
          q(0),
          ],
       q(srv) => [
-         q(6236),
+         q(6224),
          q(0),
          ],
       q(srw) => [
-         q(6237),
+         q(6225),
          q(0),
          ],
       q(srx) => [
-         q(6238),
+         q(6226),
          q(0),
          ],
       q(sry) => [
-         q(6239),
+         q(6227),
          q(0),
          ],
       q(srz) => [
-         q(6240),
+         q(6228),
          q(0),
          ],
       q(ssa) => [
@@ -82870,87 +82788,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ssb) => [
-         q(6241),
+         q(6229),
          q(0),
          ],
       q(ssc) => [
-         q(6242),
+         q(6230),
          q(0),
          ],
       q(ssd) => [
-         q(6243),
+         q(6231),
          q(0),
          ],
       q(sse) => [
-         q(6244),
+         q(6232),
          q(0),
          ],
       q(ssf) => [
-         q(6245),
+         q(6233),
          q(0),
          ],
       q(ssg) => [
-         q(6246),
+         q(6234),
          q(0),
          ],
       q(ssh) => [
-         q(6247),
+         q(6235),
          q(0),
          ],
       q(ssi) => [
-         q(6248),
+         q(6236),
          q(0),
          ],
       q(ssj) => [
-         q(6249),
+         q(6237),
          q(0),
          ],
       q(ssk) => [
-         q(6250),
+         q(6238),
          q(0),
          ],
       q(ssl) => [
-         q(6251),
+         q(6239),
          q(0),
          ],
       q(ssm) => [
-         q(6252),
+         q(6240),
          q(0),
          ],
       q(ssn) => [
-         q(6253),
+         q(6241),
          q(0),
          ],
       q(sso) => [
-         q(6254),
+         q(6242),
          q(0),
          ],
       q(ssp) => [
-         q(6255),
+         q(6243),
          q(0),
          ],
       q(ssq) => [
-         q(6256),
+         q(6244),
          q(0),
          ],
       q(ssr) => [
-         q(6257),
+         q(6245),
          q(0),
          ],
       q(sss) => [
-         q(6258),
+         q(6246),
          q(0),
          ],
       q(sst) => [
-         q(6259),
+         q(6247),
          q(0),
          ],
       q(ssu) => [
-         q(6260),
+         q(6248),
          q(0),
          ],
       q(ssv) => [
-         q(6261),
+         q(6249),
          q(0),
          ],
       q(ssw) => [
@@ -82958,135 +82876,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ssx) => [
-         q(6262),
+         q(6250),
          q(0),
          ],
       q(ssy) => [
-         q(6263),
+         q(6251),
          q(0),
          ],
       q(ssz) => [
-         q(6264),
+         q(6252),
          q(0),
          ],
       q(sta) => [
-         q(6265),
+         q(6253),
          q(0),
          ],
       q(stb) => [
-         q(6266),
+         q(6254),
          q(0),
          ],
       q(std) => [
-         q(6267),
+         q(6255),
          q(0),
          ],
       q(ste) => [
-         q(6268),
+         q(6256),
          q(0),
          ],
       q(stf) => [
-         q(6269),
+         q(6257),
          q(0),
          ],
       q(stg) => [
-         q(6270),
+         q(6258),
          q(0),
          ],
       q(sth) => [
-         q(6271),
+         q(6259),
          q(0),
          ],
       q(sti) => [
-         q(6272),
+         q(6260),
          q(0),
          ],
       q(stj) => [
-         q(6273),
+         q(6261),
          q(0),
          ],
       q(stk) => [
-         q(6274),
+         q(6262),
          q(0),
          ],
       q(stl) => [
-         q(6275),
+         q(6263),
          q(0),
          ],
       q(stm) => [
-         q(6276),
+         q(6264),
          q(0),
          ],
       q(stn) => [
-         q(6277),
+         q(6265),
          q(0),
          ],
       q(sto) => [
-         q(6278),
+         q(6266),
          q(0),
          ],
       q(stp) => [
-         q(6279),
+         q(6267),
          q(0),
          ],
       q(stq) => [
-         q(6280),
+         q(6268),
          q(0),
          ],
       q(str) => [
-         q(6281),
+         q(6269),
          q(0),
          ],
       q(sts) => [
-         q(6282),
+         q(6270),
          q(0),
          ],
       q(stt) => [
-         q(6283),
+         q(6271),
          q(0),
          ],
       q(stu) => [
-         q(6284),
+         q(6272),
          q(0),
          ],
       q(stv) => [
-         q(6285),
+         q(6273),
          q(0),
          ],
       q(stw) => [
-         q(6286),
+         q(6274),
          q(0),
          ],
       q(sty) => [
-         q(6287),
+         q(6275),
          q(0),
          ],
       q(sua) => [
-         q(6288),
+         q(6276),
          q(0),
          ],
       q(sub) => [
-         q(6289),
+         q(6277),
          q(0),
          ],
       q(suc) => [
-         q(6290),
+         q(6278),
          q(0),
          ],
       q(sue) => [
-         q(6291),
+         q(6279),
          q(0),
          ],
       q(sug) => [
-         q(6292),
+         q(6280),
          q(0),
          ],
       q(sui) => [
-         q(6293),
+         q(6281),
          q(0),
          ],
       q(suj) => [
-         q(6294),
+         q(6282),
          q(0),
          ],
       q(suk) => [
@@ -83098,11 +83016,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(suq) => [
-         q(6295),
+         q(6283),
          q(0),
          ],
       q(sur) => [
-         q(6296),
+         q(6284),
          q(0),
          ],
       q(sus) => [
@@ -83110,15 +83028,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sut) => [
-         q(6297),
+         q(6285),
          q(0),
          ],
       q(suv) => [
-         q(6298),
+         q(6286),
          q(0),
          ],
       q(suw) => [
-         q(6299),
+         q(6287),
          q(0),
          ],
       q(sux) => [
@@ -83126,47 +83044,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(suy) => [
-         q(6300),
+         q(6288),
          q(0),
          ],
       q(suz) => [
-         q(6301),
+         q(6289),
          q(0),
          ],
       q(sva) => [
-         q(6302),
+         q(6290),
          q(0),
          ],
       q(svb) => [
-         q(6303),
+         q(6291),
          q(0),
          ],
       q(svc) => [
-         q(6304),
+         q(6292),
          q(0),
          ],
       q(sve) => [
-         q(6305),
+         q(6293),
          q(0),
          ],
       q(svk) => [
-         q(6306),
+         q(6294),
          q(0),
          ],
       q(svm) => [
-         q(6307),
+         q(6295),
          q(0),
          ],
       q(svr) => [
-         q(6308),
+         q(6296),
          q(0),
          ],
       q(svs) => [
-         q(6309),
+         q(6297),
          q(0),
          ],
       q(svx) => [
-         q(6310),
+         q(6298),
          q(0),
          ],
       q(swa) => [
@@ -83174,11 +83092,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(swb) => [
-         q(6311),
+         q(6299),
          q(0),
          ],
       q(swc) => [
-         q(6312),
+         q(6300),
          q(0),
          ],
       q(swe) => [
@@ -83186,143 +83104,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(swf) => [
-         q(6313),
+         q(6301),
          q(0),
          ],
       q(swg) => [
-         q(6314),
+         q(6302),
          q(0),
          ],
       q(swh) => [
-         q(6315),
+         q(6303),
          q(0),
          ],
       q(swi) => [
-         q(6316),
+         q(6304),
          q(0),
          ],
       q(swj) => [
-         q(6317),
+         q(6305),
          q(0),
          ],
       q(swk) => [
-         q(6318),
+         q(6306),
          q(0),
          ],
       q(swl) => [
-         q(6319),
+         q(6307),
          q(0),
          ],
       q(swm) => [
-         q(6320),
+         q(6308),
          q(0),
          ],
       q(swn) => [
-         q(6321),
+         q(6309),
          q(0),
          ],
       q(swo) => [
-         q(6322),
+         q(6310),
          q(0),
          ],
       q(swp) => [
-         q(6323),
+         q(6311),
          q(0),
          ],
       q(swq) => [
-         q(6324),
+         q(6312),
          q(0),
          ],
       q(swr) => [
-         q(6325),
+         q(6313),
          q(0),
          ],
       q(sws) => [
-         q(6326),
+         q(6314),
          q(0),
          ],
       q(swt) => [
-         q(6327),
+         q(6315),
          q(0),
          ],
       q(swu) => [
-         q(6328),
+         q(6316),
          q(0),
          ],
       q(swv) => [
-         q(6329),
+         q(6317),
          q(0),
          ],
       q(sww) => [
-         q(6330),
+         q(6318),
          q(0),
          ],
       q(swx) => [
-         q(6331),
+         q(6319),
          q(0),
          ],
       q(swy) => [
-         q(6332),
+         q(6320),
          q(0),
          ],
       q(sxb) => [
-         q(6333),
+         q(6321),
          q(0),
          ],
       q(sxc) => [
-         q(6334),
+         q(6322),
          q(0),
          ],
       q(sxe) => [
-         q(6335),
+         q(6323),
          q(0),
          ],
       q(sxg) => [
-         q(6336),
+         q(6324),
          q(0),
          ],
       q(sxk) => [
-         q(6337),
+         q(6325),
          q(0),
          ],
       q(sxl) => [
-         q(6338),
+         q(6326),
          q(0),
          ],
       q(sxm) => [
-         q(6339),
+         q(6327),
          q(0),
          ],
       q(sxn) => [
-         q(6340),
+         q(6328),
          q(0),
          ],
       q(sxo) => [
-         q(6341),
+         q(6329),
          q(0),
          ],
       q(sxr) => [
-         q(6342),
+         q(6330),
          q(0),
          ],
       q(sxs) => [
-         q(6343),
+         q(6331),
          q(0),
          ],
       q(sxu) => [
-         q(6344),
+         q(6332),
          q(0),
          ],
       q(sxw) => [
-         q(6345),
+         q(6333),
          q(0),
          ],
       q(sya) => [
-         q(6346),
+         q(6334),
          q(0),
          ],
       q(syb) => [
-         q(6347),
+         q(6335),
          q(0),
          ],
       q(syc) => [
@@ -83334,27 +83252,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(syi) => [
-         q(6348),
+         q(6336),
          q(0),
          ],
       q(syk) => [
-         q(6349),
+         q(6337),
          q(0),
          ],
       q(syl) => [
-         q(6350),
+         q(6338),
          q(0),
          ],
       q(sym) => [
-         q(6351),
+         q(6339),
          q(0),
          ],
       q(syn) => [
-         q(6352),
+         q(6340),
          q(0),
          ],
       q(syo) => [
-         q(6353),
+         q(6341),
          q(0),
          ],
       q(syr) => [
@@ -83362,87 +83280,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sys) => [
-         q(6354),
+         q(6342),
          q(0),
          ],
       q(syw) => [
-         q(6355),
+         q(6343),
+         q(0),
+         ],
+      q(syx) => [
+         q(6344),
          q(0),
          ],
       q(syy) => [
-         q(6356),
+         q(6345),
          q(0),
          ],
       q(sza) => [
-         q(6357),
+         q(6346),
          q(0),
          ],
       q(szb) => [
-         q(6358),
+         q(6347),
          q(0),
          ],
       q(szc) => [
-         q(6359),
+         q(6348),
          q(0),
          ],
       q(szd) => [
-         q(6360),
+         q(6349),
          q(0),
          ],
       q(sze) => [
-         q(6361),
+         q(6350),
          q(0),
          ],
       q(szg) => [
-         q(6362),
+         q(6351),
          q(0),
          ],
       q(szl) => [
-         q(6363),
+         q(6352),
          q(0),
          ],
       q(szn) => [
-         q(6364),
+         q(6353),
          q(0),
          ],
       q(szp) => [
-         q(6365),
+         q(6354),
          q(0),
          ],
       q(szv) => [
-         q(6366),
+         q(6355),
          q(0),
          ],
       q(szw) => [
-         q(6367),
+         q(6356),
          q(0),
          ],
       q(taa) => [
-         q(6368),
+         q(6357),
          q(0),
          ],
       q(tab) => [
-         q(6369),
+         q(6358),
          q(0),
          ],
       q(tac) => [
-         q(6370),
+         q(6359),
          q(0),
          ],
       q(tad) => [
-         q(6371),
+         q(6360),
          q(0),
          ],
       q(tae) => [
-         q(6372),
+         q(6361),
          q(0),
          ],
       q(taf) => [
-         q(6373),
+         q(6362),
          q(0),
          ],
       q(tag) => [
-         q(6374),
+         q(6363),
          q(0),
          ],
       q(tah) => [
@@ -83454,15 +83376,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(taj) => [
-         q(6375),
+         q(6364),
          q(0),
          ],
       q(tak) => [
-         q(6376),
+         q(6365),
          q(0),
          ],
       q(tal) => [
-         q(6377),
+         q(6366),
          q(0),
          ],
       q(tam) => [
@@ -83470,27 +83392,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tan) => [
-         q(6378),
+         q(6367),
          q(0),
          ],
       q(tao) => [
-         q(6379),
+         q(6368),
          q(0),
          ],
       q(tap) => [
-         q(6380),
+         q(6369),
          q(0),
          ],
       q(taq) => [
-         q(6381),
+         q(6370),
          q(0),
          ],
       q(tar) => [
-         q(6382),
+         q(6371),
          q(0),
          ],
       q(tas) => [
-         q(6383),
+         q(6372),
          q(0),
          ],
       q(tat) => [
@@ -83498,91 +83420,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tau) => [
-         q(6384),
+         q(6373),
          q(0),
          ],
       q(tav) => [
-         q(6385),
+         q(6374),
          q(0),
          ],
       q(taw) => [
-         q(6386),
+         q(6375),
          q(0),
          ],
       q(tax) => [
-         q(6387),
+         q(6376),
          q(0),
          ],
       q(tay) => [
-         q(6388),
+         q(6377),
          q(0),
          ],
       q(taz) => [
-         q(6389),
+         q(6378),
          q(0),
          ],
       q(tba) => [
-         q(6390),
+         q(6379),
          q(0),
          ],
       q(tbb) => [
-         q(6391),
+         q(6380),
          q(0),
          ],
       q(tbc) => [
-         q(6392),
+         q(6381),
          q(0),
          ],
       q(tbd) => [
-         q(6393),
+         q(6382),
          q(0),
          ],
       q(tbe) => [
-         q(6394),
+         q(6383),
          q(0),
          ],
       q(tbf) => [
-         q(6395),
+         q(6384),
          q(0),
          ],
       q(tbg) => [
-         q(6396),
+         q(6385),
          q(0),
          ],
       q(tbh) => [
-         q(6397),
+         q(6386),
          q(0),
          ],
       q(tbi) => [
-         q(6398),
+         q(6387),
          q(0),
          ],
       q(tbj) => [
-         q(6399),
+         q(6388),
          q(0),
          ],
       q(tbk) => [
-         q(6400),
+         q(6389),
          q(0),
          ],
       q(tbl) => [
-         q(6401),
+         q(6390),
          q(0),
          ],
       q(tbm) => [
-         q(6402),
+         q(6391),
          q(0),
          ],
       q(tbn) => [
-         q(6403),
+         q(6392),
          q(0),
          ],
       q(tbo) => [
-         q(6404),
+         q(6393),
          q(0),
          ],
       q(tbp) => [
-         q(6405),
+         q(6394),
          q(0),
          ],
       q(tbq) => [
@@ -83590,259 +83512,259 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tbr) => [
-         q(6406),
+         q(6395),
          q(0),
          ],
       q(tbs) => [
-         q(6407),
+         q(6396),
          q(0),
          ],
       q(tbt) => [
-         q(6408),
+         q(6397),
          q(0),
          ],
       q(tbu) => [
-         q(6409),
+         q(6398),
          q(0),
          ],
       q(tbv) => [
-         q(6410),
+         q(6399),
          q(0),
          ],
       q(tbw) => [
-         q(6411),
+         q(6400),
          q(0),
          ],
       q(tbx) => [
-         q(6412),
+         q(6401),
          q(0),
          ],
       q(tby) => [
-         q(6413),
+         q(6402),
          q(0),
          ],
       q(tbz) => [
-         q(6414),
+         q(6403),
          q(0),
          ],
       q(tca) => [
-         q(6415),
+         q(6404),
          q(0),
          ],
       q(tcb) => [
-         q(6416),
+         q(6405),
          q(0),
          ],
       q(tcc) => [
-         q(6417),
+         q(6406),
          q(0),
          ],
       q(tcd) => [
-         q(6418),
+         q(6407),
          q(0),
          ],
       q(tce) => [
-         q(6419),
+         q(6408),
          q(0),
          ],
       q(tcf) => [
-         q(6420),
+         q(6409),
          q(0),
          ],
       q(tcg) => [
-         q(6421),
+         q(6410),
          q(0),
          ],
       q(tch) => [
-         q(6422),
+         q(6411),
          q(0),
          ],
       q(tci) => [
-         q(6423),
+         q(6412),
          q(0),
          ],
       q(tck) => [
-         q(6424),
+         q(6413),
          q(0),
          ],
       q(tcl) => [
-         q(6425),
+         q(6414),
          q(0),
          ],
       q(tcm) => [
-         q(6426),
+         q(6415),
          q(0),
          ],
       q(tcn) => [
-         q(6427),
+         q(6416),
          q(0),
          ],
       q(tco) => [
-         q(6428),
+         q(6417),
          q(0),
          ],
       q(tcp) => [
-         q(6429),
+         q(6418),
          q(0),
          ],
       q(tcq) => [
-         q(6430),
+         q(6419),
          q(0),
          ],
       q(tcs) => [
-         q(6431),
+         q(6420),
          q(0),
          ],
       q(tct) => [
-         q(6432),
+         q(6421),
          q(0),
          ],
       q(tcu) => [
-         q(6433),
+         q(6422),
          q(0),
          ],
       q(tcw) => [
-         q(6434),
+         q(6423),
          q(0),
          ],
       q(tcx) => [
-         q(6435),
+         q(6424),
          q(0),
          ],
       q(tcy) => [
-         q(6436),
+         q(6425),
          q(0),
          ],
       q(tcz) => [
-         q(6437),
+         q(6426),
          q(0),
          ],
       q(tda) => [
-         q(6438),
+         q(6427),
          q(0),
          ],
       q(tdb) => [
-         q(6439),
+         q(6428),
          q(0),
          ],
       q(tdc) => [
-         q(6440),
+         q(6429),
          q(0),
          ],
       q(tdd) => [
-         q(6441),
+         q(6430),
          q(0),
          ],
       q(tde) => [
-         q(6442),
+         q(6431),
          q(0),
          ],
       q(tdf) => [
-         q(6443),
+         q(6432),
          q(0),
          ],
       q(tdg) => [
-         q(6444),
+         q(6433),
          q(0),
          ],
       q(tdh) => [
-         q(6445),
+         q(6434),
          q(0),
          ],
       q(tdi) => [
-         q(6446),
+         q(6435),
          q(0),
          ],
       q(tdj) => [
-         q(6447),
+         q(6436),
          q(0),
          ],
       q(tdk) => [
-         q(6448),
+         q(6437),
          q(0),
          ],
       q(tdl) => [
-         q(6449),
+         q(6438),
          q(0),
          ],
       q(tdn) => [
-         q(6450),
+         q(6439),
          q(0),
          ],
       q(tdo) => [
-         q(6451),
+         q(6440),
          q(0),
          ],
       q(tdq) => [
-         q(6452),
+         q(6441),
          q(0),
          ],
       q(tdr) => [
-         q(6453),
+         q(6442),
          q(0),
          ],
       q(tds) => [
-         q(6454),
+         q(6443),
          q(0),
          ],
       q(tdt) => [
-         q(6455),
+         q(6444),
          q(0),
          ],
       q(tdu) => [
-         q(6456),
+         q(6445),
          q(0),
          ],
       q(tdv) => [
-         q(6457),
+         q(6446),
          q(0),
          ],
       q(tdx) => [
-         q(6458),
+         q(6447),
          q(0),
          ],
       q(tdy) => [
-         q(6459),
+         q(6448),
          q(0),
          ],
       q(tea) => [
-         q(6460),
+         q(6449),
          q(0),
          ],
       q(teb) => [
-         q(6461),
+         q(6450),
          q(0),
          ],
       q(tec) => [
-         q(6462),
+         q(6451),
          q(0),
          ],
       q(ted) => [
-         q(6463),
+         q(6452),
          q(0),
          ],
       q(tee) => [
-         q(6464),
+         q(6453),
          q(0),
          ],
       q(tef) => [
-         q(6465),
+         q(6454),
          q(0),
          ],
       q(teg) => [
-         q(6466),
+         q(6455),
          q(0),
          ],
       q(teh) => [
-         q(6467),
+         q(6456),
          q(0),
          ],
       q(tei) => [
-         q(6468),
+         q(6457),
          q(0),
          ],
       q(tek) => [
-         q(6469),
+         q(6458),
          q(0),
          ],
       q(tel) => [
@@ -83854,19 +83776,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ten) => [
-         q(6470),
+         q(6459),
          q(0),
          ],
       q(teo) => [
-         q(6471),
+         q(6460),
          q(0),
          ],
       q(tep) => [
-         q(6472),
+         q(6461),
          q(0),
          ],
       q(teq) => [
-         q(6473),
+         q(6462),
          q(0),
          ],
       q(ter) => [
@@ -83874,7 +83796,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tes) => [
-         q(6474),
+         q(6463),
          q(0),
          ],
       q(tet) => [
@@ -83882,79 +83804,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(teu) => [
-         q(6475),
+         q(6464),
          q(0),
          ],
       q(tev) => [
-         q(6476),
+         q(6465),
          q(0),
          ],
       q(tew) => [
-         q(6477),
+         q(6466),
          q(0),
          ],
       q(tex) => [
-         q(6478),
+         q(6467),
          q(0),
          ],
       q(tey) => [
-         q(6479),
+         q(6468),
          q(0),
          ],
       q(tfi) => [
-         q(6480),
+         q(6469),
          q(0),
          ],
       q(tfn) => [
-         q(6481),
+         q(6470),
          q(0),
          ],
       q(tfo) => [
-         q(6482),
+         q(6471),
          q(0),
          ],
       q(tfr) => [
-         q(6483),
+         q(6472),
          q(0),
          ],
       q(tft) => [
-         q(6484),
+         q(6473),
          q(0),
          ],
       q(tga) => [
-         q(6485),
+         q(6474),
          q(0),
          ],
       q(tgb) => [
-         q(6486),
+         q(6475),
          q(0),
          ],
       q(tgc) => [
-         q(6487),
+         q(6476),
          q(0),
          ],
       q(tgd) => [
-         q(6488),
+         q(6477),
          q(0),
          ],
       q(tge) => [
-         q(6489),
+         q(6478),
          q(0),
          ],
       q(tgf) => [
-         q(6490),
+         q(6479),
          q(0),
          ],
       q(tgh) => [
-         q(6491),
+         q(6480),
          q(0),
          ],
       q(tgi) => [
-         q(6492),
+         q(6481),
          q(0),
          ],
       q(tgj) => [
-         q(6493),
+         q(6482),
          q(0),
          ],
       q(tgk) => [
@@ -83966,55 +83888,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tgn) => [
-         q(6494),
+         q(6483),
          q(0),
          ],
       q(tgo) => [
-         q(6495),
+         q(6484),
          q(0),
          ],
       q(tgp) => [
-         q(6496),
+         q(6485),
          q(0),
          ],
       q(tgq) => [
-         q(6497),
+         q(6486),
          q(0),
          ],
       q(tgr) => [
-         q(6498),
+         q(6487),
          q(0),
          ],
       q(tgs) => [
-         q(6499),
+         q(6488),
          q(0),
          ],
       q(tgt) => [
-         q(6500),
+         q(6489),
          q(0),
          ],
       q(tgu) => [
-         q(6501),
+         q(6490),
          q(0),
          ],
       q(tgv) => [
-         q(6502),
+         q(6491),
          q(0),
          ],
       q(tgw) => [
-         q(6503),
+         q(6492),
          q(0),
          ],
       q(tgx) => [
-         q(6504),
+         q(6493),
          q(0),
          ],
       q(tgy) => [
-         q(6505),
+         q(6494),
          q(0),
          ],
       q(tgz) => [
-         q(6506),
+         q(6495),
          q(0),
          ],
       q(tha) => [
@@ -84022,91 +83944,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(thc) => [
-         q(6507),
+         q(6496),
          q(0),
          ],
       q(thd) => [
-         q(6508),
+         q(6497),
          q(0),
          ],
       q(the) => [
-         q(6509),
+         q(6498),
          q(0),
          ],
       q(thf) => [
-         q(6510),
+         q(6499),
          q(0),
          ],
       q(thh) => [
-         q(6511),
+         q(6500),
          q(0),
          ],
       q(thi) => [
-         q(6512),
+         q(6501),
          q(0),
          ],
       q(thk) => [
-         q(6513),
+         q(6502),
          q(0),
          ],
       q(thl) => [
-         q(6514),
+         q(6503),
          q(0),
          ],
       q(thm) => [
-         q(6515),
+         q(6504),
          q(0),
          ],
       q(thn) => [
-         q(6516),
+         q(6505),
          q(0),
          ],
       q(thp) => [
-         q(6517),
+         q(6506),
          q(0),
          ],
       q(thq) => [
-         q(6518),
+         q(6507),
          q(0),
          ],
       q(thr) => [
-         q(6519),
+         q(6508),
          q(0),
          ],
       q(ths) => [
-         q(6520),
+         q(6509),
          q(0),
          ],
       q(tht) => [
-         q(6521),
+         q(6510),
          q(0),
          ],
       q(thu) => [
-         q(6522),
+         q(6511),
          q(0),
          ],
       q(thv) => [
-         q(6523),
+         q(6512),
          q(0),
          ],
       q(thw) => [
-         q(6524),
-         q(0),
-         ],
-      q(thx) => [
-         q(6525),
+         q(6513),
          q(0),
          ],
       q(thy) => [
-         q(6526),
+         q(6514),
          q(0),
          ],
       q(thz) => [
-         q(6527),
+         q(6515),
          q(0),
          ],
       q(tia) => [
-         q(6528),
+         q(6516),
          q(0),
          ],
       q(tib) => [
@@ -84114,15 +84032,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tic) => [
-         q(6529),
+         q(6517),
          q(0),
          ],
       q(tid) => [
-         q(6530),
+         q(6518),
          q(0),
          ],
       q(tif) => [
-         q(6531),
+         q(6519),
          q(0),
          ],
       q(tig) => [
@@ -84130,43 +84048,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tih) => [
-         q(6532),
+         q(6520),
          q(0),
          ],
       q(tii) => [
-         q(6533),
+         q(6521),
          q(0),
          ],
       q(tij) => [
-         q(6534),
+         q(6522),
          q(0),
          ],
       q(tik) => [
-         q(6535),
+         q(6523),
          q(0),
          ],
       q(til) => [
-         q(6536),
+         q(6524),
          q(0),
          ],
       q(tim) => [
-         q(6537),
+         q(6525),
          q(0),
          ],
       q(tin) => [
-         q(6538),
+         q(6526),
          q(0),
          ],
       q(tio) => [
-         q(6539),
+         q(6527),
          q(0),
          ],
       q(tip) => [
-         q(6540),
+         q(6528),
          q(0),
          ],
       q(tiq) => [
-         q(6541),
+         q(6529),
          q(0),
          ],
       q(tir) => [
@@ -84174,15 +84092,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tis) => [
-         q(6542),
+         q(6530),
          q(0),
          ],
       q(tit) => [
-         q(6543),
+         q(6531),
          q(0),
          ],
       q(tiu) => [
-         q(6544),
+         q(6532),
          q(0),
          ],
       q(tiv) => [
@@ -84190,83 +84108,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tiw) => [
-         q(6545),
+         q(6533),
          q(0),
          ],
       q(tix) => [
-         q(6546),
+         q(6534),
          q(0),
          ],
       q(tiy) => [
-         q(6547),
+         q(6535),
          q(0),
          ],
       q(tiz) => [
-         q(6548),
+         q(6536),
          q(0),
          ],
       q(tja) => [
-         q(6549),
+         q(6537),
          q(0),
          ],
       q(tjg) => [
-         q(6550),
+         q(6538),
          q(0),
          ],
       q(tji) => [
-         q(6551),
+         q(6539),
          q(0),
          ],
       q(tjl) => [
-         q(6552),
+         q(6540),
          q(0),
          ],
       q(tjm) => [
-         q(6553),
+         q(6541),
          q(0),
          ],
       q(tjn) => [
-         q(6554),
+         q(6542),
          q(0),
          ],
       q(tjo) => [
-         q(6555),
+         q(6543),
          q(0),
          ],
       q(tjs) => [
-         q(6556),
+         q(6544),
          q(0),
          ],
       q(tju) => [
-         q(6557),
+         q(6545),
          q(0),
          ],
       q(tjw) => [
-         q(6558),
+         q(6546),
          q(0),
          ],
       q(tka) => [
-         q(6559),
+         q(6547),
          q(0),
          ],
       q(tkb) => [
-         q(6560),
+         q(6548),
          q(0),
          ],
       q(tkd) => [
-         q(6561),
+         q(6549),
          q(0),
          ],
       q(tke) => [
-         q(6562),
+         q(6550),
          q(0),
          ],
       q(tkf) => [
-         q(6563),
+         q(6551),
          q(0),
          ],
       q(tkg) => [
-         q(6564),
+         q(6552),
          q(0),
          ],
       q(tkl) => [
@@ -84274,75 +84192,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tkm) => [
-         q(6565),
+         q(6553),
          q(0),
          ],
       q(tkn) => [
-         q(6566),
+         q(6554),
          q(0),
          ],
       q(tkp) => [
-         q(6567),
+         q(6555),
          q(0),
          ],
       q(tkq) => [
-         q(6568),
+         q(6556),
          q(0),
          ],
       q(tkr) => [
-         q(6569),
+         q(6557),
          q(0),
          ],
       q(tks) => [
-         q(6570),
+         q(6558),
          q(0),
          ],
       q(tkt) => [
-         q(6571),
+         q(6559),
          q(0),
          ],
       q(tku) => [
-         q(6572),
+         q(6560),
          q(0),
          ],
       q(tkv) => [
-         q(6573),
+         q(6561),
          q(0),
          ],
       q(tkw) => [
-         q(6574),
+         q(6562),
          q(0),
          ],
       q(tkx) => [
-         q(6575),
+         q(6563),
          q(0),
          ],
       q(tkz) => [
-         q(6576),
+         q(6564),
          q(0),
          ],
       q(tla) => [
-         q(6577),
+         q(6565),
          q(0),
          ],
       q(tlb) => [
-         q(6578),
+         q(6566),
          q(0),
          ],
       q(tlc) => [
-         q(6579),
+         q(6567),
          q(0),
          ],
       q(tld) => [
-         q(6580),
+         q(6568),
          q(0),
          ],
       q(tlf) => [
-         q(6581),
+         q(6569),
          q(0),
          ],
       q(tlg) => [
-         q(6582),
+         q(6570),
          q(0),
          ],
       q(tlh) => [
@@ -84354,91 +84272,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tlj) => [
-         q(6583),
+         q(6571),
          q(0),
          ],
       q(tlk) => [
-         q(6584),
+         q(6572),
          q(0),
          ],
       q(tll) => [
-         q(6585),
+         q(6573),
          q(0),
          ],
       q(tlm) => [
-         q(6586),
+         q(6574),
          q(0),
          ],
       q(tln) => [
-         q(6587),
+         q(6575),
          q(0),
          ],
       q(tlo) => [
-         q(6588),
+         q(6576),
          q(0),
          ],
       q(tlp) => [
-         q(6589),
+         q(6577),
          q(0),
          ],
       q(tlq) => [
-         q(6590),
+         q(6578),
          q(0),
          ],
       q(tlr) => [
-         q(6591),
+         q(6579),
          q(0),
          ],
       q(tls) => [
-         q(6592),
+         q(6580),
          q(0),
          ],
       q(tlt) => [
-         q(6593),
+         q(6581),
          q(0),
          ],
       q(tlu) => [
-         q(6594),
+         q(6582),
          q(0),
          ],
       q(tlv) => [
-         q(6595),
+         q(6583),
          q(0),
          ],
       q(tlx) => [
-         q(6596),
+         q(6584),
          q(0),
          ],
       q(tly) => [
-         q(6597),
+         q(6585),
          q(0),
          ],
       q(tma) => [
-         q(6598),
+         q(6586),
          q(0),
          ],
       q(tmb) => [
-         q(6599),
+         q(6587),
          q(0),
          ],
       q(tmc) => [
-         q(6600),
+         q(6588),
          q(0),
          ],
       q(tmd) => [
-         q(6601),
+         q(6589),
          q(0),
          ],
       q(tme) => [
-         q(6602),
+         q(6590),
          q(0),
          ],
       q(tmf) => [
-         q(6603),
+         q(6591),
          q(0),
          ],
       q(tmg) => [
-         q(6604),
+         q(6592),
          q(0),
          ],
       q(tmh) => [
@@ -84446,187 +84364,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tmi) => [
-         q(6605),
+         q(6593),
          q(0),
          ],
       q(tmj) => [
-         q(6606),
+         q(6594),
          q(0),
          ],
       q(tmk) => [
-         q(6607),
+         q(6595),
          q(0),
          ],
       q(tml) => [
-         q(6608),
+         q(6596),
          q(0),
          ],
       q(tmm) => [
-         q(6609),
+         q(6597),
          q(0),
          ],
       q(tmn) => [
-         q(6610),
+         q(6598),
          q(0),
          ],
       q(tmo) => [
-         q(6611),
+         q(6599),
          q(0),
          ],
       q(tmp) => [
-         q(6612),
+         q(6600),
          q(0),
          ],
       q(tmq) => [
-         q(6613),
+         q(6601),
          q(0),
          ],
       q(tmr) => [
-         q(6614),
+         q(6602),
          q(0),
          ],
       q(tms) => [
-         q(6615),
+         q(6603),
          q(0),
          ],
       q(tmt) => [
-         q(6616),
+         q(6604),
          q(0),
          ],
       q(tmu) => [
-         q(6617),
+         q(6605),
          q(0),
          ],
       q(tmv) => [
-         q(6618),
+         q(6606),
          q(0),
          ],
       q(tmw) => [
-         q(6619),
+         q(6607),
          q(0),
          ],
       q(tmy) => [
-         q(6620),
+         q(6608),
          q(0),
          ],
       q(tmz) => [
-         q(6621),
+         q(6609),
          q(0),
          ],
       q(tna) => [
-         q(6622),
+         q(6610),
          q(0),
          ],
       q(tnb) => [
-         q(6623),
+         q(6611),
          q(0),
          ],
       q(tnc) => [
-         q(6624),
+         q(6612),
          q(0),
          ],
       q(tnd) => [
-         q(6625),
+         q(6613),
          q(0),
          ],
       q(tne) => [
-         q(6626),
+         q(6614),
          q(0),
          ],
       q(tng) => [
-         q(6627),
+         q(6615),
          q(0),
          ],
       q(tnh) => [
-         q(6628),
+         q(6616),
          q(0),
          ],
       q(tni) => [
-         q(6629),
+         q(6617),
          q(0),
          ],
       q(tnk) => [
-         q(6630),
+         q(6618),
          q(0),
          ],
       q(tnl) => [
-         q(6631),
+         q(6619),
          q(0),
          ],
       q(tnm) => [
-         q(6632),
+         q(6620),
          q(0),
          ],
       q(tnn) => [
-         q(6633),
+         q(6621),
          q(0),
          ],
       q(tno) => [
-         q(6634),
+         q(6622),
          q(0),
          ],
       q(tnp) => [
-         q(6635),
+         q(6623),
          q(0),
          ],
       q(tnq) => [
-         q(6636),
+         q(6624),
          q(0),
          ],
       q(tnr) => [
-         q(6637),
+         q(6625),
          q(0),
          ],
       q(tns) => [
-         q(6638),
+         q(6626),
          q(0),
          ],
       q(tnt) => [
-         q(6639),
+         q(6627),
          q(0),
          ],
       q(tnu) => [
-         q(6640),
+         q(6628),
          q(0),
          ],
       q(tnv) => [
-         q(6641),
+         q(6629),
          q(0),
          ],
       q(tnw) => [
-         q(6642),
+         q(6630),
          q(0),
          ],
       q(tnx) => [
-         q(6643),
+         q(6631),
          q(0),
          ],
       q(tny) => [
-         q(6644),
+         q(6632),
          q(0),
          ],
       q(tnz) => [
-         q(6645),
+         q(6633),
          q(0),
          ],
       q(tob) => [
-         q(6646),
+         q(6634),
          q(0),
          ],
       q(toc) => [
-         q(6647),
+         q(6635),
          q(0),
          ],
       q(tod) => [
-         q(6648),
+         q(6636),
          q(0),
          ],
       q(toe) => [
-         q(6649),
+         q(6637),
          q(0),
          ],
       q(tof) => [
-         q(6650),
+         q(6638),
          q(0),
          ],
       q(tog) => [
@@ -84634,23 +84552,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(toh) => [
-         q(6651),
+         q(6639),
          q(0),
          ],
       q(toi) => [
-         q(6652),
+         q(6640),
          q(0),
          ],
       q(toj) => [
-         q(6653),
+         q(6641),
          q(0),
          ],
       q(tol) => [
-         q(6654),
+         q(6642),
          q(0),
          ],
       q(tom) => [
-         q(6655),
+         q(6643),
          q(0),
          ],
       q(ton) => [
@@ -84658,67 +84576,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(too) => [
-         q(6656),
+         q(6644),
          q(0),
          ],
       q(top) => [
-         q(6657),
+         q(6645),
          q(0),
          ],
       q(toq) => [
-         q(6658),
+         q(6646),
          q(0),
          ],
       q(tor) => [
-         q(6659),
+         q(6647),
          q(0),
          ],
       q(tos) => [
-         q(6660),
+         q(6648),
          q(0),
          ],
       q(tou) => [
-         q(6661),
+         q(6649),
          q(0),
          ],
       q(tov) => [
-         q(6662),
+         q(6650),
          q(0),
          ],
       q(tow) => [
-         q(6663),
+         q(6651),
          q(0),
          ],
       q(tox) => [
-         q(6664),
+         q(6652),
          q(0),
          ],
       q(toy) => [
-         q(6665),
+         q(6653),
          q(0),
          ],
       q(toz) => [
-         q(6666),
+         q(6654),
          q(0),
          ],
       q(tpa) => [
-         q(6667),
+         q(6655),
          q(0),
          ],
       q(tpc) => [
-         q(6668),
+         q(6656),
          q(0),
          ],
       q(tpe) => [
-         q(6669),
+         q(6657),
          q(0),
          ],
       q(tpf) => [
-         q(6670),
+         q(6658),
          q(0),
          ],
       q(tpg) => [
-         q(6671),
+         q(6659),
          q(0),
          ],
       q(tpi) => [
@@ -84726,151 +84644,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tpj) => [
-         q(6672),
+         q(6660),
          q(0),
          ],
       q(tpk) => [
-         q(6673),
+         q(6661),
          q(0),
          ],
       q(tpl) => [
-         q(6674),
+         q(6662),
          q(0),
          ],
       q(tpm) => [
-         q(6675),
+         q(6663),
          q(0),
          ],
       q(tpn) => [
-         q(6676),
+         q(6664),
          q(0),
          ],
       q(tpo) => [
-         q(6677),
+         q(6665),
          q(0),
          ],
       q(tpp) => [
-         q(6678),
+         q(6666),
          q(0),
          ],
       q(tpq) => [
-         q(6679),
+         q(6667),
          q(0),
          ],
       q(tpr) => [
-         q(6680),
+         q(6668),
          q(0),
          ],
       q(tpt) => [
-         q(6681),
+         q(6669),
          q(0),
          ],
       q(tpu) => [
-         q(6682),
+         q(6670),
          q(0),
          ],
       q(tpv) => [
-         q(6683),
+         q(6671),
          q(0),
          ],
       q(tpw) => [
-         q(6684),
+         q(6672),
          q(0),
          ],
       q(tpx) => [
-         q(6685),
+         q(6673),
          q(0),
          ],
       q(tpy) => [
-         q(6686),
+         q(6674),
          q(0),
          ],
       q(tpz) => [
-         q(6687),
+         q(6675),
          q(0),
          ],
       q(tqb) => [
-         q(6688),
+         q(6676),
          q(0),
          ],
       q(tql) => [
-         q(6689),
+         q(6677),
          q(0),
          ],
       q(tqm) => [
-         q(6690),
+         q(6678),
          q(0),
          ],
       q(tqn) => [
-         q(6691),
+         q(6679),
          q(0),
          ],
       q(tqo) => [
-         q(6692),
+         q(6680),
          q(0),
          ],
       q(tqp) => [
-         q(6693),
+         q(6681),
          q(0),
          ],
       q(tqq) => [
-         q(6694),
+         q(6682),
          q(0),
          ],
       q(tqr) => [
-         q(6695),
+         q(6683),
          q(0),
          ],
       q(tqt) => [
-         q(6696),
+         q(6684),
          q(0),
          ],
       q(tqu) => [
-         q(6697),
+         q(6685),
          q(0),
          ],
       q(tqw) => [
-         q(6698),
+         q(6686),
          q(0),
          ],
       q(tra) => [
-         q(6699),
+         q(6687),
          q(0),
          ],
       q(trb) => [
-         q(6700),
+         q(6688),
          q(0),
          ],
       q(trc) => [
-         q(6701),
+         q(6689),
          q(0),
          ],
       q(trd) => [
-         q(6702),
+         q(6690),
          q(0),
          ],
       q(tre) => [
-         q(6703),
+         q(6691),
          q(0),
          ],
       q(trf) => [
-         q(6704),
+         q(6692),
          q(0),
          ],
       q(trg) => [
-         q(6705),
+         q(6693),
          q(0),
          ],
       q(trh) => [
-         q(6706),
+         q(6694),
          q(0),
          ],
       q(tri) => [
-         q(6707),
+         q(6695),
          q(0),
          ],
       q(trj) => [
-         q(6708),
+         q(6696),
          q(0),
          ],
       q(trk) => [
@@ -84878,95 +84796,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(trl) => [
-         q(6709),
+         q(6697),
          q(0),
          ],
       q(trm) => [
-         q(6710),
+         q(6698),
          q(0),
          ],
       q(trn) => [
-         q(6711),
+         q(6699),
          q(0),
          ],
       q(tro) => [
-         q(6712),
+         q(6700),
          q(0),
          ],
       q(trp) => [
-         q(6713),
+         q(6701),
          q(0),
          ],
       q(trq) => [
-         q(6714),
+         q(6702),
          q(0),
          ],
       q(trr) => [
-         q(6715),
+         q(6703),
          q(0),
          ],
       q(trs) => [
-         q(6716),
+         q(6704),
          q(0),
          ],
       q(trt) => [
-         q(6717),
+         q(6705),
          q(0),
          ],
       q(tru) => [
-         q(6718),
+         q(6706),
          q(0),
          ],
       q(trv) => [
-         q(6719),
+         q(6707),
          q(0),
          ],
       q(trw) => [
-         q(6720),
+         q(6708),
          q(0),
          ],
       q(trx) => [
-         q(6721),
+         q(6709),
          q(0),
          ],
       q(try) => [
-         q(6722),
+         q(6710),
          q(0),
          ],
       q(trz) => [
-         q(6723),
+         q(6711),
          q(0),
          ],
       q(tsa) => [
-         q(6724),
+         q(6712),
          q(0),
          ],
       q(tsb) => [
-         q(6725),
+         q(6713),
          q(0),
          ],
       q(tsc) => [
-         q(6726),
+         q(6714),
          q(0),
          ],
       q(tsd) => [
-         q(6727),
+         q(6715),
          q(0),
          ],
       q(tse) => [
-         q(6728),
-         q(0),
-         ],
-      q(tsf) => [
-         q(6729),
+         q(6716),
          q(0),
          ],
       q(tsg) => [
-         q(6730),
+         q(6717),
          q(0),
          ],
       q(tsh) => [
-         q(6731),
+         q(6718),
          q(0),
          ],
       q(tsi) => [
@@ -84974,19 +84888,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tsj) => [
-         q(6732),
+         q(6719),
          q(0),
          ],
       q(tsk) => [
-         q(6733),
+         q(6720),
          q(0),
          ],
       q(tsl) => [
-         q(6734),
+         q(6721),
          q(0),
          ],
       q(tsm) => [
-         q(6735),
+         q(6722),
          q(0),
          ],
       q(tsn) => [
@@ -84998,187 +84912,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tsp) => [
-         q(6736),
+         q(6723),
          q(0),
          ],
       q(tsq) => [
-         q(6737),
+         q(6724),
          q(0),
          ],
       q(tsr) => [
-         q(6738),
+         q(6725),
          q(0),
          ],
       q(tss) => [
-         q(6739),
+         q(6726),
          q(0),
          ],
       q(tst) => [
-         q(6740),
+         q(6727),
          q(0),
          ],
       q(tsu) => [
-         q(6741),
+         q(6728),
          q(0),
          ],
       q(tsv) => [
-         q(6742),
+         q(6729),
          q(0),
          ],
       q(tsw) => [
-         q(6743),
+         q(6730),
          q(0),
          ],
       q(tsx) => [
-         q(6744),
+         q(6731),
          q(0),
          ],
       q(tsy) => [
-         q(6745),
+         q(6732),
          q(0),
          ],
       q(tsz) => [
-         q(6746),
+         q(6733),
          q(0),
          ],
       q(tta) => [
-         q(6747),
+         q(6734),
          q(0),
          ],
       q(ttb) => [
-         q(6748),
+         q(6735),
          q(0),
          ],
       q(ttc) => [
-         q(6749),
+         q(6736),
          q(0),
          ],
       q(ttd) => [
-         q(6750),
+         q(6737),
          q(0),
          ],
       q(tte) => [
-         q(6751),
+         q(6738),
          q(0),
          ],
       q(ttf) => [
-         q(6752),
+         q(6739),
          q(0),
          ],
       q(ttg) => [
-         q(6753),
+         q(6740),
          q(0),
          ],
       q(tth) => [
-         q(6754),
+         q(6741),
          q(0),
          ],
       q(tti) => [
-         q(6755),
+         q(6742),
          q(0),
          ],
       q(ttj) => [
-         q(6756),
+         q(6743),
          q(0),
          ],
       q(ttk) => [
-         q(6757),
+         q(6744),
          q(0),
          ],
       q(ttl) => [
-         q(6758),
+         q(6745),
          q(0),
          ],
       q(ttm) => [
-         q(6759),
+         q(6746),
          q(0),
          ],
       q(ttn) => [
-         q(6760),
+         q(6747),
          q(0),
          ],
       q(tto) => [
-         q(6761),
+         q(6748),
          q(0),
          ],
       q(ttp) => [
-         q(6762),
+         q(6749),
          q(0),
          ],
       q(ttq) => [
-         q(6763),
+         q(6750),
          q(0),
          ],
       q(ttr) => [
-         q(6764),
+         q(6751),
          q(0),
          ],
       q(tts) => [
-         q(6765),
+         q(6752),
          q(0),
          ],
       q(ttt) => [
-         q(6766),
+         q(6753),
          q(0),
          ],
       q(ttu) => [
-         q(6767),
+         q(6754),
          q(0),
          ],
       q(ttv) => [
-         q(6768),
+         q(6755),
          q(0),
          ],
       q(ttw) => [
-         q(6769),
+         q(6756),
          q(0),
          ],
       q(tty) => [
-         q(6770),
+         q(6757),
          q(0),
          ],
       q(ttz) => [
-         q(6771),
+         q(6758),
          q(0),
          ],
       q(tua) => [
-         q(6772),
+         q(6759),
          q(0),
          ],
       q(tub) => [
-         q(6773),
+         q(6760),
          q(0),
          ],
       q(tuc) => [
-         q(6774),
+         q(6761),
          q(0),
          ],
       q(tud) => [
-         q(6775),
+         q(6762),
          q(0),
          ],
       q(tue) => [
-         q(6776),
+         q(6763),
          q(0),
          ],
       q(tuf) => [
-         q(6777),
+         q(6764),
          q(0),
          ],
       q(tug) => [
-         q(6778),
+         q(6765),
          q(0),
          ],
       q(tuh) => [
-         q(6779),
+         q(6766),
          q(0),
          ],
       q(tui) => [
-         q(6780),
+         q(6767),
          q(0),
          ],
       q(tuj) => [
-         q(6781),
+         q(6768),
          q(0),
          ],
       q(tuk) => [
@@ -85186,7 +85100,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tul) => [
-         q(6782),
+         q(6769),
          q(0),
          ],
       q(tum) => [
@@ -85194,11 +85108,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tun) => [
-         q(6783),
+         q(6770),
          q(0),
          ],
       q(tuo) => [
-         q(6784),
+         q(6771),
          q(0),
          ],
       q(tup) => [
@@ -85206,7 +85120,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tuq) => [
-         q(6785),
+         q(6772),
          q(0),
          ],
       q(tur) => [
@@ -85214,7 +85128,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tus) => [
-         q(6786),
+         q(6773),
          q(0),
          ],
       q(tut) => [
@@ -85222,11 +85136,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tuu) => [
-         q(6787),
+         q(6774),
          q(0),
          ],
       q(tuv) => [
-         q(6788),
+         q(6775),
          q(0),
          ],
       q(tuw) => [
@@ -85234,31 +85148,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tux) => [
-         q(6789),
+         q(6776),
          q(0),
          ],
       q(tuy) => [
-         q(6790),
+         q(6777),
          q(0),
          ],
       q(tuz) => [
-         q(6791),
+         q(6778),
          q(0),
          ],
       q(tva) => [
-         q(6792),
+         q(6779),
          q(0),
          ],
       q(tvd) => [
-         q(6793),
+         q(6780),
          q(0),
          ],
       q(tve) => [
-         q(6794),
+         q(6781),
          q(0),
          ],
       q(tvk) => [
-         q(6795),
+         q(6782),
          q(0),
          ],
       q(tvl) => [
@@ -85266,67 +85180,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tvm) => [
-         q(6796),
+         q(6783),
          q(0),
          ],
       q(tvn) => [
-         q(6797),
+         q(6784),
          q(0),
          ],
       q(tvo) => [
-         q(6798),
+         q(6785),
          q(0),
          ],
       q(tvs) => [
-         q(6799),
+         q(6786),
          q(0),
          ],
       q(tvt) => [
-         q(6800),
+         q(6787),
          q(0),
          ],
       q(tvu) => [
-         q(6801),
+         q(6788),
          q(0),
          ],
       q(tvw) => [
-         q(6802),
+         q(6789),
          q(0),
          ],
       q(tvy) => [
-         q(6803),
+         q(6790),
          q(0),
          ],
       q(twa) => [
-         q(6804),
+         q(6791),
          q(0),
          ],
       q(twb) => [
-         q(6805),
+         q(6792),
          q(0),
          ],
       q(twc) => [
-         q(6806),
+         q(6793),
          q(0),
          ],
       q(twd) => [
-         q(6807),
+         q(6794),
          q(0),
          ],
       q(twe) => [
-         q(6808),
+         q(6795),
          q(0),
          ],
       q(twf) => [
-         q(6809),
+         q(6796),
          q(0),
          ],
       q(twg) => [
-         q(6810),
+         q(6797),
          q(0),
          ],
       q(twh) => [
-         q(6811),
+         q(6798),
          q(0),
          ],
       q(twi) => [
@@ -85334,167 +85248,171 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(twl) => [
-         q(6812),
+         q(6799),
          q(0),
          ],
       q(twm) => [
-         q(6813),
+         q(6800),
          q(0),
          ],
       q(twn) => [
-         q(6814),
+         q(6801),
          q(0),
          ],
       q(two) => [
-         q(6815),
+         q(6802),
          q(0),
          ],
       q(twp) => [
-         q(6816),
+         q(6803),
          q(0),
          ],
       q(twq) => [
-         q(6817),
+         q(6804),
          q(0),
          ],
       q(twr) => [
-         q(6818),
+         q(6805),
          q(0),
          ],
       q(twt) => [
-         q(6819),
+         q(6806),
          q(0),
          ],
       q(twu) => [
-         q(6820),
+         q(6807),
          q(0),
          ],
       q(tww) => [
-         q(6821),
+         q(6808),
          q(0),
          ],
       q(twx) => [
-         q(6822),
+         q(6809),
          q(0),
          ],
       q(twy) => [
-         q(6823),
+         q(6810),
          q(0),
          ],
       q(txa) => [
-         q(6824),
+         q(6811),
          q(0),
          ],
       q(txb) => [
-         q(6825),
+         q(6812),
          q(0),
          ],
       q(txc) => [
-         q(6826),
+         q(6813),
          q(0),
          ],
       q(txe) => [
-         q(6827),
+         q(6814),
          q(0),
          ],
       q(txg) => [
-         q(6828),
+         q(6815),
          q(0),
          ],
       q(txh) => [
-         q(6829),
+         q(6816),
          q(0),
          ],
       q(txi) => [
-         q(6830),
+         q(6817),
+         q(0),
+         ],
+      q(txj) => [
+         q(6818),
          q(0),
          ],
       q(txm) => [
-         q(6831),
+         q(6819),
          q(0),
          ],
       q(txn) => [
-         q(6832),
+         q(6820),
          q(0),
          ],
       q(txo) => [
-         q(6833),
+         q(6821),
          q(0),
          ],
       q(txq) => [
-         q(6834),
+         q(6822),
          q(0),
          ],
       q(txr) => [
-         q(6835),
+         q(6823),
          q(0),
          ],
       q(txs) => [
-         q(6836),
+         q(6824),
          q(0),
          ],
       q(txt) => [
-         q(6837),
+         q(6825),
          q(0),
          ],
       q(txu) => [
-         q(6838),
+         q(6826),
          q(0),
          ],
       q(txx) => [
-         q(6839),
+         q(6827),
          q(0),
          ],
       q(txy) => [
-         q(6840),
+         q(6828),
          q(0),
          ],
       q(tya) => [
-         q(6841),
+         q(6829),
          q(0),
          ],
       q(tye) => [
-         q(6842),
+         q(6830),
          q(0),
          ],
       q(tyh) => [
-         q(6843),
+         q(6831),
          q(0),
          ],
       q(tyi) => [
-         q(6844),
+         q(6832),
          q(0),
          ],
       q(tyj) => [
-         q(6845),
+         q(6833),
          q(0),
          ],
       q(tyl) => [
-         q(6846),
+         q(6834),
          q(0),
          ],
       q(tyn) => [
-         q(6847),
+         q(6835),
          q(0),
          ],
       q(typ) => [
-         q(6848),
+         q(6836),
          q(0),
          ],
       q(tyr) => [
-         q(6849),
+         q(6837),
          q(0),
          ],
       q(tys) => [
-         q(6850),
+         q(6838),
          q(0),
          ],
       q(tyt) => [
-         q(6851),
+         q(6839),
          q(0),
          ],
       q(tyu) => [
-         q(6852),
+         q(6840),
          q(0),
          ],
       q(tyv) => [
@@ -85502,103 +85420,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tyx) => [
-         q(6853),
+         q(6841),
          q(0),
          ],
       q(tyz) => [
-         q(6854),
+         q(6842),
          q(0),
          ],
       q(tza) => [
-         q(6855),
+         q(6843),
          q(0),
          ],
       q(tzh) => [
-         q(6856),
+         q(6844),
          q(0),
          ],
       q(tzj) => [
-         q(6857),
+         q(6845),
          q(0),
          ],
       q(tzl) => [
-         q(6858),
+         q(6846),
          q(0),
          ],
       q(tzm) => [
-         q(6859),
+         q(6847),
          q(0),
          ],
       q(tzn) => [
-         q(6860),
+         q(6848),
          q(0),
          ],
       q(tzo) => [
-         q(6861),
+         q(6849),
          q(0),
          ],
       q(tzx) => [
-         q(6862),
+         q(6850),
          q(0),
          ],
       q(uam) => [
-         q(6863),
+         q(6851),
          q(0),
          ],
       q(uan) => [
-         q(6864),
+         q(6852),
          q(0),
          ],
       q(uar) => [
-         q(6865),
+         q(6853),
          q(0),
          ],
       q(uba) => [
-         q(6866),
+         q(6854),
          q(0),
          ],
       q(ubi) => [
-         q(6867),
+         q(6855),
          q(0),
          ],
       q(ubl) => [
-         q(6868),
+         q(6856),
          q(0),
          ],
       q(ubr) => [
-         q(6869),
+         q(6857),
          q(0),
          ],
       q(ubu) => [
-         q(6870),
+         q(6858),
          q(0),
          ],
       q(uby) => [
-         q(6871),
+         q(6859),
          q(0),
          ],
       q(uda) => [
-         q(6872),
+         q(6860),
          q(0),
          ],
       q(ude) => [
-         q(6873),
+         q(6861),
          q(0),
          ],
       q(udg) => [
-         q(6874),
+         q(6862),
          q(0),
          ],
       q(udi) => [
-         q(6875),
+         q(6863),
          q(0),
          ],
       q(udj) => [
-         q(6876),
+         q(6864),
          q(0),
          ],
       q(udl) => [
-         q(6877),
+         q(6865),
          q(0),
          ],
       q(udm) => [
@@ -85606,15 +85524,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(udu) => [
-         q(6878),
+         q(6866),
          q(0),
          ],
       q(ues) => [
-         q(6879),
+         q(6867),
          q(0),
          ],
       q(ufi) => [
-         q(6880),
+         q(6868),
          q(0),
          ],
       q(uga) => [
@@ -85622,31 +85540,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ugb) => [
-         q(6881),
+         q(6869),
          q(0),
          ],
       q(uge) => [
-         q(6882),
+         q(6870),
          q(0),
          ],
       q(ugn) => [
-         q(6883),
+         q(6871),
          q(0),
          ],
       q(ugo) => [
-         q(6884),
+         q(6872),
          q(0),
          ],
       q(ugy) => [
-         q(6885),
+         q(6873),
          q(0),
          ],
       q(uha) => [
-         q(6886),
+         q(6874),
          q(0),
          ],
       q(uhn) => [
-         q(6887),
+         q(6875),
          q(0),
          ],
       q(uig) => [
@@ -85654,39 +85572,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(uis) => [
-         q(6888),
+         q(6876),
          q(0),
          ],
       q(uiv) => [
-         q(6889),
+         q(6877),
          q(0),
          ],
       q(uji) => [
-         q(6890),
+         q(6878),
          q(0),
          ],
       q(uka) => [
-         q(6891),
+         q(6879),
          q(0),
          ],
       q(ukg) => [
-         q(6892),
+         q(6880),
          q(0),
          ],
       q(ukh) => [
-         q(6893),
+         q(6881),
          q(0),
          ],
       q(ukl) => [
-         q(6894),
+         q(6882),
          q(0),
          ],
       q(ukp) => [
-         q(6895),
+         q(6883),
          q(0),
          ],
       q(ukq) => [
-         q(6896),
+         q(6884),
          q(0),
          ],
       q(ukr) => [
@@ -85694,71 +85612,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(uks) => [
-         q(6897),
+         q(6885),
          q(0),
          ],
       q(uku) => [
-         q(6898),
+         q(6886),
          q(0),
          ],
       q(ukw) => [
-         q(6899),
+         q(6887),
          q(0),
          ],
       q(uky) => [
-         q(6900),
+         q(6888),
          q(0),
          ],
       q(ula) => [
-         q(6901),
+         q(6889),
          q(0),
          ],
       q(ulb) => [
-         q(6902),
+         q(6890),
          q(0),
          ],
       q(ulc) => [
-         q(6903),
+         q(6891),
          q(0),
          ],
       q(ule) => [
-         q(6904),
+         q(6892),
          q(0),
          ],
       q(ulf) => [
-         q(6905),
+         q(6893),
          q(0),
          ],
       q(uli) => [
-         q(6906),
+         q(6894),
          q(0),
          ],
       q(ulk) => [
-         q(6907),
+         q(6895),
          q(0),
          ],
       q(ull) => [
-         q(6908),
+         q(6896),
          q(0),
          ],
       q(ulm) => [
-         q(6909),
+         q(6897),
          q(0),
          ],
       q(uln) => [
-         q(6910),
+         q(6898),
          q(0),
          ],
       q(ulu) => [
-         q(6911),
+         q(6899),
          q(0),
          ],
       q(ulw) => [
-         q(6912),
+         q(6900),
          q(0),
          ],
       q(uma) => [
-         q(6913),
+         q(6901),
          q(0),
          ],
       q(umb) => [
@@ -85766,51 +85684,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(umc) => [
-         q(6914),
+         q(6902),
          q(0),
          ],
       q(umd) => [
-         q(6915),
+         q(6903),
          q(0),
          ],
       q(umg) => [
-         q(6916),
+         q(6904),
          q(0),
          ],
       q(umi) => [
-         q(6917),
+         q(6905),
          q(0),
          ],
       q(umm) => [
-         q(6918),
+         q(6906),
          q(0),
          ],
       q(umn) => [
-         q(6919),
+         q(6907),
          q(0),
          ],
       q(umo) => [
-         q(6920),
+         q(6908),
          q(0),
          ],
       q(ump) => [
-         q(6921),
+         q(6909),
          q(0),
          ],
       q(umr) => [
-         q(6922),
+         q(6910),
          q(0),
          ],
       q(ums) => [
-         q(6923),
+         q(6911),
          q(0),
          ],
       q(umu) => [
-         q(6924),
+         q(6912),
          q(0),
          ],
       q(una) => [
-         q(6925),
+         q(6913),
          q(0),
          ],
       q(und) => [
@@ -85818,63 +85736,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(une) => [
-         q(6926),
+         q(6914),
          q(0),
          ],
       q(ung) => [
-         q(6927),
+         q(6915),
          q(0),
          ],
       q(unk) => [
-         q(6928),
+         q(6916),
          q(0),
          ],
       q(unm) => [
-         q(6929),
+         q(6917),
          q(0),
          ],
       q(unn) => [
-         q(6930),
+         q(6918),
          q(0),
          ],
       q(unr) => [
-         q(6931),
+         q(6919),
          q(0),
          ],
       q(unu) => [
-         q(6932),
+         q(6920),
          q(0),
          ],
       q(unx) => [
-         q(6933),
+         q(6921),
          q(0),
          ],
       q(unz) => [
-         q(6934),
-         q(0),
-         ],
-      q(uok) => [
-         q(6935),
+         q(6922),
          q(0),
          ],
       q(upi) => [
-         q(6936),
+         q(6923),
          q(0),
          ],
       q(upv) => [
-         q(6937),
+         q(6924),
          q(0),
          ],
       q(ura) => [
-         q(6938),
+         q(6925),
          q(0),
          ],
       q(urb) => [
-         q(6939),
+         q(6926),
          q(0),
          ],
       q(urc) => [
-         q(6940),
+         q(6927),
          q(0),
          ],
       q(urd) => [
@@ -85882,23 +85796,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ure) => [
-         q(6941),
+         q(6928),
          q(0),
          ],
       q(urf) => [
-         q(6942),
+         q(6929),
          q(0),
          ],
       q(urg) => [
-         q(6943),
+         q(6930),
          q(0),
          ],
       q(urh) => [
-         q(6944),
+         q(6931),
          q(0),
          ],
       q(uri) => [
-         q(6945),
+         q(6932),
          q(0),
          ],
       q(urj) => [
@@ -85906,139 +85820,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(urk) => [
-         q(6946),
+         q(6933),
          q(0),
          ],
       q(url) => [
-         q(6947),
+         q(6934),
          q(0),
          ],
       q(urm) => [
-         q(6948),
+         q(6935),
          q(0),
          ],
       q(urn) => [
-         q(6949),
+         q(6936),
          q(0),
          ],
       q(uro) => [
-         q(6950),
+         q(6937),
          q(0),
          ],
       q(urp) => [
-         q(6951),
+         q(6938),
          q(0),
          ],
       q(urr) => [
-         q(6952),
+         q(6939),
          q(0),
          ],
       q(urt) => [
-         q(6953),
+         q(6940),
          q(0),
          ],
       q(uru) => [
-         q(6954),
+         q(6941),
          q(0),
          ],
       q(urv) => [
-         q(6955),
+         q(6942),
          q(0),
          ],
       q(urw) => [
-         q(6956),
+         q(6943),
          q(0),
          ],
       q(urx) => [
-         q(6957),
+         q(6944),
          q(0),
          ],
       q(ury) => [
-         q(6958),
+         q(6945),
          q(0),
          ],
       q(urz) => [
-         q(6959),
+         q(6946),
          q(0),
          ],
       q(usa) => [
-         q(6960),
+         q(6947),
          q(0),
          ],
       q(ush) => [
-         q(6961),
+         q(6948),
          q(0),
          ],
       q(usi) => [
-         q(6962),
+         q(6949),
          q(0),
          ],
       q(usk) => [
-         q(6963),
+         q(6950),
          q(0),
          ],
       q(usp) => [
-         q(6964),
+         q(6951),
          q(0),
          ],
       q(usu) => [
-         q(6965),
+         q(6952),
          q(0),
          ],
       q(uta) => [
-         q(6966),
+         q(6953),
          q(0),
          ],
       q(ute) => [
-         q(6967),
+         q(6954),
          q(0),
          ],
       q(utp) => [
-         q(6968),
+         q(6955),
          q(0),
          ],
       q(utr) => [
-         q(6969),
+         q(6956),
          q(0),
          ],
       q(utu) => [
-         q(6970),
+         q(6957),
          q(0),
          ],
       q(uum) => [
-         q(6971),
+         q(6958),
          q(0),
          ],
       q(uun) => [
-         q(6972),
+         q(6959),
          q(0),
          ],
       q(uur) => [
-         q(6973),
+         q(6960),
          q(0),
          ],
       q(uuu) => [
-         q(6974),
+         q(6961),
          q(0),
          ],
       q(uve) => [
-         q(6975),
+         q(6962),
          q(0),
          ],
       q(uvh) => [
-         q(6976),
+         q(6963),
          q(0),
          ],
       q(uvl) => [
-         q(6977),
+         q(6964),
          q(0),
          ],
       q(uwa) => [
-         q(6978),
+         q(6965),
          q(0),
          ],
       q(uya) => [
-         q(6979),
+         q(6966),
          q(0),
          ],
       q(uzb) => [
@@ -86046,31 +85960,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(uzn) => [
-         q(6980),
+         q(6967),
          q(0),
          ],
       q(uzs) => [
-         q(6981),
+         q(6968),
          q(0),
          ],
       q(vaa) => [
-         q(6982),
+         q(6969),
          q(0),
          ],
       q(vae) => [
-         q(6983),
+         q(6970),
          q(0),
          ],
       q(vaf) => [
-         q(6984),
+         q(6971),
          q(0),
          ],
       q(vag) => [
-         q(6985),
+         q(6972),
          q(0),
          ],
       q(vah) => [
-         q(6986),
+         q(6973),
          q(0),
          ],
       q(vai) => [
@@ -86078,71 +85992,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(vaj) => [
-         q(6987),
+         q(6974),
          q(0),
          ],
       q(val) => [
-         q(6988),
+         q(6975),
          q(0),
          ],
       q(vam) => [
-         q(6989),
+         q(6976),
          q(0),
          ],
       q(van) => [
-         q(6990),
+         q(6977),
          q(0),
          ],
       q(vao) => [
-         q(6991),
+         q(6978),
          q(0),
          ],
       q(vap) => [
-         q(6992),
+         q(6979),
          q(0),
          ],
       q(var) => [
-         q(6993),
+         q(6980),
          q(0),
          ],
       q(vas) => [
-         q(6994),
+         q(6981),
          q(0),
          ],
       q(vau) => [
-         q(6995),
+         q(6982),
          q(0),
          ],
       q(vav) => [
-         q(6996),
+         q(6983),
          q(0),
          ],
       q(vay) => [
-         q(6997),
+         q(6984),
          q(0),
          ],
       q(vbb) => [
-         q(6998),
+         q(6985),
          q(0),
          ],
       q(vbk) => [
-         q(6999),
+         q(6986),
          q(0),
          ],
       q(vec) => [
-         q(7000),
+         q(6987),
          q(0),
          ],
       q(ved) => [
-         q(7001),
+         q(6988),
          q(0),
          ],
       q(vel) => [
-         q(7002),
+         q(6989),
          q(0),
          ],
       q(vem) => [
-         q(7003),
+         q(6990),
          q(0),
          ],
       q(ven) => [
@@ -86150,31 +86064,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(veo) => [
-         q(7004),
+         q(6991),
          q(0),
          ],
       q(vep) => [
-         q(7005),
+         q(6992),
          q(0),
          ],
       q(ver) => [
-         q(7006),
+         q(6993),
          q(0),
          ],
       q(vgr) => [
-         q(7007),
+         q(6994),
          q(0),
          ],
       q(vgt) => [
-         q(7008),
+         q(6995),
          q(0),
          ],
       q(vic) => [
-         q(7009),
+         q(6996),
          q(0),
          ],
       q(vid) => [
-         q(7010),
+         q(6997),
          q(0),
          ],
       q(vie) => [
@@ -86182,183 +86096,183 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(vif) => [
-         q(7011),
+         q(6998),
          q(0),
          ],
       q(vig) => [
-         q(7012),
+         q(6999),
          q(0),
          ],
       q(vil) => [
-         q(7013),
+         q(7000),
          q(0),
          ],
       q(vin) => [
-         q(7014),
+         q(7001),
          q(0),
          ],
       q(vis) => [
-         q(7015),
+         q(7002),
          q(0),
          ],
       q(vit) => [
-         q(7016),
+         q(7003),
          q(0),
          ],
       q(viv) => [
-         q(7017),
+         q(7004),
          q(0),
          ],
       q(vka) => [
-         q(7018),
+         q(7005),
          q(0),
          ],
       q(vki) => [
-         q(7019),
+         q(7006),
          q(0),
          ],
       q(vkj) => [
-         q(7020),
+         q(7007),
          q(0),
          ],
       q(vkk) => [
-         q(7021),
+         q(7008),
          q(0),
          ],
       q(vkl) => [
-         q(7022),
+         q(7009),
          q(0),
          ],
       q(vkm) => [
-         q(7023),
+         q(7010),
          q(0),
          ],
       q(vko) => [
-         q(7024),
+         q(7011),
          q(0),
          ],
       q(vkp) => [
-         q(7025),
+         q(7012),
          q(0),
          ],
       q(vkt) => [
-         q(7026),
+         q(7013),
          q(0),
          ],
       q(vku) => [
-         q(7027),
+         q(7014),
          q(0),
          ],
       q(vlp) => [
-         q(7028),
+         q(7015),
          q(0),
          ],
       q(vls) => [
-         q(7029),
+         q(7016),
          q(0),
          ],
       q(vma) => [
-         q(7030),
+         q(7017),
          q(0),
          ],
       q(vmb) => [
-         q(7031),
+         q(7018),
          q(0),
          ],
       q(vmc) => [
-         q(7032),
+         q(7019),
          q(0),
          ],
       q(vmd) => [
-         q(7033),
+         q(7020),
          q(0),
          ],
       q(vme) => [
-         q(7034),
+         q(7021),
          q(0),
          ],
       q(vmf) => [
-         q(7035),
+         q(7022),
          q(0),
          ],
       q(vmg) => [
-         q(7036),
+         q(7023),
          q(0),
          ],
       q(vmh) => [
-         q(7037),
+         q(7024),
          q(0),
          ],
       q(vmi) => [
-         q(7038),
+         q(7025),
          q(0),
          ],
       q(vmj) => [
-         q(7039),
+         q(7026),
          q(0),
          ],
       q(vmk) => [
-         q(7040),
+         q(7027),
          q(0),
          ],
       q(vml) => [
-         q(7041),
+         q(7028),
          q(0),
          ],
       q(vmm) => [
-         q(7042),
+         q(7029),
          q(0),
          ],
       q(vmp) => [
-         q(7043),
+         q(7030),
          q(0),
          ],
       q(vmq) => [
-         q(7044),
+         q(7031),
          q(0),
          ],
       q(vmr) => [
-         q(7045),
+         q(7032),
          q(0),
          ],
       q(vms) => [
-         q(7046),
+         q(7033),
          q(0),
          ],
       q(vmu) => [
-         q(7047),
+         q(7034),
          q(0),
          ],
       q(vmv) => [
-         q(7048),
+         q(7035),
          q(0),
          ],
       q(vmw) => [
-         q(7049),
+         q(7036),
          q(0),
          ],
       q(vmx) => [
-         q(7050),
+         q(7037),
          q(0),
          ],
       q(vmy) => [
-         q(7051),
+         q(7038),
          q(0),
          ],
       q(vmz) => [
-         q(7052),
+         q(7039),
          q(0),
          ],
       q(vnk) => [
-         q(7053),
+         q(7040),
          q(0),
          ],
       q(vnm) => [
-         q(7054),
+         q(7041),
          q(0),
          ],
       q(vnp) => [
-         q(7055),
+         q(7042),
          q(0),
          ],
       q(vol) => [
@@ -86366,7 +86280,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(vor) => [
-         q(7056),
+         q(7043),
          q(0),
          ],
       q(vot) => [
@@ -86374,91 +86288,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(vra) => [
-         q(7057),
+         q(7044),
          q(0),
          ],
       q(vro) => [
-         q(7056),
+         q(7043),
          q(0),
          ],
       q(vrs) => [
-         q(7058),
+         q(7045),
          q(0),
          ],
       q(vrt) => [
-         q(7059),
+         q(7046),
          q(0),
          ],
       q(vsi) => [
-         q(7060),
+         q(7047),
          q(0),
          ],
       q(vsl) => [
-         q(7061),
+         q(7048),
          q(0),
          ],
       q(vsv) => [
-         q(7062),
+         q(7049),
          q(0),
          ],
       q(vto) => [
-         q(7063),
+         q(7050),
          q(0),
          ],
       q(vum) => [
-         q(7064),
+         q(7051),
          q(0),
          ],
       q(vun) => [
-         q(7065),
+         q(7052),
          q(0),
          ],
       q(vut) => [
-         q(7066),
+         q(7053),
          q(0),
          ],
       q(vwa) => [
-         q(7067),
+         q(7054),
          q(0),
          ],
       q(waa) => [
-         q(7068),
+         q(7055),
          q(0),
          ],
       q(wab) => [
-         q(7069),
+         q(7056),
          q(0),
          ],
       q(wac) => [
-         q(7070),
+         q(7057),
          q(0),
          ],
       q(wad) => [
-         q(7071),
+         q(7058),
          q(0),
          ],
       q(wae) => [
-         q(7072),
+         q(7059),
          q(0),
          ],
       q(waf) => [
-         q(7073),
+         q(7060),
          q(0),
          ],
       q(wag) => [
-         q(7074),
+         q(7061),
          q(0),
          ],
       q(wah) => [
-         q(7075),
+         q(7062),
          q(0),
          ],
       q(wai) => [
-         q(7076),
+         q(7063),
          q(0),
          ],
       q(waj) => [
-         q(7077),
+         q(7064),
          q(0),
          ],
       q(wak) => [
@@ -86470,23 +86384,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(wam) => [
-         q(7078),
+         q(7065),
          q(0),
          ],
       q(wan) => [
-         q(7079),
+         q(7066),
          q(0),
          ],
       q(wao) => [
-         q(7080),
+         q(7067),
          q(0),
          ],
       q(wap) => [
-         q(7081),
+         q(7068),
          q(0),
          ],
       q(waq) => [
-         q(7082),
+         q(7069),
          q(0),
          ],
       q(war) => [
@@ -86498,151 +86412,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(wat) => [
-         q(7083),
+         q(7070),
          q(0),
          ],
       q(wau) => [
-         q(7084),
+         q(7071),
          q(0),
          ],
       q(wav) => [
-         q(7085),
+         q(7072),
          q(0),
          ],
       q(waw) => [
-         q(7086),
+         q(7073),
          q(0),
          ],
       q(wax) => [
-         q(7087),
+         q(7074),
          q(0),
          ],
       q(way) => [
-         q(7088),
+         q(7075),
          q(0),
          ],
       q(waz) => [
-         q(7089),
+         q(7076),
          q(0),
          ],
       q(wba) => [
-         q(7090),
+         q(7077),
          q(0),
          ],
       q(wbb) => [
-         q(7091),
+         q(7078),
          q(0),
          ],
       q(wbe) => [
-         q(7092),
+         q(7079),
          q(0),
          ],
       q(wbf) => [
-         q(6423),
+         q(6412),
          q(0),
          ],
       q(wbh) => [
-         q(7093),
+         q(7080),
          q(0),
          ],
       q(wbi) => [
-         q(7094),
+         q(7081),
          q(0),
          ],
       q(wbj) => [
-         q(7095),
+         q(7082),
          q(0),
          ],
       q(wbk) => [
-         q(7096),
+         q(7083),
          q(0),
          ],
       q(wbl) => [
-         q(7097),
+         q(7084),
          q(0),
          ],
       q(wbm) => [
-         q(7098),
+         q(7085),
          q(0),
          ],
       q(wbp) => [
-         q(7099),
+         q(7086),
          q(0),
          ],
       q(wbq) => [
-         q(7100),
+         q(7087),
          q(0),
          ],
       q(wbr) => [
-         q(7101),
+         q(7088),
          q(0),
          ],
       q(wbt) => [
-         q(7102),
+         q(7089),
          q(0),
          ],
       q(wbv) => [
-         q(7103),
+         q(7090),
          q(0),
          ],
       q(wbw) => [
-         q(7104),
+         q(7091),
          q(0),
          ],
       q(wca) => [
-         q(7105),
+         q(7092),
          q(0),
          ],
       q(wci) => [
-         q(7106),
+         q(7093),
          q(0),
          ],
       q(wdd) => [
-         q(7107),
+         q(7094),
          q(0),
          ],
       q(wdg) => [
-         q(7108),
+         q(7095),
          q(0),
          ],
       q(wdj) => [
-         q(7109),
+         q(7096),
          q(0),
          ],
       q(wdk) => [
-         q(7110),
+         q(7097),
          q(0),
          ],
       q(wdu) => [
-         q(7111),
+         q(7098),
          q(0),
          ],
       q(wdy) => [
-         q(7112),
+         q(7099),
          q(0),
          ],
       q(wea) => [
-         q(7113),
+         q(7100),
          q(0),
          ],
       q(wec) => [
-         q(7114),
+         q(7101),
          q(0),
          ],
       q(wed) => [
-         q(7115),
+         q(7102),
          q(0),
          ],
       q(weg) => [
-         q(7116),
+         q(7103),
          q(0),
          ],
       q(weh) => [
-         q(7117),
+         q(7104),
          q(0),
          ],
       q(wei) => [
-         q(7118),
+         q(7105),
          q(0),
          ],
       q(wel) => [
@@ -86650,7 +86564,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(wem) => [
-         q(7119),
+         q(7106),
          q(0),
          ],
       q(wen) => [
@@ -86658,211 +86572,211 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(weo) => [
-         q(7120),
+         q(7107),
          q(0),
          ],
       q(wep) => [
-         q(7121),
+         q(7108),
          q(0),
          ],
       q(wer) => [
-         q(7122),
+         q(7109),
          q(0),
          ],
       q(wes) => [
-         q(7123),
+         q(7110),
          q(0),
          ],
       q(wet) => [
-         q(7124),
+         q(7111),
          q(0),
          ],
       q(weu) => [
-         q(7125),
+         q(7112),
          q(0),
          ],
       q(wew) => [
-         q(7126),
+         q(7113),
          q(0),
          ],
       q(wfg) => [
-         q(7127),
+         q(7114),
          q(0),
          ],
       q(wga) => [
-         q(7128),
+         q(7115),
          q(0),
          ],
       q(wgb) => [
-         q(7129),
+         q(7116),
          q(0),
          ],
       q(wgg) => [
-         q(7130),
+         q(7117),
          q(0),
          ],
       q(wgi) => [
-         q(7131),
+         q(7118),
          q(0),
          ],
       q(wgo) => [
-         q(7132),
+         q(7119),
          q(0),
          ],
       q(wgu) => [
-         q(7133),
+         q(7120),
          q(0),
          ],
       q(wgy) => [
-         q(7134),
+         q(7121),
          q(0),
          ],
       q(wha) => [
-         q(7135),
+         q(7122),
          q(0),
          ],
       q(whg) => [
-         q(7136),
+         q(7123),
          q(0),
          ],
       q(whk) => [
-         q(7137),
+         q(7124),
          q(0),
          ],
       q(whu) => [
-         q(7138),
+         q(7125),
          q(0),
          ],
       q(wib) => [
-         q(7139),
+         q(7126),
          q(0),
          ],
       q(wic) => [
-         q(7140),
+         q(7127),
          q(0),
          ],
       q(wie) => [
-         q(7141),
+         q(7128),
          q(0),
          ],
       q(wif) => [
-         q(7142),
+         q(7129),
          q(0),
          ],
       q(wig) => [
-         q(7143),
+         q(7130),
          q(0),
          ],
       q(wih) => [
-         q(7144),
+         q(7131),
          q(0),
          ],
       q(wii) => [
-         q(7145),
+         q(7132),
          q(0),
          ],
       q(wij) => [
-         q(7146),
+         q(7133),
          q(0),
          ],
       q(wik) => [
-         q(7147),
+         q(7134),
          q(0),
          ],
       q(wil) => [
-         q(7148),
+         q(7135),
          q(0),
          ],
       q(wim) => [
-         q(7149),
+         q(7136),
          q(0),
          ],
       q(win) => [
-         q(7150),
+         q(7137),
          q(0),
          ],
       q(wir) => [
-         q(7151),
+         q(7138),
          q(0),
          ],
       q(wiu) => [
-         q(7152),
+         q(7139),
          q(0),
          ],
       q(wiv) => [
-         q(7153),
+         q(7140),
          q(0),
          ],
       q(wiy) => [
-         q(7154),
+         q(7141),
          q(0),
          ],
       q(wja) => [
-         q(7155),
+         q(7142),
          q(0),
          ],
       q(wji) => [
-         q(7156),
+         q(7143),
          q(0),
          ],
       q(wka) => [
-         q(7157),
+         q(7144),
          q(0),
          ],
       q(wkb) => [
-         q(7158),
+         q(7145),
          q(0),
          ],
       q(wkd) => [
-         q(7159),
+         q(7146),
          q(0),
          ],
       q(wkl) => [
-         q(7160),
+         q(7147),
          q(0),
          ],
       q(wku) => [
-         q(7161),
+         q(7148),
          q(0),
          ],
       q(wkw) => [
-         q(7162),
+         q(7149),
          q(0),
          ],
       q(wky) => [
-         q(7163),
+         q(7150),
          q(0),
          ],
       q(wla) => [
-         q(7164),
+         q(7151),
          q(0),
          ],
       q(wlc) => [
-         q(7165),
+         q(7152),
          q(0),
          ],
       q(wle) => [
-         q(7166),
+         q(7153),
          q(0),
          ],
       q(wlg) => [
-         q(7167),
+         q(7154),
          q(0),
          ],
       q(wli) => [
-         q(7168),
+         q(7155),
          q(0),
          ],
       q(wlk) => [
-         q(7169),
+         q(7156),
          q(0),
          ],
       q(wll) => [
-         q(7170),
+         q(7157),
          q(0),
          ],
       q(wlm) => [
-         q(7171),
+         q(7158),
          q(0),
          ],
       q(wln) => [
@@ -86870,183 +86784,183 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(wlo) => [
-         q(7172),
+         q(7159),
          q(0),
          ],
       q(wlr) => [
-         q(7173),
+         q(7160),
          q(0),
          ],
       q(wls) => [
-         q(7174),
+         q(7161),
          q(0),
          ],
       q(wlu) => [
-         q(7175),
+         q(7162),
          q(0),
          ],
       q(wlv) => [
-         q(7176),
+         q(7163),
          q(0),
          ],
       q(wlw) => [
-         q(7177),
+         q(7164),
          q(0),
          ],
       q(wlx) => [
-         q(7178),
+         q(7165),
          q(0),
          ],
       q(wly) => [
-         q(7179),
+         q(7166),
          q(0),
          ],
       q(wma) => [
-         q(7180),
+         q(7167),
          q(0),
          ],
       q(wmb) => [
-         q(7181),
+         q(7168),
          q(0),
          ],
       q(wmc) => [
-         q(7182),
+         q(7169),
          q(0),
          ],
       q(wmd) => [
-         q(7183),
+         q(7170),
          q(0),
          ],
       q(wme) => [
-         q(7184),
+         q(7171),
          q(0),
          ],
       q(wmh) => [
-         q(7185),
+         q(7172),
          q(0),
          ],
       q(wmi) => [
-         q(7186),
+         q(7173),
          q(0),
          ],
       q(wmm) => [
-         q(7187),
+         q(7174),
          q(0),
          ],
       q(wmn) => [
-         q(7188),
+         q(7175),
          q(0),
          ],
       q(wmo) => [
-         q(7189),
+         q(7176),
          q(0),
          ],
       q(wms) => [
-         q(7190),
+         q(7177),
          q(0),
          ],
       q(wmt) => [
-         q(7191),
+         q(7178),
          q(0),
          ],
       q(wmw) => [
-         q(7192),
+         q(7179),
          q(0),
          ],
       q(wmx) => [
-         q(7193),
+         q(7180),
          q(0),
          ],
       q(wnb) => [
-         q(7194),
+         q(7181),
          q(0),
          ],
       q(wnc) => [
-         q(7195),
+         q(7182),
          q(0),
          ],
       q(wnd) => [
-         q(7196),
+         q(7183),
          q(0),
          ],
       q(wne) => [
-         q(7197),
+         q(7184),
          q(0),
          ],
       q(wng) => [
-         q(7198),
+         q(7185),
          q(0),
          ],
       q(wni) => [
-         q(7199),
+         q(7186),
          q(0),
          ],
       q(wnk) => [
-         q(7200),
+         q(7187),
          q(0),
          ],
       q(wnm) => [
-         q(7201),
+         q(7188),
          q(0),
          ],
       q(wnn) => [
-         q(7202),
+         q(7189),
          q(0),
          ],
       q(wno) => [
-         q(7203),
+         q(7190),
          q(0),
          ],
       q(wnp) => [
-         q(7204),
+         q(7191),
          q(0),
          ],
       q(wnu) => [
-         q(7205),
+         q(7192),
          q(0),
          ],
       q(wnw) => [
-         q(7206),
+         q(7193),
          q(0),
          ],
       q(wny) => [
-         q(7207),
+         q(7194),
          q(0),
          ],
       q(woa) => [
-         q(7208),
+         q(7195),
          q(0),
          ],
       q(wob) => [
-         q(7209),
+         q(7196),
          q(0),
          ],
       q(woc) => [
-         q(7210),
+         q(7197),
          q(0),
          ],
       q(wod) => [
-         q(7211),
+         q(7198),
          q(0),
          ],
       q(woe) => [
-         q(7212),
+         q(7199),
          q(0),
          ],
       q(wof) => [
-         q(7213),
+         q(7200),
          q(0),
          ],
       q(wog) => [
-         q(7214),
+         q(7201),
          q(0),
          ],
       q(woi) => [
-         q(7215),
+         q(7202),
          q(0),
          ],
       q(wok) => [
-         q(7216),
+         q(7203),
          q(0),
          ],
       q(wol) => [
@@ -87054,303 +86968,303 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(wom) => [
-         q(7217),
+         q(7204),
          q(0),
          ],
       q(won) => [
-         q(7218),
+         q(7205),
          q(0),
          ],
       q(woo) => [
-         q(7219),
+         q(7206),
          q(0),
          ],
       q(wor) => [
-         q(7220),
+         q(7207),
          q(0),
          ],
       q(wos) => [
-         q(7221),
+         q(7208),
          q(0),
          ],
       q(wow) => [
-         q(7222),
+         q(7209),
          q(0),
          ],
       q(woy) => [
-         q(7223),
+         q(7210),
          q(0),
          ],
       q(wpc) => [
-         q(7224),
+         q(7211),
          q(0),
          ],
       q(wra) => [
-         q(7225),
+         q(7212),
          q(0),
          ],
       q(wrb) => [
-         q(7226),
+         q(7213),
          q(0),
          ],
       q(wrd) => [
-         q(7227),
+         q(7214),
          q(0),
          ],
       q(wrg) => [
-         q(7228),
+         q(7215),
          q(0),
          ],
       q(wrh) => [
-         q(7229),
+         q(7216),
          q(0),
          ],
       q(wri) => [
-         q(7230),
+         q(7217),
          q(0),
          ],
       q(wrk) => [
-         q(7231),
+         q(7218),
          q(0),
          ],
       q(wrl) => [
-         q(7232),
+         q(7219),
          q(0),
          ],
       q(wrm) => [
-         q(7233),
+         q(7220),
          q(0),
          ],
       q(wrn) => [
-         q(7234),
+         q(7221),
          q(0),
          ],
       q(wro) => [
-         q(7235),
+         q(7222),
          q(0),
          ],
       q(wrp) => [
-         q(7236),
+         q(7223),
          q(0),
          ],
       q(wrr) => [
-         q(7237),
+         q(7224),
          q(0),
          ],
       q(wrs) => [
-         q(7238),
+         q(7225),
          q(0),
          ],
       q(wru) => [
-         q(7239),
+         q(7226),
          q(0),
          ],
       q(wrv) => [
-         q(7240),
+         q(7227),
          q(0),
          ],
       q(wrw) => [
-         q(7241),
+         q(7228),
          q(0),
          ],
       q(wrx) => [
-         q(7242),
+         q(7229),
          q(0),
          ],
       q(wry) => [
-         q(7243),
+         q(7230),
          q(0),
          ],
       q(wrz) => [
-         q(7244),
+         q(7231),
          q(0),
          ],
       q(wsa) => [
-         q(7245),
+         q(7232),
          q(0),
          ],
       q(wsi) => [
-         q(7246),
+         q(7233),
          q(0),
          ],
       q(wsk) => [
-         q(7247),
+         q(7234),
          q(0),
          ],
       q(wsr) => [
-         q(7248),
+         q(7235),
          q(0),
          ],
       q(wss) => [
-         q(7249),
+         q(7236),
          q(0),
          ],
       q(wsu) => [
-         q(7250),
+         q(7237),
          q(0),
          ],
       q(wsv) => [
-         q(7251),
+         q(7238),
          q(0),
          ],
       q(wtf) => [
-         q(7252),
+         q(7239),
          q(0),
          ],
       q(wth) => [
-         q(7253),
+         q(7240),
          q(0),
          ],
       q(wti) => [
-         q(7254),
+         q(7241),
          q(0),
          ],
       q(wtk) => [
-         q(7255),
+         q(7242),
          q(0),
          ],
       q(wtm) => [
-         q(7256),
+         q(7243),
          q(0),
          ],
       q(wtw) => [
-         q(7257),
+         q(7244),
          q(0),
          ],
       q(wua) => [
-         q(7258),
+         q(7245),
          q(0),
          ],
       q(wub) => [
-         q(7259),
+         q(7246),
          q(0),
          ],
       q(wud) => [
-         q(7260),
+         q(7247),
          q(0),
          ],
       q(wuh) => [
-         q(7261),
+         q(7248),
          q(0),
          ],
       q(wul) => [
-         q(7262),
+         q(7249),
          q(0),
          ],
       q(wum) => [
-         q(7263),
+         q(7250),
          q(0),
          ],
       q(wun) => [
-         q(7264),
+         q(7251),
          q(0),
          ],
       q(wur) => [
-         q(7265),
+         q(7252),
          q(0),
          ],
       q(wut) => [
-         q(7266),
+         q(7253),
          q(0),
          ],
       q(wuu) => [
-         q(7267),
+         q(7254),
          q(0),
          ],
       q(wuv) => [
-         q(7268),
+         q(7255),
          q(0),
          ],
       q(wux) => [
-         q(7269),
+         q(7256),
          q(0),
          ],
       q(wuy) => [
-         q(7270),
+         q(7257),
          q(0),
          ],
       q(wwa) => [
-         q(7271),
+         q(7258),
          q(0),
          ],
       q(wwb) => [
-         q(7272),
+         q(7259),
          q(0),
          ],
       q(wwo) => [
-         q(7273),
+         q(7260),
          q(0),
          ],
       q(wwr) => [
-         q(7274),
+         q(7261),
          q(0),
          ],
       q(www) => [
-         q(7275),
+         q(7262),
          q(0),
          ],
       q(wxa) => [
-         q(7276),
+         q(7263),
          q(0),
          ],
       q(wxw) => [
-         q(7277),
+         q(7264),
          q(0),
          ],
       q(wya) => [
-         q(7278),
+         q(7265),
          q(0),
          ],
       q(wyb) => [
-         q(7279),
+         q(7266),
          q(0),
          ],
       q(wyi) => [
-         q(7280),
+         q(7267),
          q(0),
          ],
       q(wym) => [
-         q(7281),
+         q(7268),
          q(0),
          ],
       q(wyr) => [
-         q(7282),
+         q(7269),
          q(0),
          ],
       q(wyy) => [
-         q(7283),
+         q(7270),
          q(0),
          ],
       q(xaa) => [
-         q(7284),
+         q(7271),
          q(0),
          ],
       q(xab) => [
-         q(7285),
+         q(7272),
          q(0),
          ],
       q(xac) => [
-         q(7286),
+         q(7273),
          q(0),
          ],
       q(xad) => [
-         q(7287),
+         q(7274),
          q(0),
          ],
       q(xae) => [
-         q(7288),
+         q(7275),
          q(0),
          ],
       q(xag) => [
-         q(7289),
+         q(7276),
          q(0),
          ],
       q(xai) => [
-         q(7290),
+         q(7277),
          q(0),
          ],
       q(xaj) => [
-         q(7291),
+         q(7278),
          q(0),
          ],
       q(xal) => [
@@ -87358,271 +87272,271 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(xam) => [
-         q(7292),
+         q(7279),
          q(0),
          ],
       q(xan) => [
-         q(7293),
+         q(7280),
          q(0),
          ],
       q(xao) => [
-         q(7294),
+         q(7281),
          q(0),
          ],
       q(xap) => [
-         q(7295),
+         q(7282),
          q(0),
          ],
       q(xaq) => [
-         q(7296),
+         q(7283),
          q(0),
          ],
       q(xar) => [
-         q(7297),
+         q(7284),
          q(0),
          ],
       q(xas) => [
-         q(7298),
+         q(7285),
          q(0),
          ],
       q(xat) => [
-         q(7299),
+         q(7286),
          q(0),
          ],
       q(xau) => [
-         q(7300),
+         q(7287),
          q(0),
          ],
       q(xav) => [
-         q(7301),
+         q(7288),
          q(0),
          ],
       q(xaw) => [
-         q(7302),
+         q(7289),
          q(0),
          ],
       q(xay) => [
-         q(7303),
+         q(7290),
          q(0),
          ],
       q(xba) => [
-         q(7304),
+         q(7291),
          q(0),
          ],
       q(xbb) => [
-         q(7305),
+         q(7292),
          q(0),
          ],
       q(xbc) => [
-         q(7306),
+         q(7293),
          q(0),
          ],
       q(xbd) => [
-         q(7307),
+         q(7294),
          q(0),
          ],
       q(xbe) => [
-         q(7308),
+         q(7295),
          q(0),
          ],
       q(xbg) => [
-         q(7309),
+         q(7296),
          q(0),
          ],
       q(xbi) => [
-         q(7310),
+         q(7297),
          q(0),
          ],
       q(xbj) => [
-         q(7311),
+         q(7298),
          q(0),
          ],
       q(xbm) => [
-         q(7312),
+         q(7299),
          q(0),
          ],
       q(xbn) => [
-         q(7313),
+         q(7300),
          q(0),
          ],
       q(xbo) => [
-         q(7314),
+         q(7301),
          q(0),
          ],
       q(xbp) => [
-         q(7315),
+         q(7302),
          q(0),
          ],
       q(xbr) => [
-         q(7316),
+         q(7303),
          q(0),
          ],
       q(xbw) => [
-         q(7317),
+         q(7304),
          q(0),
          ],
       q(xbx) => [
-         q(7318),
+         q(7305),
          q(0),
          ],
       q(xby) => [
-         q(7319),
+         q(7306),
          q(0),
          ],
       q(xcb) => [
-         q(7320),
+         q(7307),
          q(0),
          ],
       q(xcc) => [
-         q(7321),
+         q(7308),
          q(0),
          ],
       q(xce) => [
-         q(7322),
+         q(7309),
          q(0),
          ],
       q(xcg) => [
-         q(7323),
+         q(7310),
          q(0),
          ],
       q(xch) => [
-         q(7324),
+         q(7311),
          q(0),
          ],
       q(xcl) => [
-         q(7325),
+         q(7312),
          q(0),
          ],
       q(xcm) => [
-         q(7326),
+         q(7313),
          q(0),
          ],
       q(xcn) => [
-         q(7327),
+         q(7314),
          q(0),
          ],
       q(xco) => [
-         q(7328),
+         q(7315),
          q(0),
          ],
       q(xcr) => [
-         q(7329),
+         q(7316),
          q(0),
          ],
       q(xct) => [
-         q(7330),
+         q(7317),
          q(0),
          ],
       q(xcu) => [
-         q(7331),
+         q(7318),
          q(0),
          ],
       q(xcv) => [
-         q(7332),
+         q(7319),
          q(0),
          ],
       q(xcw) => [
-         q(7333),
+         q(7320),
          q(0),
          ],
       q(xcy) => [
-         q(7334),
+         q(7321),
          q(0),
          ],
       q(xda) => [
-         q(7335),
+         q(7322),
          q(0),
          ],
       q(xdc) => [
-         q(7336),
+         q(7323),
          q(0),
          ],
       q(xdk) => [
-         q(7337),
+         q(7324),
          q(0),
          ],
       q(xdm) => [
-         q(7338),
+         q(7325),
          q(0),
          ],
       q(xdy) => [
-         q(7339),
+         q(7326),
          q(0),
          ],
       q(xeb) => [
-         q(7340),
+         q(7327),
          q(0),
          ],
       q(xed) => [
-         q(7341),
+         q(7328),
          q(0),
          ],
       q(xeg) => [
-         q(7342),
+         q(7329),
          q(0),
          ],
       q(xel) => [
-         q(7343),
+         q(7330),
          q(0),
          ],
       q(xem) => [
-         q(7344),
+         q(7331),
          q(0),
          ],
       q(xep) => [
-         q(7345),
+         q(7332),
          q(0),
          ],
       q(xer) => [
-         q(7346),
+         q(7333),
          q(0),
          ],
       q(xes) => [
-         q(7347),
+         q(7334),
          q(0),
          ],
       q(xet) => [
-         q(7348),
+         q(7335),
          q(0),
          ],
       q(xeu) => [
-         q(7349),
+         q(7336),
          q(0),
          ],
       q(xfa) => [
-         q(7350),
+         q(7337),
          q(0),
          ],
       q(xga) => [
-         q(7351),
+         q(7338),
          q(0),
          ],
       q(xgb) => [
-         q(7352),
+         q(7339),
          q(0),
          ],
       q(xgd) => [
-         q(7353),
+         q(7340),
          q(0),
          ],
       q(xgf) => [
-         q(7354),
+         q(7341),
          q(0),
          ],
       q(xgg) => [
-         q(7355),
+         q(7342),
          q(0),
          ],
       q(xgi) => [
-         q(7356),
+         q(7343),
          q(0),
          ],
       q(xgl) => [
-         q(7357),
+         q(7344),
          q(0),
          ],
       q(xgm) => [
-         q(7358),
+         q(7345),
          q(0),
          ],
       q(xgn) => [
@@ -87630,31 +87544,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(xgr) => [
-         q(7359),
+         q(7346),
          q(0),
          ],
       q(xgu) => [
-         q(7360),
+         q(7347),
          q(0),
          ],
       q(xgw) => [
-         q(7361),
+         q(7348),
          q(0),
          ],
       q(xha) => [
-         q(7362),
+         q(7349),
          q(0),
          ],
       q(xhc) => [
-         q(7363),
+         q(7350),
          q(0),
          ],
       q(xhd) => [
-         q(7364),
+         q(7351),
          q(0),
          ],
       q(xhe) => [
-         q(7365),
+         q(7352),
          q(0),
          ],
       q(xho) => [
@@ -87662,323 +87576,323 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(xhr) => [
-         q(7366),
+         q(7353),
          q(0),
          ],
       q(xht) => [
-         q(7367),
+         q(7354),
          q(0),
          ],
       q(xhu) => [
-         q(7368),
+         q(7355),
          q(0),
          ],
       q(xhv) => [
-         q(7369),
+         q(7356),
          q(0),
          ],
       q(xib) => [
-         q(7370),
+         q(7357),
          q(0),
          ],
       q(xii) => [
-         q(7371),
+         q(7358),
          q(0),
          ],
       q(xil) => [
-         q(7372),
+         q(7359),
          q(0),
          ],
       q(xin) => [
-         q(7373),
+         q(7360),
          q(0),
          ],
       q(xip) => [
-         q(7374),
+         q(7361),
          q(0),
          ],
       q(xir) => [
-         q(7375),
+         q(7362),
          q(0),
          ],
       q(xis) => [
-         q(7376),
+         q(7363),
          q(0),
          ],
       q(xiv) => [
-         q(7377),
+         q(7364),
          q(0),
          ],
       q(xiy) => [
-         q(7378),
+         q(7365),
          q(0),
          ],
       q(xjb) => [
-         q(7379),
+         q(7366),
          q(0),
          ],
       q(xjt) => [
-         q(7380),
+         q(7367),
          q(0),
          ],
       q(xka) => [
-         q(7381),
+         q(7368),
          q(0),
          ],
       q(xkb) => [
-         q(7382),
+         q(7369),
          q(0),
          ],
       q(xkc) => [
-         q(7383),
+         q(7370),
          q(0),
          ],
       q(xkd) => [
-         q(7384),
+         q(7371),
          q(0),
          ],
       q(xke) => [
-         q(7385),
+         q(7372),
          q(0),
          ],
       q(xkf) => [
-         q(7386),
+         q(7373),
          q(0),
          ],
       q(xkg) => [
-         q(7387),
+         q(7374),
          q(0),
          ],
       q(xkh) => [
-         q(7388),
+         q(7375),
          q(0),
          ],
       q(xki) => [
-         q(7389),
+         q(7376),
          q(0),
          ],
       q(xkj) => [
-         q(7390),
+         q(7377),
          q(0),
          ],
       q(xkk) => [
-         q(7391),
+         q(7378),
          q(0),
          ],
       q(xkl) => [
-         q(7392),
+         q(7379),
          q(0),
          ],
       q(xkn) => [
-         q(7393),
+         q(7380),
          q(0),
          ],
       q(xko) => [
-         q(7394),
+         q(7381),
          q(0),
          ],
       q(xkp) => [
-         q(7395),
+         q(7382),
          q(0),
          ],
       q(xkq) => [
-         q(7396),
+         q(7383),
          q(0),
          ],
       q(xkr) => [
-         q(7397),
+         q(7384),
          q(0),
          ],
       q(xks) => [
-         q(7398),
+         q(7385),
          q(0),
          ],
       q(xkt) => [
-         q(7399),
+         q(7386),
          q(0),
          ],
       q(xku) => [
-         q(7400),
+         q(7387),
          q(0),
          ],
       q(xkv) => [
-         q(7401),
+         q(7388),
          q(0),
          ],
       q(xkw) => [
-         q(7402),
+         q(7389),
          q(0),
          ],
       q(xkx) => [
-         q(7403),
+         q(7390),
          q(0),
          ],
       q(xky) => [
-         q(7404),
+         q(7391),
          q(0),
          ],
       q(xkz) => [
-         q(7405),
+         q(7392),
          q(0),
          ],
       q(xla) => [
-         q(7406),
+         q(7393),
          q(0),
          ],
       q(xlb) => [
-         q(7407),
+         q(7394),
          q(0),
          ],
       q(xlc) => [
-         q(7408),
+         q(7395),
          q(0),
          ],
       q(xld) => [
-         q(7409),
+         q(7396),
          q(0),
          ],
       q(xle) => [
-         q(7410),
+         q(7397),
          q(0),
          ],
       q(xlg) => [
-         q(7411),
+         q(7398),
          q(0),
          ],
       q(xli) => [
-         q(7412),
+         q(7399),
          q(0),
          ],
       q(xln) => [
-         q(7413),
+         q(7400),
          q(0),
          ],
       q(xlo) => [
-         q(7414),
+         q(7401),
          q(0),
          ],
       q(xlp) => [
-         q(7415),
+         q(7402),
          q(0),
          ],
       q(xls) => [
-         q(7416),
+         q(7403),
          q(0),
          ],
       q(xlu) => [
-         q(7417),
+         q(7404),
          q(0),
          ],
       q(xly) => [
-         q(7418),
+         q(7405),
          q(0),
          ],
       q(xma) => [
-         q(7419),
+         q(7406),
          q(0),
          ],
       q(xmb) => [
-         q(7420),
+         q(7407),
          q(0),
          ],
       q(xmc) => [
-         q(7421),
+         q(7408),
          q(0),
          ],
       q(xmd) => [
-         q(7422),
+         q(7409),
          q(0),
          ],
       q(xme) => [
-         q(7423),
+         q(7410),
          q(0),
          ],
       q(xmf) => [
-         q(7424),
+         q(7411),
          q(0),
          ],
       q(xmg) => [
-         q(7425),
+         q(7412),
          q(0),
          ],
       q(xmh) => [
-         q(7426),
+         q(7413),
          q(0),
          ],
       q(xmj) => [
-         q(7427),
+         q(7414),
          q(0),
          ],
       q(xmk) => [
-         q(7428),
+         q(7415),
          q(0),
          ],
       q(xml) => [
-         q(7429),
+         q(7416),
          q(0),
          ],
       q(xmm) => [
-         q(7430),
+         q(7417),
          q(0),
          ],
       q(xmn) => [
-         q(7431),
+         q(7418),
          q(0),
          ],
       q(xmo) => [
-         q(7432),
+         q(7419),
          q(0),
          ],
       q(xmp) => [
-         q(7433),
+         q(7420),
          q(0),
          ],
       q(xmq) => [
-         q(7434),
+         q(7421),
          q(0),
          ],
       q(xmr) => [
-         q(7435),
+         q(7422),
          q(0),
          ],
       q(xms) => [
-         q(7436),
+         q(7423),
          q(0),
          ],
       q(xmt) => [
-         q(7437),
+         q(7424),
          q(0),
          ],
       q(xmu) => [
-         q(7438),
+         q(7425),
          q(0),
          ],
       q(xmv) => [
-         q(7439),
+         q(7426),
          q(0),
          ],
       q(xmw) => [
-         q(7440),
+         q(7427),
          q(0),
          ],
       q(xmx) => [
-         q(7441),
+         q(7428),
          q(0),
          ],
       q(xmy) => [
-         q(7442),
+         q(7429),
          q(0),
          ],
       q(xmz) => [
-         q(7443),
+         q(7430),
          q(0),
          ],
       q(xna) => [
-         q(7444),
+         q(7431),
          q(0),
          ],
       q(xnb) => [
-         q(7445),
+         q(7432),
          q(0),
          ],
       q(xnd) => [
@@ -87986,627 +87900,623 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(xng) => [
-         q(7446),
+         q(7433),
          q(0),
          ],
       q(xnh) => [
-         q(7447),
+         q(7434),
          q(0),
          ],
       q(xni) => [
-         q(7448),
+         q(7435),
          q(0),
          ],
       q(xnk) => [
-         q(7449),
+         q(7436),
          q(0),
          ],
       q(xnn) => [
-         q(7450),
+         q(7437),
          q(0),
          ],
       q(xno) => [
-         q(7451),
+         q(7438),
          q(0),
          ],
       q(xnr) => [
-         q(7452),
+         q(7439),
          q(0),
          ],
       q(xns) => [
-         q(7453),
+         q(7440),
          q(0),
          ],
       q(xnt) => [
-         q(7454),
+         q(7441),
          q(0),
          ],
       q(xnu) => [
-         q(7455),
+         q(7442),
          q(0),
          ],
       q(xny) => [
-         q(7456),
+         q(7443),
          q(0),
          ],
       q(xnz) => [
-         q(7457),
+         q(7444),
          q(0),
          ],
       q(xoc) => [
-         q(7458),
+         q(7445),
          q(0),
          ],
       q(xod) => [
-         q(7459),
+         q(7446),
          q(0),
          ],
       q(xog) => [
-         q(7460),
+         q(7447),
          q(0),
          ],
       q(xoi) => [
-         q(7461),
+         q(7448),
          q(0),
          ],
       q(xok) => [
-         q(7462),
+         q(7449),
          q(0),
          ],
       q(xom) => [
-         q(7463),
+         q(7450),
          q(0),
          ],
       q(xon) => [
-         q(7464),
+         q(7451),
          q(0),
          ],
       q(xoo) => [
-         q(7465),
+         q(7452),
          q(0),
          ],
       q(xop) => [
-         q(7466),
+         q(7453),
          q(0),
          ],
       q(xor) => [
-         q(7467),
+         q(7454),
          q(0),
          ],
       q(xow) => [
-         q(7468),
+         q(7455),
          q(0),
          ],
       q(xpa) => [
-         q(7469),
+         q(7456),
          q(0),
          ],
       q(xpc) => [
-         q(7470),
+         q(7457),
          q(0),
          ],
       q(xpe) => [
-         q(7471),
+         q(7458),
          q(0),
          ],
       q(xpg) => [
-         q(7472),
+         q(7459),
          q(0),
          ],
       q(xpi) => [
-         q(7473),
+         q(7460),
          q(0),
          ],
       q(xpj) => [
-         q(7474),
+         q(7461),
          q(0),
          ],
       q(xpk) => [
-         q(7475),
+         q(7462),
          q(0),
          ],
       q(xpm) => [
-         q(7476),
+         q(7463),
          q(0),
          ],
       q(xpn) => [
-         q(7477),
+         q(7464),
          q(0),
          ],
       q(xpo) => [
-         q(7478),
+         q(7465),
          q(0),
          ],
       q(xpp) => [
-         q(7479),
+         q(7466),
          q(0),
          ],
       q(xpq) => [
-         q(7480),
+         q(7467),
          q(0),
          ],
       q(xpr) => [
-         q(7481),
+         q(7468),
          q(0),
          ],
       q(xps) => [
-         q(7482),
+         q(7469),
          q(0),
          ],
       q(xpt) => [
-         q(7483),
+         q(7470),
          q(0),
          ],
       q(xpu) => [
-         q(7484),
+         q(7471),
          q(0),
          ],
       q(xpy) => [
-         q(7485),
+         q(7472),
          q(0),
          ],
       q(xqa) => [
-         q(7486),
+         q(7473),
          q(0),
          ],
       q(xqt) => [
-         q(7487),
+         q(7474),
          q(0),
          ],
       q(xra) => [
-         q(7488),
+         q(7475),
          q(0),
          ],
       q(xrb) => [
-         q(7489),
+         q(7476),
          q(0),
          ],
       q(xrd) => [
-         q(7490),
+         q(7477),
          q(0),
          ],
       q(xre) => [
-         q(7491),
+         q(7478),
          q(0),
          ],
       q(xrg) => [
-         q(7492),
+         q(7479),
          q(0),
          ],
       q(xri) => [
-         q(7493),
+         q(7480),
          q(0),
          ],
       q(xrm) => [
-         q(7494),
+         q(7481),
          q(0),
          ],
       q(xrn) => [
-         q(7495),
+         q(7482),
          q(0),
          ],
       q(xrq) => [
-         q(7496),
+         q(7483),
          q(0),
          ],
       q(xrr) => [
-         q(7497),
+         q(7484),
          q(0),
          ],
       q(xrt) => [
-         q(7498),
+         q(7485),
          q(0),
          ],
       q(xru) => [
-         q(7499),
+         q(7486),
          q(0),
          ],
       q(xrw) => [
-         q(7500),
+         q(7487),
          q(0),
          ],
       q(xsa) => [
-         q(7501),
+         q(7488),
          q(0),
          ],
       q(xsb) => [
-         q(7502),
+         q(7489),
          q(0),
          ],
       q(xsc) => [
-         q(7503),
+         q(7490),
          q(0),
          ],
       q(xsd) => [
-         q(7504),
+         q(7491),
          q(0),
          ],
       q(xse) => [
-         q(7505),
+         q(7492),
          q(0),
          ],
       q(xsh) => [
-         q(7506),
+         q(7493),
          q(0),
          ],
       q(xsi) => [
-         q(7507),
-         q(0),
-         ],
-      q(xsj) => [
-         q(7508),
+         q(7494),
          q(0),
          ],
       q(xsl) => [
-         q(7509),
+         q(7495),
          q(0),
          ],
       q(xsm) => [
-         q(7510),
+         q(7496),
          q(0),
          ],
       q(xsn) => [
-         q(7511),
+         q(7497),
          q(0),
          ],
       q(xso) => [
-         q(7512),
+         q(7498),
          q(0),
          ],
       q(xsp) => [
-         q(7513),
+         q(7499),
          q(0),
          ],
       q(xsq) => [
-         q(7514),
+         q(7500),
          q(0),
          ],
       q(xsr) => [
-         q(7515),
+         q(7501),
          q(0),
          ],
       q(xss) => [
-         q(7516),
+         q(7502),
          q(0),
          ],
       q(xsu) => [
-         q(7517),
+         q(7503),
          q(0),
          ],
       q(xsv) => [
-         q(7518),
+         q(7504),
          q(0),
          ],
       q(xsy) => [
-         q(7519),
+         q(7505),
          q(0),
          ],
       q(xta) => [
-         q(7520),
+         q(7506),
          q(0),
          ],
       q(xtb) => [
-         q(7521),
+         q(7507),
          q(0),
          ],
       q(xtc) => [
-         q(7522),
+         q(7508),
          q(0),
          ],
       q(xtd) => [
-         q(7523),
+         q(7509),
          q(0),
          ],
       q(xte) => [
-         q(7524),
+         q(7510),
          q(0),
          ],
       q(xtg) => [
-         q(7525),
+         q(7511),
          q(0),
          ],
       q(xth) => [
-         q(7526),
+         q(7512),
          q(0),
          ],
       q(xti) => [
-         q(7527),
+         q(7513),
          q(0),
          ],
       q(xtj) => [
-         q(7528),
+         q(7514),
          q(0),
          ],
       q(xtl) => [
-         q(7529),
+         q(7515),
          q(0),
          ],
       q(xtm) => [
-         q(7530),
+         q(7516),
          q(0),
          ],
       q(xtn) => [
-         q(7531),
+         q(7517),
          q(0),
          ],
       q(xto) => [
-         q(7532),
+         q(7518),
          q(0),
          ],
       q(xtp) => [
-         q(7533),
+         q(7519),
          q(0),
          ],
       q(xtq) => [
-         q(7534),
+         q(7520),
          q(0),
          ],
       q(xtr) => [
-         q(7535),
+         q(7521),
          q(0),
          ],
       q(xts) => [
-         q(7536),
+         q(7522),
          q(0),
          ],
       q(xtt) => [
-         q(7537),
+         q(7523),
          q(0),
          ],
       q(xtu) => [
-         q(7538),
+         q(7524),
          q(0),
          ],
       q(xtv) => [
-         q(7539),
+         q(7525),
          q(0),
          ],
       q(xtw) => [
-         q(7540),
+         q(7526),
          q(0),
          ],
       q(xty) => [
-         q(7541),
+         q(7527),
          q(0),
          ],
       q(xtz) => [
-         q(7542),
+         q(7528),
          q(0),
          ],
       q(xua) => [
-         q(7543),
+         q(7529),
          q(0),
          ],
       q(xub) => [
-         q(7544),
+         q(7530),
          q(0),
          ],
       q(xud) => [
-         q(7545),
+         q(7531),
          q(0),
          ],
       q(xug) => [
-         q(7546),
+         q(7532),
          q(0),
          ],
       q(xuj) => [
-         q(7547),
+         q(7533),
          q(0),
          ],
       q(xul) => [
-         q(7548),
+         q(7534),
          q(0),
          ],
       q(xum) => [
-         q(7549),
+         q(7535),
          q(0),
          ],
       q(xun) => [
-         q(7550),
+         q(7536),
          q(0),
          ],
       q(xuo) => [
-         q(7551),
+         q(7537),
          q(0),
          ],
       q(xup) => [
-         q(7552),
+         q(7538),
          q(0),
          ],
       q(xur) => [
-         q(7553),
+         q(7539),
          q(0),
          ],
       q(xut) => [
-         q(7554),
+         q(7540),
          q(0),
          ],
       q(xuu) => [
-         q(7555),
+         q(7541),
          q(0),
          ],
       q(xve) => [
-         q(7556),
+         q(7542),
          q(0),
          ],
       q(xvi) => [
-         q(7557),
+         q(7543),
          q(0),
          ],
       q(xvn) => [
-         q(7558),
+         q(7544),
          q(0),
          ],
       q(xvo) => [
-         q(7559),
+         q(7545),
          q(0),
          ],
       q(xvs) => [
-         q(7560),
+         q(7546),
          q(0),
          ],
       q(xwa) => [
-         q(7561),
+         q(7547),
          q(0),
          ],
       q(xwc) => [
-         q(7562),
+         q(7548),
          q(0),
          ],
       q(xwd) => [
-         q(7563),
+         q(7549),
          q(0),
          ],
       q(xwe) => [
-         q(7564),
+         q(7550),
          q(0),
          ],
       q(xwg) => [
-         q(7565),
+         q(7551),
          q(0),
          ],
       q(xwj) => [
-         q(7566),
+         q(7552),
          q(0),
          ],
       q(xwk) => [
-         q(7567),
+         q(7553),
          q(0),
          ],
       q(xwl) => [
-         q(7568),
+         q(7554),
          q(0),
          ],
       q(xwo) => [
-         q(7569),
+         q(7555),
          q(0),
          ],
       q(xwr) => [
-         q(7570),
+         q(7556),
          q(0),
          ],
       q(xwt) => [
-         q(7571),
+         q(7557),
          q(0),
          ],
       q(xww) => [
-         q(7572),
+         q(7558),
          q(0),
          ],
       q(xxb) => [
-         q(7573),
+         q(7559),
          q(0),
          ],
       q(xxk) => [
-         q(7574),
+         q(7560),
          q(0),
          ],
       q(xxm) => [
-         q(7575),
+         q(7561),
          q(0),
          ],
       q(xxr) => [
-         q(7576),
+         q(7562),
          q(0),
          ],
       q(xxt) => [
-         q(7577),
+         q(7563),
          q(0),
          ],
       q(xya) => [
-         q(7578),
+         q(7564),
          q(0),
          ],
       q(xyb) => [
-         q(7579),
+         q(7565),
          q(0),
          ],
       q(xyj) => [
-         q(7580),
+         q(7566),
          q(0),
          ],
       q(xyk) => [
-         q(7581),
+         q(7567),
          q(0),
          ],
       q(xyl) => [
-         q(7582),
+         q(7568),
          q(0),
          ],
       q(xyt) => [
-         q(7583),
+         q(7569),
          q(0),
          ],
       q(xyy) => [
-         q(7584),
+         q(7570),
          q(0),
          ],
       q(xzh) => [
-         q(7585),
+         q(7571),
          q(0),
          ],
       q(xzm) => [
-         q(7586),
+         q(7572),
          q(0),
          ],
       q(xzp) => [
-         q(7587),
+         q(7573),
          q(0),
          ],
       q(yaa) => [
-         q(7588),
+         q(7574),
          q(0),
          ],
       q(yab) => [
-         q(7589),
+         q(7575),
          q(0),
          ],
       q(yac) => [
-         q(7590),
+         q(7576),
          q(0),
          ],
       q(yad) => [
-         q(7591),
+         q(7577),
          q(0),
          ],
       q(yae) => [
-         q(7592),
+         q(7578),
          q(0),
          ],
       q(yaf) => [
-         q(7593),
+         q(7579),
          q(0),
          ],
       q(yag) => [
-         q(7594),
+         q(7580),
          q(0),
          ],
       q(yah) => [
-         q(7595),
+         q(7581),
          q(0),
          ],
       q(yai) => [
-         q(7596),
+         q(7582),
          q(0),
          ],
       q(yaj) => [
-         q(7597),
+         q(7583),
          q(0),
          ],
       q(yak) => [
-         q(7598),
+         q(7584),
          q(0),
          ],
       q(yal) => [
-         q(7599),
+         q(7585),
          q(0),
          ],
       q(yam) => [
-         q(7600),
+         q(7586),
          q(0),
          ],
       q(yan) => [
-         q(7601),
+         q(7587),
          q(0),
          ],
       q(yao) => [
@@ -88618,235 +88528,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(yaq) => [
-         q(7602),
+         q(7588),
          q(0),
          ],
       q(yar) => [
-         q(7603),
+         q(7589),
          q(0),
          ],
       q(yas) => [
-         q(7604),
+         q(7590),
          q(0),
          ],
       q(yat) => [
-         q(7605),
+         q(7591),
          q(0),
          ],
       q(yau) => [
-         q(7606),
+         q(7592),
          q(0),
          ],
       q(yav) => [
-         q(7607),
+         q(7593),
          q(0),
          ],
       q(yaw) => [
-         q(7608),
+         q(7594),
          q(0),
          ],
       q(yax) => [
-         q(7609),
+         q(7595),
          q(0),
          ],
       q(yay) => [
-         q(7610),
+         q(7596),
          q(0),
          ],
       q(yaz) => [
-         q(7611),
+         q(7597),
          q(0),
          ],
       q(yba) => [
-         q(7612),
+         q(7598),
          q(0),
          ],
       q(ybb) => [
-         q(7613),
+         q(7599),
          q(0),
          ],
       q(ybe) => [
-         q(7614),
+         q(7600),
          q(0),
          ],
       q(ybh) => [
-         q(7615),
+         q(7601),
          q(0),
          ],
       q(ybi) => [
-         q(7616),
+         q(7602),
          q(0),
          ],
       q(ybj) => [
-         q(7617),
+         q(7603),
          q(0),
          ],
       q(ybk) => [
-         q(7618),
+         q(7604),
          q(0),
          ],
       q(ybl) => [
-         q(7619),
+         q(7605),
          q(0),
          ],
       q(ybm) => [
-         q(7620),
+         q(7606),
          q(0),
          ],
       q(ybn) => [
-         q(7621),
+         q(7607),
          q(0),
          ],
       q(ybo) => [
-         q(7622),
+         q(7608),
          q(0),
          ],
       q(ybx) => [
-         q(7623),
+         q(7609),
          q(0),
          ],
       q(yby) => [
-         q(7624),
+         q(7610),
          q(0),
          ],
       q(ych) => [
-         q(7625),
+         q(7611),
          q(0),
          ],
       q(ycl) => [
-         q(7626),
+         q(7612),
          q(0),
          ],
       q(ycn) => [
-         q(7627),
+         q(7613),
          q(0),
          ],
       q(ycp) => [
-         q(7628),
+         q(7614),
          q(0),
          ],
       q(yda) => [
-         q(7629),
+         q(7615),
          q(0),
          ],
       q(ydd) => [
-         q(7630),
+         q(7616),
          q(0),
          ],
       q(yde) => [
-         q(7631),
+         q(7617),
          q(0),
          ],
       q(ydg) => [
-         q(7632),
+         q(7618),
          q(0),
          ],
       q(ydk) => [
-         q(7633),
-         q(0),
-         ],
-      q(yds) => [
-         q(7634),
+         q(7619),
          q(0),
          ],
       q(yea) => [
-         q(7635),
+         q(7620),
          q(0),
          ],
       q(yec) => [
-         q(7636),
+         q(7621),
          q(0),
          ],
       q(yee) => [
-         q(7637),
+         q(7622),
          q(0),
          ],
       q(yei) => [
-         q(7638),
+         q(7623),
          q(0),
          ],
       q(yej) => [
-         q(7639),
+         q(7624),
          q(0),
          ],
       q(yel) => [
-         q(7640),
+         q(7625),
          q(0),
          ],
       q(yer) => [
-         q(7641),
+         q(7626),
          q(0),
          ],
       q(yes) => [
-         q(7642),
+         q(7627),
          q(0),
          ],
       q(yet) => [
-         q(7643),
+         q(7628),
          q(0),
          ],
       q(yeu) => [
-         q(7644),
+         q(7629),
          q(0),
          ],
       q(yev) => [
-         q(7645),
+         q(7630),
          q(0),
          ],
       q(yey) => [
-         q(7646),
+         q(7631),
          q(0),
          ],
       q(yga) => [
-         q(7647),
+         q(7632),
          q(0),
          ],
       q(ygi) => [
-         q(7648),
+         q(7633),
          q(0),
          ],
       q(ygl) => [
-         q(7649),
+         q(7634),
          q(0),
          ],
       q(ygm) => [
-         q(7650),
+         q(7635),
          q(0),
          ],
       q(ygp) => [
-         q(7651),
+         q(7636),
          q(0),
          ],
       q(ygr) => [
-         q(7652),
+         q(7637),
          q(0),
          ],
       q(ygs) => [
-         q(7653),
+         q(7638),
          q(0),
          ],
       q(ygu) => [
-         q(7654),
+         q(7639),
          q(0),
          ],
       q(ygw) => [
-         q(7655),
+         q(7640),
          q(0),
          ],
       q(yha) => [
-         q(7656),
+         q(7641),
          q(0),
          ],
       q(yhd) => [
-         q(7657),
+         q(7642),
          q(0),
          ],
       q(yhl) => [
-         q(7658),
+         q(7643),
          q(0),
          ],
       q(yia) => [
-         q(7659),
+         q(7644),
          q(0),
          ],
       q(yid) => [
@@ -88854,323 +88760,315 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(yif) => [
-         q(2665),
+         q(2657),
          q(0),
          ],
       q(yig) => [
-         q(7660),
+         q(7645),
          q(0),
          ],
       q(yih) => [
-         q(7661),
+         q(7646),
          q(0),
          ],
       q(yii) => [
-         q(7662),
+         q(7647),
          q(0),
          ],
       q(yij) => [
-         q(7663),
+         q(7648),
          q(0),
          ],
       q(yik) => [
-         q(7664),
+         q(7649),
          q(0),
          ],
       q(yil) => [
-         q(7665),
+         q(7650),
          q(0),
          ],
       q(yim) => [
-         q(7666),
+         q(7651),
          q(0),
          ],
       q(yin) => [
-         q(7667),
+         q(7652),
          q(0),
          ],
       q(yip) => [
-         q(7668),
+         q(7653),
          q(0),
          ],
       q(yiq) => [
-         q(7669),
+         q(7654),
          q(0),
          ],
       q(yir) => [
-         q(7670),
+         q(7655),
          q(0),
          ],
       q(yis) => [
-         q(7671),
+         q(7656),
          q(0),
          ],
       q(yit) => [
-         q(7672),
+         q(7657),
          q(0),
          ],
       q(yiu) => [
-         q(7673),
+         q(7658),
          q(0),
          ],
       q(yiv) => [
-         q(7674),
+         q(7659),
          q(0),
          ],
       q(yix) => [
-         q(7675),
+         q(7660),
          q(0),
          ],
       q(yiz) => [
-         q(7676),
+         q(7661),
          q(0),
          ],
       q(yka) => [
-         q(7677),
+         q(7662),
          q(0),
          ],
       q(ykg) => [
-         q(7678),
+         q(7663),
          q(0),
          ],
       q(yki) => [
-         q(7679),
+         q(7664),
          q(0),
          ],
       q(ykk) => [
-         q(7680),
+         q(7665),
          q(0),
          ],
       q(ykl) => [
-         q(7681),
+         q(7666),
          q(0),
          ],
       q(ykm) => [
-         q(7682),
+         q(7667),
          q(0),
          ],
       q(ykn) => [
-         q(7683),
+         q(7668),
          q(0),
          ],
       q(yko) => [
-         q(7684),
+         q(7669),
          q(0),
          ],
       q(ykr) => [
-         q(7685),
+         q(7670),
          q(0),
          ],
       q(ykt) => [
-         q(7686),
+         q(7671),
          q(0),
          ],
       q(yku) => [
-         q(7687),
+         q(7672),
          q(0),
          ],
       q(yky) => [
-         q(7688),
+         q(7673),
          q(0),
          ],
       q(yla) => [
-         q(7689),
+         q(7674),
          q(0),
          ],
       q(ylb) => [
-         q(7690),
+         q(7675),
          q(0),
          ],
       q(yle) => [
-         q(7691),
+         q(7676),
          q(0),
          ],
       q(ylg) => [
-         q(7692),
+         q(7677),
          q(0),
          ],
       q(yli) => [
-         q(7693),
+         q(7678),
          q(0),
          ],
       q(yll) => [
-         q(7694),
+         q(7679),
          q(0),
          ],
       q(ylm) => [
-         q(7695),
+         q(7680),
          q(0),
          ],
       q(yln) => [
-         q(7696),
+         q(7681),
          q(0),
          ],
       q(ylo) => [
-         q(7697),
+         q(7682),
          q(0),
          ],
       q(ylr) => [
-         q(7698),
+         q(7683),
          q(0),
          ],
       q(ylu) => [
-         q(7699),
+         q(7684),
          q(0),
          ],
       q(yly) => [
-         q(7700),
+         q(7685),
          q(0),
          ],
       q(ymb) => [
-         q(7701),
+         q(7686),
          q(0),
          ],
       q(ymc) => [
-         q(7702),
+         q(7687),
          q(0),
          ],
       q(ymd) => [
-         q(7703),
+         q(7688),
          q(0),
          ],
       q(yme) => [
-         q(7704),
+         q(7689),
          q(0),
          ],
       q(ymg) => [
-         q(7705),
+         q(7690),
          q(0),
          ],
       q(ymh) => [
-         q(7706),
+         q(7691),
          q(0),
          ],
       q(ymi) => [
-         q(7707),
+         q(7692),
          q(0),
          ],
       q(ymk) => [
-         q(7708),
+         q(7693),
          q(0),
          ],
       q(yml) => [
-         q(7709),
+         q(7694),
          q(0),
          ],
       q(ymm) => [
-         q(7710),
+         q(7695),
          q(0),
          ],
       q(ymn) => [
-         q(7711),
+         q(7696),
          q(0),
          ],
       q(ymo) => [
-         q(7712),
+         q(7697),
          q(0),
          ],
       q(ymp) => [
-         q(7713),
+         q(7698),
          q(0),
          ],
       q(ymq) => [
-         q(7714),
+         q(7699),
          q(0),
          ],
       q(ymr) => [
-         q(7715),
+         q(7700),
          q(0),
          ],
       q(yms) => [
-         q(7716),
-         q(0),
-         ],
-      q(ymt) => [
-         q(7717),
+         q(7701),
          q(0),
          ],
       q(ymx) => [
-         q(7718),
+         q(7702),
          q(0),
          ],
       q(ymz) => [
-         q(7719),
+         q(7703),
          q(0),
          ],
       q(yna) => [
-         q(7720),
+         q(7704),
          q(0),
          ],
       q(ynd) => [
-         q(7721),
+         q(7705),
          q(0),
          ],
       q(yne) => [
-         q(7722),
+         q(7706),
          q(0),
          ],
       q(yng) => [
-         q(7723),
-         q(0),
-         ],
-      q(ynh) => [
-         q(7724),
+         q(7707),
          q(0),
          ],
       q(ynk) => [
-         q(7725),
+         q(7708),
          q(0),
          ],
       q(ynl) => [
-         q(7726),
+         q(7709),
          q(0),
          ],
       q(ynn) => [
-         q(7727),
+         q(7710),
          q(0),
          ],
       q(yno) => [
-         q(7728),
+         q(7711),
          q(0),
          ],
       q(ynq) => [
-         q(7729),
+         q(7712),
          q(0),
          ],
       q(yns) => [
-         q(7730),
+         q(7713),
          q(0),
          ],
       q(ynu) => [
-         q(7731),
+         q(7714),
          q(0),
          ],
       q(yob) => [
-         q(7732),
+         q(7715),
          q(0),
          ],
       q(yog) => [
-         q(7733),
+         q(7716),
          q(0),
          ],
       q(yoi) => [
-         q(7734),
+         q(7717),
          q(0),
          ],
       q(yok) => [
-         q(7735),
+         q(7718),
          q(0),
          ],
       q(yol) => [
-         q(7736),
+         q(7719),
          q(0),
          ],
       q(yom) => [
-         q(7737),
+         q(7720),
          q(0),
          ],
       q(yon) => [
-         q(7738),
+         q(7721),
          q(0),
          ],
       q(yor) => [
@@ -89178,31 +89076,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(yot) => [
-         q(7739),
+         q(7722),
          q(0),
          ],
       q(yox) => [
-         q(7740),
+         q(7723),
          q(0),
          ],
       q(yoy) => [
-         q(7741),
+         q(7724),
          q(0),
          ],
       q(ypa) => [
-         q(7742),
+         q(7725),
          q(0),
          ],
       q(ypb) => [
-         q(7743),
+         q(7726),
          q(0),
          ],
       q(ypg) => [
-         q(7744),
+         q(7727),
          q(0),
          ],
       q(yph) => [
-         q(7745),
+         q(7728),
          q(0),
          ],
       q(ypk) => [
@@ -89210,355 +89108,355 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ypm) => [
-         q(7746),
+         q(7729),
          q(0),
          ],
       q(ypn) => [
-         q(7747),
+         q(7730),
          q(0),
          ],
       q(ypo) => [
-         q(7748),
+         q(7731),
          q(0),
          ],
       q(ypp) => [
-         q(7749),
+         q(7732),
          q(0),
          ],
       q(ypz) => [
-         q(7750),
+         q(7733),
          q(0),
          ],
       q(yra) => [
-         q(7751),
+         q(7734),
          q(0),
          ],
       q(yrb) => [
-         q(7752),
+         q(7735),
          q(0),
          ],
       q(yre) => [
-         q(7753),
+         q(7736),
          q(0),
          ],
       q(yri) => [
-         q(7754),
+         q(7737),
          q(0),
          ],
       q(yrk) => [
-         q(7755),
+         q(7738),
          q(0),
          ],
       q(yrl) => [
-         q(7756),
+         q(7739),
          q(0),
          ],
       q(yrm) => [
-         q(7757),
+         q(7740),
          q(0),
          ],
       q(yrn) => [
-         q(7758),
+         q(7741),
          q(0),
          ],
       q(yrs) => [
-         q(7759),
+         q(7742),
          q(0),
          ],
       q(yrw) => [
-         q(7760),
+         q(7743),
          q(0),
          ],
       q(yry) => [
-         q(7761),
+         q(7744),
          q(0),
          ],
       q(ysc) => [
-         q(7762),
+         q(7745),
          q(0),
          ],
       q(ysd) => [
-         q(7763),
+         q(7746),
          q(0),
          ],
       q(ysg) => [
-         q(7764),
+         q(7747),
          q(0),
          ],
       q(ysl) => [
-         q(7765),
+         q(7748),
          q(0),
          ],
       q(ysn) => [
-         q(7766),
+         q(7749),
          q(0),
          ],
       q(yso) => [
-         q(7767),
+         q(7750),
          q(0),
          ],
       q(ysp) => [
-         q(7768),
+         q(7751),
          q(0),
          ],
       q(ysr) => [
-         q(7769),
+         q(7752),
          q(0),
          ],
       q(yss) => [
-         q(7770),
+         q(7753),
          q(0),
          ],
       q(ysy) => [
-         q(7771),
+         q(7754),
          q(0),
          ],
       q(yta) => [
-         q(7772),
+         q(7755),
          q(0),
          ],
       q(ytl) => [
-         q(7773),
+         q(7756),
          q(0),
          ],
       q(ytp) => [
-         q(7774),
+         q(7757),
          q(0),
          ],
       q(ytw) => [
-         q(7775),
+         q(7758),
          q(0),
          ],
       q(yty) => [
-         q(7776),
+         q(7759),
          q(0),
          ],
       q(yua) => [
-         q(7777),
+         q(7760),
          q(0),
          ],
       q(yub) => [
-         q(7778),
+         q(7761),
          q(0),
          ],
       q(yuc) => [
-         q(7779),
+         q(7762),
          q(0),
          ],
       q(yud) => [
-         q(7780),
+         q(7763),
          q(0),
          ],
       q(yue) => [
-         q(7781),
+         q(7764),
          q(0),
          ],
       q(yuf) => [
-         q(7782),
+         q(7765),
          q(0),
          ],
       q(yug) => [
-         q(7783),
+         q(7766),
          q(0),
          ],
       q(yui) => [
-         q(7784),
+         q(7767),
          q(0),
          ],
       q(yuj) => [
-         q(7785),
+         q(7768),
          q(0),
          ],
       q(yuk) => [
-         q(7786),
+         q(7769),
          q(0),
          ],
       q(yul) => [
-         q(7787),
+         q(7770),
          q(0),
          ],
       q(yum) => [
-         q(7788),
+         q(7771),
          q(0),
          ],
       q(yun) => [
-         q(7789),
+         q(7772),
          q(0),
          ],
       q(yup) => [
-         q(7790),
+         q(7773),
          q(0),
          ],
       q(yuq) => [
-         q(7791),
+         q(7774),
          q(0),
          ],
       q(yur) => [
-         q(7792),
+         q(7775),
          q(0),
          ],
       q(yut) => [
-         q(7793),
+         q(7776),
          q(0),
          ],
       q(yuw) => [
-         q(7794),
+         q(7777),
          q(0),
          ],
       q(yux) => [
-         q(7795),
+         q(7778),
          q(0),
          ],
       q(yuy) => [
-         q(7796),
+         q(7779),
          q(0),
          ],
       q(yuz) => [
-         q(7797),
+         q(7780),
          q(0),
          ],
       q(yva) => [
-         q(7798),
+         q(7781),
          q(0),
          ],
       q(yvt) => [
-         q(7799),
+         q(7782),
          q(0),
          ],
       q(ywa) => [
-         q(7800),
+         q(7783),
          q(0),
          ],
       q(ywg) => [
-         q(7801),
+         q(7784),
          q(0),
          ],
       q(ywl) => [
-         q(7802),
+         q(7785),
          q(0),
          ],
       q(ywn) => [
-         q(7803),
+         q(7786),
          q(0),
          ],
       q(ywq) => [
-         q(7804),
+         q(7787),
          q(0),
          ],
       q(ywr) => [
-         q(7805),
+         q(7788),
          q(0),
          ],
       q(ywt) => [
-         q(7806),
+         q(7789),
          q(0),
          ],
       q(ywu) => [
-         q(7807),
+         q(7790),
          q(0),
          ],
       q(yww) => [
-         q(7808),
+         q(7791),
          q(0),
          ],
       q(yxa) => [
-         q(7809),
+         q(7792),
          q(0),
          ],
       q(yxg) => [
-         q(7810),
+         q(7793),
          q(0),
          ],
       q(yxl) => [
-         q(7811),
+         q(7794),
          q(0),
          ],
       q(yxm) => [
-         q(7812),
+         q(7795),
          q(0),
          ],
       q(yxu) => [
-         q(7813),
+         q(7796),
          q(0),
          ],
       q(yxy) => [
-         q(7814),
+         q(7797),
          q(0),
          ],
       q(yyr) => [
-         q(7815),
+         q(7798),
          q(0),
          ],
       q(yyu) => [
-         q(7816),
+         q(7799),
          q(0),
          ],
       q(yyz) => [
-         q(7817),
+         q(7800),
          q(0),
          ],
       q(yzg) => [
-         q(7818),
+         q(7801),
          q(0),
          ],
       q(yzk) => [
-         q(7819),
+         q(7802),
          q(0),
          ],
       q(zaa) => [
-         q(7820),
+         q(7803),
          q(0),
          ],
       q(zab) => [
-         q(7821),
+         q(7804),
          q(0),
          ],
       q(zac) => [
-         q(7822),
+         q(7805),
          q(0),
          ],
       q(zad) => [
-         q(7823),
+         q(7806),
          q(0),
          ],
       q(zae) => [
-         q(7824),
+         q(7807),
          q(0),
          ],
       q(zaf) => [
-         q(7825),
+         q(7808),
          q(0),
          ],
       q(zag) => [
-         q(7826),
+         q(7809),
          q(0),
          ],
       q(zah) => [
-         q(7827),
+         q(7810),
          q(0),
          ],
       q(zai) => [
-         q(7828),
+         q(7811),
          q(0),
          ],
       q(zaj) => [
-         q(7829),
+         q(7812),
          q(0),
          ],
       q(zak) => [
-         q(7830),
+         q(7813),
          q(0),
          ],
       q(zal) => [
-         q(7831),
+         q(7814),
          q(0),
          ],
       q(zam) => [
-         q(7832),
+         q(7815),
          q(0),
          ],
       q(zao) => [
-         q(7833),
+         q(7816),
          q(0),
          ],
       q(zap) => [
@@ -89566,51 +89464,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zaq) => [
-         q(7834),
+         q(7817),
          q(0),
          ],
       q(zar) => [
-         q(7835),
+         q(7818),
          q(0),
          ],
       q(zas) => [
-         q(7836),
+         q(7819),
          q(0),
          ],
       q(zat) => [
-         q(7837),
+         q(7820),
          q(0),
          ],
       q(zau) => [
-         q(7838),
+         q(7821),
          q(0),
          ],
       q(zav) => [
-         q(7839),
+         q(7822),
          q(0),
          ],
       q(zaw) => [
-         q(7840),
+         q(7823),
          q(0),
          ],
       q(zax) => [
-         q(7841),
+         q(7824),
          q(0),
          ],
       q(zay) => [
-         q(7842),
+         q(7825),
          q(0),
          ],
       q(zaz) => [
-         q(7843),
+         q(7826),
          q(0),
          ],
       q(zbc) => [
-         q(7844),
+         q(7827),
          q(0),
          ],
       q(zbe) => [
-         q(7845),
+         q(7828),
          q(0),
          ],
       q(zbl) => [
@@ -89618,35 +89516,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zbt) => [
-         q(7846),
+         q(7829),
          q(0),
          ],
       q(zbw) => [
-         q(7847),
+         q(7830),
          q(0),
          ],
       q(zca) => [
-         q(7848),
+         q(7831),
          q(0),
          ],
       q(zch) => [
-         q(7849),
+         q(7832),
          q(0),
          ],
       q(zdj) => [
-         q(7850),
+         q(7833),
          q(0),
          ],
       q(zea) => [
-         q(7851),
+         q(7834),
          q(0),
          ],
       q(zeg) => [
-         q(7852),
+         q(7835),
          q(0),
          ],
       q(zeh) => [
-         q(7853),
+         q(7836),
          q(0),
          ],
       q(zen) => [
@@ -89654,11 +89552,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zga) => [
-         q(7854),
+         q(7837),
          q(0),
          ],
       q(zgb) => [
-         q(7855),
+         q(7838),
          q(0),
          ],
       q(zgh) => [
@@ -89666,15 +89564,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zgm) => [
-         q(7856),
+         q(7839),
          q(0),
          ],
       q(zgn) => [
-         q(7857),
+         q(7840),
          q(0),
          ],
       q(zgr) => [
-         q(7858),
+         q(7841),
          q(0),
          ],
       q(zha) => [
@@ -89682,23 +89580,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zhb) => [
-         q(7859),
+         q(7842),
          q(0),
          ],
       q(zhd) => [
-         q(7860),
+         q(7843),
          q(0),
          ],
       q(zhi) => [
-         q(7861),
+         q(7844),
          q(0),
          ],
       q(zhn) => [
-         q(7862),
+         q(7845),
          q(0),
          ],
       q(zhw) => [
-         q(7863),
+         q(7846),
          q(0),
          ],
       q(zhx) => [
@@ -89706,95 +89604,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zia) => [
-         q(7864),
+         q(7847),
          q(0),
          ],
       q(zib) => [
-         q(7865),
+         q(7848),
          q(0),
          ],
       q(zik) => [
-         q(7866),
+         q(7849),
          q(0),
          ],
       q(zil) => [
-         q(7867),
+         q(7850),
          q(0),
          ],
       q(zim) => [
-         q(7868),
+         q(7851),
          q(0),
          ],
       q(zin) => [
-         q(7869),
+         q(7852),
          q(0),
          ],
       q(zir) => [
-         q(7870),
+         q(7853),
          q(0),
          ],
       q(ziw) => [
-         q(7871),
+         q(7854),
          q(0),
          ],
       q(ziz) => [
-         q(7872),
+         q(7855),
          q(0),
          ],
       q(zka) => [
-         q(7873),
+         q(7856),
          q(0),
          ],
       q(zkb) => [
-         q(7874),
+         q(7857),
          q(0),
          ],
       q(zkd) => [
-         q(7875),
+         q(7858),
          q(0),
          ],
       q(zkg) => [
-         q(7876),
+         q(7859),
          q(0),
          ],
       q(zkh) => [
-         q(7877),
+         q(7860),
          q(0),
          ],
       q(zkk) => [
-         q(7878),
+         q(7861),
          q(0),
          ],
       q(zkn) => [
-         q(7879),
+         q(7862),
          q(0),
          ],
       q(zko) => [
-         q(7880),
+         q(7863),
          q(0),
          ],
       q(zkp) => [
-         q(7881),
+         q(7864),
          q(0),
          ],
       q(zkr) => [
-         q(7882),
+         q(7865),
          q(0),
          ],
       q(zkt) => [
-         q(7883),
+         q(7866),
          q(0),
          ],
       q(zku) => [
-         q(7884),
+         q(7867),
          q(0),
          ],
       q(zkv) => [
-         q(7885),
+         q(7868),
          q(0),
          ],
       q(zkz) => [
-         q(7886),
+         q(7869),
          q(0),
          ],
       q(zle) => [
@@ -89802,19 +89700,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zlj) => [
-         q(7887),
+         q(7870),
          q(0),
          ],
       q(zlm) => [
-         q(7888),
+         q(7871),
          q(0),
          ],
       q(zln) => [
-         q(7889),
+         q(7872),
          q(0),
          ],
       q(zlq) => [
-         q(7890),
+         q(7873),
          q(0),
          ],
       q(zls) => [
@@ -89826,111 +89724,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zma) => [
-         q(7891),
+         q(7874),
          q(0),
          ],
       q(zmb) => [
-         q(7892),
+         q(7875),
          q(0),
          ],
       q(zmc) => [
-         q(7893),
+         q(7876),
          q(0),
          ],
       q(zmd) => [
-         q(7894),
+         q(7877),
          q(0),
          ],
       q(zme) => [
-         q(7895),
+         q(7878),
          q(0),
          ],
       q(zmf) => [
-         q(7896),
+         q(7879),
          q(0),
          ],
       q(zmg) => [
-         q(7897),
+         q(7880),
          q(0),
          ],
       q(zmh) => [
-         q(7898),
+         q(7881),
          q(0),
          ],
       q(zmi) => [
-         q(7899),
+         q(7882),
          q(0),
          ],
       q(zmj) => [
-         q(7900),
+         q(7883),
          q(0),
          ],
       q(zmk) => [
-         q(7901),
+         q(7884),
          q(0),
          ],
       q(zml) => [
-         q(7902),
+         q(7885),
          q(0),
          ],
       q(zmm) => [
-         q(7903),
+         q(7886),
          q(0),
          ],
       q(zmn) => [
-         q(7904),
+         q(7887),
          q(0),
          ],
       q(zmo) => [
-         q(7905),
+         q(7888),
          q(0),
          ],
       q(zmp) => [
-         q(7906),
+         q(7889),
          q(0),
          ],
       q(zmq) => [
-         q(7907),
+         q(7890),
          q(0),
          ],
       q(zmr) => [
-         q(7908),
+         q(7891),
          q(0),
          ],
       q(zms) => [
-         q(7909),
+         q(7892),
          q(0),
          ],
       q(zmt) => [
-         q(7910),
+         q(7893),
          q(0),
          ],
       q(zmu) => [
-         q(7911),
+         q(7894),
          q(0),
          ],
       q(zmv) => [
-         q(7912),
+         q(7895),
          q(0),
          ],
       q(zmw) => [
-         q(7913),
+         q(7896),
          q(0),
          ],
       q(zmx) => [
-         q(7914),
+         q(7897),
          q(0),
          ],
       q(zmy) => [
-         q(7915),
+         q(7898),
          q(0),
          ],
       q(zmz) => [
-         q(7916),
+         q(7899),
          q(0),
          ],
       q(zna) => [
-         q(7917),
+         q(7900),
          q(0),
          ],
       q(znd) => [
@@ -89938,259 +89836,259 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zne) => [
-         q(7918),
+         q(7901),
          q(0),
          ],
       q(zng) => [
-         q(7919),
+         q(7902),
          q(0),
          ],
       q(znk) => [
-         q(7920),
+         q(7903),
          q(0),
          ],
       q(zns) => [
-         q(7921),
+         q(7904),
          q(0),
          ],
       q(zoc) => [
-         q(7922),
+         q(7905),
          q(0),
          ],
       q(zoh) => [
-         q(7923),
+         q(7906),
          q(0),
          ],
       q(zom) => [
-         q(7924),
+         q(7907),
          q(0),
          ],
       q(zoo) => [
-         q(7925),
+         q(7908),
          q(0),
          ],
       q(zoq) => [
-         q(7926),
+         q(7909),
          q(0),
          ],
       q(zor) => [
-         q(7927),
+         q(7910),
          q(0),
          ],
       q(zos) => [
-         q(7928),
+         q(7911),
          q(0),
          ],
       q(zpa) => [
-         q(7929),
+         q(7912),
          q(0),
          ],
       q(zpb) => [
-         q(7930),
+         q(7913),
          q(0),
          ],
       q(zpc) => [
-         q(7931),
+         q(7914),
          q(0),
          ],
       q(zpd) => [
-         q(7932),
+         q(7915),
          q(0),
          ],
       q(zpe) => [
-         q(7933),
+         q(7916),
          q(0),
          ],
       q(zpf) => [
-         q(7934),
+         q(7917),
          q(0),
          ],
       q(zpg) => [
-         q(7935),
+         q(7918),
          q(0),
          ],
       q(zph) => [
-         q(7936),
+         q(7919),
          q(0),
          ],
       q(zpi) => [
-         q(7937),
+         q(7920),
          q(0),
          ],
       q(zpj) => [
-         q(7938),
+         q(7921),
          q(0),
          ],
       q(zpk) => [
-         q(7939),
+         q(7922),
          q(0),
          ],
       q(zpl) => [
-         q(7940),
+         q(7923),
          q(0),
          ],
       q(zpm) => [
-         q(7941),
+         q(7924),
          q(0),
          ],
       q(zpn) => [
-         q(7942),
+         q(7925),
          q(0),
          ],
       q(zpo) => [
-         q(7943),
+         q(7926),
          q(0),
          ],
       q(zpp) => [
-         q(7944),
+         q(7927),
          q(0),
          ],
       q(zpq) => [
-         q(7945),
+         q(7928),
          q(0),
          ],
       q(zpr) => [
-         q(7946),
+         q(7929),
          q(0),
          ],
       q(zps) => [
-         q(7947),
+         q(7930),
          q(0),
          ],
       q(zpt) => [
-         q(7948),
+         q(7931),
          q(0),
          ],
       q(zpu) => [
-         q(7949),
+         q(7932),
          q(0),
          ],
       q(zpv) => [
-         q(7950),
+         q(7933),
          q(0),
          ],
       q(zpw) => [
-         q(7951),
+         q(7934),
          q(0),
          ],
       q(zpx) => [
-         q(7952),
+         q(7935),
          q(0),
          ],
       q(zpy) => [
-         q(7953),
+         q(7936),
          q(0),
          ],
       q(zpz) => [
-         q(7954),
+         q(7937),
          q(0),
          ],
       q(zqe) => [
-         q(7955),
+         q(7938),
          q(0),
          ],
       q(zra) => [
-         q(7956),
+         q(7939),
          q(0),
          ],
       q(zrg) => [
-         q(7957),
+         q(7940),
          q(0),
          ],
       q(zrn) => [
-         q(7958),
+         q(7941),
          q(0),
          ],
       q(zro) => [
-         q(7959),
+         q(7942),
          q(0),
          ],
       q(zrp) => [
-         q(7960),
+         q(7943),
          q(0),
          ],
       q(zrs) => [
-         q(7961),
+         q(7944),
          q(0),
          ],
       q(zsa) => [
-         q(7962),
+         q(7945),
          q(0),
          ],
       q(zsk) => [
-         q(7963),
+         q(7946),
          q(0),
          ],
       q(zsl) => [
-         q(7964),
+         q(7947),
          q(0),
          ],
       q(zsm) => [
-         q(7965),
+         q(7948),
          q(0),
          ],
       q(zsr) => [
-         q(7966),
+         q(7949),
          q(0),
          ],
       q(zsu) => [
-         q(7967),
+         q(7950),
          q(0),
          ],
       q(zte) => [
-         q(7968),
+         q(7951),
          q(0),
          ],
       q(ztg) => [
-         q(7969),
+         q(7952),
          q(0),
          ],
       q(ztl) => [
-         q(7970),
+         q(7953),
          q(0),
          ],
       q(ztm) => [
-         q(7971),
+         q(7954),
          q(0),
          ],
       q(ztn) => [
-         q(7972),
+         q(7955),
          q(0),
          ],
       q(ztp) => [
-         q(7973),
+         q(7956),
          q(0),
          ],
       q(ztq) => [
-         q(7974),
+         q(7957),
          q(0),
          ],
       q(zts) => [
-         q(7975),
+         q(7958),
          q(0),
          ],
       q(ztt) => [
-         q(7976),
+         q(7959),
          q(0),
          ],
       q(ztu) => [
-         q(7977),
+         q(7960),
          q(0),
          ],
       q(ztx) => [
-         q(7978),
+         q(7961),
          q(0),
          ],
       q(zty) => [
-         q(7979),
+         q(7962),
          q(0),
          ],
       q(zua) => [
-         q(7980),
+         q(7963),
          q(0),
          ],
       q(zuh) => [
-         q(7981),
+         q(7964),
          q(0),
          ],
       q(zul) => [
@@ -90198,7 +90096,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zum) => [
-         q(7982),
+         q(7965),
          q(0),
          ],
       q(zun) => [
@@ -90206,11 +90104,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zuy) => [
-         q(7983),
+         q(7966),
          q(0),
          ],
       q(zwa) => [
-         q(7984),
+         q(7967),
          q(0),
          ],
       q(zxx) => [
@@ -90218,23 +90116,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zyb) => [
-         q(7985),
+         q(7968),
          q(0),
          ],
       q(zyg) => [
-         q(7986),
+         q(7969),
          q(0),
          ],
       q(zyj) => [
-         q(7987),
+         q(7970),
          q(0),
          ],
       q(zyn) => [
-         q(7988),
+         q(7971),
          q(0),
          ],
       q(zyp) => [
-         q(7989),
+         q(7972),
          q(0),
          ],
       q(zza) => [
@@ -90242,7 +90140,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zzj) => [
-         q(7990),
+         q(7973),
          q(0),
          ],
       },
@@ -92930,7448 +92828,7431 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
       q(0546) => q(aai),
       q(0547) => q(aak),
       q(0548) => q(aal),
-      q(0549) => q(aam),
-      q(0550) => q(aan),
-      q(0551) => q(aao),
-      q(0552) => q(aap),
-      q(0553) => q(aaq),
-      q(0554) => q(aas),
-      q(0555) => q(aat),
-      q(0556) => q(aau),
-      q(0557) => q(aaw),
-      q(0558) => q(aax),
-      q(0559) => q(aaz),
-      q(0560) => q(aba),
-      q(0561) => q(abb),
-      q(0562) => q(abc),
-      q(0563) => q(abd),
-      q(0564) => q(abe),
-      q(0565) => q(abf),
-      q(0566) => q(abg),
-      q(0567) => q(abh),
-      q(0568) => q(abi),
-      q(0569) => q(abj),
-      q(0570) => q(abl),
-      q(0571) => q(abm),
-      q(0572) => q(abn),
-      q(0573) => q(abo),
-      q(0574) => q(abp),
-      q(0575) => q(abq),
-      q(0576) => q(abr),
-      q(0577) => q(abs),
-      q(0578) => q(abt),
-      q(0579) => q(abu),
-      q(0580) => q(abv),
-      q(0581) => q(abw),
-      q(0582) => q(abx),
-      q(0583) => q(aby),
-      q(0584) => q(abz),
-      q(0585) => q(aca),
-      q(0586) => q(acb),
-      q(0587) => q(acd),
-      q(0588) => q(acf),
-      q(0589) => q(aci),
-      q(0590) => q(ack),
-      q(0591) => q(acl),
-      q(0592) => q(acm),
-      q(0593) => q(acn),
-      q(0594) => q(acp),
-      q(0595) => q(acq),
-      q(0596) => q(acr),
-      q(0597) => q(acs),
-      q(0598) => q(act),
-      q(0599) => q(acu),
-      q(0600) => q(acv),
-      q(0601) => q(acw),
-      q(0602) => q(acx),
-      q(0603) => q(acy),
-      q(0604) => q(acz),
-      q(0605) => q(adb),
-      q(0606) => q(add),
-      q(0607) => q(ade),
-      q(0608) => q(adf),
-      q(0609) => q(adg),
-      q(0610) => q(adh),
-      q(0611) => q(adi),
-      q(0612) => q(adj),
-      q(0613) => q(adl),
-      q(0614) => q(adn),
-      q(0615) => q(ado),
-      q(0616) => q(adp),
-      q(0617) => q(adq),
-      q(0618) => q(adr),
-      q(0619) => q(ads),
-      q(0620) => q(adt),
-      q(0621) => q(adu),
-      q(0622) => q(adw),
-      q(0623) => q(adx),
-      q(0624) => q(adz),
-      q(0625) => q(aea),
-      q(0626) => q(aeb),
-      q(0627) => q(aec),
-      q(0628) => q(aed),
-      q(0629) => q(aee),
-      q(0630) => q(aek),
-      q(0631) => q(ael),
-      q(0632) => q(aem),
-      q(0633) => q(aen),
-      q(0634) => q(aeq),
-      q(0635) => q(aer),
-      q(0636) => q(aes),
-      q(0637) => q(aeu),
-      q(0638) => q(aew),
-      q(0639) => q(aey),
-      q(0640) => q(aez),
-      q(0641) => q(afb),
-      q(0642) => q(afd),
-      q(0643) => q(afe),
-      q(0644) => q(afg),
-      q(0645) => q(afi),
-      q(0646) => q(afk),
-      q(0647) => q(afn),
-      q(0648) => q(afo),
-      q(0649) => q(afp),
-      q(0650) => q(afs),
-      q(0651) => q(aft),
-      q(0652) => q(afu),
-      q(0653) => q(afz),
-      q(0654) => q(aga),
-      q(0655) => q(agb),
-      q(0656) => q(agc),
-      q(0657) => q(agd),
-      q(0658) => q(age),
-      q(0659) => q(agf),
-      q(0660) => q(agg),
-      q(0661) => q(agh),
-      q(0662) => q(agi),
-      q(0663) => q(agj),
-      q(0664) => q(agk),
-      q(0665) => q(agl),
-      q(0666) => q(agm),
-      q(0667) => q(agn),
-      q(0668) => q(ago),
-      q(0669) => q(agq),
-      q(0670) => q(agr),
-      q(0671) => q(ags),
-      q(0672) => q(agt),
-      q(0673) => q(agu),
-      q(0674) => q(agv),
-      q(0675) => q(agw),
-      q(0676) => q(agx),
-      q(0677) => q(agy),
-      q(0678) => q(agz),
-      q(0679) => q(aha),
-      q(0680) => q(ahb),
-      q(0681) => q(ahg),
-      q(0682) => q(ahh),
-      q(0683) => q(ahi),
-      q(0684) => q(ahk),
-      q(0685) => q(ahl),
-      q(0686) => q(ahm),
-      q(0687) => q(ahn),
-      q(0688) => q(aho),
-      q(0689) => q(ahp),
-      q(0690) => q(ahr),
-      q(0691) => q(ahs),
-      q(0692) => q(aht),
-      q(0693) => q(aia),
-      q(0694) => q(aib),
-      q(0695) => q(aic),
-      q(0696) => q(aid),
-      q(0697) => q(aie),
-      q(0698) => q(aif),
-      q(0699) => q(aig),
-      q(0700) => q(aih),
-      q(0701) => q(aii),
-      q(0702) => q(aij),
-      q(0703) => q(aik),
-      q(0704) => q(ail),
-      q(0705) => q(aim),
-      q(0706) => q(aio),
-      q(0707) => q(aip),
-      q(0708) => q(aiq),
-      q(0709) => q(air),
-      q(0710) => q(ais),
-      q(0711) => q(ait),
-      q(0712) => q(aiw),
-      q(0713) => q(aix),
-      q(0714) => q(aiy),
-      q(0715) => q(aja),
-      q(0716) => q(ajg),
-      q(0717) => q(aji),
-      q(0718) => q(ajn),
-      q(0719) => q(ajp),
-      q(0720) => q(ajt),
-      q(0721) => q(aju),
-      q(0722) => q(ajw),
-      q(0723) => q(ajz),
-      q(0724) => q(akb),
-      q(0725) => q(akc),
-      q(0726) => q(akd),
-      q(0727) => q(ake),
-      q(0728) => q(akf),
-      q(0729) => q(akg),
-      q(0730) => q(akh),
-      q(0731) => q(aki),
-      q(0732) => q(akj),
-      q(0733) => q(akl),
-      q(0734) => q(akm),
-      q(0735) => q(ako),
-      q(0736) => q(akp),
-      q(0737) => q(akq),
-      q(0738) => q(akr),
-      q(0739) => q(aks),
-      q(0740) => q(akt),
-      q(0741) => q(aku),
-      q(0742) => q(akv),
-      q(0743) => q(akw),
-      q(0744) => q(akx),
-      q(0745) => q(aky),
-      q(0746) => q(akz),
-      q(0747) => q(ala),
-      q(0748) => q(alc),
-      q(0749) => q(ald),
-      q(0750) => q(alf),
-      q(0751) => q(alh),
-      q(0752) => q(ali),
-      q(0753) => q(alj),
-      q(0754) => q(alk),
-      q(0755) => q(all),
-      q(0756) => q(alm),
-      q(0757) => q(aln),
-      q(0758) => q(alo),
-      q(0759) => q(alp),
-      q(0760) => q(alq),
-      q(0761) => q(alr),
-      q(0762) => q(als),
-      q(0763) => q(alu),
-      q(0764) => q(alw),
-      q(0765) => q(alx),
-      q(0766) => q(aly),
-      q(0767) => q(alz),
-      q(0768) => q(ama),
-      q(0769) => q(amb),
-      q(0770) => q(amc),
-      q(0771) => q(ame),
-      q(0772) => q(amf),
-      q(0773) => q(amg),
-      q(0774) => q(ami),
-      q(0775) => q(amj),
-      q(0776) => q(amk),
-      q(0777) => q(aml),
-      q(0778) => q(amm),
-      q(0779) => q(amn),
-      q(0780) => q(amo),
-      q(0781) => q(amp),
-      q(0782) => q(amq),
-      q(0783) => q(amr),
-      q(0784) => q(ams),
-      q(0785) => q(amt),
-      q(0786) => q(amu),
-      q(0787) => q(amv),
-      q(0788) => q(amw),
-      q(0789) => q(amx),
-      q(0790) => q(amy),
-      q(0791) => q(amz),
-      q(0792) => q(ana),
-      q(0793) => q(anb),
-      q(0794) => q(anc),
-      q(0795) => q(and),
-      q(0796) => q(ane),
-      q(0797) => q(anf),
-      q(0798) => q(anh),
-      q(0799) => q(ani),
-      q(0800) => q(anj),
-      q(0801) => q(ank),
-      q(0802) => q(anl),
-      q(0803) => q(anm),
-      q(0804) => q(ann),
-      q(0805) => q(ano),
-      q(0806) => q(anq),
-      q(0807) => q(anr),
-      q(0808) => q(ans),
-      q(0809) => q(ant),
-      q(0810) => q(anu),
-      q(0811) => q(anv),
-      q(0812) => q(anw),
-      q(0813) => q(anx),
-      q(0814) => q(any),
-      q(0815) => q(anz),
-      q(0816) => q(aoa),
-      q(0817) => q(aob),
-      q(0818) => q(aoc),
-      q(0819) => q(aod),
-      q(0820) => q(aoe),
-      q(0821) => q(aof),
-      q(0822) => q(aog),
-      q(0823) => q(aoh),
-      q(0824) => q(aoi),
-      q(0825) => q(aoj),
-      q(0826) => q(aok),
-      q(0827) => q(aol),
-      q(0828) => q(aom),
-      q(0829) => q(aon),
-      q(0830) => q(aor),
-      q(0831) => q(aos),
-      q(0832) => q(aot),
-      q(0833) => q(aou),
-      q(0834) => q(aox),
-      q(0835) => q(aoz),
-      q(0836) => q(apb),
-      q(0837) => q(apc),
-      q(0838) => q(apd),
-      q(0839) => q(ape),
-      q(0840) => q(apf),
-      q(0841) => q(apg),
-      q(0842) => q(aph),
-      q(0843) => q(api),
-      q(0844) => q(apj),
-      q(0845) => q(apk),
-      q(0846) => q(apl),
-      q(0847) => q(apm),
-      q(0848) => q(apn),
-      q(0849) => q(apo),
-      q(0850) => q(app),
-      q(0851) => q(apq),
-      q(0852) => q(apr),
-      q(0853) => q(aps),
-      q(0854) => q(apt),
-      q(0855) => q(apu),
-      q(0856) => q(apv),
-      q(0857) => q(apw),
-      q(0858) => q(apx),
-      q(0859) => q(apy),
-      q(0860) => q(apz),
-      q(0861) => q(aqc),
-      q(0862) => q(aqd),
-      q(0863) => q(aqg),
-      q(0864) => q(aqm),
-      q(0865) => q(aqn),
-      q(0866) => q(aqp),
-      q(0867) => q(aqr),
-      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),
-      q(2267) => q(emw),
-      q(2268) => q(emx),
-      q(2269) => q(emy),
-      q(2270) => q(ena),
-      q(2271) => q(enb),
-      q(2272) => q(enc),
-      q(2273) => q(end),
-      q(2274) => q(enf),
-      q(2275) => q(enh),
-      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(0549) => q(aan),
+      q(0550) => q(aao),
+      q(0551) => q(aap),
+      q(0552) => q(aaq),
+      q(0553) => q(aas),
+      q(0554) => q(aat),
+      q(0555) => q(aau),
+      q(0556) => q(aaw),
+      q(0557) => q(aax),
+      q(0558) => q(aaz),
+      q(0559) => q(aba),
+      q(0560) => q(abb),
+      q(0561) => q(abc),
+      q(0562) => q(abd),
+      q(0563) => q(abe),
+      q(0564) => q(abf),
+      q(0565) => q(abg),
+      q(0566) => q(abh),
+      q(0567) => q(abi),
+      q(0568) => q(abj),
+      q(0569) => q(abl),
+      q(0570) => q(abm),
+      q(0571) => q(abn),
+      q(0572) => q(abo),
+      q(0573) => q(abp),
+      q(0574) => q(abq),
+      q(0575) => q(abr),
+      q(0576) => q(abs),
+      q(0577) => q(abt),
+      q(0578) => q(abu),
+      q(0579) => q(abv),
+      q(0580) => q(abw),
+      q(0581) => q(abx),
+      q(0582) => q(aby),
+      q(0583) => q(abz),
+      q(0584) => q(aca),
+      q(0585) => q(acb),
+      q(0586) => q(acd),
+      q(0587) => q(acf),
+      q(0588) => q(aci),
+      q(0589) => q(ack),
+      q(0590) => q(acl),
+      q(0591) => q(acm),
+      q(0592) => q(acn),
+      q(0593) => q(acp),
+      q(0594) => q(acq),
+      q(0595) => q(acr),
+      q(0596) => q(acs),
+      q(0597) => q(act),
+      q(0598) => q(acu),
+      q(0599) => q(acv),
+      q(0600) => q(acw),
+      q(0601) => q(acx),
+      q(0602) => q(acy),
+      q(0603) => q(acz),
+      q(0604) => q(adb),
+      q(0605) => q(add),
+      q(0606) => q(ade),
+      q(0607) => q(adf),
+      q(0608) => q(adg),
+      q(0609) => q(adh),
+      q(0610) => q(adi),
+      q(0611) => q(adj),
+      q(0612) => q(adl),
+      q(0613) => q(adn),
+      q(0614) => q(ado),
+      q(0615) => q(adq),
+      q(0616) => q(adr),
+      q(0617) => q(ads),
+      q(0618) => q(adt),
+      q(0619) => q(adu),
+      q(0620) => q(adw),
+      q(0621) => q(adx),
+      q(0622) => q(adz),
+      q(0623) => q(aea),
+      q(0624) => q(aeb),
+      q(0625) => q(aec),
+      q(0626) => q(aed),
+      q(0627) => q(aee),
+      q(0628) => q(aek),
+      q(0629) => q(ael),
+      q(0630) => q(aem),
+      q(0631) => q(aen),
+      q(0632) => q(aeq),
+      q(0633) => q(aer),
+      q(0634) => q(aes),
+      q(0635) => q(aeu),
+      q(0636) => q(aew),
+      q(0637) => q(aey),
+      q(0638) => q(aez),
+      q(0639) => q(afb),
+      q(0640) => q(afd),
+      q(0641) => q(afe),
+      q(0642) => q(afg),
+      q(0643) => q(afi),
+      q(0644) => q(afk),
+      q(0645) => q(afn),
+      q(0646) => q(afo),
+      q(0647) => q(afp),
+      q(0648) => q(afs),
+      q(0649) => q(aft),
+      q(0650) => q(afu),
+      q(0651) => q(afz),
+      q(0652) => q(aga),
+      q(0653) => q(agb),
+      q(0654) => q(agc),
+      q(0655) => q(agd),
+      q(0656) => q(age),
+      q(0657) => q(agf),
+      q(0658) => q(agg),
+      q(0659) => q(agh),
+      q(0660) => q(agi),
+      q(0661) => q(agj),
+      q(0662) => q(agk),
+      q(0663) => q(agl),
+      q(0664) => q(agm),
+      q(0665) => q(agn),
+      q(0666) => q(ago),
+      q(0667) => q(agq),
+      q(0668) => q(agr),
+      q(0669) => q(ags),
+      q(0670) => q(agt),
+      q(0671) => q(agu),
+      q(0672) => q(agv),
+      q(0673) => q(agw),
+      q(0674) => q(agx),
+      q(0675) => q(agy),
+      q(0676) => q(agz),
+      q(0677) => q(aha),
+      q(0678) => q(ahb),
+      q(0679) => q(ahg),
+      q(0680) => q(ahh),
+      q(0681) => q(ahi),
+      q(0682) => q(ahk),
+      q(0683) => q(ahl),
+      q(0684) => q(ahm),
+      q(0685) => q(ahn),
+      q(0686) => q(aho),
+      q(0687) => q(ahp),
+      q(0688) => q(ahr),
+      q(0689) => q(ahs),
+      q(0690) => q(aht),
+      q(0691) => q(aia),
+      q(0692) => q(aib),
+      q(0693) => q(aic),
+      q(0694) => q(aid),
+      q(0695) => q(aie),
+      q(0696) => q(aif),
+      q(0697) => q(aig),
+      q(0698) => q(aih),
+      q(0699) => q(aii),
+      q(0700) => q(aij),
+      q(0701) => q(aik),
+      q(0702) => q(ail),
+      q(0703) => q(aim),
+      q(0704) => q(aio),
+      q(0705) => q(aip),
+      q(0706) => q(aiq),
+      q(0707) => q(air),
+      q(0708) => q(ais),
+      q(0709) => q(ait),
+      q(0710) => q(aiw),
+      q(0711) => q(aix),
+      q(0712) => q(aiy),
+      q(0713) => q(aja),
+      q(0714) => q(ajg),
+      q(0715) => q(aji),
+      q(0716) => q(ajn),
+      q(0717) => q(ajp),
+      q(0718) => q(ajt),
+      q(0719) => q(aju),
+      q(0720) => q(ajw),
+      q(0721) => q(ajz),
+      q(0722) => q(akb),
+      q(0723) => q(akc),
+      q(0724) => q(akd),
+      q(0725) => q(ake),
+      q(0726) => q(akf),
+      q(0727) => q(akg),
+      q(0728) => q(akh),
+      q(0729) => q(aki),
+      q(0730) => q(akj),
+      q(0731) => q(akl),
+      q(0732) => q(akm),
+      q(0733) => q(ako),
+      q(0734) => q(akp),
+      q(0735) => q(akq),
+      q(0736) => q(akr),
+      q(0737) => q(aks),
+      q(0738) => q(akt),
+      q(0739) => q(aku),
+      q(0740) => q(akv),
+      q(0741) => q(akw),
+      q(0742) => q(akx),
+      q(0743) => q(aky),
+      q(0744) => q(akz),
+      q(0745) => q(ala),
+      q(0746) => q(alc),
+      q(0747) => q(ald),
+      q(0748) => q(alf),
+      q(0749) => q(alh),
+      q(0750) => q(ali),
+      q(0751) => q(alj),
+      q(0752) => q(alk),
+      q(0753) => q(all),
+      q(0754) => q(alm),
+      q(0755) => q(aln),
+      q(0756) => q(alo),
+      q(0757) => q(alp),
+      q(0758) => q(alq),
+      q(0759) => q(alr),
+      q(0760) => q(als),
+      q(0761) => q(alu),
+      q(0762) => q(alw),
+      q(0763) => q(alx),
+      q(0764) => q(aly),
+      q(0765) => q(alz),
+      q(0766) => q(ama),
+      q(0767) => q(amb),
+      q(0768) => q(amc),
+      q(0769) => q(ame),
+      q(0770) => q(amf),
+      q(0771) => q(amg),
+      q(0772) => q(ami),
+      q(0773) => q(amj),
+      q(0774) => q(amk),
+      q(0775) => q(aml),
+      q(0776) => q(amm),
+      q(0777) => q(amn),
+      q(0778) => q(amo),
+      q(0779) => q(amp),
+      q(0780) => q(amq),
+      q(0781) => q(amr),
+      q(0782) => q(ams),
+      q(0783) => q(amt),
+      q(0784) => q(amu),
+      q(0785) => q(amv),
+      q(0786) => q(amw),
+      q(0787) => q(amx),
+      q(0788) => q(amy),
+      q(0789) => q(amz),
+      q(0790) => q(ana),
+      q(0791) => q(anb),
+      q(0792) => q(anc),
+      q(0793) => q(and),
+      q(0794) => q(ane),
+      q(0795) => q(anf),
+      q(0796) => q(anh),
+      q(0797) => q(ani),
+      q(0798) => q(anj),
+      q(0799) => q(ank),
+      q(0800) => q(anl),
+      q(0801) => q(anm),
+      q(0802) => q(ann),
+      q(0803) => q(ano),
+      q(0804) => q(anq),
+      q(0805) => q(anr),
+      q(0806) => q(ans),
+      q(0807) => q(ant),
+      q(0808) => q(anu),
+      q(0809) => q(anv),
+      q(0810) => q(anw),
+      q(0811) => q(anx),
+      q(0812) => q(any),
+      q(0813) => q(anz),
+      q(0814) => q(aoa),
+      q(0815) => q(aob),
+      q(0816) => q(aoc),
+      q(0817) => q(aod),
+      q(0818) => q(aoe),
+      q(0819) => q(aof),
+      q(0820) => q(aog),
+      q(0821) => q(aoh),
+      q(0822) => q(aoi),
+      q(0823) => q(aoj),
+      q(0824) => q(aok),
+      q(0825) => q(aol),
+      q(0826) => q(aom),
+      q(0827) => q(aon),
+      q(0828) => q(aor),
+      q(0829) => q(aos),
+      q(0830) => q(ato),
+      q(0831) => q(aou),
+      q(0832) => q(aox),
+      q(0833) => q(aoz),
+      q(0834) => q(apb),
+      q(0835) => q(apc),
+      q(0836) => q(apd),
+      q(0837) => q(ape),
+      q(0838) => q(apf),
+      q(0839) => q(apg),
+      q(0840) => q(aph),
+      q(0841) => q(api),
+      q(0842) => q(apj),
+      q(0843) => q(apk),
+      q(0844) => q(apl),
+      q(0845) => q(apm),
+      q(0846) => q(apn),
+      q(0847) => q(apo),
+      q(0848) => q(app),
+      q(0849) => q(apq),
+      q(0850) => q(apr),
+      q(0851) => q(aps),
+      q(0852) => q(apt),
+      q(0853) => q(apu),
+      q(0854) => q(apv),
+      q(0855) => q(apw),
+      q(0856) => q(apx),
+      q(0857) => q(apy),
+      q(0858) => q(apz),
+      q(0859) => q(aqc),
+      q(0860) => q(aqd),
+      q(0861) => q(aqg),
+      q(0862) => q(aqm),
+      q(0863) => q(aqn),
+      q(0864) => q(aqp),
+      q(0865) => q(aqr),
+      q(0866) => q(aqt),
+      q(0867) => q(aqz),
+      q(0868) => q(arb),
+      q(0869) => q(ard),
+      q(0870) => q(are),
+      q(0871) => q(arh),
+      q(0872) => q(ari),
+      q(0873) => q(arj),
+      q(0874) => q(ark),
+      q(0875) => q(arl),
+      q(0876) => q(aro),
+      q(0877) => q(arq),
+      q(0878) => q(arr),
+      q(0879) => q(ars),
+      q(0880) => q(aru),
+      q(0881) => q(arv),
+      q(0882) => q(arx),
+      q(0883) => q(ary),
+      q(0884) => q(arz),
+      q(0885) => q(asa),
+      q(0886) => q(asb),
+      q(0887) => q(asc),
+      q(0888) => q(asd),
+      q(0889) => q(ase),
+      q(0890) => q(asf),
+      q(0891) => q(asg),
+      q(0892) => q(ash),
+      q(0893) => q(asi),
+      q(0894) => q(asj),
+      q(0895) => q(ask),
+      q(0896) => q(asl),
+      q(0897) => q(asn),
+      q(0898) => q(aso),
+      q(0899) => q(asp),
+      q(0900) => q(asq),
+      q(0901) => q(asr),
+      q(0902) => q(ass),
+      q(0903) => q(asu),
+      q(0904) => q(asv),
+      q(0905) => q(asw),
+      q(0906) => q(asx),
+      q(0907) => q(asy),
+      q(0908) => q(asz),
+      q(0909) => q(ata),
+      q(0910) => q(atb),
+      q(0911) => q(atc),
+      q(0912) => q(atd),
+      q(0913) => q(ate),
+      q(0914) => q(atg),
+      q(0915) => q(ati),
+      q(0916) => q(atj),
+      q(0917) => q(atk),
+      q(0918) => q(atl),
+      q(0919) => q(atm),
+      q(0920) => q(atn),
+      q(0921) => q(atp),
+      q(0922) => q(atq),
+      q(0923) => q(atr),
+      q(0924) => q(ats),
+      q(0925) => q(att),
+      q(0926) => q(atu),
+      q(0927) => q(atv),
+      q(0928) => q(atw),
+      q(0929) => q(atx),
+      q(0930) => q(aty),
+      q(0931) => q(atz),
+      q(0932) => q(aua),
+      q(0933) => q(aub),
+      q(0934) => q(auc),
+      q(0935) => q(aud),
+      q(0936) => q(aug),
+      q(0937) => q(auh),
+      q(0938) => q(aui),
+      q(0939) => q(auj),
+      q(0940) => q(auk),
+      q(0941) => q(aul),
+      q(0942) => q(aum),
+      q(0943) => q(aun),
+      q(0944) => q(auo),
+      q(0945) => q(aup),
+      q(0946) => q(auq),
+      q(0947) => q(aur),
+      q(0948) => q(aut),
+      q(0949) => q(auu),
+      q(0950) => q(auw),
+      q(0951) => q(aux),
+      q(0952) => q(auy),
+      q(0953) => q(auz),
+      q(0954) => q(avb),
+      q(0955) => q(avd),
+      q(0956) => q(avi),
+      q(0957) => q(avk),
+      q(0958) => q(avl),
+      q(0959) => q(avm),
+      q(0960) => q(avn),
+      q(0961) => q(avo),
+      q(0962) => q(avs),
+      q(0963) => q(avt),
+      q(0964) => q(avu),
+      q(0965) => q(avv),
+      q(0966) => q(awb),
+      q(0967) => q(awc),
+      q(0968) => q(awe),
+      q(0969) => q(awg),
+      q(0970) => q(awh),
+      q(0971) => q(awi),
+      q(0972) => q(awk),
+      q(0973) => q(awm),
+      q(0974) => q(awn),
+      q(0975) => q(awo),
+      q(0976) => q(awr),
+      q(0977) => q(aws),
+      q(0978) => q(awt),
+      q(0979) => q(awu),
+      q(0980) => q(awv),
+      q(0981) => q(aww),
+      q(0982) => q(awx),
+      q(0983) => q(awy),
+      q(0984) => q(axb),
+      q(0985) => q(axe),
+      q(0986) => q(axg),
+      q(0987) => q(axk),
+      q(0988) => q(axl),
+      q(0989) => q(axm),
+      q(0990) => q(axx),
+      q(0991) => q(aya),
+      q(0992) => q(ayb),
+      q(0993) => q(ayc),
+      q(0994) => q(ayd),
+      q(0995) => q(aye),
+      q(0996) => q(ayg),
+      q(0997) => q(ayh),
+      q(0998) => q(ayi),
+      q(0999) => q(ayk),
+      q(1000) => q(ayl),
+      q(1001) => q(ayn),
+      q(1002) => q(ayo),
+      q(1003) => q(ayp),
+      q(1004) => q(ayq),
+      q(1005) => q(ayr),
+      q(1006) => q(ays),
+      q(1007) => q(ayt),
+      q(1008) => q(ayu),
+      q(1009) => q(ayy),
+      q(1010) => q(ayz),
+      q(1011) => q(aza),
+      q(1012) => q(azb),
+      q(1013) => q(azd),
+      q(1014) => q(azg),
+      q(1015) => q(azj),
+      q(1016) => q(azm),
+      q(1017) => q(azn),
+      q(1018) => q(azo),
+      q(1019) => q(azt),
+      q(1020) => q(azz),
+      q(1021) => q(baa),
+      q(1022) => q(bab),
+      q(1023) => q(bac),
+      q(1024) => q(bae),
+      q(1025) => q(baf),
+      q(1026) => q(bag),
+      q(1027) => q(bah),
+      q(1028) => q(baj),
+      q(1029) => q(bao),
+      q(1030) => q(bap),
+      q(1031) => q(bar),
+      q(1032) => q(bau),
+      q(1033) => q(bav),
+      q(1034) => q(baw),
+      q(1035) => q(bax),
+      q(1036) => q(bay),
+      q(1037) => q(bba),
+      q(1038) => q(bbb),
+      q(1039) => q(bbc),
+      q(1040) => q(bbd),
+      q(1041) => q(bbe),
+      q(1042) => q(bbf),
+      q(1043) => q(bbg),
+      q(1044) => q(bbh),
+      q(1045) => q(bbi),
+      q(1046) => q(bbj),
+      q(1047) => q(bbk),
+      q(1048) => q(bbl),
+      q(1049) => q(bbm),
+      q(1050) => q(bbn),
+      q(1051) => q(bbo),
+      q(1052) => q(bbp),
+      q(1053) => q(bbq),
+      q(1054) => q(bbr),
+      q(1055) => q(bbs),
+      q(1056) => q(bbt),
+      q(1057) => q(bbu),
+      q(1058) => q(bbv),
+      q(1059) => q(bbw),
+      q(1060) => q(bbx),
+      q(1061) => q(bby),
+      q(1062) => q(bbz),
+      q(1063) => q(bca),
+      q(1064) => q(bcb),
+      q(1065) => q(bcc),
+      q(1066) => q(bcd),
+      q(1067) => q(bce),
+      q(1068) => q(bcf),
+      q(1069) => q(bcg),
+      q(1070) => q(bch),
+      q(1071) => q(bci),
+      q(1072) => q(bcj),
+      q(1073) => q(bck),
+      q(1074) => q(bcl),
+      q(1075) => q(bcm),
+      q(1076) => q(bcn),
+      q(1077) => q(bco),
+      q(1078) => q(bcp),
+      q(1079) => q(bcq),
+      q(1080) => q(bcr),
+      q(1081) => q(bcs),
+      q(1082) => q(bct),
+      q(1083) => q(bcu),
+      q(1084) => q(bcv),
+      q(1085) => q(bcw),
+      q(1086) => q(bcy),
+      q(1087) => q(bcz),
+      q(1088) => q(bda),
+      q(1089) => q(bdb),
+      q(1090) => q(bdc),
+      q(1091) => q(bdd),
+      q(1092) => q(bde),
+      q(1093) => q(bdf),
+      q(1094) => q(bdg),
+      q(1095) => q(bdh),
+      q(1096) => q(bdi),
+      q(1097) => q(bdj),
+      q(1098) => q(bdk),
+      q(1099) => q(bdl),
+      q(1100) => q(bdm),
+      q(1101) => q(bdn),
+      q(1102) => q(bdo),
+      q(1103) => q(bdp),
+      q(1104) => q(bdq),
+      q(1105) => q(bdr),
+      q(1106) => q(bds),
+      q(1107) => q(bdt),
+      q(1108) => q(bdu),
+      q(1109) => q(bdv),
+      q(1110) => q(bdw),
+      q(1111) => q(bdx),
+      q(1112) => q(bdy),
+      q(1113) => q(bdz),
+      q(1114) => q(bea),
+      q(1115) => q(beb),
+      q(1116) => q(bec),
+      q(1117) => q(bed),
+      q(1118) => q(bee),
+      q(1119) => q(bef),
+      q(1120) => q(beg),
+      q(1121) => q(beh),
+      q(1122) => q(bei),
+      q(1123) => q(bek),
+      q(1124) => q(beo),
+      q(1125) => q(bep),
+      q(1126) => q(beq),
+      q(1127) => q(bes),
+      q(1128) => q(bet),
+      q(1129) => q(beu),
+      q(1130) => q(bev),
+      q(1131) => q(bew),
+      q(1132) => q(bex),
+      q(1133) => q(bey),
+      q(1134) => q(bez),
+      q(1135) => q(mot),
+      q(1136) => q(bfb),
+      q(1137) => q(bfc),
+      q(1138) => q(bfd),
+      q(1139) => q(bfe),
+      q(1140) => q(bff),
+      q(1141) => q(bfg),
+      q(1142) => q(bfh),
+      q(1143) => q(bfi),
+      q(1144) => q(bfj),
+      q(1145) => q(bfk),
+      q(1146) => q(bfl),
+      q(1147) => q(bfm),
+      q(1148) => q(bfn),
+      q(1149) => q(bfo),
+      q(1150) => q(bfp),
+      q(1151) => q(bfq),
+      q(1152) => q(bfr),
+      q(1153) => q(bfs),
+      q(1154) => q(bft),
+      q(1155) => q(bfu),
+      q(1156) => q(bfw),
+      q(1157) => q(bfx),
+      q(1158) => q(bfy),
+      q(1159) => q(bfz),
+      q(1160) => q(bga),
+      q(1161) => q(bgb),
+      q(1162) => q(bgc),
+      q(1163) => q(bgd),
+      q(1164) => q(bge),
+      q(1165) => q(bgf),
+      q(1166) => q(bgg),
+      q(1167) => q(bgi),
+      q(1168) => q(bgj),
+      q(1169) => q(bgk),
+      q(1170) => q(bgl),
+      q(1171) => q(bgm),
+      q(1172) => q(bgn),
+      q(1173) => q(bgo),
+      q(1174) => q(bgp),
+      q(1175) => q(bgq),
+      q(1176) => q(bgr),
+      q(1177) => q(bgs),
+      q(1178) => q(bgt),
+      q(1179) => q(bgu),
+      q(1180) => q(bgv),
+      q(1181) => q(bgw),
+      q(1182) => q(bgx),
+      q(1183) => q(bgy),
+      q(1184) => q(bgz),
+      q(1185) => q(bha),
+      q(1186) => q(bhb),
+      q(1187) => q(bhc),
+      q(1188) => q(bhd),
+      q(1189) => q(bhe),
+      q(1190) => q(bhf),
+      q(1191) => q(bhg),
+      q(1192) => q(bhh),
+      q(1193) => q(bhi),
+      q(1194) => q(bhj),
+      q(1195) => q(bhl),
+      q(1196) => q(bhm),
+      q(1197) => q(bhn),
+      q(1198) => q(bhp),
+      q(1199) => q(bhq),
+      q(1200) => q(bhr),
+      q(1201) => q(bhs),
+      q(1202) => q(bht),
+      q(1203) => q(bhu),
+      q(1204) => q(bhv),
+      q(1205) => q(bhw),
+      q(1206) => q(bhx),
+      q(1207) => q(bhy),
+      q(1208) => q(bhz),
+      q(1209) => q(bia),
+      q(1210) => q(bib),
+      q(1211) => q(bic),
+      q(1212) => q(bid),
+      q(1213) => q(bie),
+      q(1214) => q(bif),
+      q(1215) => q(big),
+      q(1216) => q(bij),
+      q(1217) => q(bil),
+      q(1218) => q(bim),
+      q(1219) => q(bio),
+      q(1220) => q(bip),
+      q(1221) => q(biq),
+      q(1222) => q(bir),
+      q(1223) => q(bit),
+      q(1224) => q(biu),
+      q(1225) => q(biv),
+      q(1226) => q(biw),
+      q(1227) => q(bix),
+      q(1228) => q(biy),
+      q(1229) => q(biz),
+      q(1230) => q(bja),
+      q(1231) => q(bjb),
+      q(1232) => q(bjc),
+      q(1233) => q(bje),
+      q(1234) => q(bjf),
+      q(1235) => q(bjg),
+      q(1236) => q(bjh),
+      q(1237) => q(bji),
+      q(1238) => q(bjj),
+      q(1239) => q(bjk),
+      q(1240) => q(bjl),
+      q(1241) => q(bjm),
+      q(1242) => q(bjn),
+      q(1243) => q(bjo),
+      q(1244) => q(bjp),
+      q(1245) => q(bjr),
+      q(1246) => q(bjs),
+      q(1247) => q(bjt),
+      q(1248) => q(bju),
+      q(1249) => q(bjv),
+      q(1250) => q(bjw),
+      q(1251) => q(bjx),
+      q(1252) => q(bjy),
+      q(1253) => q(bjz),
+      q(1254) => q(bka),
+      q(1255) => q(bkc),
+      q(1256) => q(bkd),
+      q(1257) => q(bkf),
+      q(1258) => q(bkg),
+      q(1259) => q(bkh),
+      q(1260) => q(bki),
+      q(1261) => q(bkj),
+      q(1262) => q(bkk),
+      q(1263) => q(bkl),
+      q(1264) => q(bkm),
+      q(1265) => q(bkn),
+      q(1266) => q(bko),
+      q(1267) => q(bkp),
+      q(1268) => q(bkq),
+      q(1269) => q(bkr),
+      q(1270) => q(bks),
+      q(1271) => q(bkt),
+      q(1272) => q(bku),
+      q(1273) => q(bkv),
+      q(1274) => q(bkw),
+      q(1275) => q(bkx),
+      q(1276) => q(bky),
+      q(1277) => q(bkz),
+      q(1278) => q(blb),
+      q(1279) => q(blc),
+      q(1280) => q(bld),
+      q(1281) => q(ble),
+      q(1282) => q(blf),
+      q(1283) => q(blg),
+      q(1284) => q(blh),
+      q(1285) => q(bli),
+      q(1286) => q(blj),
+      q(1287) => q(blk),
+      q(1288) => q(bll),
+      q(1289) => q(blm),
+      q(1290) => q(bln),
+      q(1291) => q(blo),
+      q(1292) => q(blp),
+      q(1293) => q(blq),
+      q(1294) => q(blr),
+      q(1295) => q(bls),
+      q(1296) => q(blt),
+      q(1297) => q(blv),
+      q(1298) => q(blw),
+      q(1299) => q(blx),
+      q(1300) => q(bly),
+      q(1301) => q(blz),
+      q(1302) => q(bma),
+      q(1303) => q(bmb),
+      q(1304) => q(bmc),
+      q(1305) => q(bmd),
+      q(1306) => q(bme),
+      q(1307) => q(bmf),
+      q(1308) => q(bmg),
+      q(1309) => q(bmh),
+      q(1310) => q(bmi),
+      q(1311) => q(bmj),
+      q(1312) => q(bmk),
+      q(1313) => q(bml),
+      q(1314) => q(bmm),
+      q(1315) => q(bmn),
+      q(1316) => q(bmo),
+      q(1317) => q(bmp),
+      q(1318) => q(bmq),
+      q(1319) => q(bmr),
+      q(1320) => q(bms),
+      q(1321) => q(bmt),
+      q(1322) => q(bmu),
+      q(1323) => q(bmv),
+      q(1324) => q(bmw),
+      q(1325) => q(bmx),
+      q(1326) => q(bmz),
+      q(1327) => q(bna),
+      q(1328) => q(bnb),
+      q(1329) => q(bnc),
+      q(1330) => q(bnd),
+      q(1331) => q(bne),
+      q(1332) => q(bnf),
+      q(1333) => q(bng),
+      q(1334) => q(bni),
+      q(1335) => q(bnj),
+      q(1336) => q(bnk),
+      q(1337) => q(bnl),
+      q(1338) => q(bnm),
+      q(1339) => q(bnn),
+      q(1340) => q(bno),
+      q(1341) => q(bnp),
+      q(1342) => q(bnq),
+      q(1343) => q(bnr),
+      q(1344) => q(bns),
+      q(1345) => q(bnu),
+      q(1346) => q(bnv),
+      q(1347) => q(bnw),
+      q(1348) => q(bnx),
+      q(1349) => q(bny),
+      q(1350) => q(bnz),
+      q(1351) => q(boa),
+      q(1352) => q(bob),
+      q(1353) => q(boe),
+      q(1354) => q(bof),
+      q(1355) => q(bog),
+      q(1356) => q(boh),
+      q(1357) => q(boi),
+      q(1358) => q(boj),
+      q(1359) => q(bok),
+      q(1360) => q(bol),
+      q(1361) => q(bom),
+      q(1362) => q(bon),
+      q(1363) => q(boo),
+      q(1364) => q(bop),
+      q(1365) => q(boq),
+      q(1366) => q(bor),
+      q(1367) => q(bot),
+      q(1368) => q(bou),
+      q(1369) => q(bov),
+      q(1370) => q(bow),
+      q(1371) => q(box),
+      q(1372) => q(boy),
+      q(1373) => q(boz),
+      q(1374) => q(bpa),
+      q(1375) => q(bpb),
+      q(1376) => q(bpd),
+      q(1377) => q(bpg),
+      q(1378) => q(bph),
+      q(1379) => q(bpi),
+      q(1380) => q(bpj),
+      q(1381) => q(bpk),
+      q(1382) => q(bpl),
+      q(1383) => q(bpm),
+      q(1384) => q(bpn),
+      q(1385) => q(bpo),
+      q(1386) => q(bpp),
+      q(1387) => q(bpq),
+      q(1388) => q(bpr),
+      q(1389) => q(bps),
+      q(1390) => q(bpt),
+      q(1391) => q(bpu),
+      q(1392) => q(bpv),
+      q(1393) => q(bpw),
+      q(1394) => q(bpx),
+      q(1395) => q(bpy),
+      q(1396) => q(bpz),
+      q(1397) => q(bqa),
+      q(1398) => q(bqb),
+      q(1399) => q(bqc),
+      q(1400) => q(bqd),
+      q(1401) => q(bqf),
+      q(1402) => q(bqg),
+      q(1403) => q(bqh),
+      q(1404) => q(bqi),
+      q(1405) => q(bqj),
+      q(1406) => q(bqk),
+      q(1407) => q(bql),
+      q(1408) => q(bqm),
+      q(1409) => q(bqn),
+      q(1410) => q(bqo),
+      q(1411) => q(bqp),
+      q(1412) => q(bqq),
+      q(1413) => q(bqr),
+      q(1414) => q(bqs),
+      q(1415) => q(bqt),
+      q(1416) => q(bqu),
+      q(1417) => q(bqv),
+      q(1418) => q(bqw),
+      q(1419) => q(bqx),
+      q(1420) => q(bqy),
+      q(1421) => q(bqz),
+      q(1422) => q(brb),
+      q(1423) => q(brc),
+      q(1424) => q(brd),
+      q(1425) => q(brf),
+      q(1426) => q(brg),
+      q(1427) => q(brh),
+      q(1428) => q(bri),
+      q(1429) => q(brj),
+      q(1430) => q(brk),
+      q(1431) => q(brl),
+      q(1432) => q(brm),
+      q(1433) => q(brn),
+      q(1434) => q(bro),
+      q(1435) => q(brp),
+      q(1436) => q(brq),
+      q(1437) => q(brr),
+      q(1438) => q(brs),
+      q(1439) => q(brt),
+      q(1440) => q(bru),
+      q(1441) => q(brv),
+      q(1442) => q(brw),
+      q(1443) => q(brx),
+      q(1444) => q(bry),
+      q(1445) => q(brz),
+      q(1446) => q(bsa),
+      q(1447) => q(bsb),
+      q(1448) => q(bsc),
+      q(1449) => q(bse),
+      q(1450) => q(bsf),
+      q(1451) => q(bsg),
+      q(1452) => q(bsh),
+      q(1453) => q(bsi),
+      q(1454) => q(bsj),
+      q(1455) => q(bsk),
+      q(1456) => q(bsl),
+      q(1457) => q(bsm),
+      q(1458) => q(bsn),
+      q(1459) => q(bso),
+      q(1460) => q(bsp),
+      q(1461) => q(bsq),
+      q(1462) => q(bsr),
+      q(1463) => q(bss),
+      q(1464) => q(bst),
+      q(1465) => q(bsu),
+      q(1466) => q(bsv),
+      q(1467) => q(bsw),
+      q(1468) => q(bsx),
+      q(1469) => q(bsy),
+      q(1470) => q(bta),
+      q(1471) => q(btc),
+      q(1472) => q(btd),
+      q(1473) => q(bte),
+      q(1474) => q(btf),
+      q(1475) => q(btg),
+      q(1476) => q(bth),
+      q(1477) => q(bti),
+      q(1478) => q(btj),
+      q(1479) => q(btl),
+      q(1480) => q(btm),
+      q(1481) => q(btn),
+      q(1482) => q(bto),
+      q(1483) => q(btp),
+      q(1484) => q(btq),
+      q(1485) => q(btr),
+      q(1486) => q(bts),
+      q(1487) => q(btt),
+      q(1488) => q(btu),
+      q(1489) => q(btv),
+      q(1490) => q(btw),
+      q(1491) => q(btx),
+      q(1492) => q(bty),
+      q(1493) => q(btz),
+      q(1494) => q(bub),
+      q(1495) => q(buc),
+      q(1496) => q(bud),
+      q(1497) => q(bue),
+      q(1498) => q(buf),
+      q(1499) => q(buh),
+      q(1500) => q(bui),
+      q(1501) => q(buj),
+      q(1502) => q(buk),
+      q(1503) => q(bum),
+      q(1504) => q(bun),
+      q(1505) => q(buo),
+      q(1506) => q(bup),
+      q(1507) => q(buq),
+      q(1508) => q(bus),
+      q(1509) => q(but),
+      q(1510) => q(buu),
+      q(1511) => q(buv),
+      q(1512) => q(buw),
+      q(1513) => q(bux),
+      q(1514) => q(buy),
+      q(1515) => q(buz),
+      q(1516) => q(bva),
+      q(1517) => q(bvb),
+      q(1518) => q(bvc),
+      q(1519) => q(bvd),
+      q(1520) => q(bve),
+      q(1521) => q(bvf),
+      q(1522) => q(bvg),
+      q(1523) => q(bvh),
+      q(1524) => q(bvi),
+      q(1525) => q(bvj),
+      q(1526) => q(bvk),
+      q(1527) => q(bvl),
+      q(1528) => q(bvm),
+      q(1529) => q(bvn),
+      q(1530) => q(bvo),
+      q(1531) => q(bvp),
+      q(1532) => q(bvq),
+      q(1533) => q(bvr),
+      q(1534) => q(bvt),
+      q(1535) => q(bvu),
+      q(1536) => q(bvv),
+      q(1537) => q(bvw),
+      q(1538) => q(bvx),
+      q(1539) => q(bvy),
+      q(1540) => q(bvz),
+      q(1541) => q(bwa),
+      q(1542) => q(bwb),
+      q(1543) => q(bwc),
+      q(1544) => q(bwd),
+      q(1545) => q(bwe),
+      q(1546) => q(bwf),
+      q(1547) => q(bwg),
+      q(1548) => q(bwh),
+      q(1549) => q(bwi),
+      q(1550) => q(bwj),
+      q(1551) => q(bwk),
+      q(1552) => q(bwl),
+      q(1553) => q(bwm),
+      q(1554) => q(bwn),
+      q(1555) => q(bwo),
+      q(1556) => q(bwp),
+      q(1557) => q(bwq),
+      q(1558) => q(bwr),
+      q(1559) => q(bws),
+      q(1560) => q(bwt),
+      q(1561) => q(bwu),
+      q(1562) => q(bww),
+      q(1563) => q(bwx),
+      q(1564) => q(bwy),
+      q(1565) => q(bwz),
+      q(1566) => q(bxa),
+      q(1567) => q(bxb),
+      q(1568) => q(bxc),
+      q(1569) => q(bxd),
+      q(1570) => q(bxe),
+      q(1571) => q(bxf),
+      q(1572) => q(bxg),
+      q(1573) => q(bxh),
+      q(1574) => q(bxi),
+      q(1575) => q(bxj),
+      q(1576) => q(bxk),
+      q(1577) => q(bxl),
+      q(1578) => q(bxm),
+      q(1579) => q(bxn),
+      q(1580) => q(bxo),
+      q(1581) => q(bxp),
+      q(1582) => q(bxq),
+      q(1583) => q(bxr),
+      q(1584) => q(bxs),
+      q(1585) => q(bxu),
+      q(1586) => q(bxv),
+      q(1587) => q(bxw),
+      q(1588) => q(bxz),
+      q(1589) => q(bya),
+      q(1590) => q(byb),
+      q(1591) => q(byc),
+      q(1592) => q(byd),
+      q(1593) => q(bye),
+      q(1594) => q(byf),
+      q(1595) => q(byg),
+      q(1596) => q(byh),
+      q(1597) => q(byi),
+      q(1598) => q(byj),
+      q(1599) => q(byk),
+      q(1600) => q(byl),
+      q(1601) => q(bym),
+      q(1602) => q(byo),
+      q(1603) => q(byp),
+      q(1604) => q(byq),
+      q(1605) => q(byr),
+      q(1606) => q(bys),
+      q(1607) => q(byt),
+      q(1608) => q(byv),
+      q(1609) => q(byw),
+      q(1610) => q(byx),
+      q(1611) => q(byz),
+      q(1612) => q(bza),
+      q(1613) => q(bzb),
+      q(1614) => q(bzc),
+      q(1615) => q(bzd),
+      q(1616) => q(bze),
+      q(1617) => q(bzf),
+      q(1618) => q(bzg),
+      q(1619) => q(bzh),
+      q(1620) => q(bzi),
+      q(1621) => q(bzj),
+      q(1622) => q(bzk),
+      q(1623) => q(bzl),
+      q(1624) => q(bzm),
+      q(1625) => q(bzn),
+      q(1626) => q(bzo),
+      q(1627) => q(bzp),
+      q(1628) => q(bzq),
+      q(1629) => q(bzr),
+      q(1630) => q(bzs),
+      q(1631) => q(bzt),
+      q(1632) => q(bzu),
+      q(1633) => q(bzv),
+      q(1634) => q(bzw),
+      q(1635) => q(bzx),
+      q(1636) => q(bzy),
+      q(1637) => q(bzz),
+      q(1638) => q(caa),
+      q(1639) => q(cab),
+      q(1640) => q(cac),
+      q(1641) => q(cae),
+      q(1642) => q(caf),
+      q(1643) => q(cag),
+      q(1644) => q(cah),
+      q(1645) => q(caj),
+      q(1646) => q(cak),
+      q(1647) => q(cal),
+      q(1648) => q(cam),
+      q(1649) => q(can),
+      q(1650) => q(cao),
+      q(1651) => q(cap),
+      q(1652) => q(caq),
+      q(1653) => q(cas),
+      q(1654) => q(cav),
+      q(1655) => q(caw),
+      q(1656) => q(cax),
+      q(1657) => q(cay),
+      q(1658) => q(caz),
+      q(1659) => q(cbb),
+      q(1660) => q(cbc),
+      q(1661) => q(cbd),
+      q(1662) => q(cbe),
+      q(1663) => q(cbg),
+      q(1664) => q(cbh),
+      q(1665) => q(cbi),
+      q(1666) => q(cbj),
+      q(1667) => q(cbk),
+      q(1668) => q(cbl),
+      q(1669) => q(cbn),
+      q(1670) => q(cbo),
+      q(1671) => q(cbq),
+      q(1672) => q(cbr),
+      q(1673) => q(cbs),
+      q(1674) => q(cbt),
+      q(1675) => q(cbu),
+      q(1676) => q(cbv),
+      q(1677) => q(cbw),
+      q(1678) => q(cby),
+      q(1679) => q(cca),
+      q(1680) => q(ccc),
+      q(1681) => q(ccd),
+      q(1682) => q(cce),
+      q(1683) => q(ccg),
+      q(1684) => q(cch),
+      q(1685) => q(ccj),
+      q(1686) => q(ccl),
+      q(1687) => q(ccm),
+      q(1688) => q(cco),
+      q(1689) => q(ccp),
+      q(1690) => q(ccr),
+      q(1691) => q(cda),
+      q(1692) => q(cde),
+      q(1693) => q(cdf),
+      q(1694) => q(cdg),
+      q(1695) => q(cdh),
+      q(1696) => q(cdi),
+      q(1697) => q(cdj),
+      q(1698) => q(cdm),
+      q(1699) => q(cdn),
+      q(1700) => q(cdo),
+      q(1701) => q(cdr),
+      q(1702) => q(cds),
+      q(1703) => q(cdy),
+      q(1704) => q(cdz),
+      q(1705) => q(cea),
+      q(1706) => q(ceg),
+      q(1707) => q(cek),
+      q(1708) => q(cen),
+      q(1709) => q(cet),
+      q(1710) => q(cfa),
+      q(1711) => q(cfd),
+      q(1712) => q(cfg),
+      q(1713) => q(cfm),
+      q(1714) => q(cga),
+      q(1715) => q(cgc),
+      q(1716) => q(cgg),
+      q(1717) => q(cgk),
+      q(1718) => q(chc),
+      q(1719) => q(chd),
+      q(1720) => q(chf),
+      q(1721) => q(chh),
+      q(1722) => q(chj),
+      q(1723) => q(chl),
+      q(1724) => q(chq),
+      q(1725) => q(cht),
+      q(1726) => q(chw),
+      q(1727) => q(chx),
+      q(1728) => q(chz),
+      q(1729) => q(cia),
+      q(1730) => q(cib),
+      q(1731) => q(cic),
+      q(1732) => q(cid),
+      q(1733) => q(cie),
+      q(1734) => q(cih),
+      q(1735) => q(cik),
+      q(1736) => q(cim),
+      q(1737) => q(cin),
+      q(1738) => q(cip),
+      q(1739) => q(cir),
+      q(1740) => q(ciw),
+      q(1741) => q(ciy),
+      q(1742) => q(cja),
+      q(1743) => q(cje),
+      q(1744) => q(cjh),
+      q(1745) => q(cji),
+      q(1746) => q(cjk),
+      q(1747) => q(cjm),
+      q(1748) => q(cjn),
+      q(1749) => q(cjo),
+      q(1750) => q(cjp),
+      q(1751) => q(cjs),
+      q(1752) => q(cjv),
+      q(1753) => q(cjy),
+      q(1754) => q(ckb),
+      q(1755) => q(ckh),
+      q(1756) => q(ckl),
+      q(1757) => q(ckn),
+      q(1758) => q(cko),
+      q(1759) => q(ckq),
+      q(1760) => q(ckr),
+      q(1761) => q(cks),
+      q(1762) => q(ckt),
+      q(1763) => q(cku),
+      q(1764) => q(ckv),
+      q(1765) => q(ckx),
+      q(1766) => q(cky),
+      q(1767) => q(ckz),
+      q(1768) => q(cla),
+      q(1769) => q(clc),
+      q(1770) => q(cld),
+      q(1771) => q(cle),
+      q(1772) => q(clh),
+      q(1773) => q(cli),
+      q(1774) => q(clj),
+      q(1775) => q(clk),
+      q(1776) => q(cll),
+      q(1777) => q(clm),
+      q(1778) => q(clo),
+      q(1779) => q(clt),
+      q(1780) => q(clu),
+      q(1781) => q(clw),
+      q(1782) => q(cly),
+      q(1783) => q(cma),
+      q(1784) => q(cme),
+      q(1785) => q(cmg),
+      q(1786) => q(cmi),
+      q(1787) => q(cml),
+      q(1788) => q(cmm),
+      q(1789) => q(cmn),
+      q(1790) => q(cmo),
+      q(1791) => q(cmr),
+      q(1792) => q(cms),
+      q(1793) => q(cmt),
+      q(1794) => q(cna),
+      q(1795) => q(cnb),
+      q(1796) => q(cnc),
+      q(1797) => q(cng),
+      q(1798) => q(cnh),
+      q(1799) => q(cni),
+      q(1800) => q(cnk),
+      q(1801) => q(cnl),
+      q(1802) => q(cno),
+      q(1803) => q(cns),
+      q(1804) => q(cnt),
+      q(1805) => q(cnu),
+      q(1806) => q(cnw),
+      q(1807) => q(cnx),
+      q(1808) => q(coa),
+      q(1809) => q(cob),
+      q(1810) => q(coc),
+      q(1811) => q(cod),
+      q(1812) => q(coe),
+      q(1813) => q(cof),
+      q(1814) => q(cog),
+      q(1815) => q(coh),
+      q(1816) => q(coj),
+      q(1817) => q(cok),
+      q(1818) => q(col),
+      q(1819) => q(com),
+      q(1820) => q(con),
+      q(1821) => q(coo),
+      q(1822) => q(coq),
+      q(1823) => q(cot),
+      q(1824) => q(cou),
+      q(1825) => q(cov),
+      q(1826) => q(cow),
+      q(1827) => q(cox),
+      q(1828) => q(coy),
+      q(1829) => q(coz),
+      q(1830) => q(cpa),
+      q(1831) => q(cpb),
+      q(1832) => q(cpc),
+      q(1833) => q(cpg),
+      q(1834) => q(cpi),
+      q(1835) => q(cpn),
+      q(1836) => q(cpo),
+      q(1837) => q(cps),
+      q(1838) => q(cpu),
+      q(1839) => q(cpx),
+      q(1840) => q(cpy),
+      q(1841) => q(cqd),
+      q(1842) => q(cqu),
+      q(1843) => q(cra),
+      q(1844) => q(crb),
+      q(1845) => q(crc),
+      q(1846) => q(crd),
+      q(1847) => q(crf),
+      q(1848) => q(crg),
+      q(1849) => q(cri),
+      q(1850) => q(crj),
+      q(1851) => q(crk),
+      q(1852) => q(crl),
+      q(1853) => q(crm),
+      q(1854) => q(crn),
+      q(1855) => q(cro),
+      q(1856) => q(crq),
+      q(1857) => q(crr),
+      q(1858) => q(crs),
+      q(1859) => q(crt),
+      q(1860) => q(crv),
+      q(1861) => q(crw),
+      q(1862) => q(crx),
+      q(1863) => q(cry),
+      q(1864) => q(crz),
+      q(1865) => q(csa),
+      q(1866) => q(csc),
+      q(1867) => q(csd),
+      q(1868) => q(cse),
+      q(1869) => q(csf),
+      q(1870) => q(csg),
+      q(1871) => q(csh),
+      q(1872) => q(csi),
+      q(1873) => q(csj),
+      q(1874) => q(csk),
+      q(1875) => q(csl),
+      q(1876) => q(csm),
+      q(1877) => q(csn),
+      q(1878) => q(cso),
+      q(1879) => q(csq),
+      q(1880) => q(csr),
+      q(1881) => q(css),
+      q(1882) => q(cst),
+      q(1883) => q(csv),
+      q(1884) => q(csw),
+      q(1885) => q(csy),
+      q(1886) => q(csz),
+      q(1887) => q(cta),
+      q(1888) => q(ctc),
+      q(1889) => q(ctd),
+      q(1890) => q(cte),
+      q(1891) => q(ctg),
+      q(1892) => q(cth),
+      q(1893) => q(ctl),
+      q(1894) => q(ctm),
+      q(1895) => q(ctn),
+      q(1896) => q(cto),
+      q(1897) => q(ctp),
+      q(1898) => q(cts),
+      q(1899) => q(ctt),
+      q(1900) => q(ctu),
+      q(1901) => q(ctz),
+      q(1902) => q(cua),
+      q(1903) => q(cub),
+      q(1904) => q(cuc),
+      q(1905) => q(cug),
+      q(1906) => q(cuh),
+      q(1907) => q(cui),
+      q(1908) => q(cuj),
+      q(1909) => q(cuk),
+      q(1910) => q(cul),
+      q(1911) => q(cum),
+      q(1912) => q(cuo),
+      q(1913) => q(cup),
+      q(1914) => q(cuq),
+      q(1915) => q(cur),
+      q(1916) => q(cut),
+      q(1917) => q(cuu),
+      q(1918) => q(cuv),
+      q(1919) => q(cuw),
+      q(1920) => q(cux),
+      q(1921) => q(cvg),
+      q(1922) => q(cvn),
+      q(1923) => q(cwa),
+      q(1924) => q(cwb),
+      q(1925) => q(cwd),
+      q(1926) => q(cwe),
+      q(1927) => q(cwg),
+      q(1928) => q(cwt),
+      q(1929) => q(cya),
+      q(1930) => q(cyb),
+      q(1931) => q(cyo),
+      q(1932) => q(czh),
+      q(1933) => q(czk),
+      q(1934) => q(czn),
+      q(1935) => q(czo),
+      q(1936) => q(czt),
+      q(1937) => q(daa),
+      q(1938) => q(dac),
+      q(1939) => q(dad),
+      q(1940) => q(dae),
+      q(1941) => q(dag),
+      q(1942) => q(dah),
+      q(1943) => q(dai),
+      q(1944) => q(daj),
+      q(1945) => q(dal),
+      q(1946) => q(dam),
+      q(1947) => q(dao),
+      q(1948) => q(daq),
+      q(1949) => q(das),
+      q(1950) => q(dau),
+      q(1951) => q(dav),
+      q(1952) => q(daw),
+      q(1953) => q(dax),
+      q(1954) => q(daz),
+      q(1955) => q(dba),
+      q(1956) => q(dbb),
+      q(1957) => q(dbd),
+      q(1958) => q(dbe),
+      q(1959) => q(dbf),
+      q(1960) => q(dbg),
+      q(1961) => q(dbi),
+      q(1962) => q(dbj),
+      q(1963) => q(dbl),
+      q(1964) => q(dbm),
+      q(1965) => q(dbn),
+      q(1966) => q(dbo),
+      q(1967) => q(dbp),
+      q(1968) => q(dbq),
+      q(1969) => q(dbr),
+      q(1970) => q(dbt),
+      q(1971) => q(dbu),
+      q(1972) => q(dbv),
+      q(1973) => q(dbw),
+      q(1974) => q(dby),
+      q(1975) => q(dcc),
+      q(1976) => q(dcr),
+      q(1977) => q(dda),
+      q(1978) => q(ddd),
+      q(1979) => q(dde),
+      q(1980) => q(ddg),
+      q(1981) => q(ddi),
+      q(1982) => q(ddj),
+      q(1983) => q(ddn),
+      q(1984) => q(ddo),
+      q(1985) => q(ddr),
+      q(1986) => q(dds),
+      q(1987) => q(ddw),
+      q(1988) => q(dec),
+      q(1989) => q(ded),
+      q(1990) => q(dee),
+      q(1991) => q(def),
+      q(1992) => q(deg),
+      q(1993) => q(deh),
+      q(1994) => q(dei),
+      q(1995) => q(dek),
+      q(1996) => q(dem),
+      q(1997) => q(dep),
+      q(1998) => q(deq),
+      q(1999) => q(der),
+      q(2000) => q(des),
+      q(2001) => q(dev),
+      q(2002) => q(dez),
+      q(2003) => q(dga),
+      q(2004) => q(dgb),
+      q(2005) => q(dgc),
+      q(2006) => q(dgd),
+      q(2007) => q(dge),
+      q(2008) => q(dgg),
+      q(2009) => q(dgh),
+      q(2010) => q(dgi),
+      q(2011) => q(dgk),
+      q(2012) => q(dgl),
+      q(2013) => q(dgn),
+      q(2014) => q(dgo),
+      q(2015) => q(dgs),
+      q(2016) => q(dgt),
+      q(2017) => q(dgu),
+      q(2018) => q(dgw),
+      q(2019) => q(dgx),
+      q(2020) => q(dgz),
+      q(2021) => q(dhd),
+      q(2022) => q(dhg),
+      q(2023) => q(dhi),
+      q(2024) => q(dhl),
+      q(2025) => q(dhm),
+      q(2026) => q(dhn),
+      q(2027) => q(dho),
+      q(2028) => q(dhr),
+      q(2029) => q(dhs),
+      q(2030) => q(dhu),
+      q(2031) => q(dhv),
+      q(2032) => q(dhw),
+      q(2033) => q(dhx),
+      q(2034) => q(dia),
+      q(2035) => q(dib),
+      q(2036) => q(dic),
+      q(2037) => q(did),
+      q(2038) => q(dif),
+      q(2039) => q(dig),
+      q(2040) => q(dih),
+      q(2041) => q(dii),
+      q(2042) => q(dij),
+      q(2043) => q(dik),
+      q(2044) => q(dil),
+      q(2045) => q(dim),
+      q(2046) => q(dio),
+      q(2047) => q(dip),
+      q(2048) => q(diq),
+      q(2049) => q(dir),
+      q(2050) => q(dis),
+      q(2051) => q(dit),
+      q(2052) => q(diu),
+      q(2053) => q(diw),
+      q(2054) => q(dix),
+      q(2055) => q(diy),
+      q(2056) => q(diz),
+      q(2057) => q(dja),
+      q(2058) => q(djb),
+      q(2059) => q(djc),
+      q(2060) => q(djd),
+      q(2061) => q(dje),
+      q(2062) => q(djf),
+      q(2063) => q(dji),
+      q(2064) => q(djj),
+      q(2065) => q(djk),
+      q(2066) => q(djm),
+      q(2067) => q(djn),
+      q(2068) => q(djo),
+      q(2069) => q(djr),
+      q(2070) => q(dju),
+      q(2071) => q(djw),
+      q(2072) => q(dka),
+      q(2073) => q(dkk),
+      q(2074) => q(dkr),
+      q(2075) => q(dks),
+      q(2076) => q(dkx),
+      q(2077) => q(dlg),
+      q(2078) => q(dlk),
+      q(2079) => q(dlm),
+      q(2080) => q(dln),
+      q(2081) => q(dma),
+      q(2082) => q(dmb),
+      q(2083) => q(dmc),
+      q(2084) => q(dmd),
+      q(2085) => q(dme),
+      q(2086) => q(dmg),
+      q(2087) => q(dmk),
+      q(2088) => q(dml),
+      q(2089) => q(dmm),
+      q(2090) => q(dmo),
+      q(2091) => q(dmr),
+      q(2092) => q(dms),
+      q(2093) => q(dmu),
+      q(2094) => q(dmv),
+      q(2095) => q(dmw),
+      q(2096) => q(dmx),
+      q(2097) => q(dmy),
+      q(2098) => q(dna),
+      q(2099) => q(dnd),
+      q(2100) => q(dne),
+      q(2101) => q(dng),
+      q(2102) => q(dni),
+      q(2103) => q(dnj),
+      q(2104) => q(dnk),
+      q(2105) => q(dnn),
+      q(2106) => q(dnr),
+      q(2107) => q(dnt),
+      q(2108) => q(dnu),
+      q(2109) => q(dnv),
+      q(2110) => q(dnw),
+      q(2111) => q(dny),
+      q(2112) => q(doa),
+      q(2113) => q(dob),
+      q(2114) => q(doc),
+      q(2115) => q(doe),
+      q(2116) => q(dof),
+      q(2117) => q(doh),
+      q(2118) => q(dok),
+      q(2119) => q(dol),
+      q(2120) => q(don),
+      q(2121) => q(doo),
+      q(2122) => q(dop),
+      q(2123) => q(doq),
+      q(2124) => q(dor),
+      q(2125) => q(dos),
+      q(2126) => q(dot),
+      q(2127) => q(dov),
+      q(2128) => q(dow),
+      q(2129) => q(dox),
+      q(2130) => q(doy),
+      q(2131) => q(doz),
+      q(2132) => q(dpp),
+      q(2133) => q(drb),
+      q(2134) => q(drc),
+      q(2135) => q(drd),
+      q(2136) => q(dre),
+      q(2137) => q(drg),
+      q(2138) => q(dri),
+      q(2139) => q(drl),
+      q(2140) => q(drn),
+      q(2141) => q(dro),
+      q(2142) => q(drq),
+      q(2143) => q(drr),
+      q(2144) => q(drs),
+      q(2145) => q(drt),
+      q(2146) => q(dru),
+      q(2147) => q(dry),
+      q(2148) => q(dse),
+      q(2149) => q(dsh),
+      q(2150) => q(dsi),
+      q(2151) => q(dsl),
+      q(2152) => q(dsn),
+      q(2153) => q(dso),
+      q(2154) => q(dsq),
+      q(2155) => q(dta),
+      q(2156) => q(dtb),
+      q(2157) => q(dtd),
+      q(2158) => q(dth),
+      q(2159) => q(dti),
+      q(2160) => q(dtk),
+      q(2161) => q(dtm),
+      q(2162) => q(dto),
+      q(2163) => q(dtp),
+      q(2164) => q(dtr),
+      q(2165) => q(dts),
+      q(2166) => q(dtt),
+      q(2167) => q(dtu),
+      q(2168) => q(dty),
+      q(2169) => q(dub),
+      q(2170) => q(duc),
+      q(2171) => q(dud),
+      q(2172) => q(due),
+      q(2173) => q(duf),
+      q(2174) => q(dug),
+      q(2175) => q(duh),
+      q(2176) => q(dui),
+      q(2177) => q(duj),
+      q(2178) => q(duk),
+      q(2179) => q(dul),
+      q(2180) => q(dun),
+      q(2181) => q(duo),
+      q(2182) => q(dup),
+      q(2183) => q(duq),
+      q(2184) => q(dur),
+      q(2185) => q(dus),
+      q(2186) => q(duu),
+      q(2187) => q(duv),
+      q(2188) => q(duw),
+      q(2189) => q(dux),
+      q(2190) => q(duy),
+      q(2191) => q(duz),
+      q(2192) => q(dva),
+      q(2193) => q(dwa),
+      q(2194) => q(dwr),
+      q(2195) => q(dws),
+      q(2196) => q(dww),
+      q(2197) => q(dya),
+      q(2198) => q(dyb),
+      q(2199) => q(dyd),
+      q(2200) => q(dyg),
+      q(2201) => q(dyi),
+      q(2202) => q(dym),
+      q(2203) => q(dyn),
+      q(2204) => q(dyo),
+      q(2205) => q(dyy),
+      q(2206) => q(dza),
+      q(2207) => q(dze),
+      q(2208) => q(dzg),
+      q(2209) => q(dzl),
+      q(2210) => q(dzn),
+      q(2211) => q(eaa),
+      q(2212) => q(ebg),
+      q(2213) => q(ebk),
+      q(2214) => q(ebo),
+      q(2215) => q(ebr),
+      q(2216) => q(ebu),
+      q(2217) => q(ecr),
+      q(2218) => q(ecs),
+      q(2219) => q(ecy),
+      q(2220) => q(eee),
+      q(2221) => q(efa),
+      q(2222) => q(efe),
+      q(2223) => q(ega),
+      q(2224) => q(egl),
+      q(2225) => q(ego),
+      q(2226) => q(ehu),
+      q(2227) => q(eip),
+      q(2228) => q(eit),
+      q(2229) => q(eiv),
+      q(2230) => q(eja),
+      q(2231) => q(ekc),
+      q(2232) => q(eke),
+      q(2233) => q(ekg),
+      q(2234) => q(eki),
+      q(2235) => q(ekk),
+      q(2236) => q(ekl),
+      q(2237) => q(ekm),
+      q(2238) => q(eko),
+      q(2239) => q(ekp),
+      q(2240) => q(ekr),
+      q(2241) => q(eky),
+      q(2242) => q(ele),
+      q(2243) => q(elh),
+      q(2244) => q(eli),
+      q(2245) => q(elk),
+      q(2246) => q(elm),
+      q(2247) => q(elo),
+      q(2248) => q(elu),
+      q(2249) => q(ema),
+      q(2250) => q(emb),
+      q(2251) => q(eme),
+      q(2252) => q(emg),
+      q(2253) => q(emi),
+      q(2254) => q(emk),
+      q(2255) => q(emm),
+      q(2256) => q(emn),
+      q(2257) => q(emp),
+      q(2258) => q(ems),
+      q(2259) => q(emu),
+      q(2260) => q(emw),
+      q(2261) => q(emx),
+      q(2262) => q(emy),
+      q(2263) => q(ena),
+      q(2264) => q(enb),
+      q(2265) => q(enc),
+      q(2266) => q(end),
+      q(2267) => q(enf),
+      q(2268) => q(enh),
+      q(2269) => q(enl),
+      q(2270) => q(enn),
+      q(2271) => q(eno),
+      q(2272) => q(enq),
+      q(2273) => q(enr),
+      q(2274) => q(enu),
+      q(2275) => q(env),
+      q(2276) => q(enw),
+      q(2277) => q(enx),
+      q(2278) => q(eot),
+      q(2279) => q(epi),
+      q(2280) => q(era),
+      q(2281) => q(erg),
+      q(2282) => q(erh),
+      q(2283) => q(eri),
+      q(2284) => q(erk),
+      q(2285) => q(ero),
+      q(2286) => q(err),
+      q(2287) => q(ers),
+      q(2288) => q(ert),
+      q(2289) => q(erw),
+      q(2290) => q(ese),
+      q(2291) => q(esh),
+      q(2292) => q(esi),
+      q(2293) => q(esk),
+      q(2294) => q(esl),
+      q(2295) => q(esm),
+      q(2296) => q(esn),
+      q(2297) => q(eso),
+      q(2298) => q(esq),
+      q(2299) => q(ess),
+      q(2300) => q(esu),
+      q(2301) => q(esy),
+      q(2302) => q(etb),
+      q(2303) => q(etc),
+      q(2304) => q(eth),
+      q(2305) => q(etn),
+      q(2306) => q(eto),
+      q(2307) => q(etr),
+      q(2308) => q(ets),
+      q(2309) => q(ett),
+      q(2310) => q(etu),
+      q(2311) => q(etx),
+      q(2312) => q(etz),
+      q(2313) => q(eve),
+      q(2314) => q(evh),
+      q(2315) => q(evn),
+      q(2316) => q(ext),
+      q(2317) => q(eya),
+      q(2318) => q(eyo),
+      q(2319) => q(eza),
+      q(2320) => q(eze),
+      q(2321) => q(faa),
+      q(2322) => q(fab),
+      q(2323) => q(fad),
+      q(2324) => q(faf),
+      q(2325) => q(fag),
+      q(2326) => q(fah),
+      q(2327) => q(fai),
+      q(2328) => q(faj),
+      q(2329) => q(fak),
+      q(2330) => q(fal),
+      q(2331) => q(fam),
+      q(2332) => q(fap),
+      q(2333) => q(far),
+      q(2334) => q(fau),
+      q(2335) => q(fax),
+      q(2336) => q(fay),
+      q(2337) => q(faz),
+      q(2338) => q(fbl),
+      q(2339) => q(fcs),
+      q(2340) => q(fer),
+      q(2341) => q(ffi),
+      q(2342) => q(ffm),
+      q(2343) => q(fgr),
+      q(2344) => q(fia),
+      q(2345) => q(fie),
+      q(2346) => q(fip),
+      q(2347) => q(fir),
+      q(2348) => q(fit),
+      q(2349) => q(fiw),
+      q(2350) => q(fkk),
+      q(2351) => q(fkv),
+      q(2352) => q(fla),
+      q(2353) => q(flh),
+      q(2354) => q(fli),
+      q(2355) => q(fll),
+      q(2356) => q(fln),
+      q(2357) => q(flr),
+      q(2358) => q(fly),
+      q(2359) => q(fmp),
+      q(2360) => q(fmu),
+      q(2361) => q(fng),
+      q(2362) => q(fni),
+      q(2363) => q(fod),
+      q(2364) => q(foi),
+      q(2365) => q(fom),
+      q(2366) => q(for),
+      q(2367) => q(fos),
+      q(2368) => q(fpe),
+      q(2369) => q(fqs),
+      q(2370) => q(frc),
+      q(2371) => q(frd),
+      q(2372) => q(frk),
+      q(2373) => q(frp),
+      q(2374) => q(frq),
+      q(2375) => q(frt),
+      q(2376) => q(fse),
+      q(2377) => q(fsl),
+      q(2378) => q(fss),
+      q(2379) => q(fub),
+      q(2380) => q(fuc),
+      q(2381) => q(fud),
+      q(2382) => q(fue),
+      q(2383) => q(fuf),
+      q(2384) => q(fuh),
+      q(2385) => q(fui),
+      q(2386) => q(fuj),
+      q(2387) => q(fum),
+      q(2388) => q(fun),
+      q(2389) => q(fuq),
+      q(2390) => q(fut),
+      q(2391) => q(fuu),
+      q(2392) => q(fuv),
+      q(2393) => q(fuy),
+      q(2394) => q(fvr),
+      q(2395) => q(fwa),
+      q(2396) => q(fwe),
+      q(2397) => q(gab),
+      q(2398) => q(gac),
+      q(2399) => q(gad),
+      q(2400) => q(gae),
+      q(2401) => q(gaf),
+      q(2402) => q(gag),
+      q(2403) => q(gah),
+      q(2404) => q(gai),
+      q(2405) => q(gaj),
+      q(2406) => q(gak),
+      q(2407) => q(gal),
+      q(2408) => q(gam),
+      q(2409) => q(gan),
+      q(2410) => q(gao),
+      q(2411) => q(gap),
+      q(2412) => q(gaq),
+      q(2413) => q(gar),
+      q(2414) => q(gas),
+      q(2415) => q(gat),
+      q(2416) => q(gau),
+      q(2417) => q(gaw),
+      q(2418) => q(gax),
+      q(2419) => q(gaz),
+      q(2420) => q(gbb),
+      q(2421) => q(gbd),
+      q(2422) => q(gbe),
+      q(2423) => q(gbf),
+      q(2424) => q(gbg),
+      q(2425) => q(gbh),
+      q(2426) => q(gbi),
+      q(2427) => q(gbj),
+      q(2428) => q(gbk),
+      q(2429) => q(gbl),
+      q(2430) => q(gbm),
+      q(2431) => q(gbn),
+      q(2432) => q(gbo),
+      q(2433) => q(gbp),
+      q(2434) => q(gbq),
+      q(2435) => q(gbr),
+      q(2436) => q(gbs),
+      q(2437) => q(gbu),
+      q(2438) => q(gbv),
+      q(2439) => q(gbw),
+      q(2440) => q(gbx),
+      q(2441) => q(gby),
+      q(2442) => q(gbz),
+      q(2443) => q(gcc),
+      q(2444) => q(gcd),
+      q(2445) => q(gce),
+      q(2446) => q(gcf),
+      q(2447) => q(gcl),
+      q(2448) => q(gcn),
+      q(2449) => q(gcr),
+      q(2450) => q(gct),
+      q(2451) => q(gda),
+      q(2452) => q(gdb),
+      q(2453) => q(gdc),
+      q(2454) => q(gdd),
+      q(2455) => q(gde),
+      q(2456) => q(gdf),
+      q(2457) => q(gdg),
+      q(2458) => q(gdh),
+      q(2459) => q(gdi),
+      q(2460) => q(gdj),
+      q(2461) => q(gdk),
+      q(2462) => q(gdl),
+      q(2463) => q(gdm),
+      q(2464) => q(gdn),
+      q(2465) => q(gdo),
+      q(2466) => q(gdq),
+      q(2467) => q(gdr),
+      q(2468) => q(gds),
+      q(2469) => q(gdt),
+      q(2470) => q(gdu),
+      q(2471) => q(gdx),
+      q(2472) => q(gea),
+      q(2473) => q(geb),
+      q(2474) => q(gec),
+      q(2475) => q(ged),
+      q(2476) => q(geg),
+      q(2477) => q(geh),
+      q(2478) => q(gei),
+      q(2479) => q(gej),
+      q(2480) => q(gek),
+      q(2481) => q(gel),
+      q(2482) => q(geq),
+      q(2483) => q(ges),
+      q(2484) => q(gev),
+      q(2485) => q(gew),
+      q(2486) => q(gex),
+      q(2487) => q(gey),
+      q(2488) => q(gfk),
+      q(2489) => q(gft),
+      q(2490) => q(gga),
+      q(2491) => q(ggb),
+      q(2492) => q(ggd),
+      q(2493) => q(gge),
+      q(2494) => q(ggg),
+      q(2495) => q(ggk),
+      q(2496) => q(ggl),
+      q(2497) => q(ggn),
+      q(2498) => q(ggo),
+      q(2499) => q(ggt),
+      q(2500) => q(ggu),
+      q(2501) => q(ggw),
+      q(2502) => q(gha),
+      q(2503) => q(ghc),
+      q(2504) => q(ghe),
+      q(2505) => q(ghh),
+      q(2506) => q(ghk),
+      q(2507) => q(ghl),
+      q(2508) => q(ghn),
+      q(2509) => q(gho),
+      q(2510) => q(ghr),
+      q(2511) => q(ghs),
+      q(2512) => q(ght),
+      q(2513) => q(gia),
+      q(2514) => q(gib),
+      q(2515) => q(gic),
+      q(2516) => q(gid),
+      q(2517) => q(gig),
+      q(2518) => q(gih),
+      q(2519) => q(gim),
+      q(2520) => q(gin),
+      q(2521) => q(gip),
+      q(2522) => q(giq),
+      q(2523) => q(gir),
+      q(2524) => q(gis),
+      q(2525) => q(git),
+      q(2526) => q(giu),
+      q(2527) => q(giw),
+      q(2528) => q(gix),
+      q(2529) => q(giy),
+      q(2530) => q(giz),
+      q(2531) => q(gji),
+      q(2532) => q(gjk),
+      q(2533) => q(gjm),
+      q(2534) => q(gjn),
+      q(2535) => q(gju),
+      q(2536) => q(gka),
+      q(2537) => q(gke),
+      q(2538) => q(gkn),
+      q(2539) => q(gko),
+      q(2540) => q(gkp),
+      q(2541) => q(gku),
+      q(2542) => q(glc),
+      q(2543) => q(gld),
+      q(2544) => q(glh),
+      q(2545) => q(gli),
+      q(2546) => q(glj),
+      q(2547) => q(glk),
+      q(2548) => q(gll),
+      q(2549) => q(glo),
+      q(2550) => q(glr),
+      q(2551) => q(glu),
+      q(2552) => q(glw),
+      q(2553) => q(gly),
+      q(2554) => q(gma),
+      q(2555) => q(gmb),
+      q(2556) => q(gmd),
+      q(2557) => q(gmg),
+      q(2558) => q(gml),
+      q(2559) => q(gmm),
+      q(2560) => q(gmn),
+      q(2561) => q(gmu),
+      q(2562) => q(gmv),
+      q(2563) => q(gmx),
+      q(2564) => q(gmy),
+      q(2565) => q(gmz),
+      q(2566) => q(gna),
+      q(2567) => q(gnb),
+      q(2568) => q(gnc),
+      q(2569) => q(gnd),
+      q(2570) => q(gne),
+      q(2571) => q(gng),
+      q(2572) => q(gnh),
+      q(2573) => q(gni),
+      q(2574) => q(gnk),
+      q(2575) => q(gnl),
+      q(2576) => q(gnm),
+      q(2577) => q(gnn),
+      q(2578) => q(gno),
+      q(2579) => q(gnq),
+      q(2580) => q(gnr),
+      q(2581) => q(gnt),
+      q(2582) => q(gnu),
+      q(2583) => q(gnw),
+      q(2584) => q(gnz),
+      q(2585) => q(goa),
+      q(2586) => q(gob),
+      q(2587) => q(goc),
+      q(2588) => q(god),
+      q(2589) => q(goe),
+      q(2590) => q(gof),
+      q(2591) => q(gog),
+      q(2592) => q(goi),
+      q(2593) => q(goj),
+      q(2594) => q(gok),
+      q(2595) => q(gol),
+      q(2596) => q(gom),
+      q(2597) => q(goo),
+      q(2598) => q(gop),
+      q(2599) => q(goq),
+      q(2600) => q(gos),
+      q(2601) => q(gou),
+      q(2602) => q(gow),
+      q(2603) => q(gox),
+      q(2604) => q(goy),
+      q(2605) => q(goz),
+      q(2606) => q(gpa),
+      q(2607) => q(gpe),
+      q(2608) => q(gpn),
+      q(2609) => q(gqa),
+      q(2610) => q(gqi),
+      q(2611) => q(gqn),
+      q(2612) => q(gqr),
+      q(2613) => q(gqu),
+      q(2614) => q(gra),
+      q(2615) => q(grd),
+      q(2616) => q(grg),
+      q(2617) => q(grh),
+      q(2618) => q(gri),
+      q(2619) => q(grj),
+      q(2620) => q(grm),
+      q(2621) => q(gro),
+      q(2622) => q(grq),
+      q(2623) => q(grr),
+      q(2624) => q(grs),
+      q(2625) => q(grt),
+      q(2626) => q(gru),
+      q(2627) => q(grv),
+      q(2628) => q(grw),
+      q(2629) => q(grx),
+      q(2630) => q(gry),
+      q(2631) => q(grz),
+      q(2632) => q(gse),
+      q(2633) => q(gsg),
+      q(2634) => q(gsl),
+      q(2635) => q(gsm),
+      q(2636) => q(gsn),
+      q(2637) => q(gso),
+      q(2638) => q(gsp),
+      q(2639) => q(gss),
+      q(2640) => q(gta),
+      q(2641) => q(gtu),
+      q(2642) => q(gua),
+      q(2643) => q(gub),
+      q(2644) => q(guc),
+      q(2645) => q(gud),
+      q(2646) => q(gue),
+      q(2647) => q(guf),
+      q(2648) => q(gug),
+      q(2649) => q(guh),
+      q(2650) => q(gui),
+      q(2651) => q(guk),
+      q(2652) => q(gul),
+      q(2653) => q(gum),
+      q(2654) => q(gun),
+      q(2655) => q(guo),
+      q(2656) => q(gup),
+      q(2657) => q(yif),
+      q(2658) => q(gur),
+      q(2659) => q(gus),
+      q(2660) => q(gut),
+      q(2661) => q(guu),
+      q(2662) => q(guv),
+      q(2663) => q(guw),
+      q(2664) => q(gux),
+      q(2665) => q(guz),
+      q(2666) => q(gva),
+      q(2667) => q(gvc),
+      q(2668) => q(gve),
+      q(2669) => q(gvf),
+      q(2670) => q(gvj),
+      q(2671) => q(gvl),
+      q(2672) => q(gvm),
+      q(2673) => q(gvn),
+      q(2674) => q(gvo),
+      q(2675) => q(gvp),
+      q(2676) => q(gvr),
+      q(2677) => q(gvs),
+      q(2678) => q(gvy),
+      q(2679) => q(gwa),
+      q(2680) => q(gwb),
+      q(2681) => q(gwc),
+      q(2682) => q(gwd),
+      q(2683) => q(gwe),
+      q(2684) => q(gwf),
+      q(2685) => q(gwg),
+      q(2686) => q(gwj),
+      q(2687) => q(gwm),
+      q(2688) => q(gwn),
+      q(2689) => q(gwr),
+      q(2690) => q(gwt),
+      q(2691) => q(gwu),
+      q(2692) => q(gww),
+      q(2693) => q(gwx),
+      q(2694) => q(gxx),
+      q(2695) => q(gya),
+      q(2696) => q(gyb),
+      q(2697) => q(gyd),
+      q(2698) => q(gye),
+      q(2699) => q(gyf),
+      q(2700) => q(gyg),
+      q(2701) => q(gyi),
+      q(2702) => q(gyl),
+      q(2703) => q(gym),
+      q(2704) => q(gyn),
+      q(2705) => q(gyr),
+      q(2706) => q(gyy),
+      q(2707) => q(gza),
+      q(2708) => q(gzi),
+      q(2709) => q(gzn),
+      q(2710) => q(haa),
+      q(2711) => q(hab),
+      q(2712) => q(hac),
+      q(2713) => q(had),
+      q(2714) => q(hae),
+      q(2715) => q(haf),
+      q(2716) => q(hag),
+      q(2717) => q(hah),
+      q(2718) => q(haj),
+      q(2719) => q(hak),
+      q(2720) => q(hal),
+      q(2721) => q(ham),
+      q(2722) => q(han),
+      q(2723) => q(hao),
+      q(2724) => q(hap),
+      q(2725) => q(haq),
+      q(2726) => q(har),
+      q(2727) => q(has),
+      q(2728) => q(hav),
+      q(2729) => q(hax),
+      q(2730) => q(hay),
+      q(2731) => q(haz),
+      q(2732) => q(hba),
+      q(2733) => q(hbb),
+      q(2734) => q(hbn),
+      q(2735) => q(hbo),
+      q(2736) => q(hbu),
+      q(2737) => q(hca),
+      q(2738) => q(hch),
+      q(2739) => q(hdn),
+      q(2740) => q(hds),
+      q(2741) => q(hdy),
+      q(2742) => q(hea),
+      q(2743) => q(hed),
+      q(2744) => q(heg),
+      q(2745) => q(heh),
+      q(2746) => q(hei),
+      q(2747) => q(hem),
+      q(2748) => q(hgm),
+      q(2749) => q(hgw),
+      q(2750) => q(hhi),
+      q(2751) => q(hhr),
+      q(2752) => q(hhy),
+      q(2753) => q(hia),
+      q(2754) => q(hib),
+      q(2755) => q(hid),
+      q(2756) => q(hif),
+      q(2757) => q(hig),
+      q(2758) => q(hih),
+      q(2759) => q(hii),
+      q(2760) => q(hij),
+      q(2761) => q(hik),
+      q(2762) => q(hio),
+      q(2763) => q(hir),
+      q(2764) => q(hiw),
+      q(2765) => q(hix),
+      q(2766) => q(hji),
+      q(2767) => q(hka),
+      q(2768) => q(hke),
+      q(2769) => q(hkk),
+      q(2770) => q(hks),
+      q(2771) => q(hla),
+      q(2772) => q(hlb),
+      q(2773) => q(hld),
+      q(2774) => q(hle),
+      q(2775) => q(hlt),
+      q(2776) => q(hlu),
+      q(2777) => q(hma),
+      q(2778) => q(hmb),
+      q(2779) => q(hmc),
+      q(2780) => q(hmd),
+      q(2781) => q(hme),
+      q(2782) => q(hmf),
+      q(2783) => q(hmg),
+      q(2784) => q(hmh),
+      q(2785) => q(hmi),
+      q(2786) => q(hmj),
+      q(2787) => q(hmk),
+      q(2788) => q(hml),
+      q(2789) => q(hmm),
+      q(2790) => q(hmp),
+      q(2791) => q(hmq),
+      q(2792) => q(hmr),
+      q(2793) => q(hms),
+      q(2794) => q(hmt),
+      q(2795) => q(hmu),
+      q(2796) => q(hmv),
+      q(2797) => q(hmw),
+      q(2798) => q(hmy),
+      q(2799) => q(hmz),
+      q(2800) => q(hna),
+      q(2801) => q(hnd),
+      q(2802) => q(hne),
+      q(2803) => q(hnh),
+      q(2804) => q(hni),
+      q(2805) => q(hnj),
+      q(2806) => q(hnn),
+      q(2807) => q(hno),
+      q(2808) => q(hns),
+      q(2809) => q(hnu),
+      q(2810) => q(hoa),
+      q(2811) => q(hob),
+      q(2812) => q(hoc),
+      q(2813) => q(hod),
+      q(2814) => q(hoe),
+      q(2815) => q(hoh),
+      q(2816) => q(hoi),
+      q(2817) => q(hoj),
+      q(2818) => q(hol),
+      q(2819) => q(hom),
+      q(2820) => q(hoo),
+      q(2821) => q(hop),
+      q(2822) => q(hor),
+      q(2823) => q(hos),
+      q(2824) => q(hot),
+      q(2825) => q(hov),
+      q(2826) => q(how),
+      q(2827) => q(hoy),
+      q(2828) => q(hoz),
+      q(2829) => q(hpo),
+      q(2830) => q(hps),
+      q(2831) => q(hra),
+      q(2832) => q(hrc),
+      q(2833) => q(hre),
+      q(2834) => q(hrk),
+      q(2835) => q(hrm),
+      q(2836) => q(hro),
+      q(2837) => q(hrp),
+      q(2838) => q(hrt),
+      q(2839) => q(hru),
+      q(2840) => q(hrw),
+      q(2841) => q(hrx),
+      q(2842) => q(hrz),
+      q(2843) => q(hsh),
+      q(2844) => q(hsl),
+      q(2845) => q(hsn),
+      q(2846) => q(hss),
+      q(2847) => q(hti),
+      q(2848) => q(hto),
+      q(2849) => q(hts),
+      q(2850) => q(htu),
+      q(2851) => q(htx),
+      q(2852) => q(hub),
+      q(2853) => q(huc),
+      q(2854) => q(hud),
+      q(2855) => q(hue),
+      q(2856) => q(huf),
+      q(2857) => q(hug),
+      q(2858) => q(huh),
+      q(2859) => q(hui),
+      q(2860) => q(huj),
+      q(2861) => q(huk),
+      q(2862) => q(hul),
+      q(2863) => q(hum),
+      q(2864) => q(huo),
+      q(2865) => q(huq),
+      q(2866) => q(hur),
+      q(2867) => q(hus),
+      q(2868) => q(hut),
+      q(2869) => q(huu),
+      q(2870) => q(huv),
+      q(2871) => q(huw),
+      q(2872) => q(hux),
+      q(2873) => q(huy),
+      q(2874) => q(huz),
+      q(2875) => q(hvc),
+      q(2876) => q(hve),
+      q(2877) => q(hvk),
+      q(2878) => q(hvn),
+      q(2879) => q(hvv),
+      q(2880) => q(hwa),
+      q(2881) => q(hwc),
+      q(2882) => q(hwo),
+      q(2883) => q(hya),
+      q(2884) => q(iai),
+      q(2885) => q(ian),
+      q(2886) => q(iap),
+      q(2887) => q(iar),
+      q(2888) => q(ibb),
+      q(2889) => q(ibd),
+      q(2890) => q(ibe),
+      q(2891) => q(ibg),
+      q(2892) => q(ibl),
+      q(2893) => q(ibm),
+      q(2894) => q(ibn),
+      q(2895) => q(ibr),
+      q(2896) => q(ibu),
+      q(2897) => q(iby),
+      q(2898) => q(ica),
+      q(2899) => q(ich),
+      q(2900) => q(icl),
+      q(2901) => q(icr),
+      q(2902) => q(ida),
+      q(2903) => q(idb),
+      q(2904) => q(idc),
+      q(2905) => q(idd),
+      q(2906) => q(ide),
+      q(2907) => q(idi),
+      q(2908) => q(idr),
+      q(2909) => q(ids),
+      q(2910) => q(idt),
+      q(2911) => q(idu),
+      q(2912) => q(ifa),
+      q(2913) => q(ifb),
+      q(2914) => q(ife),
+      q(2915) => q(iff),
+      q(2916) => q(ifk),
+      q(2917) => q(ifm),
+      q(2918) => q(ifu),
+      q(2919) => q(ify),
+      q(2920) => q(igb),
+      q(2921) => q(ige),
+      q(2922) => q(igg),
+      q(2923) => q(igl),
+      q(2924) => q(igm),
+      q(2925) => q(ign),
+      q(2926) => q(igo),
+      q(2927) => q(igs),
+      q(2928) => q(igw),
+      q(2929) => q(ihb),
+      q(2930) => q(ihi),
+      q(2931) => q(ihp),
+      q(2932) => q(ihw),
+      q(2933) => q(iin),
+      q(2934) => q(ijc),
+      q(2935) => q(ije),
+      q(2936) => q(ijj),
+      q(2937) => q(ijn),
+      q(2938) => q(ijs),
+      q(2939) => q(ike),
+      q(2940) => q(iki),
+      q(2941) => q(ikk),
+      q(2942) => q(ikl),
+      q(2943) => q(iko),
+      q(2944) => q(ikp),
+      q(2945) => q(ikr),
+      q(2946) => q(iks),
+      q(2947) => q(ikt),
+      q(2948) => q(ikv),
+      q(2949) => q(ikw),
+      q(2950) => q(ikx),
+      q(2951) => q(ikz),
+      q(2952) => q(ila),
+      q(2953) => q(ilb),
+      q(2954) => q(ilg),
+      q(2955) => q(ili),
+      q(2956) => q(ilk),
+      q(2957) => q(ill),
+      q(2958) => q(ils),
+      q(2959) => q(ilu),
+      q(2960) => q(ilv),
+      q(2961) => q(ima),
+      q(2962) => q(imi),
+      q(2963) => q(iml),
+      q(2964) => q(imn),
+      q(2965) => q(imo),
+      q(2966) => q(imr),
+      q(2967) => q(ims),
+      q(2968) => q(imy),
+      q(2969) => q(inb),
+      q(2970) => q(ing),
+      q(2971) => q(inj),
+      q(2972) => q(inl),
+      q(2973) => q(inm),
+      q(2974) => q(inn),
+      q(2975) => q(ino),
+      q(2976) => q(inp),
+      q(2977) => q(ins),
+      q(2978) => q(int),
+      q(2979) => q(inz),
+      q(2980) => q(ior),
+      q(2981) => q(iou),
+      q(2982) => q(iow),
+      q(2983) => q(ipi),
+      q(2984) => q(ipo),
+      q(2985) => q(iqu),
+      q(2986) => q(iqw),
+      q(2987) => q(ire),
+      q(2988) => q(irh),
+      q(2989) => q(iri),
+      q(2990) => q(irk),
+      q(2991) => q(irn),
+      q(2992) => q(irr),
+      q(2993) => q(iru),
+      q(2994) => q(irx),
+      q(2995) => q(iry),
+      q(2996) => q(isa),
+      q(2997) => q(isc),
+      q(2998) => q(isd),
+      q(2999) => q(ise),
+      q(3000) => q(isg),
+      q(3001) => q(ish),
+      q(3002) => q(isi),
+      q(3003) => q(isk),
+      q(3004) => q(ism),
+      q(3005) => q(isn),
+      q(3006) => q(iso),
+      q(3007) => q(isr),
+      q(3008) => q(ist),
+      q(3009) => q(isu),
+      q(3010) => q(itb),
+      q(3011) => q(ite),
+      q(3012) => q(iti),
+      q(3013) => q(itk),
+      q(3014) => q(itl),
+      q(3015) => q(itm),
+      q(3016) => q(ito),
+      q(3017) => q(itr),
+      q(3018) => q(its),
+      q(3019) => q(itt),
+      q(3020) => q(itv),
+      q(3021) => q(itw),
+      q(3022) => q(itx),
+      q(3023) => q(ity),
+      q(3024) => q(itz),
+      q(3025) => q(ium),
+      q(3026) => q(ivb),
+      q(3027) => q(ivv),
+      q(3028) => q(iwk),
+      q(3029) => q(iwm),
+      q(3030) => q(iwo),
+      q(3031) => q(iws),
+      q(3032) => q(ixc),
+      q(3033) => q(ixl),
+      q(3034) => q(iya),
+      q(3035) => q(iyo),
+      q(3036) => q(iyx),
+      q(3037) => q(izh),
+      q(3038) => q(izr),
+      q(3039) => q(izz),
+      q(3040) => q(jaa),
+      q(3041) => q(jab),
+      q(3042) => q(jac),
+      q(3043) => q(jad),
+      q(3044) => q(jae),
+      q(3045) => q(jaf),
+      q(3046) => q(jah),
+      q(3047) => q(jaj),
+      q(3048) => q(jak),
+      q(3049) => q(jal),
+      q(3050) => q(jam),
+      q(3051) => q(jan),
+      q(3052) => q(jao),
+      q(3053) => q(jaq),
+      q(3054) => q(jas),
+      q(3055) => q(jat),
+      q(3056) => q(jau),
+      q(3057) => q(jax),
+      q(3058) => q(jay),
+      q(3059) => q(jaz),
+      q(3060) => q(jbe),
+      q(3061) => q(jbi),
+      q(3062) => q(jbj),
+      q(3063) => q(jbk),
+      q(3064) => q(jbn),
+      q(3065) => q(jbr),
+      q(3066) => q(jbt),
+      q(3067) => q(jbu),
+      q(3068) => q(jbw),
+      q(3069) => q(jcs),
+      q(3070) => q(jct),
+      q(3071) => q(jda),
+      q(3072) => q(jdg),
+      q(3073) => q(jdt),
+      q(3074) => q(jeb),
+      q(3075) => q(jee),
+      q(3076) => q(jeg),
+      q(3077) => q(jeh),
+      q(3078) => q(jei),
+      q(3079) => q(jek),
+      q(3080) => q(jel),
+      q(3081) => q(jen),
+      q(3082) => q(jer),
+      q(3083) => q(jet),
+      q(3084) => q(jeu),
+      q(3085) => q(jgb),
+      q(3086) => q(jge),
+      q(3087) => q(jgk),
+      q(3088) => q(jgo),
+      q(3089) => q(jhi),
+      q(3090) => q(jhs),
+      q(3091) => q(jia),
+      q(3092) => q(jib),
+      q(3093) => q(jic),
+      q(3094) => q(jid),
+      q(3095) => q(jie),
+      q(3096) => q(jig),
+      q(3097) => q(jih),
+      q(3098) => q(jii),
+      q(3099) => q(jil),
+      q(3100) => q(jim),
+      q(3101) => q(jio),
+      q(3102) => q(jiq),
+      q(3103) => q(jit),
+      q(3104) => q(jiu),
+      q(3105) => q(jiv),
+      q(3106) => q(jiy),
+      q(3107) => q(jje),
+      q(3108) => q(jjr),
+      q(3109) => q(jkm),
+      q(3110) => q(jko),
+      q(3111) => q(jkp),
+      q(3112) => q(jkr),
+      q(3113) => q(jku),
+      q(3114) => q(jle),
+      q(3115) => q(jls),
+      q(3116) => q(jma),
+      q(3117) => q(jmb),
+      q(3118) => q(jmc),
+      q(3119) => q(jmd),
+      q(3120) => q(jmi),
+      q(3121) => q(jml),
+      q(3122) => q(jmn),
+      q(3123) => q(jmr),
+      q(3124) => q(jms),
+      q(3125) => q(jmw),
+      q(3126) => q(jmx),
+      q(3127) => q(jna),
+      q(3128) => q(jnd),
+      q(3129) => q(jng),
+      q(3130) => q(jni),
+      q(3131) => q(jnj),
+      q(3132) => q(jnl),
+      q(3133) => q(jns),
+      q(3134) => q(job),
+      q(3135) => q(jod),
+      q(3136) => q(jor),
+      q(3137) => q(jos),
+      q(3138) => q(jow),
+      q(3139) => q(jpa),
+      q(3140) => q(jqr),
+      q(3141) => q(jra),
+      q(3142) => q(jrr),
+      q(3143) => q(jrt),
+      q(3144) => q(jru),
+      q(3145) => q(jsl),
+      q(3146) => q(jua),
+      q(3147) => q(jub),
+      q(3148) => q(juc),
+      q(3149) => q(jud),
+      q(3150) => q(juh),
+      q(3151) => q(jui),
+      q(3152) => q(juk),
+      q(3153) => q(jul),
+      q(3154) => q(jum),
+      q(3155) => q(jun),
+      q(3156) => q(juo),
+      q(3157) => q(jup),
+      q(3158) => q(jur),
+      q(3159) => q(jus),
+      q(3160) => q(jut),
+      q(3161) => q(juu),
+      q(3162) => q(juw),
+      q(3163) => q(juy),
+      q(3164) => q(jvd),
+      q(3165) => q(jvn),
+      q(3166) => q(jwi),
+      q(3167) => q(jya),
+      q(3168) => q(jye),
+      q(3169) => q(jyy),
+      q(3170) => q(kad),
+      q(3171) => q(kae),
+      q(3172) => q(kaf),
+      q(3173) => q(kag),
+      q(3174) => q(kah),
+      q(3175) => q(kai),
+      q(3176) => q(kaj),
+      q(3177) => q(kak),
+      q(3178) => q(kao),
+      q(3179) => q(kap),
+      q(3180) => q(kaq),
+      q(3181) => q(kav),
+      q(3182) => q(kax),
+      q(3183) => q(kay),
+      q(3184) => q(kba),
+      q(3185) => q(kbb),
+      q(3186) => q(kbc),
+      q(3187) => q(kbe),
+      q(3188) => q(kbg),
+      q(3189) => q(kbh),
+      q(3190) => q(kbi),
+      q(3191) => q(kbj),
+      q(3192) => q(kbk),
+      q(3193) => q(kbl),
+      q(3194) => q(kbm),
+      q(3195) => q(kbn),
+      q(3196) => q(kbo),
+      q(3197) => q(kbp),
+      q(3198) => q(kbq),
+      q(3199) => q(kbr),
+      q(3200) => q(kbs),
+      q(3201) => q(kbt),
+      q(3202) => q(kbu),
+      q(3203) => q(kbv),
+      q(3204) => q(kbw),
+      q(3205) => q(kbx),
+      q(3206) => q(kby),
+      q(3207) => q(kbz),
+      q(3208) => q(kca),
+      q(3209) => q(kcb),
+      q(3210) => q(kcc),
+      q(3211) => q(kcd),
+      q(3212) => q(kce),
+      q(3213) => q(kcf),
+      q(3214) => q(kcg),
+      q(3215) => q(kch),
+      q(3216) => q(kci),
+      q(3217) => q(kcj),
+      q(3218) => q(kck),
+      q(3219) => q(kcl),
+      q(3220) => q(kcm),
+      q(3221) => q(kcn),
+      q(3222) => q(kco),
+      q(3223) => q(kcp),
+      q(3224) => q(kcq),
+      q(3225) => q(kcr),
+      q(3226) => q(kcs),
+      q(3227) => q(kct),
+      q(3228) => q(kcu),
+      q(3229) => q(kcv),
+      q(3230) => q(kcw),
+      q(3231) => q(kcx),
+      q(3232) => q(kcy),
+      q(3233) => q(kcz),
+      q(3234) => q(kda),
+      q(3235) => q(kdc),
+      q(3236) => q(kdd),
+      q(3237) => q(kde),
+      q(3238) => q(kdf),
+      q(3239) => q(kdg),
+      q(3240) => q(kdh),
+      q(3241) => q(kdi),
+      q(3242) => q(kdj),
+      q(3243) => q(kdk),
+      q(3244) => q(kdl),
+      q(3245) => q(kdm),
+      q(3246) => q(kdn),
+      q(3247) => q(kdp),
+      q(3248) => q(kdq),
+      q(3249) => q(kdr),
+      q(3250) => q(kdt),
+      q(3251) => q(kdu),
+      q(3252) => q(kdw),
+      q(3253) => q(kdx),
+      q(3254) => q(kdy),
+      q(3255) => q(kdz),
+      q(3256) => q(kea),
+      q(3257) => q(keb),
+      q(3258) => q(kec),
+      q(3259) => q(ked),
+      q(3260) => q(kee),
+      q(3261) => q(kef),
+      q(3262) => q(keg),
+      q(3263) => q(keh),
+      q(3264) => q(kei),
+      q(3265) => q(kej),
+      q(3266) => q(kek),
+      q(3267) => q(kel),
+      q(3268) => q(kem),
+      q(3269) => q(ken),
+      q(3270) => q(keo),
+      q(3271) => q(kep),
+      q(3272) => q(keq),
+      q(3273) => q(ker),
+      q(3274) => q(kes),
+      q(3275) => q(ket),
+      q(3276) => q(keu),
+      q(3277) => q(kev),
+      q(3278) => q(kew),
+      q(3279) => q(kex),
+      q(3280) => q(key),
+      q(3281) => q(kez),
+      q(3282) => q(kfa),
+      q(3283) => q(kfb),
+      q(3284) => q(kfc),
+      q(3285) => q(kfd),
+      q(3286) => q(kfe),
+      q(3287) => q(kff),
+      q(3288) => q(kfg),
+      q(3289) => q(kfh),
+      q(3290) => q(kfi),
+      q(3291) => q(kfj),
+      q(3292) => q(kfk),
+      q(3293) => q(kfl),
+      q(3294) => q(kfm),
+      q(3295) => q(kfn),
+      q(3296) => q(kfo),
+      q(3297) => q(kfp),
+      q(3298) => q(kfq),
+      q(3299) => q(kfr),
+      q(3300) => q(kfs),
+      q(3301) => q(kft),
+      q(3302) => q(kfu),
+      q(3303) => q(kfv),
+      q(3304) => q(kfw),
+      q(3305) => q(kfx),
+      q(3306) => q(kfy),
+      q(3307) => q(kfz),
+      q(3308) => q(kga),
+      q(3309) => q(kgb),
+      q(3310) => q(kgc),
+      q(3311) => q(kgd),
+      q(3312) => q(kge),
+      q(3313) => q(kgf),
+      q(3314) => q(kgg),
+      q(3315) => q(kgi),
+      q(3316) => q(kgj),
+      q(3317) => q(kgk),
+      q(3318) => q(kgl),
+      q(3319) => q(kuq),
+      q(3320) => q(kgn),
+      q(3321) => q(kgo),
+      q(3322) => q(kgp),
+      q(3323) => q(kgq),
+      q(3324) => q(kgr),
+      q(3325) => q(kgs),
+      q(3326) => q(kgt),
+      q(3327) => q(kgu),
+      q(3328) => q(kgv),
+      q(3329) => q(kgw),
+      q(3330) => q(kgx),
+      q(3331) => q(kgy),
+      q(3332) => q(khb),
+      q(3333) => q(khc),
+      q(3334) => q(khd),
+      q(3335) => q(khe),
+      q(3336) => q(khf),
+      q(3337) => q(khg),
+      q(3338) => q(khh),
+      q(3339) => q(khj),
+      q(3340) => q(khk),
+      q(3341) => q(khl),
+      q(3342) => q(khn),
+      q(3343) => q(khp),
+      q(3344) => q(khq),
+      q(3345) => q(khr),
+      q(3346) => q(khs),
+      q(3347) => q(kht),
+      q(3348) => q(khu),
+      q(3349) => q(khv),
+      q(3350) => q(khw),
+      q(3351) => q(khx),
+      q(3352) => q(khy),
+      q(3353) => q(khz),
+      q(3354) => q(kia),
+      q(3355) => q(kib),
+      q(3356) => q(kic),
+      q(3357) => q(kid),
+      q(3358) => q(kie),
+      q(3359) => q(kif),
+      q(3360) => q(kig),
+      q(3361) => q(kih),
+      q(3362) => q(kii),
+      q(3363) => q(kij),
+      q(3364) => q(kil),
+      q(3365) => q(kim),
+      q(3366) => q(kio),
+      q(3367) => q(kip),
+      q(3368) => q(kiq),
+      q(3369) => q(kis),
+      q(3370) => q(kit),
+      q(3371) => q(kiu),
+      q(3372) => q(kiv),
+      q(3373) => q(kiw),
+      q(3374) => q(kix),
+      q(3375) => q(kiy),
+      q(3376) => q(kiz),
+      q(3377) => q(kja),
+      q(3378) => q(kjb),
+      q(3379) => q(kjc),
+      q(3380) => q(kjd),
+      q(3381) => q(kje),
+      q(3382) => q(kjf),
+      q(3383) => q(kjg),
+      q(3384) => q(kjh),
+      q(3385) => q(kji),
+      q(3386) => q(kjj),
+      q(3387) => q(kjk),
+      q(3388) => q(kjl),
+      q(3389) => q(kjm),
+      q(3390) => q(kjn),
+      q(3391) => q(kjo),
+      q(3392) => q(kjp),
+      q(3393) => q(kjq),
+      q(3394) => q(kjr),
+      q(3395) => q(kjs),
+      q(3396) => q(kjt),
+      q(3397) => q(kju),
+      q(3398) => q(kjv),
+      q(3399) => q(kjx),
+      q(3400) => q(kjy),
+      q(3401) => q(kjz),
+      q(3402) => q(kka),
+      q(3403) => q(kkb),
+      q(3404) => q(kkc),
+      q(3405) => q(kkd),
+      q(3406) => q(kke),
+      q(3407) => q(kkf),
+      q(3408) => q(kkg),
+      q(3409) => q(kkh),
+      q(3410) => q(kki),
+      q(3411) => q(kkj),
+      q(3412) => q(kkk),
+      q(3413) => q(kkl),
+      q(3414) => q(kkm),
+      q(3415) => q(kkn),
+      q(3416) => q(kko),
+      q(3417) => q(kkp),
+      q(3418) => q(kkq),
+      q(3419) => q(kkr),
+      q(3420) => q(kks),
+      q(3421) => q(kkt),
+      q(3422) => q(kku),
+      q(3423) => q(kkv),
+      q(3424) => q(kkw),
+      q(3425) => q(kkx),
+      q(3426) => q(kky),
+      q(3427) => q(kkz),
+      q(3428) => q(kla),
+      q(3429) => q(klb),
+      q(3430) => q(klc),
+      q(3431) => q(kld),
+      q(3432) => q(kle),
+      q(3433) => q(klf),
+      q(3434) => q(klg),
+      q(3435) => q(klh),
+      q(3436) => q(kli),
+      q(3437) => q(klj),
+      q(3438) => q(klk),
+      q(3439) => q(kll),
+      q(3440) => q(klm),
+      q(3441) => q(kln),
+      q(3442) => q(klo),
+      q(3443) => q(klp),
+      q(3444) => q(klq),
+      q(3445) => q(klr),
+      q(3446) => q(kls),
+      q(3447) => q(klt),
+      q(3448) => q(klu),
+      q(3449) => q(klv),
+      q(3450) => q(klw),
+      q(3451) => q(klx),
+      q(3452) => q(kly),
+      q(3453) => q(klz),
+      q(3454) => q(kma),
+      q(3455) => q(kmc),
+      q(3456) => q(kmd),
+      q(3457) => q(kme),
+      q(3458) => q(kmf),
+      q(3459) => q(kmg),
+      q(3460) => q(kmh),
+      q(3461) => q(kmi),
+      q(3462) => q(kmj),
+      q(3463) => q(kmk),
+      q(3464) => q(kml),
+      q(3465) => q(kmm),
+      q(3466) => q(kmn),
+      q(3467) => q(kmo),
+      q(3468) => q(kmp),
+      q(3469) => q(kmq),
+      q(3470) => q(kmr),
+      q(3471) => q(kms),
+      q(3472) => q(kmt),
+      q(3473) => q(kmu),
+      q(3474) => q(kmv),
+      q(3475) => q(kmw),
+      q(3476) => q(kmx),
+      q(3477) => q(kmy),
+      q(3478) => q(kmz),
+      q(3479) => q(kna),
+      q(3480) => q(knb),
+      q(3481) => q(knc),
+      q(3482) => q(knd),
+      q(3483) => q(kne),
+      q(3484) => q(knf),
+      q(3485) => q(kng),
+      q(3486) => q(kni),
+      q(3487) => q(knj),
+      q(3488) => q(knk),
+      q(3489) => q(knl),
+      q(3490) => q(knm),
+      q(3491) => q(knn),
+      q(3492) => q(kno),
+      q(3493) => q(knp),
+      q(3494) => q(knq),
+      q(3495) => q(knr),
+      q(3496) => q(kns),
+      q(3497) => q(knt),
+      q(3498) => q(knu),
+      q(3499) => q(knv),
+      q(3500) => q(knw),
+      q(3501) => q(knx),
+      q(3502) => q(kny),
+      q(3503) => q(knz),
+      q(3504) => q(koa),
+      q(3505) => q(koc),
+      q(3506) => q(kod),
+      q(3507) => q(koe),
+      q(3508) => q(kof),
+      q(3509) => q(kog),
+      q(3510) => q(koh),
+      q(3511) => q(koi),
+      q(3512) => q(kol),
+      q(3513) => q(koo),
+      q(3514) => q(kop),
+      q(3515) => q(koq),
+      q(3516) => q(kot),
+      q(3517) => q(kou),
+      q(3518) => q(kov),
+      q(3519) => q(kow),
+      q(3520) => q(kox),
+      q(3521) => q(koy),
+      q(3522) => q(koz),
+      q(3523) => q(kpa),
+      q(3524) => q(kpb),
+      q(3525) => q(kpc),
+      q(3526) => q(kpd),
+      q(3527) => q(kpf),
+      q(3528) => q(kpg),
+      q(3529) => q(kph),
+      q(3530) => q(kpi),
+      q(3531) => q(kpj),
+      q(3532) => q(kpk),
+      q(3533) => q(kpl),
+      q(3534) => q(kpm),
+      q(3535) => q(kpn),
+      q(3536) => q(kpo),
+      q(3537) => q(kpq),
+      q(3538) => q(kpr),
+      q(3539) => q(kps),
+      q(3540) => q(kpt),
+      q(3541) => q(kpu),
+      q(3542) => q(kpv),
+      q(3543) => q(kpw),
+      q(3544) => q(kpx),
+      q(3545) => q(kpy),
+      q(3546) => q(kpz),
+      q(3547) => q(kqa),
+      q(3548) => q(kqb),
+      q(3549) => q(kqc),
+      q(3550) => q(kqd),
+      q(3551) => q(kqe),
+      q(3552) => q(kqf),
+      q(3553) => q(kqg),
+      q(3554) => q(kqh),
+      q(3555) => q(kqi),
+      q(3556) => q(kqj),
+      q(3557) => q(kqk),
+      q(3558) => q(kql),
+      q(3559) => q(kqm),
+      q(3560) => q(kqn),
+      q(3561) => q(kqo),
+      q(3562) => q(kqp),
+      q(3563) => q(kqq),
+      q(3564) => q(kqr),
+      q(3565) => q(kqs),
+      q(3566) => q(kqt),
+      q(3567) => q(kqu),
+      q(3568) => q(kqv),
+      q(3569) => q(kqw),
+      q(3570) => q(kqx),
+      q(3571) => q(kqy),
+      q(3572) => q(kqz),
+      q(3573) => q(kra),
+      q(3574) => q(krb),
+      q(3575) => q(krd),
+      q(3576) => q(kre),
+      q(3577) => q(krf),
+      q(3578) => q(krh),
+      q(3579) => q(kri),
+      q(3580) => q(krj),
+      q(3581) => q(krk),
+      q(3582) => q(krm),
+      q(3583) => q(krn),
+      q(3584) => q(krp),
+      q(3585) => q(krr),
+      q(3586) => q(krs),
+      q(3587) => q(krt),
+      q(3588) => q(krv),
+      q(3589) => q(krw),
+      q(3590) => q(krx),
+      q(3591) => q(kry),
+      q(3592) => q(krz),
+      q(3593) => q(ksa),
+      q(3594) => q(ksb),
+      q(3595) => q(ksc),
+      q(3596) => q(ksd),
+      q(3597) => q(kse),
+      q(3598) => q(ksf),
+      q(3599) => q(ksg),
+      q(3600) => q(ksh),
+      q(3601) => q(ksi),
+      q(3602) => q(ksj),
+      q(3603) => q(ksk),
+      q(3604) => q(ksl),
+      q(3605) => q(ksm),
+      q(3606) => q(ksn),
+      q(3607) => q(kso),
+      q(3608) => q(ksp),
+      q(3609) => q(ksq),
+      q(3610) => q(ksr),
+      q(3611) => q(kss),
+      q(3612) => q(kst),
+      q(3613) => q(ksu),
+      q(3614) => q(ksv),
+      q(3615) => q(ksw),
+      q(3616) => q(ksx),
+      q(3617) => q(ksy),
+      q(3618) => q(ksz),
+      q(3619) => q(kta),
+      q(3620) => q(ktb),
+      q(3621) => q(ktc),
+      q(3622) => q(ktd),
+      q(3623) => q(kte),
+      q(3624) => q(ktf),
+      q(3625) => q(ktg),
+      q(3626) => q(kth),
+      q(3627) => q(kti),
+      q(3628) => q(ktj),
+      q(3629) => q(ktk),
+      q(3630) => q(ktl),
+      q(3631) => q(ktm),
+      q(3632) => q(ktn),
+      q(3633) => q(kto),
+      q(3634) => q(ktp),
+      q(3635) => q(ktq),
+      q(3636) => q(ktr),
+      q(3637) => q(kts),
+      q(3638) => q(ktt),
+      q(3639) => q(ktu),
+      q(3640) => q(ktv),
+      q(3641) => q(ktw),
+      q(3642) => q(ktx),
+      q(3643) => q(kty),
+      q(3644) => q(ktz),
+      q(3645) => q(kub),
+      q(3646) => q(kuc),
+      q(3647) => q(kud),
+      q(3648) => q(kue),
+      q(3649) => q(kuf),
+      q(3650) => q(kug),
+      q(3651) => q(kuh),
+      q(3652) => q(kui),
+      q(3653) => q(kuj),
+      q(3654) => q(kuk),
+      q(3655) => q(kul),
+      q(3656) => q(kun),
+      q(3657) => q(kuo),
+      q(3658) => q(kup),
+      q(3659) => q(kus),
+      q(3660) => q(kuu),
+      q(3661) => q(kuv),
+      q(3662) => q(kuw),
+      q(3663) => q(kux),
+      q(3664) => q(kuy),
+      q(3665) => q(kuz),
+      q(3666) => q(kva),
+      q(3667) => q(kvb),
+      q(3668) => q(kvc),
+      q(3669) => q(kvd),
+      q(3670) => q(kve),
+      q(3671) => q(kvf),
+      q(3672) => q(kvg),
+      q(3673) => q(kvh),
+      q(3674) => q(kvi),
+      q(3675) => q(kvj),
+      q(3676) => q(kvk),
+      q(3677) => q(kvl),
+      q(3678) => q(kvm),
+      q(3679) => q(kvn),
+      q(3680) => q(kvo),
+      q(3681) => q(kvp),
+      q(3682) => q(kvq),
+      q(3683) => q(kvr),
+      q(3684) => q(kvs),
+      q(3685) => q(kvt),
+      q(3686) => q(kvu),
+      q(3687) => q(kvv),
+      q(3688) => q(kvw),
+      q(3689) => q(kvx),
+      q(3690) => q(kvy),
+      q(3691) => q(kvz),
+      q(3692) => q(kwa),
+      q(3693) => q(kwb),
+      q(3694) => q(kwc),
+      q(3695) => q(kwd),
+      q(3696) => q(kwe),
+      q(3697) => q(kwf),
+      q(3698) => q(kwg),
+      q(3699) => q(kwh),
+      q(3700) => q(kwi),
+      q(3701) => q(kwj),
+      q(3702) => q(kwk),
+      q(3703) => q(kwl),
+      q(3704) => q(kwm),
+      q(3705) => q(kwn),
+      q(3706) => q(kwo),
+      q(3707) => q(kwp),
+      q(3708) => q(kwr),
+      q(3709) => q(kws),
+      q(3710) => q(kwt),
+      q(3711) => q(kwu),
+      q(3712) => q(kwv),
+      q(3713) => q(kww),
+      q(3714) => q(kwx),
+      q(3715) => q(kwy),
+      q(3716) => q(kwz),
+      q(3717) => q(kxa),
+      q(3718) => q(kxb),
+      q(3719) => q(kxc),
+      q(3720) => q(kxd),
+      q(3721) => q(kxf),
+      q(3722) => q(kxh),
+      q(3723) => q(kxi),
+      q(3724) => q(kxj),
+      q(3725) => q(kxk),
+      q(3726) => q(kxl),
+      q(3727) => q(kxm),
+      q(3728) => q(kxn),
+      q(3729) => q(kxo),
+      q(3730) => q(kxp),
+      q(3731) => q(kxq),
+      q(3732) => q(kxr),
+      q(3733) => q(kxs),
+      q(3734) => q(kxt),
+      q(3735) => q(kxu),
+      q(3736) => q(kxv),
+      q(3737) => q(kxw),
+      q(3738) => q(kxx),
+      q(3739) => q(kxy),
+      q(3740) => q(kxz),
+      q(3741) => q(kya),
+      q(3742) => q(kyb),
+      q(3743) => q(kyc),
+      q(3744) => q(kyd),
+      q(3745) => q(kye),
+      q(3746) => q(kyf),
+      q(3747) => q(kyg),
+      q(3748) => q(kyh),
+      q(3749) => q(kyi),
+      q(3750) => q(kyj),
+      q(3751) => q(kyk),
+      q(3752) => q(kyl),
+      q(3753) => q(kym),
+      q(3754) => q(kyn),
+      q(3755) => q(kyo),
+      q(3756) => q(kyp),
+      q(3757) => q(kyq),
+      q(3758) => q(kyr),
+      q(3759) => q(kys),
+      q(3760) => q(kyt),
+      q(3761) => q(kyu),
+      q(3762) => q(kyv),
+      q(3763) => q(kyw),
+      q(3764) => q(kyx),
+      q(3765) => q(kyy),
+      q(3766) => q(kyz),
+      q(3767) => q(kza),
+      q(3768) => q(kzb),
+      q(3769) => q(kzc),
+      q(3770) => q(kzd),
+      q(3771) => q(kze),
+      q(3772) => q(kzf),
+      q(3773) => q(kzg),
+      q(3774) => q(kzi),
+      q(3775) => q(kzj),
+      q(3776) => q(kzk),
+      q(3777) => q(kzl),
+      q(3778) => q(kzm),
+      q(3779) => q(kzn),
+      q(3780) => q(kzo),
+      q(3781) => q(kzp),
+      q(3782) => q(kzq),
+      q(3783) => q(kzr),
+      q(3784) => q(kzs),
+      q(3785) => q(kzt),
+      q(3786) => q(kzu),
+      q(3787) => q(kzv),
+      q(3788) => q(kzw),
+      q(3789) => q(kzx),
+      q(3790) => q(kzy),
+      q(3791) => q(kzz),
+      q(3792) => q(laa),
+      q(3793) => q(lab),
+      q(3794) => q(lac),
+      q(3795) => q(lae),
+      q(3796) => q(laf),
+      q(3797) => q(lag),
+      q(3798) => q(lai),
+      q(3799) => q(laj),
+      q(3800) => q(lak),
+      q(3801) => q(lal),
+      q(3802) => q(lan),
+      q(3803) => q(lap),
+      q(3804) => q(laq),
+      q(3805) => q(lar),
+      q(3806) => q(las),
+      q(3807) => q(lau),
+      q(3808) => q(law),
+      q(3809) => q(lax),
+      q(3810) => q(lay),
+      q(3811) => q(laz),
+      q(3812) => q(lba),
+      q(3813) => q(lbb),
+      q(3814) => q(lbc),
+      q(3815) => q(lbe),
+      q(3816) => q(lbf),
+      q(3817) => q(lbg),
+      q(3818) => q(lbi),
+      q(3819) => q(lbj),
+      q(3820) => q(lbk),
+      q(3821) => q(lbl),
+      q(3822) => q(lbm),
+      q(3823) => q(lbn),
+      q(3824) => q(lbo),
+      q(3825) => q(lbq),
+      q(3826) => q(lbr),
+      q(3827) => q(lbs),
+      q(3828) => q(lbt),
+      q(3829) => q(lbu),
+      q(3830) => q(lbv),
+      q(3831) => q(lbw),
+      q(3832) => q(lbx),
+      q(3833) => q(lby),
+      q(3834) => q(lbz),
+      q(3835) => q(lcc),
+      q(3836) => q(lcd),
+      q(3837) => q(lce),
+      q(3838) => q(lcf),
+      q(3839) => q(lch),
+      q(3840) => q(lcl),
+      q(3841) => q(lcm),
+      q(3842) => q(lcp),
+      q(3843) => q(lcq),
+      q(3844) => q(lcs),
+      q(3845) => q(lda),
+      q(3846) => q(ldb),
+      q(3847) => q(ldd),
+      q(3848) => q(ldg),
+      q(3849) => q(ldh),
+      q(3850) => q(ldi),
+      q(3851) => q(ldj),
+      q(3852) => q(ldk),
+      q(3853) => q(ldl),
+      q(3854) => q(ldm),
+      q(3855) => q(ldn),
+      q(3856) => q(ldo),
+      q(3857) => q(ldp),
+      q(3858) => q(ldq),
+      q(3859) => q(lea),
+      q(3860) => q(leb),
+      q(3861) => q(lec),
+      q(3862) => q(led),
+      q(3863) => q(lee),
+      q(3864) => q(lef),
+      q(3865) => q(leh),
+      q(3866) => q(lei),
+      q(3867) => q(lej),
+      q(3868) => q(lek),
+      q(3869) => q(lel),
+      q(3870) => q(lem),
+      q(3871) => q(len),
+      q(3872) => q(leo),
+      q(3873) => q(lep),
+      q(3874) => q(leq),
+      q(3875) => q(ler),
+      q(3876) => q(les),
+      q(3877) => q(let),
+      q(3878) => q(leu),
+      q(3879) => q(lev),
+      q(3880) => q(lew),
+      q(3881) => q(lex),
+      q(3882) => q(ley),
+      q(3883) => q(lfa),
+      q(3884) => q(lfn),
+      q(3885) => q(lga),
+      q(3886) => q(lgb),
+      q(3887) => q(lgg),
+      q(3888) => q(lgh),
+      q(3889) => q(lgi),
+      q(3890) => q(lgk),
+      q(3891) => q(lgl),
+      q(3892) => q(lgm),
+      q(3893) => q(lgn),
+      q(3894) => q(lgq),
+      q(3895) => q(lgr),
+      q(3896) => q(lgt),
+      q(3897) => q(lgu),
+      q(3898) => q(lgz),
+      q(3899) => q(lha),
+      q(3900) => q(lhh),
+      q(3901) => q(lhi),
+      q(3902) => q(lhl),
+      q(3903) => q(lhm),
+      q(3904) => q(lhn),
+      q(3905) => q(lhp),
+      q(3906) => q(lhs),
+      q(3907) => q(lht),
+      q(3908) => q(lhu),
+      q(3909) => q(lia),
+      q(3910) => q(lib),
+      q(3911) => q(lic),
+      q(3912) => q(lid),
+      q(3913) => q(lie),
+      q(3914) => q(lif),
+      q(3915) => q(lig),
+      q(3916) => q(lih),
+      q(3917) => q(lij),
+      q(3918) => q(lik),
+      q(3919) => q(lil),
+      q(3920) => q(lio),
+      q(3921) => q(lip),
+      q(3922) => q(liq),
+      q(3923) => q(lir),
+      q(3924) => q(lis),
+      q(3925) => q(liu),
+      q(3926) => q(liv),
+      q(3927) => q(liw),
+      q(3928) => q(lix),
+      q(3929) => q(liy),
+      q(3930) => q(liz),
+      q(3931) => q(lja),
+      q(3932) => q(lje),
+      q(3933) => q(lji),
+      q(3934) => q(ljl),
+      q(3935) => q(ljp),
+      q(3936) => q(ljw),
+      q(3937) => q(ljx),
+      q(3938) => q(lka),
+      q(3939) => q(lkb),
+      q(3940) => q(lkc),
+      q(3941) => q(lkd),
+      q(3942) => q(lke),
+      q(3943) => q(lkh),
+      q(3944) => q(lki),
+      q(3945) => q(lkj),
+      q(3946) => q(lkl),
+      q(3947) => q(lkm),
+      q(3948) => q(lkn),
+      q(3949) => q(lko),
+      q(3950) => q(lkr),
+      q(3951) => q(lks),
+      q(3952) => q(lkt),
+      q(3953) => q(lku),
+      q(3954) => q(lky),
+      q(3955) => q(lla),
+      q(3956) => q(llb),
+      q(3957) => q(llc),
+      q(3958) => q(lld),
+      q(3959) => q(lle),
+      q(3960) => q(llf),
+      q(3961) => q(llg),
+      q(3962) => q(llh),
+      q(3963) => q(lli),
+      q(3964) => q(llj),
+      q(3965) => q(llk),
+      q(3966) => q(lll),
+      q(3967) => q(llm),
+      q(3968) => q(lln),
+      q(3969) => q(llo),
+      q(3970) => q(llp),
+      q(3971) => q(llq),
+      q(3972) => q(lls),
+      q(3973) => q(llu),
+      q(3974) => q(llx),
+      q(3975) => q(lma),
+      q(3976) => q(lmb),
+      q(3977) => q(lmc),
+      q(3978) => q(lmd),
+      q(3979) => q(lme),
+      q(3980) => q(lmf),
+      q(3981) => q(lmg),
+      q(3982) => q(lmh),
+      q(3983) => q(lmi),
+      q(3984) => q(lmj),
+      q(3985) => q(lmk),
+      q(3986) => q(lml),
+      q(3987) => q(lmn),
+      q(3988) => q(lmo),
+      q(3989) => q(lmp),
+      q(3990) => q(lmq),
+      q(3991) => q(lmr),
+      q(3992) => q(lmu),
+      q(3993) => q(lmv),
+      q(3994) => q(lmw),
+      q(3995) => q(lmx),
+      q(3996) => q(lmy),
+      q(3997) => q(lmz),
+      q(3998) => q(lna),
+      q(3999) => q(lnb),
+      q(4000) => q(lnd),
+      q(4001) => q(lng),
+      q(4002) => q(lnh),
+      q(4003) => q(lni),
+      q(4004) => q(lnj),
+      q(4005) => q(lnl),
+      q(4006) => q(lnm),
+      q(4007) => q(lnn),
+      q(4008) => q(lno),
+      q(4009) => q(lns),
+      q(4010) => q(lnu),
+      q(4011) => q(lnw),
+      q(4012) => q(lnz),
+      q(4013) => q(loa),
+      q(4014) => q(lob),
+      q(4015) => q(loc),
+      q(4016) => q(loe),
+      q(4017) => q(lof),
+      q(4018) => q(log),
+      q(4019) => q(loh),
+      q(4020) => q(loi),
+      q(4021) => q(loj),
+      q(4022) => q(lok),
+      q(4023) => q(lom),
+      q(4024) => q(lon),
+      q(4025) => q(loo),
+      q(4026) => q(lop),
+      q(4027) => q(loq),
+      q(4028) => q(lor),
+      q(4029) => q(los),
+      q(4030) => q(lot),
+      q(4031) => q(lou),
+      q(4032) => q(lov),
+      q(4033) => q(low),
+      q(4034) => q(lox),
+      q(4035) => q(loy),
+      q(4036) => q(lpa),
+      q(4037) => q(lpe),
+      q(4038) => q(lpn),
+      q(4039) => q(lpo),
+      q(4040) => q(lpx),
+      q(4041) => q(lra),
+      q(4042) => q(lrc),
+      q(4043) => q(lre),
+      q(4044) => q(lrg),
+      q(4045) => q(lri),
+      q(4046) => q(lrk),
+      q(4047) => q(lrl),
+      q(4048) => q(lrm),
+      q(4049) => q(lrn),
+      q(4050) => q(lro),
+      q(4051) => q(lrr),
+      q(4052) => q(lrt),
+      q(4053) => q(lrv),
+      q(4054) => q(lrz),
+      q(4055) => q(lsa),
+      q(4056) => q(lsd),
+      q(4057) => q(lse),
+      q(4058) => q(lsg),
+      q(4059) => q(lsh),
+      q(4060) => q(lsi),
+      q(4061) => q(lsl),
+      q(4062) => q(lsm),
+      q(4063) => q(lso),
+      q(4064) => q(lsp),
+      q(4065) => q(lsr),
+      q(4066) => q(lss),
+      q(4067) => q(lst),
+      q(4068) => q(lsy),
+      q(4069) => q(ltc),
+      q(4070) => q(ltg),
+      q(4071) => q(lti),
+      q(4072) => q(ltn),
+      q(4073) => q(lto),
+      q(4074) => q(lts),
+      q(4075) => q(ltu),
+      q(4076) => q(luc),
+      q(4077) => q(lud),
+      q(4078) => q(lue),
+      q(4079) => q(luf),
+      q(4080) => q(luj),
+      q(4081) => q(luk),
+      q(4082) => q(lul),
+      q(4083) => q(lum),
+      q(4084) => q(lup),
+      q(4085) => q(luq),
+      q(4086) => q(lur),
+      q(4087) => q(lut),
+      q(4088) => q(luu),
+      q(4089) => q(luv),
+      q(4090) => q(luw),
+      q(4091) => q(luy),
+      q(4092) => q(luz),
+      q(4093) => q(lva),
+      q(4094) => q(lvk),
+      q(4095) => q(lvs),
+      q(4096) => q(lvu),
+      q(4097) => q(lwa),
+      q(4098) => q(lwe),
+      q(4099) => q(lwg),
+      q(4100) => q(lwh),
+      q(4101) => q(lwl),
+      q(4102) => q(lwm),
+      q(4103) => q(lwo),
+      q(4104) => q(lwt),
+      q(4105) => q(lwu),
+      q(4106) => q(lww),
+      q(4107) => q(lya),
+      q(4108) => q(lyg),
+      q(4109) => q(lyn),
+      q(4110) => q(lzh),
+      q(4111) => q(lzl),
+      q(4112) => q(lzn),
+      q(4113) => q(lzz),
+      q(4114) => q(maa),
+      q(4115) => q(mab),
+      q(4116) => q(mae),
+      q(4117) => q(maf),
+      q(4118) => q(maj),
+      q(4119) => q(mam),
+      q(4120) => q(maq),
+      q(4121) => q(mat),
+      q(4122) => q(mau),
+      q(4123) => q(mav),
+      q(4124) => q(maw),
+      q(4125) => q(max),
+      q(4126) => q(maz),
+      q(4127) => q(mba),
+      q(4128) => q(mbb),
+      q(4129) => q(mbc),
+      q(4130) => q(mbd),
+      q(4131) => q(mbe),
+      q(4132) => q(mbf),
+      q(4133) => q(mbh),
+      q(4134) => q(mbi),
+      q(4135) => q(mbj),
+      q(4136) => q(mbk),
+      q(4137) => q(mbl),
+      q(4138) => q(mbm),
+      q(4139) => q(mbn),
+      q(4140) => q(mbo),
+      q(4141) => q(mbp),
+      q(4142) => q(mbq),
+      q(4143) => q(mbr),
+      q(4144) => q(mbs),
+      q(4145) => q(mbt),
+      q(4146) => q(mbu),
+      q(4147) => q(mbv),
+      q(4148) => q(mbw),
+      q(4149) => q(mbx),
+      q(4150) => q(mby),
+      q(4151) => q(mbz),
+      q(4152) => q(mca),
+      q(4153) => q(mcb),
+      q(4154) => q(mcc),
+      q(4155) => q(mcd),
+      q(4156) => q(mce),
+      q(4157) => q(mcf),
+      q(4158) => q(mcg),
+      q(4159) => q(mch),
+      q(4160) => q(mci),
+      q(4161) => q(mcj),
+      q(4162) => q(mck),
+      q(4163) => q(mcl),
+      q(4164) => q(mcm),
+      q(4165) => q(mcn),
+      q(4166) => q(mco),
+      q(4167) => q(mcp),
+      q(4168) => q(mcq),
+      q(4169) => q(mcr),
+      q(4170) => q(mcs),
+      q(4171) => q(mct),
+      q(4172) => q(mcu),
+      q(4173) => q(mcv),
+      q(4174) => q(mcw),
+      q(4175) => q(mcx),
+      q(4176) => q(mcy),
+      q(4177) => q(mcz),
+      q(4178) => q(mda),
+      q(4179) => q(mdb),
+      q(4180) => q(mdc),
+      q(4181) => q(mdd),
+      q(4182) => q(mde),
+      q(4183) => q(mdg),
+      q(4184) => q(mdh),
+      q(4185) => q(mdi),
+      q(4186) => q(mdj),
+      q(4187) => q(mdk),
+      q(4188) => q(mdl),
+      q(4189) => q(mdm),
+      q(4190) => q(mdn),
+      q(4191) => q(mdp),
+      q(4192) => q(mdq),
+      q(4193) => q(mds),
+      q(4194) => q(mdt),
+      q(4195) => q(mdu),
+      q(4196) => q(mdv),
+      q(4197) => q(mdw),
+      q(4198) => q(mdx),
+      q(4199) => q(mdy),
+      q(4200) => q(mdz),
+      q(4201) => q(mea),
+      q(4202) => q(meb),
+      q(4203) => q(mec),
+      q(4204) => q(med),
+      q(4205) => q(mee),
+      q(4206) => q(mef),
+      q(4207) => q(meh),
+      q(4208) => q(mei),
+      q(4209) => q(mej),
+      q(4210) => q(mek),
+      q(4211) => q(mel),
+      q(4212) => q(mem),
+      q(4213) => q(meo),
+      q(4214) => q(mep),
+      q(4215) => q(meq),
+      q(4216) => q(mer),
+      q(4217) => q(mes),
+      q(4218) => q(met),
+      q(4219) => q(meu),
+      q(4220) => q(mev),
+      q(4221) => q(mew),
+      q(4222) => q(mey),
+      q(4223) => q(mez),
+      q(4224) => q(mfa),
+      q(4225) => q(mfb),
+      q(4226) => q(mfc),
+      q(4227) => q(mfd),
+      q(4228) => q(mfe),
+      q(4229) => q(mff),
+      q(4230) => q(mfg),
+      q(4231) => q(mfh),
+      q(4232) => q(mfi),
+      q(4233) => q(mfj),
+      q(4234) => q(mfk),
+      q(4235) => q(mfl),
+      q(4236) => q(mfm),
+      q(4237) => q(mfn),
+      q(4238) => q(mfo),
+      q(4239) => q(mfp),
+      q(4240) => q(mfq),
+      q(4241) => q(mfr),
+      q(4242) => q(mfs),
+      q(4243) => q(mft),
+      q(4244) => q(mfu),
+      q(4245) => q(mfv),
+      q(4246) => q(mfw),
+      q(4247) => q(mfx),
+      q(4248) => q(mfy),
+      q(4249) => q(mfz),
+      q(4250) => q(mgb),
+      q(4251) => q(mgc),
+      q(4252) => q(mgd),
+      q(4253) => q(mge),
+      q(4254) => q(mgf),
+      q(4255) => q(mgg),
+      q(4256) => q(mgh),
+      q(4257) => q(mgi),
+      q(4258) => q(mgj),
+      q(4259) => q(mgk),
+      q(4260) => q(mgl),
+      q(4261) => q(mgm),
+      q(4262) => q(mgn),
+      q(4263) => q(mgo),
+      q(4264) => q(mgp),
+      q(4265) => q(mgq),
+      q(4266) => q(mgr),
+      q(4267) => q(mgs),
+      q(4268) => q(mgt),
+      q(4269) => q(mgu),
+      q(4270) => q(mgv),
+      q(4271) => q(mgw),
+      q(4272) => q(mgy),
+      q(4273) => q(mgz),
+      q(4274) => q(mha),
+      q(4275) => q(mhb),
+      q(4276) => q(mhc),
+      q(4277) => q(mhd),
+      q(4278) => q(mhe),
+      q(4279) => q(mhf),
+      q(4280) => q(mhg),
+      q(4281) => q(mhi),
+      q(4282) => q(mhj),
+      q(4283) => q(mhk),
+      q(4284) => q(mhl),
+      q(4285) => q(mhm),
+      q(4286) => q(mhn),
+      q(4287) => q(mho),
+      q(4288) => q(mhp),
+      q(4289) => q(mhq),
+      q(4290) => q(mhr),
+      q(4291) => q(mhs),
+      q(4292) => q(mht),
+      q(4293) => q(mhu),
+      q(4294) => q(mhw),
+      q(4295) => q(mhx),
+      q(4296) => q(mhy),
+      q(4297) => q(mhz),
+      q(4298) => q(mia),
+      q(4299) => q(mib),
+      q(4300) => q(mid),
+      q(4301) => q(mie),
+      q(4302) => q(mif),
+      q(4303) => q(mig),
+      q(4304) => q(mih),
+      q(4305) => q(mii),
+      q(4306) => q(mij),
+      q(4307) => q(mik),
+      q(4308) => q(mil),
+      q(4309) => q(mim),
+      q(4310) => q(mio),
+      q(4311) => q(mip),
+      q(4312) => q(miq),
+      q(4313) => q(mir),
+      q(4314) => q(mit),
+      q(4315) => q(miu),
+      q(4316) => q(miw),
+      q(4317) => q(mix),
+      q(4318) => q(miy),
+      q(4319) => q(miz),
+      q(4320) => q(mjc),
+      q(4321) => q(mjd),
+      q(4322) => q(mje),
+      q(4323) => q(mjg),
+      q(4324) => q(mjh),
+      q(4325) => q(mji),
+      q(4326) => q(mjj),
+      q(4327) => q(mjk),
+      q(4328) => q(mjl),
+      q(4329) => q(mjm),
+      q(4330) => q(mjn),
+      q(4331) => q(mjo),
+      q(4332) => q(mjp),
+      q(4333) => q(mjq),
+      q(4334) => q(mjr),
+      q(4335) => q(mjs),
+      q(4336) => q(mjt),
+      q(4337) => q(mju),
+      q(4338) => q(mjv),
+      q(4339) => q(mjw),
+      q(4340) => q(mjx),
+      q(4341) => q(mjy),
+      q(4342) => q(mjz),
+      q(4343) => q(mka),
+      q(4344) => q(mkb),
+      q(4345) => q(mkc),
+      q(4346) => q(mke),
+      q(4347) => q(mkf),
+      q(4348) => q(mkg),
+      q(4349) => q(mki),
+      q(4350) => q(mkj),
+      q(4351) => q(mkk),
+      q(4352) => q(mkl),
+      q(4353) => q(mkm),
+      q(4354) => q(mkn),
+      q(4355) => q(mko),
+      q(4356) => q(mkp),
+      q(4357) => q(mkq),
+      q(4358) => q(mkr),
+      q(4359) => q(mks),
+      q(4360) => q(mkt),
+      q(4361) => q(mku),
+      q(4362) => q(mkv),
+      q(4363) => q(mkw),
+      q(4364) => q(mkx),
+      q(4365) => q(mky),
+      q(4366) => q(mkz),
+      q(4367) => q(mla),
+      q(4368) => q(mlb),
+      q(4369) => q(mlc),
+      q(4370) => q(mle),
+      q(4371) => q(mlf),
+      q(4372) => q(mlh),
+      q(4373) => q(mli),
+      q(4374) => q(mlj),
+      q(4375) => q(mlk),
+      q(4376) => q(mll),
+      q(4377) => q(mlm),
+      q(4378) => q(mln),
+      q(4379) => q(mlo),
+      q(4380) => q(mlp),
+      q(4381) => q(mlq),
+      q(4382) => q(mlr),
+      q(4383) => q(mls),
+      q(4384) => q(mlu),
+      q(4385) => q(mlv),
+      q(4386) => q(mlw),
+      q(4387) => q(mlx),
+      q(4388) => q(mlz),
+      q(4389) => q(mma),
+      q(4390) => q(mmb),
+      q(4391) => q(mmc),
+      q(4392) => q(mmd),
+      q(4393) => q(mme),
+      q(4394) => q(mmf),
+      q(4395) => q(mmg),
+      q(4396) => q(mmh),
+      q(4397) => q(mmi),
+      q(4398) => q(mmj),
+      q(4399) => q(mmk),
+      q(4400) => q(mml),
+      q(4401) => q(mmm),
+      q(4402) => q(mmn),
+      q(4403) => q(mmo),
+      q(4404) => q(mmp),
+      q(4405) => q(mmq),
+      q(4406) => q(mmr),
+      q(4407) => q(mmt),
+      q(4408) => q(mmu),
+      q(4409) => q(mmv),
+      q(4410) => q(mmw),
+      q(4411) => q(mmx),
+      q(4412) => q(mmy),
+      q(4413) => q(mmz),
+      q(4414) => q(mna),
+      q(4415) => q(mnb),
+      q(4416) => q(mnd),
+      q(4417) => q(mne),
+      q(4418) => q(mnf),
+      q(4419) => q(mng),
+      q(4420) => q(mnh),
+      q(4421) => q(mnj),
+      q(4422) => q(mnk),
+      q(4423) => q(mnl),
+      q(4424) => q(mnm),
+      q(4425) => q(mnn),
+      q(4426) => q(mnp),
+      q(4427) => q(mnq),
+      q(4428) => q(mnr),
+      q(4429) => q(mns),
+      q(4430) => q(mnu),
+      q(4431) => q(mnv),
+      q(4432) => q(mnw),
+      q(4433) => q(mnx),
+      q(4434) => q(mny),
+      q(4435) => q(mnz),
+      q(4436) => q(moa),
+      q(4437) => q(moc),
+      q(4438) => q(mod),
+      q(4439) => q(moe),
+      q(4440) => q(mog),
+      q(4441) => q(moi),
+      q(4442) => q(moj),
+      q(4443) => q(mok),
+      q(4444) => q(mom),
+      q(4445) => q(moo),
+      q(4446) => q(mop),
+      q(4447) => q(moq),
+      q(4448) => q(mor),
+      q(4449) => q(mou),
+      q(4450) => q(mov),
+      q(4451) => q(mow),
+      q(4452) => q(mox),
+      q(4453) => q(moy),
+      q(4454) => q(moz),
+      q(4455) => q(mpa),
+      q(4456) => q(mpb),
+      q(4457) => q(mpc),
+      q(4458) => q(mpd),
+      q(4459) => q(mpe),
+      q(4460) => q(mpg),
+      q(4461) => q(mph),
+      q(4462) => q(mpi),
+      q(4463) => q(mpj),
+      q(4464) => q(mpk),
+      q(4465) => q(mpl),
+      q(4466) => q(mpm),
+      q(4467) => q(mpn),
+      q(4468) => q(mpo),
+      q(4469) => q(mpp),
+      q(4470) => q(mpq),
+      q(4471) => q(mpr),
+      q(4472) => q(mps),
+      q(4473) => q(mpt),
+      q(4474) => q(mpu),
+      q(4475) => q(mpv),
+      q(4476) => q(mpw),
+      q(4477) => q(mpx),
+      q(4478) => q(mpy),
+      q(4479) => q(mpz),
+      q(4480) => q(mqa),
+      q(4481) => q(mqb),
+      q(4482) => q(mqc),
+      q(4483) => q(mqe),
+      q(4484) => q(mqf),
+      q(4485) => q(mqg),
+      q(4486) => q(mqh),
+      q(4487) => q(mqi),
+      q(4488) => q(mqj),
+      q(4489) => q(mqk),
+      q(4490) => q(mql),
+      q(4491) => q(mqm),
+      q(4492) => q(mqn),
+      q(4493) => q(mqo),
+      q(4494) => q(mqp),
+      q(4495) => q(mqq),
+      q(4496) => q(mqr),
+      q(4497) => q(mqs),
+      q(4498) => q(mqt),
+      q(4499) => q(mqu),
+      q(4500) => q(mqv),
+      q(4501) => q(mqw),
+      q(4502) => q(mqx),
+      q(4503) => q(mqy),
+      q(4504) => q(mqz),
+      q(4505) => q(mra),
+      q(4506) => q(mrb),
+      q(4507) => q(mrc),
+      q(4508) => q(mrd),
+      q(4509) => q(mre),
+      q(4510) => q(mrf),
+      q(4511) => q(mrg),
+      q(4512) => q(mrh),
+      q(4513) => q(mrj),
+      q(4514) => q(mrk),
+      q(4515) => q(mrl),
+      q(4516) => q(mrm),
+      q(4517) => q(mrn),
+      q(4518) => q(mro),
+      q(4519) => q(mrp),
+      q(4520) => q(mrq),
+      q(4521) => q(mrr),
+      q(4522) => q(mrs),
+      q(4523) => q(mrt),
+      q(4524) => q(mru),
+      q(4525) => q(mrv),
+      q(4526) => q(mrw),
+      q(4527) => q(mrx),
+      q(4528) => q(mry),
+      q(4529) => q(mrz),
+      q(4530) => q(msb),
+      q(4531) => q(msc),
+      q(4532) => q(msd),
+      q(4533) => q(mse),
+      q(4534) => q(msf),
+      q(4535) => q(msg),
+      q(4536) => q(msh),
+      q(4537) => q(msi),
+      q(4538) => q(msj),
+      q(4539) => q(msk),
+      q(4540) => q(msl),
+      q(4541) => q(msm),
+      q(4542) => q(msn),
+      q(4543) => q(mso),
+      q(4544) => q(msp),
+      q(4545) => q(msq),
+      q(4546) => q(msr),
+      q(4547) => q(mss),
+      q(4548) => q(msu),
+      q(4549) => q(msv),
+      q(4550) => q(msw),
+      q(4551) => q(msx),
+      q(4552) => q(msy),
+      q(4553) => q(msz),
+      q(4554) => q(mta),
+      q(4555) => q(mtb),
+      q(4556) => q(mtc),
+      q(4557) => q(mtd),
+      q(4558) => q(mte),
+      q(4559) => q(mtf),
+      q(4560) => q(mtg),
+      q(4561) => q(mth),
+      q(4562) => q(mti),
+      q(4563) => q(mtj),
+      q(4564) => q(mtk),
+      q(4565) => q(mtl),
+      q(4566) => q(mtm),
+      q(4567) => q(mtn),
+      q(4568) => q(mto),
+      q(4569) => q(mtp),
+      q(4570) => q(mtq),
+      q(4571) => q(mtr),
+      q(4572) => q(mts),
+      q(4573) => q(mtt),
+      q(4574) => q(mtu),
+      q(4575) => q(mtv),
+      q(4576) => q(mtw),
+      q(4577) => q(mtx),
+      q(4578) => q(mty),
+      q(4579) => q(mua),
+      q(4580) => q(mub),
+      q(4581) => q(muc),
+      q(4582) => q(mud),
+      q(4583) => q(mue),
+      q(4584) => q(mug),
+      q(4585) => q(muh),
+      q(4586) => q(mui),
+      q(4587) => q(muj),
+      q(4588) => q(muk),
+      q(4589) => q(mum),
+      q(4590) => q(muo),
+      q(4591) => q(mup),
+      q(4592) => q(muq),
+      q(4593) => q(mur),
+      q(4594) => q(mut),
+      q(4595) => q(muu),
+      q(4596) => q(muv),
+      q(4597) => q(mux),
+      q(4598) => q(muy),
+      q(4599) => q(muz),
+      q(4600) => q(mva),
+      q(4601) => q(mvb),
+      q(4602) => q(mvd),
+      q(4603) => q(mve),
+      q(4604) => q(mvf),
+      q(4605) => q(mvg),
+      q(4606) => q(mvh),
+      q(4607) => q(mvi),
+      q(4608) => q(mvk),
+      q(4609) => q(mvl),
+      q(4610) => q(mvm),
+      q(4611) => q(mvn),
+      q(4612) => q(mvo),
+      q(4613) => q(mvp),
+      q(4614) => q(mvq),
+      q(4615) => q(mvr),
+      q(4616) => q(mvs),
+      q(4617) => q(mvt),
+      q(4618) => q(mvu),
+      q(4619) => q(mvv),
+      q(4620) => q(mvw),
+      q(4621) => q(mvx),
+      q(4622) => q(mvy),
+      q(4623) => q(mvz),
+      q(4624) => q(mwa),
+      q(4625) => q(mwb),
+      q(4626) => q(mwc),
+      q(4627) => q(mwe),
+      q(4628) => q(mwf),
+      q(4629) => q(mwg),
+      q(4630) => q(mwh),
+      q(4631) => q(mwi),
+      q(4632) => q(mwk),
+      q(4633) => q(mwm),
+      q(4634) => q(mwn),
+      q(4635) => q(mwo),
+      q(4636) => q(mwp),
+      q(4637) => q(mwq),
+      q(4638) => q(mws),
+      q(4639) => q(mwt),
+      q(4640) => q(mwu),
+      q(4641) => q(mwv),
+      q(4642) => q(mww),
+      q(4643) => q(mwx),
+      q(4644) => q(mwy),
+      q(4645) => q(mwz),
+      q(4646) => q(mxa),
+      q(4647) => q(mxb),
+      q(4648) => q(mxc),
+      q(4649) => q(mxd),
+      q(4650) => q(mxe),
+      q(4651) => q(mxf),
+      q(4652) => q(mxg),
+      q(4653) => q(mxh),
+      q(4654) => q(mxi),
+      q(4655) => q(mxj),
+      q(4656) => q(mxk),
+      q(4657) => q(mxl),
+      q(4658) => q(mxm),
+      q(4659) => q(mxn),
+      q(4660) => q(mxo),
+      q(4661) => q(mxp),
+      q(4662) => q(mxq),
+      q(4663) => q(mxr),
+      q(4664) => q(mxs),
+      q(4665) => q(mxt),
+      q(4666) => q(mxu),
+      q(4667) => q(mxv),
+      q(4668) => q(mxw),
+      q(4669) => q(mxx),
+      q(4670) => q(mxy),
+      q(4671) => q(mxz),
+      q(4672) => q(myb),
+      q(4673) => q(myc),
+      q(4674) => q(myd),
+      q(4675) => q(mye),
+      q(4676) => q(myf),
+      q(4677) => q(myg),
+      q(4678) => q(myh),
+      q(4679) => q(myi),
+      q(4680) => q(myj),
+      q(4681) => q(myk),
+      q(4682) => q(myl),
+      q(4683) => q(mym),
+      q(4684) => q(myo),
+      q(4685) => q(myp),
+      q(4686) => q(myr),
+      q(4687) => q(mys),
+      q(4688) => q(myu),
+      q(4689) => q(myw),
+      q(4690) => q(myx),
+      q(4691) => q(myy),
+      q(4692) => q(myz),
+      q(4693) => q(mza),
+      q(4694) => q(mzb),
+      q(4695) => q(mzc),
+      q(4696) => q(mzd),
+      q(4697) => q(mze),
+      q(4698) => q(mzg),
+      q(4699) => q(mzh),
+      q(4700) => q(mzi),
+      q(4701) => q(mzj),
+      q(4702) => q(mzk),
+      q(4703) => q(mzl),
+      q(4704) => q(mzm),
+      q(4705) => q(mzn),
+      q(4706) => q(mzo),
+      q(4707) => q(mzp),
+      q(4708) => q(mzq),
+      q(4709) => q(mzr),
+      q(4710) => q(mzs),
+      q(4711) => q(mzt),
+      q(4712) => q(mzu),
+      q(4713) => q(mzv),
+      q(4714) => q(mzw),
+      q(4715) => q(mzx),
+      q(4716) => q(mzy),
+      q(4717) => q(mzz),
+      q(4718) => q(naa),
+      q(4719) => q(nab),
+      q(4720) => q(nac),
+      q(4721) => q(nad),
+      q(4722) => q(nae),
+      q(4723) => q(naf),
+      q(4724) => q(nag),
+      q(4725) => q(naj),
+      q(4726) => q(nak),
+      q(4727) => q(nal),
+      q(4728) => q(nam),
+      q(4729) => q(nan),
+      q(4730) => q(nao),
+      q(4731) => q(naq),
+      q(4732) => q(nar),
+      q(4733) => q(nas),
+      q(4734) => q(nat),
+      q(4735) => q(naw),
+      q(4736) => q(nax),
+      q(4737) => q(nay),
+      q(4738) => q(naz),
+      q(4739) => q(nba),
+      q(4740) => q(nbb),
+      q(4741) => q(nbc),
+      q(4742) => q(nbd),
+      q(4743) => q(nbe),
+      q(4744) => q(nbg),
+      q(4745) => q(nbh),
+      q(4746) => q(nbi),
+      q(4747) => q(nbj),
+      q(4748) => q(nbk),
+      q(4749) => q(nbm),
+      q(4750) => q(nbn),
+      q(4751) => q(nbo),
+      q(4752) => q(nbp),
+      q(4753) => q(nbq),
+      q(4754) => q(nbr),
+      q(4755) => q(nbs),
+      q(4756) => q(nbt),
+      q(4757) => q(nbu),
+      q(4758) => q(nbv),
+      q(4759) => q(nbw),
+      q(4760) => q(nby),
+      q(4761) => q(nca),
+      q(4762) => q(ncb),
+      q(4763) => q(ncc),
+      q(4764) => q(ncd),
+      q(4765) => q(nce),
+      q(4766) => q(ncf),
+      q(4767) => q(ncg),
+      q(4768) => q(nch),
+      q(4769) => q(nci),
+      q(4770) => q(ncj),
+      q(4771) => q(nck),
+      q(4772) => q(ncl),
+      q(4773) => q(ncm),
+      q(4774) => q(ncn),
+      q(4775) => q(nco),
+      q(4776) => q(ncp),
+      q(4777) => q(ncr),
+      q(4778) => q(ncs),
+      q(4779) => q(nct),
+      q(4780) => q(ncu),
+      q(4781) => q(ncx),
+      q(4782) => q(ncz),
+      q(4783) => q(nda),
+      q(4784) => q(ndb),
+      q(4785) => q(ndc),
+      q(4786) => q(ndd),
+      q(4787) => q(ndf),
+      q(4788) => q(ndg),
+      q(4789) => q(ndh),
+      q(4790) => q(ndi),
+      q(4791) => q(ndj),
+      q(4792) => q(ndk),
+      q(4793) => q(ndl),
+      q(4794) => q(ndm),
+      q(4795) => q(ndn),
+      q(4796) => q(ndp),
+      q(4797) => q(ndq),
+      q(4798) => q(ndr),
+      q(4799) => q(ndt),
+      q(4800) => q(ndu),
+      q(4801) => q(ndv),
+      q(4802) => q(ndw),
+      q(4803) => q(ndx),
+      q(4804) => q(ndy),
+      q(4805) => q(ndz),
+      q(4806) => q(nea),
+      q(4807) => q(neb),
+      q(4808) => q(nec),
+      q(4809) => q(ned),
+      q(4810) => q(nee),
+      q(4811) => q(nef),
+      q(4812) => q(neg),
+      q(4813) => q(neh),
+      q(4814) => q(nei),
+      q(4815) => q(nej),
+      q(4816) => q(nek),
+      q(4817) => q(nem),
+      q(4818) => q(nen),
+      q(4819) => q(neo),
+      q(4820) => q(neq),
+      q(4821) => q(ner),
+      q(4822) => q(nes),
+      q(4823) => q(net),
+      q(4824) => q(neu),
+      q(4825) => q(nev),
+      q(4826) => q(nex),
+      q(4827) => q(ney),
+      q(4828) => q(nez),
+      q(4829) => q(nfa),
+      q(4830) => q(nfd),
+      q(4831) => q(nfl),
+      q(4832) => q(nfr),
+      q(4833) => q(nfu),
+      q(4834) => q(nga),
+      q(4835) => q(ngb),
+      q(4836) => q(ngc),
+      q(4837) => q(ngd),
+      q(4838) => q(nge),
+      q(4839) => q(ngg),
+      q(4840) => q(ngh),
+      q(4841) => q(ngi),
+      q(4842) => q(ngj),
+      q(4843) => q(ngk),
+      q(4844) => q(ngl),
+      q(4845) => q(ngm),
+      q(4846) => q(ngn),
+      q(4847) => q(ngo),
+      q(4848) => q(ngp),
+      q(4849) => q(ngq),
+      q(4850) => q(ngr),
+      q(4851) => q(ngs),
+      q(4852) => q(ngt),
+      q(4853) => q(ngu),
+      q(4854) => q(ngv),
+      q(4855) => q(ngw),
+      q(4856) => q(ngx),
+      q(4857) => q(ngy),
+      q(4858) => q(ngz),
+      q(4859) => q(nha),
+      q(4860) => q(nhb),
+      q(4861) => q(nhc),
+      q(4862) => q(nhd),
+      q(4863) => q(nhe),
+      q(4864) => q(nhf),
+      q(4865) => q(nhg),
+      q(4866) => q(nhh),
+      q(4867) => q(nhi),
+      q(4868) => q(nhk),
+      q(4869) => q(nhm),
+      q(4870) => q(nhn),
+      q(4871) => q(nho),
+      q(4872) => q(nhp),
+      q(4873) => q(nhq),
+      q(4874) => q(nhr),
+      q(4875) => q(nht),
+      q(4876) => q(nhu),
+      q(4877) => q(nhv),
+      q(4878) => q(nhw),
+      q(4879) => q(nhx),
+      q(4880) => q(nhy),
+      q(4881) => q(nhz),
+      q(4882) => q(nib),
+      q(4883) => q(nid),
+      q(4884) => q(nie),
+      q(4885) => q(nif),
+      q(4886) => q(nig),
+      q(4887) => q(nih),
+      q(4888) => q(nii),
+      q(4889) => q(nij),
+      q(4890) => q(nik),
+      q(4891) => q(nil),
+      q(4892) => q(nim),
+      q(4893) => q(nin),
+      q(4894) => q(nio),
+      q(4895) => q(niq),
+      q(4896) => q(nir),
+      q(4897) => q(nis),
+      q(4898) => q(nit),
+      q(4899) => q(niv),
+      q(4900) => q(niw),
+      q(4901) => q(nix),
+      q(4902) => q(niy),
+      q(4903) => q(niz),
+      q(4904) => q(nja),
+      q(4905) => q(njb),
+      q(4906) => q(njd),
+      q(4907) => q(njh),
+      q(4908) => q(nji),
+      q(4909) => q(njj),
+      q(4910) => q(njl),
+      q(4911) => q(njm),
+      q(4912) => q(njn),
+      q(4913) => q(njo),
+      q(4914) => q(njr),
+      q(4915) => q(njs),
+      q(4916) => q(njt),
+      q(4917) => q(nju),
+      q(4918) => q(njx),
+      q(4919) => q(njy),
+      q(4920) => q(njz),
+      q(4921) => q(nka),
+      q(4922) => q(nkb),
+      q(4923) => q(nkc),
+      q(4924) => q(nkd),
+      q(4925) => q(nke),
+      q(4926) => q(nkf),
+      q(4927) => q(nkg),
+      q(4928) => q(nkh),
+      q(4929) => q(nki),
+      q(4930) => q(nkj),
+      q(4931) => q(nkk),
+      q(4932) => q(nkm),
+      q(4933) => q(nkn),
+      q(4934) => q(nko),
+      q(4935) => q(nkp),
+      q(4936) => q(nkq),
+      q(4937) => q(nkr),
+      q(4938) => q(nks),
+      q(4939) => q(nkt),
+      q(4940) => q(nku),
+      q(4941) => q(nkv),
+      q(4942) => q(nkw),
+      q(4943) => q(nkx),
+      q(4944) => q(nkz),
+      q(4945) => q(nla),
+      q(4946) => q(nlc),
+      q(4947) => q(nle),
+      q(4948) => q(nlg),
+      q(4949) => q(nli),
+      q(4950) => q(nlj),
+      q(4951) => q(nlk),
+      q(4952) => q(nll),
+      q(4953) => q(nlo),
+      q(4954) => q(nlq),
+      q(4955) => q(nlu),
+      q(4956) => q(nlv),
+      q(4957) => q(nlw),
+      q(4958) => q(nlx),
+      q(4959) => q(nly),
+      q(4960) => q(nlz),
+      q(4961) => q(nma),
+      q(4962) => q(nmb),
+      q(4963) => q(nmc),
+      q(4964) => q(nmd),
+      q(4965) => q(nme),
+      q(4966) => q(nmf),
+      q(4967) => q(nmg),
+      q(4968) => q(nmh),
+      q(4969) => q(nmi),
+      q(4970) => q(nmj),
+      q(4971) => q(nmk),
+      q(4972) => q(nml),
+      q(4973) => q(nmm),
+      q(4974) => q(nmn),
+      q(4975) => q(nmo),
+      q(4976) => q(nmp),
+      q(4977) => q(nmq),
+      q(4978) => q(nmr),
+      q(4979) => q(nms),
+      q(4980) => q(nmt),
+      q(4981) => q(nmu),
+      q(4982) => q(nmv),
+      q(4983) => q(nmw),
+      q(4984) => q(nmx),
+      q(4985) => q(nmy),
+      q(4986) => q(nmz),
+      q(4987) => q(nna),
+      q(4988) => q(nnb),
+      q(4989) => q(nnc),
+      q(4990) => q(nnd),
+      q(4991) => q(nne),
+      q(4992) => q(nnf),
+      q(4993) => q(nng),
+      q(4994) => q(nnh),
+      q(4995) => q(nni),
+      q(4996) => q(nnj),
+      q(4997) => q(nnk),
+      q(4998) => q(nnl),
+      q(4999) => q(nnm),
+      q(5000) => q(nnn),
+      q(5001) => q(nnp),
+      q(5002) => q(nnq),
+      q(5003) => q(nnr),
+      q(5004) => q(nns),
+      q(5005) => q(nnt),
+      q(5006) => q(nnu),
+      q(5007) => q(nnv),
+      q(5008) => q(nnw),
+      q(5009) => q(nny),
+      q(5010) => q(nnz),
+      q(5011) => q(noa),
+      q(5012) => q(noc),
+      q(5013) => q(nod),
+      q(5014) => q(noe),
+      q(5015) => q(nof),
+      q(5016) => q(noh),
+      q(5017) => q(noi),
+      q(5018) => q(noj),
+      q(5019) => q(nok),
+      q(5020) => q(nol),
+      q(5021) => q(nom),
+      q(5022) => q(nop),
+      q(5023) => q(noq),
+      q(5024) => q(nos),
+      q(5025) => q(not),
+      q(5026) => q(nou),
+      q(5027) => q(nov),
+      q(5028) => q(now),
+      q(5029) => q(noy),
+      q(5030) => q(noz),
+      q(5031) => q(npa),
+      q(5032) => q(npb),
+      q(5033) => q(npg),
+      q(5034) => q(nph),
+      q(5035) => q(npi),
+      q(5036) => q(npl),
+      q(5037) => q(npn),
+      q(5038) => q(npo),
+      q(5039) => q(nps),
+      q(5040) => q(npu),
+      q(5041) => q(npy),
+      q(5042) => q(nqg),
+      q(5043) => q(nqk),
+      q(5044) => q(nqm),
+      q(5045) => q(nqn),
+      q(5046) => q(nqq),
+      q(5047) => q(nqy),
+      q(5048) => q(nra),
+      q(5049) => q(nrb),
+      q(5050) => q(nrc),
+      q(5051) => q(nre),
+      q(5052) => q(nrf),
+      q(5053) => q(nrg),
+      q(5054) => q(nri),
+      q(5055) => q(nrk),
+      q(5056) => q(nrl),
+      q(5057) => q(nrm),
+      q(5058) => q(nrn),
+      q(5059) => q(nrp),
+      q(5060) => q(nrr),
+      q(5061) => q(nrt),
+      q(5062) => q(nru),
+      q(5063) => q(nrx),
+      q(5064) => q(nrz),
+      q(5065) => q(nsa),
+      q(5066) => q(nsc),
+      q(5067) => q(nsd),
+      q(5068) => q(nse),
+      q(5069) => q(nsf),
+      q(5070) => q(nsg),
+      q(5071) => q(nsh),
+      q(5072) => q(nsi),
+      q(5073) => q(nsk),
+      q(5074) => q(nsl),
+      q(5075) => q(nsm),
+      q(5076) => q(nsn),
+      q(5077) => q(nsp),
+      q(5078) => q(nsq),
+      q(5079) => q(nsr),
+      q(5080) => q(nss),
+      q(5081) => q(nst),
+      q(5082) => q(nsu),
+      q(5083) => q(nsv),
+      q(5084) => q(nsw),
+      q(5085) => q(nsx),
+      q(5086) => q(nsy),
+      q(5087) => q(nsz),
+      q(5088) => q(nte),
+      q(5089) => q(ntg),
+      q(5090) => q(nti),
+      q(5091) => q(ntj),
+      q(5092) => q(ntk),
+      q(5093) => q(ntm),
+      q(5094) => q(nto),
+      q(5095) => q(ntp),
+      q(5096) => q(ntr),
+      q(5097) => q(nts),
+      q(5098) => q(ntu),
+      q(5099) => q(ntw),
+      q(5100) => q(ntx),
+      q(5101) => q(nty),
+      q(5102) => q(ntz),
+      q(5103) => q(nua),
+      q(5104) => q(nuc),
+      q(5105) => q(nud),
+      q(5106) => q(nue),
+      q(5107) => q(nuf),
+      q(5108) => q(nug),
+      q(5109) => q(nuh),
+      q(5110) => q(nui),
+      q(5111) => q(nuj),
+      q(5112) => q(nuk),
+      q(5113) => q(nul),
+      q(5114) => q(num),
+      q(5115) => q(nun),
+      q(5116) => q(nuo),
+      q(5117) => q(nup),
+      q(5118) => q(nuq),
+      q(5119) => q(nur),
+      q(5120) => q(nus),
+      q(5121) => q(nut),
+      q(5122) => q(nuu),
+      q(5123) => q(nuv),
+      q(5124) => q(nuw),
+      q(5125) => q(nux),
+      q(5126) => q(nuy),
+      q(5127) => q(nuz),
+      q(5128) => q(nvh),
+      q(5129) => q(nvm),
+      q(5130) => q(nvo),
+      q(5131) => q(nwa),
+      q(5132) => q(nwb),
+      q(5133) => q(nwe),
+      q(5134) => q(nwg),
+      q(5135) => q(nwi),
+      q(5136) => q(nwm),
+      q(5137) => q(nwo),
+      q(5138) => q(nwr),
+      q(5139) => q(nwx),
+      q(5140) => q(nwy),
+      q(5141) => q(nxa),
+      q(5142) => q(nxd),
+      q(5143) => q(nxe),
+      q(5144) => q(nxg),
+      q(5145) => q(nxi),
+      q(5146) => q(nxk),
+      q(5147) => q(nxl),
+      q(5148) => q(nxm),
+      q(5149) => q(nxn),
+      q(5150) => q(nxo),
+      q(5151) => q(nxq),
+      q(5152) => q(nxr),
+      q(5153) => q(nxu),
+      q(5154) => q(nxx),
+      q(5155) => q(nyb),
+      q(5156) => q(nyc),
+      q(5157) => q(nyd),
+      q(5158) => q(nye),
+      q(5159) => q(nyf),
+      q(5160) => q(nyg),
+      q(5161) => q(nyh),
+      q(5162) => q(nyi),
+      q(5163) => q(nyj),
+      q(5164) => q(nyk),
+      q(5165) => q(nyl),
+      q(5166) => q(nyp),
+      q(5167) => q(nyq),
+      q(5168) => q(nyr),
+      q(5169) => q(nys),
+      q(5170) => q(nyt),
+      q(5171) => q(nyu),
+      q(5172) => q(nyv),
+      q(5173) => q(nyw),
+      q(5174) => q(nyx),
+      q(5175) => q(nyy),
+      q(5176) => q(nza),
+      q(5177) => q(nzb),
+      q(5178) => q(nzk),
+      q(5179) => q(nzm),
+      q(5180) => q(nzs),
+      q(5181) => q(nzu),
+      q(5182) => q(nzy),
+      q(5183) => q(nzz),
+      q(5184) => q(oaa),
+      q(5185) => q(oac),
+      q(5186) => q(oar),
+      q(5187) => q(oav),
+      q(5188) => q(obi),
+      q(5189) => q(obk),
+      q(5190) => q(obl),
+      q(5191) => q(obm),
+      q(5192) => q(obo),
+      q(5193) => q(obr),
+      q(5194) => q(obt),
+      q(5195) => q(obu),
+      q(5196) => q(oca),
+      q(5197) => q(och),
+      q(5198) => q(oco),
+      q(5199) => q(ocu),
+      q(5200) => q(oda),
+      q(5201) => q(odk),
+      q(5202) => q(odt),
+      q(5203) => q(odu),
+      q(5204) => q(ofo),
+      q(5205) => q(ofs),
+      q(5206) => q(ofu),
+      q(5207) => q(ogb),
+      q(5208) => q(ogc),
+      q(5209) => q(oge),
+      q(5210) => q(ogg),
+      q(5211) => q(ogo),
+      q(5212) => q(ogu),
+      q(5213) => q(oht),
+      q(5214) => q(ohu),
+      q(5215) => q(oia),
+      q(5216) => q(oin),
+      q(5217) => q(ojb),
+      q(5218) => q(ojc),
+      q(5219) => q(ojg),
+      q(5220) => q(ojp),
+      q(5221) => q(ojs),
+      q(5222) => q(ojv),
+      q(5223) => q(ojw),
+      q(5224) => q(oka),
+      q(5225) => q(okb),
+      q(5226) => q(okd),
+      q(5227) => q(oke),
+      q(5228) => q(okg),
+      q(5229) => q(okh),
+      q(5230) => q(oki),
+      q(5231) => q(okj),
+      q(5232) => q(okk),
+      q(5233) => q(okl),
+      q(5234) => q(okm),
+      q(5235) => q(okn),
+      q(5236) => q(oko),
+      q(5237) => q(okr),
+      q(5238) => q(oks),
+      q(5239) => q(oku),
+      q(5240) => q(okv),
+      q(5241) => q(okx),
+      q(5242) => q(ola),
+      q(5243) => q(old),
+      q(5244) => q(ole),
+      q(5245) => q(olk),
+      q(5246) => q(olm),
+      q(5247) => q(olo),
+      q(5248) => q(olr),
+      q(5249) => q(olt),
+      q(5250) => q(oma),
+      q(5251) => q(omb),
+      q(5252) => q(omc),
+      q(5253) => q(ome),
+      q(5254) => q(omg),
+      q(5255) => q(omi),
+      q(5256) => q(omk),
+      q(5257) => q(oml),
+      q(5258) => q(omn),
+      q(5259) => q(omo),
+      q(5260) => q(omp),
+      q(5261) => q(omr),
+      q(5262) => q(omt),
+      q(5263) => q(omu),
+      q(5264) => q(omw),
+      q(5265) => q(omx),
+      q(5266) => q(ona),
+      q(5267) => q(onb),
+      q(5268) => q(one),
+      q(5269) => q(ong),
+      q(5270) => q(oni),
+      q(5271) => q(onj),
+      q(5272) => q(onk),
+      q(5273) => q(onn),
+      q(5274) => q(ono),
+      q(5275) => q(onp),
+      q(5276) => q(onr),
+      q(5277) => q(ons),
+      q(5278) => q(ont),
+      q(5279) => q(onu),
+      q(5280) => q(onw),
+      q(5281) => q(onx),
+      q(5282) => q(ood),
+      q(5283) => q(oog),
+      q(5284) => q(oon),
+      q(5285) => q(oor),
+      q(5286) => q(oos),
+      q(5287) => q(opa),
+      q(5288) => q(opk),
+      q(5289) => q(opm),
+      q(5290) => q(opo),
+      q(5291) => q(opt),
+      q(5292) => q(opy),
+      q(5293) => q(ora),
+      q(5294) => q(orc),
+      q(5295) => q(ore),
+      q(5296) => q(org),
+      q(5297) => q(orh),
+      q(5298) => q(orn),
+      q(5299) => q(oro),
+      q(5300) => q(orr),
+      q(5301) => q(ors),
+      q(5302) => q(ort),
+      q(5303) => q(oru),
+      q(5304) => q(orv),
+      q(5305) => q(orw),
+      q(5306) => q(orx),
+      q(5307) => q(ory),
+      q(5308) => q(orz),
+      q(5309) => q(osc),
+      q(5310) => q(osi),
+      q(5311) => q(oso),
+      q(5312) => q(osp),
+      q(5313) => q(ost),
+      q(5314) => q(osu),
+      q(5315) => q(osx),
+      q(5316) => q(otb),
+      q(5317) => q(otd),
+      q(5318) => q(ote),
+      q(5319) => q(oti),
+      q(5320) => q(otk),
+      q(5321) => q(otl),
+      q(5322) => q(otm),
+      q(5323) => q(otn),
+      q(5324) => q(otq),
+      q(5325) => q(otr),
+      q(5326) => q(ots),
+      q(5327) => q(ott),
+      q(5328) => q(otu),
+      q(5329) => q(otw),
+      q(5330) => q(otx),
+      q(5331) => q(oty),
+      q(5332) => q(otz),
+      q(5333) => q(oua),
+      q(5334) => q(oub),
+      q(5335) => q(oue),
+      q(5336) => q(oui),
+      q(5337) => q(oum),
+      q(5338) => q(owi),
+      q(5339) => q(owl),
+      q(5340) => q(oyb),
+      q(5341) => q(oyd),
+      q(5342) => q(oym),
+      q(5343) => q(oyy),
+      q(5344) => q(ozm),
+      q(5345) => q(pab),
+      q(5346) => q(pac),
+      q(5347) => q(pad),
+      q(5348) => q(pae),
+      q(5349) => q(paf),
+      q(5350) => q(pah),
+      q(5351) => q(pai),
+      q(5352) => q(pak),
+      q(5353) => q(pao),
+      q(5354) => q(paq),
+      q(5355) => q(par),
+      q(5356) => q(pas),
+      q(5357) => q(pat),
+      q(5358) => q(pav),
+      q(5359) => q(paw),
+      q(5360) => q(pax),
+      q(5361) => q(pay),
+      q(5362) => q(paz),
+      q(5363) => q(pbb),
+      q(5364) => q(pbc),
+      q(5365) => q(pbe),
+      q(5366) => q(pbf),
+      q(5367) => q(pbg),
+      q(5368) => q(pbh),
+      q(5369) => q(pbi),
+      q(5370) => q(pbl),
+      q(5371) => q(pbn),
+      q(5372) => q(pbo),
+      q(5373) => q(pbp),
+      q(5374) => q(pbr),
+      q(5375) => q(pbs),
+      q(5376) => q(pbt),
+      q(5377) => q(pbu),
+      q(5378) => q(pbv),
+      q(5379) => q(pby),
+      q(5380) => q(pca),
+      q(5381) => q(pcb),
+      q(5382) => q(pcc),
+      q(5383) => q(pcd),
+      q(5384) => q(pce),
+      q(5385) => q(pcf),
+      q(5386) => q(pcg),
+      q(5387) => q(pch),
+      q(5388) => q(pci),
+      q(5389) => q(pcj),
+      q(5390) => q(pck),
+      q(5391) => q(pcl),
+      q(5392) => q(pcm),
+      q(5393) => q(pcn),
+      q(5394) => q(pcp),
+      q(5395) => q(pcw),
+      q(5396) => q(pda),
+      q(5397) => q(pdc),
+      q(5398) => q(pdi),
+      q(5399) => q(pdn),
+      q(5400) => q(pdo),
+      q(5401) => q(pdt),
+      q(5402) => q(pdu),
+      q(5403) => q(pea),
+      q(5404) => q(peb),
+      q(5405) => q(ped),
+      q(5406) => q(pee),
+      q(5407) => q(pef),
+      q(5408) => q(peg),
+      q(5409) => q(peh),
+      q(5410) => q(pei),
+      q(5411) => q(pej),
+      q(5412) => q(pek),
+      q(5413) => q(pel),
+      q(5414) => q(pem),
+      q(5415) => q(pep),
+      q(5416) => q(peq),
+      q(5417) => q(pes),
+      q(5418) => q(pev),
+      q(5419) => q(pex),
+      q(5420) => q(pey),
+      q(5421) => q(pez),
+      q(5422) => q(pfa),
+      q(5423) => q(pfe),
+      q(5424) => q(pfl),
+      q(5425) => q(pga),
+      q(5426) => q(pgd),
+      q(5427) => q(pgg),
+      q(5428) => q(pgi),
+      q(5429) => q(pgk),
+      q(5430) => q(pgl),
+      q(5431) => q(pgn),
+      q(5432) => q(pgs),
+      q(5433) => q(pgu),
+      q(5434) => q(pha),
+      q(5435) => q(phd),
+      q(5436) => q(phg),
+      q(5437) => q(phh),
+      q(5438) => q(phk),
+      q(5439) => q(phl),
+      q(5440) => q(phm),
+      q(5441) => q(pho),
+      q(5442) => q(phq),
+      q(5443) => q(phr),
+      q(5444) => q(pht),
+      q(5445) => q(phu),
+      q(5446) => q(phv),
+      q(5447) => q(phw),
+      q(5448) => q(pia),
+      q(5449) => q(pib),
+      q(5450) => q(pic),
+      q(5451) => q(pid),
+      q(5452) => q(pie),
+      q(5453) => q(pif),
+      q(5454) => q(pig),
+      q(5455) => q(pih),
+      q(5456) => q(pii),
+      q(5457) => q(pij),
+      q(5458) => q(pil),
+      q(5459) => q(pim),
+      q(5460) => q(pin),
+      q(5461) => q(pio),
+      q(5462) => q(pip),
+      q(5463) => q(pir),
+      q(5464) => q(pis),
+      q(5465) => q(pit),
+      q(5466) => q(piu),
+      q(5467) => q(piv),
+      q(5468) => q(piw),
+      q(5469) => q(pix),
+      q(5470) => q(piy),
+      q(5471) => q(piz),
+      q(5472) => q(pjt),
+      q(5473) => q(pka),
+      q(5474) => q(pkb),
+      q(5475) => q(pkc),
+      q(5476) => q(pkg),
+      q(5477) => q(pkh),
+      q(5478) => q(pkn),
+      q(5479) => q(pko),
+      q(5480) => q(pkp),
+      q(5481) => q(pkr),
+      q(5482) => q(pks),
+      q(5483) => q(pkt),
+      q(5484) => q(pku),
+      q(5485) => q(pla),
+      q(5486) => q(plb),
+      q(5487) => q(plc),
+      q(5488) => q(pld),
+      q(5489) => q(ple),
+      q(5490) => q(plg),
+      q(5491) => q(plh),
+      q(5492) => q(plj),
+      q(5493) => q(plk),
+      q(5494) => q(pll),
+      q(5495) => q(pln),
+      q(5496) => q(plo),
+      q(5497) => q(plp),
+      q(5498) => q(plq),
+      q(5499) => q(plr),
+      q(5500) => q(pls),
+      q(5501) => q(plt),
+      q(5502) => q(plu),
+      q(5503) => q(plv),
+      q(5504) => q(plw),
+      q(5505) => q(ply),
+      q(5506) => q(plz),
+      q(5507) => q(pma),
+      q(5508) => q(pmb),
+      q(5509) => q(pmc),
+      q(5510) => q(pmd),
+      q(5511) => q(pme),
+      q(5512) => q(pmf),
+      q(5513) => q(pmh),
+      q(5514) => q(pmi),
+      q(5515) => q(pmj),
+      q(5516) => q(pmk),
+      q(5517) => q(pml),
+      q(5518) => q(pmm),
+      q(5519) => q(pmn),
+      q(5520) => q(pmo),
+      q(5521) => q(pmq),
+      q(5522) => q(pmr),
+      q(5523) => q(pms),
+      q(5524) => q(pmt),
+      q(5525) => q(pmw),
+      q(5526) => q(pmx),
+      q(5527) => q(pmy),
+      q(5528) => q(pmz),
+      q(5529) => q(pna),
+      q(5530) => q(pnb),
+      q(5531) => q(pnc),
+      q(5532) => q(pne),
+      q(5533) => q(png),
+      q(5534) => q(pnh),
+      q(5535) => q(pni),
+      q(5536) => q(pnj),
+      q(5537) => q(pnk),
+      q(5538) => q(pnl),
+      q(5539) => q(pnm),
+      q(5540) => q(pnn),
+      q(5541) => q(pno),
+      q(5542) => q(pnp),
+      q(5543) => q(pnq),
+      q(5544) => q(pnr),
+      q(5545) => q(pns),
+      q(5546) => q(pnt),
+      q(5547) => q(pnu),
+      q(5548) => q(pnv),
+      q(5549) => q(pnw),
+      q(5550) => q(pnx),
+      q(5551) => q(pny),
+      q(5552) => q(pnz),
+      q(5553) => q(poc),
+      q(5554) => q(pod),
+      q(5555) => q(poe),
+      q(5556) => q(pof),
+      q(5557) => q(pog),
+      q(5558) => q(poh),
+      q(5559) => q(poi),
+      q(5560) => q(pok),
+      q(5561) => q(pom),
+      q(5562) => q(poo),
+      q(5563) => q(pop),
+      q(5564) => q(poq),
+      q(5565) => q(pos),
+      q(5566) => q(pot),
+      q(5567) => q(pov),
+      q(5568) => q(pow),
+      q(5569) => q(pox),
+      q(5570) => q(poy),
+      q(5571) => q(ppa),
+      q(5572) => q(ppe),
+      q(5573) => q(ppi),
+      q(5574) => q(ppk),
+      q(5575) => q(ppl),
+      q(5576) => q(ppm),
+      q(5577) => q(ppn),
+      q(5578) => q(ppo),
+      q(5579) => q(ppp),
+      q(5580) => q(ppq),
+      q(5581) => q(pps),
+      q(5582) => q(ppt),
+      q(5583) => q(ppu),
+      q(5584) => q(pqa),
+      q(5585) => q(pqm),
+      q(5586) => q(prb),
+      q(5587) => q(prc),
+      q(5588) => q(prd),
+      q(5589) => q(pre),
+      q(5590) => q(prf),
+      q(5591) => q(prg),
+      q(5592) => q(prh),
+      q(5593) => q(pri),
+      q(5594) => q(prk),
+      q(5595) => q(prl),
+      q(5596) => q(prm),
+      q(5597) => q(prn),
+      q(5598) => q(prp),
+      q(5599) => q(prq),
+      q(5600) => q(prr),
+      q(5601) => q(prs),
+      q(5602) => q(prt),
+      q(5603) => q(pru),
+      q(5604) => q(prw),
+      q(5605) => q(prx),
+      q(5606) => q(pry),
+      q(5607) => q(prz),
+      q(5608) => q(psa),
+      q(5609) => q(psc),
+      q(5610) => q(psd),
+      q(5611) => q(pse),
+      q(5612) => q(psg),
+      q(5613) => q(psh),
+      q(5614) => q(psi),
+      q(5615) => q(psl),
+      q(5616) => q(psm),
+      q(5617) => q(psn),
+      q(5618) => q(pso),
+      q(5619) => q(psp),
+      q(5620) => q(psq),
+      q(5621) => q(psr),
+      q(5622) => q(pss),
+      q(5623) => q(pst),
+      q(5624) => q(psu),
+      q(5625) => q(psw),
+      q(5626) => q(psy),
+      q(5627) => q(pta),
+      q(5628) => q(pth),
+      q(5629) => q(pti),
+      q(5630) => q(ptn),
+      q(5631) => q(pto),
+      q(5632) => q(ptp),
+      q(5633) => q(ptq),
+      q(5634) => q(ptr),
+      q(5635) => q(ptt),
+      q(5636) => q(ptu),
+      q(5637) => q(ptv),
+      q(5638) => q(ptw),
+      q(5639) => q(pty),
+      q(5640) => q(pua),
+      q(5641) => q(pub),
+      q(5642) => q(puc),
+      q(5643) => q(pud),
+      q(5644) => q(pue),
+      q(5645) => q(puf),
+      q(5646) => q(pug),
+      q(5647) => q(pui),
+      q(5648) => q(puj),
+      q(5649) => q(puk),
+      q(5650) => q(pum),
+      q(5651) => q(puo),
+      q(5652) => q(pup),
+      q(5653) => q(puq),
+      q(5654) => q(pur),
+      q(5655) => q(put),
+      q(5656) => q(puu),
+      q(5657) => q(puw),
+      q(5658) => q(pux),
+      q(5659) => q(puy),
+      q(5660) => q(pwa),
+      q(5661) => q(pwb),
+      q(5662) => q(pwg),
+      q(5663) => q(pwi),
+      q(5664) => q(pwm),
+      q(5665) => q(pwn),
+      q(5666) => q(pwo),
+      q(5667) => q(pwr),
+      q(5668) => q(pww),
+      q(5669) => q(pxm),
+      q(5670) => q(pye),
+      q(5671) => q(pym),
+      q(5672) => q(pyn),
+      q(5673) => q(pys),
+      q(5674) => q(pyu),
+      q(5675) => q(pyx),
+      q(5676) => q(pyy),
+      q(5677) => q(pzn),
+      q(5678) => q(qua),
+      q(5679) => q(qub),
+      q(5680) => q(quc),
+      q(5681) => q(qud),
+      q(5682) => q(quf),
+      q(5683) => q(qug),
+      q(5684) => q(quh),
+      q(5685) => q(qui),
+      q(5686) => q(quk),
+      q(5687) => q(qul),
+      q(5688) => q(qum),
+      q(5689) => q(qun),
+      q(5690) => q(qup),
+      q(5691) => q(quq),
+      q(5692) => q(qur),
+      q(5693) => q(qus),
+      q(5694) => q(quv),
+      q(5695) => q(quw),
+      q(5696) => q(qux),
+      q(5697) => q(quy),
+      q(5698) => q(quz),
+      q(5699) => q(qva),
+      q(5700) => q(qvc),
+      q(5701) => q(qve),
+      q(5702) => q(qvh),
+      q(5703) => q(qvi),
+      q(5704) => q(qvj),
+      q(5705) => q(qvl),
+      q(5706) => q(qvm),
+      q(5707) => q(qvn),
+      q(5708) => q(qvo),
+      q(5709) => q(qvp),
+      q(5710) => q(qvs),
+      q(5711) => q(qvw),
+      q(5712) => q(qvy),
+      q(5713) => q(qvz),
+      q(5714) => q(qwa),
+      q(5715) => q(qwc),
+      q(5716) => q(qwh),
+      q(5717) => q(qwm),
+      q(5718) => q(qws),
+      q(5719) => q(qwt),
+      q(5720) => q(qxa),
+      q(5721) => q(qxc),
+      q(5722) => q(qxh),
+      q(5723) => q(qxl),
+      q(5724) => q(qxn),
+      q(5725) => q(qxo),
+      q(5726) => q(qxp),
+      q(5727) => q(qxq),
+      q(5728) => q(qxr),
+      q(5729) => q(qxs),
+      q(5730) => q(qxt),
+      q(5731) => q(qxu),
+      q(5732) => q(qxw),
+      q(5733) => q(qya),
+      q(5734) => q(qyp),
+      q(5735) => q(raa),
+      q(5736) => q(rab),
+      q(5737) => q(rac),
+      q(5738) => q(rad),
+      q(5739) => q(raf),
+      q(5740) => q(rag),
+      q(5741) => q(rah),
+      q(5742) => q(rai),
+      q(5743) => q(rak),
+      q(5744) => q(ral),
+      q(5745) => q(ram),
+      q(5746) => q(ran),
+      q(5747) => q(rao),
+      q(5748) => q(raq),
+      q(5749) => q(ras),
+      q(5750) => q(rat),
+      q(5751) => q(rau),
+      q(5752) => q(rav),
+      q(5753) => q(raw),
+      q(5754) => q(rax),
+      q(5755) => q(ray),
+      q(5756) => q(raz),
+      q(5757) => q(rbb),
+      q(5758) => q(rbk),
+      q(5759) => q(rbl),
+      q(5760) => q(rbp),
+      q(5761) => q(rcf),
+      q(5762) => q(rdb),
+      q(5763) => q(rea),
+      q(5764) => q(reb),
+      q(5765) => q(ree),
+      q(5766) => q(reg),
+      q(5767) => q(rei),
+      q(5768) => q(rej),
+      q(5769) => q(rel),
+      q(5770) => q(rem),
+      q(5771) => q(ren),
+      q(5772) => q(rer),
+      q(5773) => q(res),
+      q(5774) => q(ret),
+      q(5775) => q(rey),
+      q(5776) => q(rga),
+      q(5777) => q(rge),
+      q(5778) => q(rgk),
+      q(5779) => q(rgn),
+      q(5780) => q(rgr),
+      q(5781) => q(rgs),
+      q(5782) => q(rgu),
+      q(5783) => q(rhg),
+      q(5784) => q(rhp),
+      q(5785) => q(ria),
+      q(5786) => q(rie),
+      q(5787) => q(rif),
+      q(5788) => q(ril),
+      q(5789) => q(rim),
+      q(5790) => q(rin),
+      q(5791) => q(rir),
+      q(5792) => q(rit),
+      q(5793) => q(riu),
+      q(5794) => q(rjg),
+      q(5795) => q(rji),
+      q(5796) => q(rjs),
+      q(5797) => q(rka),
+      q(5798) => q(rkb),
+      q(5799) => q(rkh),
+      q(5800) => q(rki),
+      q(5801) => q(rkm),
+      q(5802) => q(rkt),
+      q(5803) => q(rkw),
+      q(5804) => q(rma),
+      q(5805) => q(rmb),
+      q(5806) => q(rmc),
+      q(5807) => q(rmd),
+      q(5808) => q(rme),
+      q(5809) => q(rmf),
+      q(5810) => q(rmg),
+      q(5811) => q(rmh),
+      q(5812) => q(rmi),
+      q(5813) => q(rmk),
+      q(5814) => q(rml),
+      q(5815) => q(rmm),
+      q(5816) => q(rmn),
+      q(5817) => q(rmo),
+      q(5818) => q(rmp),
+      q(5819) => q(rmq),
+      q(5820) => q(rms),
+      q(5821) => q(rmt),
+      q(5822) => q(rmu),
+      q(5823) => q(rmv),
+      q(5824) => q(rmw),
+      q(5825) => q(rmx),
+      q(5826) => q(rmy),
+      q(5827) => q(rmz),
+      q(5828) => q(rna),
+      q(5829) => q(rnd),
+      q(5830) => q(rng),
+      q(5831) => q(rnl),
+      q(5832) => q(rnn),
+      q(5833) => q(rnp),
+      q(5834) => q(rnr),
+      q(5835) => q(rnw),
+      q(5836) => q(rob),
+      q(5837) => q(roc),
+      q(5838) => q(rod),
+      q(5839) => q(roe),
+      q(5840) => q(rof),
+      q(5841) => q(rog),
+      q(5842) => q(rol),
+      q(5843) => q(roo),
+      q(5844) => q(rop),
+      q(5845) => q(ror),
+      q(5846) => q(rou),
+      q(5847) => q(row),
+      q(5848) => q(rpn),
+      q(5849) => q(rpt),
+      q(5850) => q(rri),
+      q(5851) => q(rro),
+      q(5852) => q(rrt),
+      q(5853) => q(rsb),
+      q(5854) => q(rsi),
+      q(5855) => q(rsl),
+      q(5856) => q(rtc),
+      q(5857) => q(rth),
+      q(5858) => q(rtm),
+      q(5859) => q(rts),
+      q(5860) => q(rtw),
+      q(5861) => q(rub),
+      q(5862) => q(ruc),
+      q(5863) => q(rue),
+      q(5864) => q(ruf),
+      q(5865) => q(rug),
+      q(5866) => q(ruh),
+      q(5867) => q(rui),
+      q(5868) => q(ruk),
+      q(5869) => q(ruo),
+      q(5870) => q(ruq),
+      q(5871) => q(rut),
+      q(5872) => q(ruu),
+      q(5873) => q(ruy),
+      q(5874) => q(ruz),
+      q(5875) => q(rwa),
+      q(5876) => q(rwk),
+      q(5877) => q(rwm),
+      q(5878) => q(rwo),
+      q(5879) => q(rwr),
+      q(5880) => q(rxd),
+      q(5881) => q(rxw),
+      q(5882) => q(ryn),
+      q(5883) => q(rys),
+      q(5884) => q(ryu),
+      q(5885) => q(saa),
+      q(5886) => q(sab),
+      q(5887) => q(sac),
+      q(5888) => q(sae),
+      q(5889) => q(saf),
+      q(5890) => q(saj),
+      q(5891) => q(sak),
+      q(5892) => q(sao),
+      q(5893) => q(saq),
+      q(5894) => q(sar),
+      q(5895) => q(sau),
+      q(5896) => q(sav),
+      q(5897) => q(saw),
+      q(5898) => q(sax),
+      q(5899) => q(say),
+      q(5900) => q(saz),
+      q(5901) => q(sba),
+      q(5902) => q(sbb),
+      q(5903) => q(sbc),
+      q(5904) => q(sbd),
+      q(5905) => q(slc),
+      q(5906) => q(sbf),
+      q(5907) => q(sbg),
+      q(5908) => q(sbh),
+      q(5909) => q(sbi),
+      q(5910) => q(sbj),
+      q(5911) => q(sbk),
+      q(5912) => q(sbl),
+      q(5913) => q(sbm),
+      q(5914) => q(sbn),
+      q(5915) => q(sbo),
+      q(5916) => q(sbp),
+      q(5917) => q(sbq),
+      q(5918) => q(sbr),
+      q(5919) => q(sbs),
+      q(5920) => q(sbt),
+      q(5921) => q(sbu),
+      q(5922) => q(sbv),
+      q(5923) => q(sbw),
+      q(5924) => q(sbx),
+      q(5925) => q(sby),
+      q(5926) => q(sbz),
+      q(5927) => q(scb),
+      q(5928) => q(sce),
+      q(5929) => q(scf),
+      q(5930) => q(scg),
+      q(5931) => q(sch),
+      q(5932) => q(sci),
+      q(5933) => q(sck),
+      q(5934) => q(scl),
+      q(5935) => q(scp),
+      q(5936) => q(scq),
+      q(5937) => q(scs),
+      q(5938) => q(scu),
+      q(5939) => q(scv),
+      q(5940) => q(scw),
+      q(5941) => q(scx),
+      q(5942) => q(sda),
+      q(5943) => q(sdb),
+      q(5944) => q(sdc),
+      q(5945) => q(sde),
+      q(5946) => q(sdf),
+      q(5947) => q(sdg),
+      q(5948) => q(sdh),
+      q(5949) => q(sdj),
+      q(5950) => q(sdk),
+      q(5951) => q(sdl),
+      q(5952) => q(sdm),
+      q(5953) => q(sdn),
+      q(5954) => q(sdo),
+      q(5955) => q(sdp),
+      q(5956) => q(sdr),
+      q(5957) => q(sds),
+      q(5958) => q(sdt),
+      q(5959) => q(sdu),
+      q(5960) => q(sdx),
+      q(5961) => q(sdz),
+      q(5962) => q(sea),
+      q(5963) => q(seb),
+      q(5964) => q(sec),
+      q(5965) => q(sed),
+      q(5966) => q(see),
+      q(5967) => q(sef),
+      q(5968) => q(seg),
+      q(5969) => q(seh),
+      q(5970) => q(sei),
+      q(5971) => q(sej),
+      q(5972) => q(sek),
+      q(5973) => q(sen),
+      q(5974) => q(seo),
+      q(5975) => q(sep),
+      q(5976) => q(seq),
+      q(5977) => q(ser),
+      q(5978) => q(ses),
+      q(5979) => q(set),
+      q(5980) => q(seu),
+      q(5981) => q(sev),
+      q(5982) => q(sew),
+      q(5983) => q(sey),
+      q(5984) => q(sez),
+      q(5985) => q(sfb),
+      q(5986) => q(sfe),
+      q(5987) => q(sfm),
+      q(5988) => q(sfs),
+      q(5989) => q(sfw),
+      q(5990) => q(sgb),
+      q(5991) => q(sgc),
+      q(5992) => q(sgd),
+      q(5993) => q(sge),
+      q(5994) => q(sgg),
+      q(5995) => q(sgh),
+      q(5996) => q(sgi),
+      q(5997) => q(sgj),
+      q(5998) => q(sgk),
+      q(5999) => q(sgm),
+      q(6000) => q(sgp),
+      q(6001) => q(sgr),
+      q(6002) => q(sgs),
+      q(6003) => q(sgt),
+      q(6004) => q(sgu),
+      q(6005) => q(sgw),
+      q(6006) => q(sgx),
+      q(6007) => q(sgy),
+      q(6008) => q(sgz),
+      q(6009) => q(sha),
+      q(6010) => q(shb),
+      q(6011) => q(shc),
+      q(6012) => q(shd),
+      q(6013) => q(she),
+      q(6014) => q(shg),
+      q(6015) => q(shh),
+      q(6016) => q(shi),
+      q(6017) => q(shj),
+      q(6018) => q(shk),
+      q(6019) => q(shl),
+      q(6020) => q(shm),
+      q(6021) => q(sho),
+      q(6022) => q(shp),
+      q(6023) => q(shq),
+      q(6024) => q(shr),
+      q(6025) => q(shs),
+      q(6026) => q(sht),
+      q(6027) => q(shu),
+      q(6028) => q(shv),
+      q(6029) => q(shw),
+      q(6030) => q(shx),
+      q(6031) => q(shy),
+      q(6032) => q(shz),
+      q(6033) => q(sia),
+      q(6034) => q(sib),
+      q(6035) => q(sie),
+      q(6036) => q(sif),
+      q(6037) => q(sig),
+      q(6038) => q(sih),
+      q(6039) => q(sii),
+      q(6040) => q(sij),
+      q(6041) => q(sik),
+      q(6042) => q(sil),
+      q(6043) => q(sim),
+      q(6044) => q(sip),
+      q(6045) => q(siq),
+      q(6046) => q(sir),
+      q(6047) => q(sis),
+      q(6048) => q(siu),
+      q(6049) => q(siv),
+      q(6050) => q(siw),
+      q(6051) => q(six),
+      q(6052) => q(siy),
+      q(6053) => q(siz),
+      q(6054) => q(sja),
+      q(6055) => q(sjb),
+      q(6056) => q(sjd),
+      q(6057) => q(sje),
+      q(6058) => q(sjg),
+      q(6059) => q(sjk),
+      q(6060) => q(sjl),
+      q(6061) => q(sjm),
+      q(6062) => q(sjn),
+      q(6063) => q(sjo),
+      q(6064) => q(sjp),
+      q(6065) => q(sjr),
+      q(6066) => q(sjs),
+      q(6067) => q(sjt),
+      q(6068) => q(sju),
+      q(6069) => q(sjw),
+      q(6070) => q(ska),
+      q(6071) => q(skb),
+      q(6072) => q(skc),
+      q(6073) => q(skd),
+      q(6074) => q(ske),
+      q(6075) => q(skf),
+      q(6076) => q(skg),
+      q(6077) => q(skh),
+      q(6078) => q(ski),
+      q(6079) => q(skj),
+      q(6080) => q(skk),
+      q(6081) => q(skm),
+      q(6082) => q(skn),
+      q(6083) => q(sko),
+      q(6084) => q(skp),
+      q(6085) => q(skq),
+      q(6086) => q(skr),
+      q(6087) => q(sks),
+      q(6088) => q(skt),
+      q(6089) => q(sku),
+      q(6090) => q(skv),
+      q(6091) => q(skw),
+      q(6092) => q(skx),
+      q(6093) => q(sky),
+      q(6094) => q(skz),
+      q(6095) => q(sld),
+      q(6096) => q(sle),
+      q(6097) => q(slf),
+      q(6098) => q(slg),
+      q(6099) => q(slh),
+      q(6100) => q(sli),
+      q(6101) => q(slj),
+      q(6102) => q(sll),
+      q(6103) => q(slm),
+      q(6104) => q(sln),
+      q(6105) => q(slp),
+      q(6106) => q(slq),
+      q(6107) => q(slr),
+      q(6108) => q(sls),
+      q(6109) => q(slt),
+      q(6110) => q(slu),
+      q(6111) => q(slw),
+      q(6112) => q(slx),
+      q(6113) => q(sly),
+      q(6114) => q(slz),
+      q(6115) => q(smb),
+      q(6116) => q(smc),
+      q(6117) => q(smd),
+      q(6118) => q(smf),
+      q(6119) => q(smg),
+      q(6120) => q(smh),
+      q(6121) => q(smk),
+      q(6122) => q(sml),
+      q(6123) => q(smm),
+      q(6124) => q(smp),
+      q(6125) => q(smq),
+      q(6126) => q(smr),
+      q(6127) => q(smt),
+      q(6128) => q(smu),
+      q(6129) => q(smv),
+      q(6130) => q(smw),
+      q(6131) => q(smx),
+      q(6132) => q(smy),
+      q(6133) => q(smz),
+      q(6134) => q(snb),
+      q(6135) => q(snc),
+      q(6136) => q(sne),
+      q(6137) => q(snf),
+      q(6138) => q(sng),
+      q(6139) => q(snh),
+      q(6140) => q(sni),
+      q(6141) => q(snj),
+      q(6142) => q(snl),
+      q(6143) => q(snm),
+      q(6144) => q(snn),
+      q(6145) => q(sno),
+      q(6146) => q(snp),
+      q(6147) => q(snq),
+      q(6148) => q(snr),
+      q(6149) => q(sns),
+      q(6150) => q(snu),
+      q(6151) => q(snv),
+      q(6152) => q(snw),
+      q(6153) => q(snx),
+      q(6154) => q(sny),
+      q(6155) => q(snz),
+      q(6156) => q(soa),
+      q(6157) => q(sob),
+      q(6158) => q(soc),
+      q(6159) => q(sod),
+      q(6160) => q(soe),
+      q(6161) => q(soh),
+      q(6162) => q(soi),
+      q(6163) => q(soj),
+      q(6164) => q(sok),
+      q(6165) => q(sol),
+      q(6166) => q(soo),
+      q(6167) => q(sop),
+      q(6168) => q(soq),
+      q(6169) => q(sor),
+      q(6170) => q(sos),
+      q(6171) => q(sou),
+      q(6172) => q(sov),
+      q(6173) => q(sow),
+      q(6174) => q(sox),
+      q(6175) => q(soy),
+      q(6176) => q(soz),
+      q(6177) => q(spb),
+      q(6178) => q(spc),
+      q(6179) => q(spd),
+      q(6180) => q(spe),
+      q(6181) => q(spg),
+      q(6182) => q(spi),
+      q(6183) => q(spk),
+      q(6184) => q(spl),
+      q(6185) => q(spm),
+      q(6186) => q(spn),
+      q(6187) => q(spo),
+      q(6188) => q(spp),
+      q(6189) => q(spq),
+      q(6190) => q(spr),
+      q(6191) => q(sps),
+      q(6192) => q(spt),
+      q(6193) => q(spu),
+      q(6194) => q(spv),
+      q(6195) => q(spx),
+      q(6196) => q(spy),
+      q(6197) => q(sqa),
+      q(6198) => q(sqh),
+      q(6199) => q(sqk),
+      q(6200) => q(sqm),
+      q(6201) => q(sqn),
+      q(6202) => q(sqo),
+      q(6203) => q(sqq),
+      q(6204) => q(sqr),
+      q(6205) => q(sqs),
+      q(6206) => q(sqt),
+      q(6207) => q(squ),
+      q(6208) => q(sra),
+      q(6209) => q(srb),
+      q(6210) => q(src),
+      q(6211) => q(sre),
+      q(6212) => q(srf),
+      q(6213) => q(srg),
+      q(6214) => q(srh),
+      q(6215) => q(sri),
+      q(6216) => q(srk),
+      q(6217) => q(srl),
+      q(6218) => q(srm),
+      q(6219) => q(sro),
+      q(6220) => q(srq),
+      q(6221) => q(srs),
+      q(6222) => q(srt),
+      q(6223) => q(sru),
+      q(6224) => q(srv),
+      q(6225) => q(srw),
+      q(6226) => q(srx),
+      q(6227) => q(sry),
+      q(6228) => q(srz),
+      q(6229) => q(ssb),
+      q(6230) => q(ssc),
+      q(6231) => q(ssd),
+      q(6232) => q(sse),
+      q(6233) => q(ssf),
+      q(6234) => q(ssg),
+      q(6235) => q(ssh),
+      q(6236) => q(ssi),
+      q(6237) => q(ssj),
+      q(6238) => q(ssk),
+      q(6239) => q(ssl),
+      q(6240) => q(ssm),
+      q(6241) => q(ssn),
+      q(6242) => q(sso),
+      q(6243) => q(ssp),
+      q(6244) => q(ssq),
+      q(6245) => q(ssr),
+      q(6246) => q(sss),
+      q(6247) => q(sst),
+      q(6248) => q(ssu),
+      q(6249) => q(ssv),
+      q(6250) => q(ssx),
+      q(6251) => q(ssy),
+      q(6252) => q(ssz),
+      q(6253) => q(sta),
+      q(6254) => q(stb),
+      q(6255) => q(std),
+      q(6256) => q(ste),
+      q(6257) => q(stf),
+      q(6258) => q(stg),
+      q(6259) => q(sth),
+      q(6260) => q(sti),
+      q(6261) => q(stj),
+      q(6262) => q(stk),
+      q(6263) => q(stl),
+      q(6264) => q(stm),
+      q(6265) => q(stn),
+      q(6266) => q(sto),
+      q(6267) => q(stp),
+      q(6268) => q(stq),
+      q(6269) => q(str),
+      q(6270) => q(sts),
+      q(6271) => q(stt),
+      q(6272) => q(stu),
+      q(6273) => q(stv),
+      q(6274) => q(stw),
+      q(6275) => q(sty),
+      q(6276) => q(sua),
+      q(6277) => q(sub),
+      q(6278) => q(suc),
+      q(6279) => q(sue),
+      q(6280) => q(sug),
+      q(6281) => q(sui),
+      q(6282) => q(suj),
+      q(6283) => q(suq),
+      q(6284) => q(sur),
+      q(6285) => q(sut),
+      q(6286) => q(suv),
+      q(6287) => q(suw),
+      q(6288) => q(suy),
+      q(6289) => q(suz),
+      q(6290) => q(sva),
+      q(6291) => q(svb),
+      q(6292) => q(svc),
+      q(6293) => q(sve),
+      q(6294) => q(svk),
+      q(6295) => q(svm),
+      q(6296) => q(svr),
+      q(6297) => q(svs),
+      q(6298) => q(svx),
+      q(6299) => q(swb),
+      q(6300) => q(swc),
+      q(6301) => q(swf),
+      q(6302) => q(swg),
+      q(6303) => q(swh),
+      q(6304) => q(swi),
+      q(6305) => q(swj),
+      q(6306) => q(swk),
+      q(6307) => q(swl),
+      q(6308) => q(swm),
+      q(6309) => q(swn),
+      q(6310) => q(swo),
+      q(6311) => q(swp),
+      q(6312) => q(swq),
+      q(6313) => q(swr),
+      q(6314) => q(sws),
+      q(6315) => q(swt),
+      q(6316) => q(swu),
+      q(6317) => q(swv),
+      q(6318) => q(sww),
+      q(6319) => q(swx),
+      q(6320) => q(swy),
+      q(6321) => q(sxb),
+      q(6322) => q(sxc),
+      q(6323) => q(sxe),
+      q(6324) => q(sxg),
+      q(6325) => q(sxk),
+      q(6326) => q(sxl),
+      q(6327) => q(sxm),
+      q(6328) => q(sxn),
+      q(6329) => q(sxo),
+      q(6330) => q(sxr),
+      q(6331) => q(sxs),
+      q(6332) => q(sxu),
+      q(6333) => q(sxw),
+      q(6334) => q(sya),
+      q(6335) => q(syb),
+      q(6336) => q(syi),
+      q(6337) => q(syk),
+      q(6338) => q(syl),
+      q(6339) => q(sym),
+      q(6340) => q(syn),
+      q(6341) => q(syo),
+      q(6342) => q(sys),
+      q(6343) => q(syw),
+      q(6344) => q(syx),
+      q(6345) => q(syy),
+      q(6346) => q(sza),
+      q(6347) => q(szb),
+      q(6348) => q(szc),
+      q(6349) => q(szd),
+      q(6350) => q(sze),
+      q(6351) => q(szg),
+      q(6352) => q(szl),
+      q(6353) => q(szn),
+      q(6354) => q(szp),
+      q(6355) => q(szv),
+      q(6356) => q(szw),
+      q(6357) => q(taa),
+      q(6358) => q(tab),
+      q(6359) => q(tac),
+      q(6360) => q(tad),
+      q(6361) => q(tae),
+      q(6362) => q(taf),
+      q(6363) => q(tag),
+      q(6364) => q(taj),
+      q(6365) => q(tak),
+      q(6366) => q(tal),
+      q(6367) => q(tan),
+      q(6368) => q(tao),
+      q(6369) => q(tap),
+      q(6370) => q(taq),
+      q(6371) => q(tar),
+      q(6372) => q(tas),
+      q(6373) => q(tau),
+      q(6374) => q(tav),
+      q(6375) => q(taw),
+      q(6376) => q(tax),
+      q(6377) => q(tay),
+      q(6378) => q(taz),
+      q(6379) => q(tba),
+      q(6380) => q(tbb),
+      q(6381) => q(tbc),
+      q(6382) => q(tbd),
+      q(6383) => q(tbe),
+      q(6384) => q(tbf),
+      q(6385) => q(tbg),
+      q(6386) => q(tbh),
+      q(6387) => q(tbi),
+      q(6388) => q(tbj),
+      q(6389) => q(tbk),
+      q(6390) => q(tbl),
+      q(6391) => q(tbm),
+      q(6392) => q(tbn),
+      q(6393) => q(tbo),
+      q(6394) => q(tbp),
+      q(6395) => q(tbr),
+      q(6396) => q(tbs),
+      q(6397) => q(tbt),
+      q(6398) => q(tbu),
+      q(6399) => q(tbv),
+      q(6400) => q(tbw),
+      q(6401) => q(tbx),
+      q(6402) => q(tby),
+      q(6403) => q(tbz),
+      q(6404) => q(tca),
+      q(6405) => q(tcb),
+      q(6406) => q(tcc),
+      q(6407) => q(tcd),
+      q(6408) => q(tce),
+      q(6409) => q(tcf),
+      q(6410) => q(tcg),
+      q(6411) => q(tch),
+      q(6412) => q(wbf),
+      q(6413) => q(tck),
+      q(6414) => q(tcl),
+      q(6415) => q(tcm),
+      q(6416) => q(tcn),
+      q(6417) => q(tco),
+      q(6418) => q(tcp),
+      q(6419) => q(tcq),
+      q(6420) => q(tcs),
+      q(6421) => q(tct),
+      q(6422) => q(tcu),
+      q(6423) => q(tcw),
+      q(6424) => q(tcx),
+      q(6425) => q(tcy),
+      q(6426) => q(tcz),
+      q(6427) => q(tda),
+      q(6428) => q(tdb),
+      q(6429) => q(tdc),
+      q(6430) => q(tdd),
+      q(6431) => q(tde),
+      q(6432) => q(tdf),
+      q(6433) => q(tdg),
+      q(6434) => q(tdh),
+      q(6435) => q(tdi),
+      q(6436) => q(tdj),
+      q(6437) => q(tdk),
+      q(6438) => q(tdl),
+      q(6439) => q(tdn),
+      q(6440) => q(tdo),
+      q(6441) => q(tdq),
+      q(6442) => q(tdr),
+      q(6443) => q(tds),
+      q(6444) => q(tdt),
+      q(6445) => q(tdu),
+      q(6446) => q(tdv),
+      q(6447) => q(tdx),
+      q(6448) => q(tdy),
+      q(6449) => q(tea),
+      q(6450) => q(teb),
+      q(6451) => q(tec),
+      q(6452) => q(ted),
+      q(6453) => q(tee),
+      q(6454) => q(tef),
+      q(6455) => q(teg),
+      q(6456) => q(teh),
+      q(6457) => q(tei),
+      q(6458) => q(tek),
+      q(6459) => q(ten),
+      q(6460) => q(teo),
+      q(6461) => q(tep),
+      q(6462) => q(teq),
+      q(6463) => q(tes),
+      q(6464) => q(teu),
+      q(6465) => q(tev),
+      q(6466) => q(tew),
+      q(6467) => q(tex),
+      q(6468) => q(tey),
+      q(6469) => q(tfi),
+      q(6470) => q(tfn),
+      q(6471) => q(tfo),
+      q(6472) => q(tfr),
+      q(6473) => q(tft),
+      q(6474) => q(tga),
+      q(6475) => q(tgb),
+      q(6476) => q(tgc),
+      q(6477) => q(tgd),
+      q(6478) => q(tge),
+      q(6479) => q(tgf),
+      q(6480) => q(tgh),
+      q(6481) => q(tgi),
+      q(6482) => q(tgj),
+      q(6483) => q(tgn),
+      q(6484) => q(tgo),
+      q(6485) => q(tgp),
+      q(6486) => q(tgq),
+      q(6487) => q(tgr),
+      q(6488) => q(tgs),
+      q(6489) => q(tgt),
+      q(6490) => q(tgu),
+      q(6491) => q(tgv),
+      q(6492) => q(tgw),
+      q(6493) => q(tgx),
+      q(6494) => q(tgy),
+      q(6495) => q(tgz),
+      q(6496) => q(thc),
+      q(6497) => q(thd),
+      q(6498) => q(the),
+      q(6499) => q(thf),
+      q(6500) => q(thh),
+      q(6501) => q(thi),
+      q(6502) => q(thk),
+      q(6503) => q(thl),
+      q(6504) => q(thm),
+      q(6505) => q(thn),
+      q(6506) => q(thp),
+      q(6507) => q(thq),
+      q(6508) => q(thr),
+      q(6509) => q(ths),
+      q(6510) => q(tht),
+      q(6511) => q(thu),
+      q(6512) => q(thv),
+      q(6513) => q(thw),
+      q(6514) => q(thy),
+      q(6515) => q(thz),
+      q(6516) => q(tia),
+      q(6517) => q(tic),
+      q(6518) => q(tid),
+      q(6519) => q(tif),
+      q(6520) => q(tih),
+      q(6521) => q(tii),
+      q(6522) => q(tij),
+      q(6523) => q(tik),
+      q(6524) => q(til),
+      q(6525) => q(tim),
+      q(6526) => q(tin),
+      q(6527) => q(tio),
+      q(6528) => q(tip),
+      q(6529) => q(tiq),
+      q(6530) => q(tis),
+      q(6531) => q(tit),
+      q(6532) => q(tiu),
+      q(6533) => q(tiw),
+      q(6534) => q(tix),
+      q(6535) => q(tiy),
+      q(6536) => q(tiz),
+      q(6537) => q(tja),
+      q(6538) => q(tjg),
+      q(6539) => q(tji),
+      q(6540) => q(tjl),
+      q(6541) => q(tjm),
+      q(6542) => q(tjn),
+      q(6543) => q(tjo),
+      q(6544) => q(tjs),
+      q(6545) => q(tju),
+      q(6546) => q(tjw),
+      q(6547) => q(tka),
+      q(6548) => q(tkb),
+      q(6549) => q(tkd),
+      q(6550) => q(tke),
+      q(6551) => q(tkf),
+      q(6552) => q(tkg),
+      q(6553) => q(tkm),
+      q(6554) => q(tkn),
+      q(6555) => q(tkp),
+      q(6556) => q(tkq),
+      q(6557) => q(tkr),
+      q(6558) => q(tks),
+      q(6559) => q(tkt),
+      q(6560) => q(tku),
+      q(6561) => q(tkv),
+      q(6562) => q(tkw),
+      q(6563) => q(tkx),
+      q(6564) => q(tkz),
+      q(6565) => q(tla),
+      q(6566) => q(tlb),
+      q(6567) => q(tlc),
+      q(6568) => q(tld),
+      q(6569) => q(tlf),
+      q(6570) => q(tlg),
+      q(6571) => q(tlj),
+      q(6572) => q(tlk),
+      q(6573) => q(tll),
+      q(6574) => q(tlm),
+      q(6575) => q(tln),
+      q(6576) => q(tlo),
+      q(6577) => q(tlp),
+      q(6578) => q(tlq),
+      q(6579) => q(tlr),
+      q(6580) => q(tls),
+      q(6581) => q(tlt),
+      q(6582) => q(tlu),
+      q(6583) => q(tlv),
+      q(6584) => q(tlx),
+      q(6585) => q(tly),
+      q(6586) => q(tma),
+      q(6587) => q(tmb),
+      q(6588) => q(tmc),
+      q(6589) => q(tmd),
+      q(6590) => q(tme),
+      q(6591) => q(tmf),
+      q(6592) => q(tmg),
+      q(6593) => q(tmi),
+      q(6594) => q(tmj),
+      q(6595) => q(tmk),
+      q(6596) => q(tml),
+      q(6597) => q(tmm),
+      q(6598) => q(tmn),
+      q(6599) => q(tmo),
+      q(6600) => q(tmp),
+      q(6601) => q(tmq),
+      q(6602) => q(tmr),
+      q(6603) => q(tms),
+      q(6604) => q(tmt),
+      q(6605) => q(tmu),
+      q(6606) => q(tmv),
+      q(6607) => q(tmw),
+      q(6608) => q(tmy),
+      q(6609) => q(tmz),
+      q(6610) => q(tna),
+      q(6611) => q(tnb),
+      q(6612) => q(tnc),
+      q(6613) => q(tnd),
+      q(6614) => q(tne),
+      q(6615) => q(tng),
+      q(6616) => q(tnh),
+      q(6617) => q(tni),
+      q(6618) => q(tnk),
+      q(6619) => q(tnl),
+      q(6620) => q(tnm),
+      q(6621) => q(tnn),
+      q(6622) => q(tno),
+      q(6623) => q(tnp),
+      q(6624) => q(tnq),
+      q(6625) => q(tnr),
+      q(6626) => q(tns),
+      q(6627) => q(tnt),
+      q(6628) => q(tnu),
+      q(6629) => q(tnv),
+      q(6630) => q(tnw),
+      q(6631) => q(tnx),
+      q(6632) => q(tny),
+      q(6633) => q(tnz),
+      q(6634) => q(tob),
+      q(6635) => q(toc),
+      q(6636) => q(tod),
+      q(6637) => q(toe),
+      q(6638) => q(tof),
+      q(6639) => q(toh),
+      q(6640) => q(toi),
+      q(6641) => q(toj),
+      q(6642) => q(tol),
+      q(6643) => q(tom),
+      q(6644) => q(too),
+      q(6645) => q(top),
+      q(6646) => q(toq),
+      q(6647) => q(tor),
+      q(6648) => q(tos),
+      q(6649) => q(tou),
+      q(6650) => q(tov),
+      q(6651) => q(tow),
+      q(6652) => q(tox),
+      q(6653) => q(toy),
+      q(6654) => q(toz),
+      q(6655) => q(tpa),
+      q(6656) => q(tpc),
+      q(6657) => q(tpe),
+      q(6658) => q(tpf),
+      q(6659) => q(tpg),
+      q(6660) => q(tpj),
+      q(6661) => q(tpk),
+      q(6662) => q(tpl),
+      q(6663) => q(tpm),
+      q(6664) => q(tpn),
+      q(6665) => q(tpo),
+      q(6666) => q(tpp),
+      q(6667) => q(tpq),
+      q(6668) => q(tpr),
+      q(6669) => q(tpt),
+      q(6670) => q(tpu),
+      q(6671) => q(tpv),
+      q(6672) => q(tpw),
+      q(6673) => q(tpx),
+      q(6674) => q(tpy),
+      q(6675) => q(tpz),
+      q(6676) => q(tqb),
+      q(6677) => q(tql),
+      q(6678) => q(tqm),
+      q(6679) => q(tqn),
+      q(6680) => q(tqo),
+      q(6681) => q(tqp),
+      q(6682) => q(tqq),
+      q(6683) => q(tqr),
+      q(6684) => q(tqt),
+      q(6685) => q(tqu),
+      q(6686) => q(tqw),
+      q(6687) => q(tra),
+      q(6688) => q(trb),
+      q(6689) => q(trc),
+      q(6690) => q(trd),
+      q(6691) => q(tre),
+      q(6692) => q(trf),
+      q(6693) => q(trg),
+      q(6694) => q(trh),
+      q(6695) => q(tri),
+      q(6696) => q(trj),
+      q(6697) => q(trl),
+      q(6698) => q(trm),
+      q(6699) => q(trn),
+      q(6700) => q(tro),
+      q(6701) => q(trp),
+      q(6702) => q(trq),
+      q(6703) => q(trr),
+      q(6704) => q(trs),
+      q(6705) => q(trt),
+      q(6706) => q(tru),
+      q(6707) => q(trv),
+      q(6708) => q(trw),
+      q(6709) => q(trx),
+      q(6710) => q(try),
+      q(6711) => q(trz),
+      q(6712) => q(tsa),
+      q(6713) => q(tsb),
+      q(6714) => q(tsc),
+      q(6715) => q(tsd),
+      q(6716) => q(tse),
+      q(6717) => q(tsg),
+      q(6718) => q(tsh),
+      q(6719) => q(tsj),
+      q(6720) => q(tsk),
+      q(6721) => q(tsl),
+      q(6722) => q(tsm),
+      q(6723) => q(tsp),
+      q(6724) => q(tsq),
+      q(6725) => q(tsr),
+      q(6726) => q(tss),
+      q(6727) => q(tst),
+      q(6728) => q(tsu),
+      q(6729) => q(tsv),
+      q(6730) => q(tsw),
+      q(6731) => q(tsx),
+      q(6732) => q(tsy),
+      q(6733) => q(tsz),
+      q(6734) => q(tta),
+      q(6735) => q(ttb),
+      q(6736) => q(ttc),
+      q(6737) => q(ttd),
+      q(6738) => q(tte),
+      q(6739) => q(ttf),
+      q(6740) => q(ttg),
+      q(6741) => q(tth),
+      q(6742) => q(tti),
+      q(6743) => q(ttj),
+      q(6744) => q(ttk),
+      q(6745) => q(ttl),
+      q(6746) => q(ttm),
+      q(6747) => q(ttn),
+      q(6748) => q(tto),
+      q(6749) => q(ttp),
+      q(6750) => q(ttq),
+      q(6751) => q(ttr),
+      q(6752) => q(tts),
+      q(6753) => q(ttt),
+      q(6754) => q(ttu),
+      q(6755) => q(ttv),
+      q(6756) => q(ttw),
+      q(6757) => q(tty),
+      q(6758) => q(ttz),
+      q(6759) => q(tua),
+      q(6760) => q(tub),
+      q(6761) => q(tuc),
+      q(6762) => q(tud),
+      q(6763) => q(tue),
+      q(6764) => q(tuf),
+      q(6765) => q(tug),
+      q(6766) => q(tuh),
+      q(6767) => q(tui),
+      q(6768) => q(tuj),
+      q(6769) => q(tul),
+      q(6770) => q(tun),
+      q(6771) => q(tuo),
+      q(6772) => q(tuq),
+      q(6773) => q(tus),
+      q(6774) => q(tuu),
+      q(6775) => q(tuv),
+      q(6776) => q(tux),
+      q(6777) => q(tuy),
+      q(6778) => q(tuz),
+      q(6779) => q(tva),
+      q(6780) => q(tvd),
+      q(6781) => q(tve),
+      q(6782) => q(tvk),
+      q(6783) => q(tvm),
+      q(6784) => q(tvn),
+      q(6785) => q(tvo),
+      q(6786) => q(tvs),
+      q(6787) => q(tvt),
+      q(6788) => q(tvu),
+      q(6789) => q(tvw),
+      q(6790) => q(tvy),
+      q(6791) => q(twa),
+      q(6792) => q(twb),
+      q(6793) => q(twc),
+      q(6794) => q(twd),
+      q(6795) => q(twe),
+      q(6796) => q(twf),
+      q(6797) => q(twg),
+      q(6798) => q(twh),
+      q(6799) => q(twl),
+      q(6800) => q(twm),
+      q(6801) => q(twn),
+      q(6802) => q(two),
+      q(6803) => q(twp),
+      q(6804) => q(twq),
+      q(6805) => q(twr),
+      q(6806) => q(twt),
+      q(6807) => q(twu),
+      q(6808) => q(tww),
+      q(6809) => q(twx),
+      q(6810) => q(twy),
+      q(6811) => q(txa),
+      q(6812) => q(txb),
+      q(6813) => q(txc),
+      q(6814) => q(txe),
+      q(6815) => q(txg),
+      q(6816) => q(txh),
+      q(6817) => q(txi),
+      q(6818) => q(txj),
+      q(6819) => q(txm),
+      q(6820) => q(txn),
+      q(6821) => q(txo),
+      q(6822) => q(txq),
+      q(6823) => q(txr),
+      q(6824) => q(txs),
+      q(6825) => q(txt),
+      q(6826) => q(txu),
+      q(6827) => q(txx),
+      q(6828) => q(txy),
+      q(6829) => q(tya),
+      q(6830) => q(tye),
+      q(6831) => q(tyh),
+      q(6832) => q(tyi),
+      q(6833) => q(tyj),
+      q(6834) => q(tyl),
+      q(6835) => q(tyn),
+      q(6836) => q(typ),
+      q(6837) => q(tyr),
+      q(6838) => q(tys),
+      q(6839) => q(tyt),
+      q(6840) => q(tyu),
+      q(6841) => q(tyx),
+      q(6842) => q(tyz),
+      q(6843) => q(tza),
+      q(6844) => q(tzh),
+      q(6845) => q(tzj),
+      q(6846) => q(tzl),
+      q(6847) => q(tzm),
+      q(6848) => q(tzn),
+      q(6849) => q(tzo),
+      q(6850) => q(tzx),
+      q(6851) => q(uam),
+      q(6852) => q(uan),
+      q(6853) => q(uar),
+      q(6854) => q(uba),
+      q(6855) => q(ubi),
+      q(6856) => q(ubl),
+      q(6857) => q(ubr),
+      q(6858) => q(ubu),
+      q(6859) => q(uby),
+      q(6860) => q(uda),
+      q(6861) => q(ude),
+      q(6862) => q(udg),
+      q(6863) => q(udi),
+      q(6864) => q(udj),
+      q(6865) => q(udl),
+      q(6866) => q(udu),
+      q(6867) => q(ues),
+      q(6868) => q(ufi),
+      q(6869) => q(ugb),
+      q(6870) => q(uge),
+      q(6871) => q(ugn),
+      q(6872) => q(ugo),
+      q(6873) => q(ugy),
+      q(6874) => q(uha),
+      q(6875) => q(uhn),
+      q(6876) => q(uis),
+      q(6877) => q(uiv),
+      q(6878) => q(uji),
+      q(6879) => q(uka),
+      q(6880) => q(ukg),
+      q(6881) => q(ukh),
+      q(6882) => q(ukl),
+      q(6883) => q(ukp),
+      q(6884) => q(ukq),
+      q(6885) => q(uks),
+      q(6886) => q(uku),
+      q(6887) => q(ukw),
+      q(6888) => q(uky),
+      q(6889) => q(ula),
+      q(6890) => q(ulb),
+      q(6891) => q(ulc),
+      q(6892) => q(ule),
+      q(6893) => q(ulf),
+      q(6894) => q(uli),
+      q(6895) => q(ulk),
+      q(6896) => q(ull),
+      q(6897) => q(ulm),
+      q(6898) => q(uln),
+      q(6899) => q(ulu),
+      q(6900) => q(ulw),
+      q(6901) => q(uma),
+      q(6902) => q(umc),
+      q(6903) => q(umd),
+      q(6904) => q(umg),
+      q(6905) => q(umi),
+      q(6906) => q(umm),
+      q(6907) => q(umn),
+      q(6908) => q(umo),
+      q(6909) => q(ump),
+      q(6910) => q(umr),
+      q(6911) => q(ums),
+      q(6912) => q(umu),
+      q(6913) => q(una),
+      q(6914) => q(une),
+      q(6915) => q(ung),
+      q(6916) => q(unk),
+      q(6917) => q(unm),
+      q(6918) => q(unn),
+      q(6919) => q(unr),
+      q(6920) => q(unu),
+      q(6921) => q(unx),
+      q(6922) => q(unz),
+      q(6923) => q(upi),
+      q(6924) => q(upv),
+      q(6925) => q(ura),
+      q(6926) => q(urb),
+      q(6927) => q(urc),
+      q(6928) => q(ure),
+      q(6929) => q(urf),
+      q(6930) => q(urg),
+      q(6931) => q(urh),
+      q(6932) => q(uri),
+      q(6933) => q(urk),
+      q(6934) => q(url),
+      q(6935) => q(urm),
+      q(6936) => q(urn),
+      q(6937) => q(uro),
+      q(6938) => q(urp),
+      q(6939) => q(urr),
+      q(6940) => q(urt),
+      q(6941) => q(uru),
+      q(6942) => q(urv),
+      q(6943) => q(urw),
+      q(6944) => q(urx),
+      q(6945) => q(ury),
+      q(6946) => q(urz),
+      q(6947) => q(usa),
+      q(6948) => q(ush),
+      q(6949) => q(usi),
+      q(6950) => q(usk),
+      q(6951) => q(usp),
+      q(6952) => q(usu),
+      q(6953) => q(uta),
+      q(6954) => q(ute),
+      q(6955) => q(utp),
+      q(6956) => q(utr),
+      q(6957) => q(utu),
+      q(6958) => q(uum),
+      q(6959) => q(uun),
+      q(6960) => q(uur),
+      q(6961) => q(uuu),
+      q(6962) => q(uve),
+      q(6963) => q(uvh),
+      q(6964) => q(uvl),
+      q(6965) => q(uwa),
+      q(6966) => q(uya),
+      q(6967) => q(uzn),
+      q(6968) => q(uzs),
+      q(6969) => q(vaa),
+      q(6970) => q(vae),
+      q(6971) => q(vaf),
+      q(6972) => q(vag),
+      q(6973) => q(vah),
+      q(6974) => q(vaj),
+      q(6975) => q(val),
+      q(6976) => q(vam),
+      q(6977) => q(van),
+      q(6978) => q(vao),
+      q(6979) => q(vap),
+      q(6980) => q(var),
+      q(6981) => q(vas),
+      q(6982) => q(vau),
+      q(6983) => q(vav),
+      q(6984) => q(vay),
+      q(6985) => q(vbb),
+      q(6986) => q(vbk),
+      q(6987) => q(vec),
+      q(6988) => q(ved),
+      q(6989) => q(vel),
+      q(6990) => q(vem),
+      q(6991) => q(veo),
+      q(6992) => q(vep),
+      q(6993) => q(ver),
+      q(6994) => q(vgr),
+      q(6995) => q(vgt),
+      q(6996) => q(vic),
+      q(6997) => q(vid),
+      q(6998) => q(vif),
+      q(6999) => q(vig),
+      q(7000) => q(vil),
+      q(7001) => q(vin),
+      q(7002) => q(vis),
+      q(7003) => q(vit),
+      q(7004) => q(viv),
+      q(7005) => q(vka),
+      q(7006) => q(vki),
+      q(7007) => q(vkj),
+      q(7008) => q(vkk),
+      q(7009) => q(vkl),
+      q(7010) => q(vkm),
+      q(7011) => q(vko),
+      q(7012) => q(vkp),
+      q(7013) => q(vkt),
+      q(7014) => q(vku),
+      q(7015) => q(vlp),
+      q(7016) => q(vls),
+      q(7017) => q(vma),
+      q(7018) => q(vmb),
+      q(7019) => q(vmc),
+      q(7020) => q(vmd),
+      q(7021) => q(vme),
+      q(7022) => q(vmf),
+      q(7023) => q(vmg),
+      q(7024) => q(vmh),
+      q(7025) => q(vmi),
+      q(7026) => q(vmj),
+      q(7027) => q(vmk),
+      q(7028) => q(vml),
+      q(7029) => q(vmm),
+      q(7030) => q(vmp),
+      q(7031) => q(vmq),
+      q(7032) => q(vmr),
+      q(7033) => q(vms),
+      q(7034) => q(vmu),
+      q(7035) => q(vmv),
+      q(7036) => q(vmw),
+      q(7037) => q(vmx),
+      q(7038) => q(vmy),
+      q(7039) => q(vmz),
+      q(7040) => q(vnk),
+      q(7041) => q(vnm),
+      q(7042) => q(vnp),
+      q(7043) => q(vro),
+      q(7044) => q(vra),
+      q(7045) => q(vrs),
+      q(7046) => q(vrt),
+      q(7047) => q(vsi),
+      q(7048) => q(vsl),
+      q(7049) => q(vsv),
+      q(7050) => q(vto),
+      q(7051) => q(vum),
+      q(7052) => q(vun),
+      q(7053) => q(vut),
+      q(7054) => q(vwa),
+      q(7055) => q(waa),
+      q(7056) => q(wab),
+      q(7057) => q(wac),
+      q(7058) => q(wad),
+      q(7059) => q(wae),
+      q(7060) => q(waf),
+      q(7061) => q(wag),
+      q(7062) => q(wah),
+      q(7063) => q(wai),
+      q(7064) => q(waj),
+      q(7065) => q(wam),
+      q(7066) => q(wan),
+      q(7067) => q(wao),
+      q(7068) => q(wap),
+      q(7069) => q(waq),
+      q(7070) => q(wat),
+      q(7071) => q(wau),
+      q(7072) => q(wav),
+      q(7073) => q(waw),
+      q(7074) => q(wax),
+      q(7075) => q(way),
+      q(7076) => q(waz),
+      q(7077) => q(wba),
+      q(7078) => q(wbb),
+      q(7079) => q(wbe),
+      q(7080) => q(wbh),
+      q(7081) => q(wbi),
+      q(7082) => q(wbj),
+      q(7083) => q(wbk),
+      q(7084) => q(wbl),
+      q(7085) => q(wbm),
+      q(7086) => q(wbp),
+      q(7087) => q(wbq),
+      q(7088) => q(wbr),
+      q(7089) => q(wbt),
+      q(7090) => q(wbv),
+      q(7091) => q(wbw),
+      q(7092) => q(wca),
+      q(7093) => q(wci),
+      q(7094) => q(wdd),
+      q(7095) => q(wdg),
+      q(7096) => q(wdj),
+      q(7097) => q(wdk),
+      q(7098) => q(wdu),
+      q(7099) => q(wdy),
+      q(7100) => q(wea),
+      q(7101) => q(wec),
+      q(7102) => q(wed),
+      q(7103) => q(weg),
+      q(7104) => q(weh),
+      q(7105) => q(wei),
+      q(7106) => q(wem),
+      q(7107) => q(weo),
+      q(7108) => q(wep),
+      q(7109) => q(wer),
+      q(7110) => q(wes),
+      q(7111) => q(wet),
+      q(7112) => q(weu),
+      q(7113) => q(wew),
+      q(7114) => q(wfg),
+      q(7115) => q(wga),
+      q(7116) => q(wgb),
+      q(7117) => q(wgg),
+      q(7118) => q(wgi),
+      q(7119) => q(wgo),
+      q(7120) => q(wgu),
+      q(7121) => q(wgy),
+      q(7122) => q(wha),
+      q(7123) => q(whg),
+      q(7124) => q(whk),
+      q(7125) => q(whu),
+      q(7126) => q(wib),
+      q(7127) => q(wic),
+      q(7128) => q(wie),
+      q(7129) => q(wif),
+      q(7130) => q(wig),
+      q(7131) => q(wih),
+      q(7132) => q(wii),
+      q(7133) => q(wij),
+      q(7134) => q(wik),
+      q(7135) => q(wil),
+      q(7136) => q(wim),
+      q(7137) => q(win),
+      q(7138) => q(wir),
+      q(7139) => q(wiu),
+      q(7140) => q(wiv),
+      q(7141) => q(wiy),
+      q(7142) => q(wja),
+      q(7143) => q(wji),
+      q(7144) => q(wka),
+      q(7145) => q(wkb),
+      q(7146) => q(wkd),
+      q(7147) => q(wkl),
+      q(7148) => q(wku),
+      q(7149) => q(wkw),
+      q(7150) => q(wky),
+      q(7151) => q(wla),
+      q(7152) => q(wlc),
+      q(7153) => q(wle),
+      q(7154) => q(wlg),
+      q(7155) => q(wli),
+      q(7156) => q(wlk),
+      q(7157) => q(wll),
+      q(7158) => q(wlm),
+      q(7159) => q(wlo),
+      q(7160) => q(wlr),
+      q(7161) => q(wls),
+      q(7162) => q(wlu),
+      q(7163) => q(wlv),
+      q(7164) => q(wlw),
+      q(7165) => q(wlx),
+      q(7166) => q(wly),
+      q(7167) => q(wma),
+      q(7168) => q(wmb),
+      q(7169) => q(wmc),
+      q(7170) => q(wmd),
+      q(7171) => q(wme),
+      q(7172) => q(wmh),
+      q(7173) => q(wmi),
+      q(7174) => q(wmm),
+      q(7175) => q(wmn),
+      q(7176) => q(wmo),
+      q(7177) => q(wms),
+      q(7178) => q(wmt),
+      q(7179) => q(wmw),
+      q(7180) => q(wmx),
+      q(7181) => q(wnb),
+      q(7182) => q(wnc),
+      q(7183) => q(wnd),
+      q(7184) => q(wne),
+      q(7185) => q(wng),
+      q(7186) => q(wni),
+      q(7187) => q(wnk),
+      q(7188) => q(wnm),
+      q(7189) => q(wnn),
+      q(7190) => q(wno),
+      q(7191) => q(wnp),
+      q(7192) => q(wnu),
+      q(7193) => q(wnw),
+      q(7194) => q(wny),
+      q(7195) => q(woa),
+      q(7196) => q(wob),
+      q(7197) => q(woc),
+      q(7198) => q(wod),
+      q(7199) => q(woe),
+      q(7200) => q(wof),
+      q(7201) => q(wog),
+      q(7202) => q(woi),
+      q(7203) => q(wok),
+      q(7204) => q(wom),
+      q(7205) => q(won),
+      q(7206) => q(woo),
+      q(7207) => q(wor),
+      q(7208) => q(wos),
+      q(7209) => q(wow),
+      q(7210) => q(woy),
+      q(7211) => q(wpc),
+      q(7212) => q(wra),
+      q(7213) => q(wrb),
+      q(7214) => q(wrd),
+      q(7215) => q(wrg),
+      q(7216) => q(wrh),
+      q(7217) => q(wri),
+      q(7218) => q(wrk),
+      q(7219) => q(wrl),
+      q(7220) => q(wrm),
+      q(7221) => q(wrn),
+      q(7222) => q(wro),
+      q(7223) => q(wrp),
+      q(7224) => q(wrr),
+      q(7225) => q(wrs),
+      q(7226) => q(wru),
+      q(7227) => q(wrv),
+      q(7228) => q(wrw),
+      q(7229) => q(wrx),
+      q(7230) => q(wry),
+      q(7231) => q(wrz),
+      q(7232) => q(wsa),
+      q(7233) => q(wsi),
+      q(7234) => q(wsk),
+      q(7235) => q(wsr),
+      q(7236) => q(wss),
+      q(7237) => q(wsu),
+      q(7238) => q(wsv),
+      q(7239) => q(wtf),
+      q(7240) => q(wth),
+      q(7241) => q(wti),
+      q(7242) => q(wtk),
+      q(7243) => q(wtm),
+      q(7244) => q(wtw),
+      q(7245) => q(wua),
+      q(7246) => q(wub),
+      q(7247) => q(wud),
+      q(7248) => q(wuh),
+      q(7249) => q(wul),
+      q(7250) => q(wum),
+      q(7251) => q(wun),
+      q(7252) => q(wur),
+      q(7253) => q(wut),
+      q(7254) => q(wuu),
+      q(7255) => q(wuv),
+      q(7256) => q(wux),
+      q(7257) => q(wuy),
+      q(7258) => q(wwa),
+      q(7259) => q(wwb),
+      q(7260) => q(wwo),
+      q(7261) => q(wwr),
+      q(7262) => q(www),
+      q(7263) => q(wxa),
+      q(7264) => q(wxw),
+      q(7265) => q(wya),
+      q(7266) => q(wyb),
+      q(7267) => q(wyi),
+      q(7268) => q(wym),
+      q(7269) => q(wyr),
+      q(7270) => q(wyy),
+      q(7271) => q(xaa),
+      q(7272) => q(xab),
+      q(7273) => q(xac),
+      q(7274) => q(xad),
+      q(7275) => q(xae),
+      q(7276) => q(xag),
+      q(7277) => q(xai),
+      q(7278) => q(xaj),
+      q(7279) => q(xam),
+      q(7280) => q(xan),
+      q(7281) => q(xao),
+      q(7282) => q(xap),
+      q(7283) => q(xaq),
+      q(7284) => q(xar),
+      q(7285) => q(xas),
+      q(7286) => q(xat),
+      q(7287) => q(xau),
+      q(7288) => q(xav),
+      q(7289) => q(xaw),
+      q(7290) => q(xay),
+      q(7291) => q(xba),
+      q(7292) => q(xbb),
+      q(7293) => q(xbc),
+      q(7294) => q(xbd),
+      q(7295) => q(xbe),
+      q(7296) => q(xbg),
+      q(7297) => q(xbi),
+      q(7298) => q(xbj),
+      q(7299) => q(xbm),
+      q(7300) => q(xbn),
+      q(7301) => q(xbo),
+      q(7302) => q(xbp),
+      q(7303) => q(xbr),
+      q(7304) => q(xbw),
+      q(7305) => q(xbx),
+      q(7306) => q(xby),
+      q(7307) => q(xcb),
+      q(7308) => q(xcc),
+      q(7309) => q(xce),
+      q(7310) => q(xcg),
+      q(7311) => q(xch),
+      q(7312) => q(xcl),
+      q(7313) => q(xcm),
+      q(7314) => q(xcn),
+      q(7315) => q(xco),
+      q(7316) => q(xcr),
+      q(7317) => q(xct),
+      q(7318) => q(xcu),
+      q(7319) => q(xcv),
+      q(7320) => q(xcw),
+      q(7321) => q(xcy),
+      q(7322) => q(xda),
+      q(7323) => q(xdc),
+      q(7324) => q(xdk),
+      q(7325) => q(xdm),
+      q(7326) => q(xdy),
+      q(7327) => q(xeb),
+      q(7328) => q(xed),
+      q(7329) => q(xeg),
+      q(7330) => q(xel),
+      q(7331) => q(xem),
+      q(7332) => q(xep),
+      q(7333) => q(xer),
+      q(7334) => q(xes),
+      q(7335) => q(xet),
+      q(7336) => q(xeu),
+      q(7337) => q(xfa),
+      q(7338) => q(xga),
+      q(7339) => q(xgb),
+      q(7340) => q(xgd),
+      q(7341) => q(xgf),
+      q(7342) => q(xgg),
+      q(7343) => q(xgi),
+      q(7344) => q(xgl),
+      q(7345) => q(xgm),
+      q(7346) => q(xgr),
+      q(7347) => q(xgu),
+      q(7348) => q(xgw),
+      q(7349) => q(xha),
+      q(7350) => q(xhc),
+      q(7351) => q(xhd),
+      q(7352) => q(xhe),
+      q(7353) => q(xhr),
+      q(7354) => q(xht),
+      q(7355) => q(xhu),
+      q(7356) => q(xhv),
+      q(7357) => q(xib),
+      q(7358) => q(xii),
+      q(7359) => q(xil),
+      q(7360) => q(xin),
+      q(7361) => q(xip),
+      q(7362) => q(xir),
+      q(7363) => q(xis),
+      q(7364) => q(xiv),
+      q(7365) => q(xiy),
+      q(7366) => q(xjb),
+      q(7367) => q(xjt),
+      q(7368) => q(xka),
+      q(7369) => q(xkb),
+      q(7370) => q(xkc),
+      q(7371) => q(xkd),
+      q(7372) => q(xke),
+      q(7373) => q(xkf),
+      q(7374) => q(xkg),
+      q(7375) => q(xkh),
+      q(7376) => q(xki),
+      q(7377) => q(xkj),
+      q(7378) => q(xkk),
+      q(7379) => q(xkl),
+      q(7380) => q(xkn),
+      q(7381) => q(xko),
+      q(7382) => q(xkp),
+      q(7383) => q(xkq),
+      q(7384) => q(xkr),
+      q(7385) => q(xks),
+      q(7386) => q(xkt),
+      q(7387) => q(xku),
+      q(7388) => q(xkv),
+      q(7389) => q(xkw),
+      q(7390) => q(xkx),
+      q(7391) => q(xky),
+      q(7392) => q(xkz),
+      q(7393) => q(xla),
+      q(7394) => q(xlb),
+      q(7395) => q(xlc),
+      q(7396) => q(xld),
+      q(7397) => q(xle),
+      q(7398) => q(xlg),
+      q(7399) => q(xli),
+      q(7400) => q(xln),
+      q(7401) => q(xlo),
+      q(7402) => q(xlp),
+      q(7403) => q(xls),
+      q(7404) => q(xlu),
+      q(7405) => q(xly),
+      q(7406) => q(xma),
+      q(7407) => q(xmb),
+      q(7408) => q(xmc),
+      q(7409) => q(xmd),
+      q(7410) => q(xme),
+      q(7411) => q(xmf),
+      q(7412) => q(xmg),
+      q(7413) => q(xmh),
+      q(7414) => q(xmj),
+      q(7415) => q(xmk),
+      q(7416) => q(xml),
+      q(7417) => q(xmm),
+      q(7418) => q(xmn),
+      q(7419) => q(xmo),
+      q(7420) => q(xmp),
+      q(7421) => q(xmq),
+      q(7422) => q(xmr),
+      q(7423) => q(xms),
+      q(7424) => q(xmt),
+      q(7425) => q(xmu),
+      q(7426) => q(xmv),
+      q(7427) => q(xmw),
+      q(7428) => q(xmx),
+      q(7429) => q(xmy),
+      q(7430) => q(xmz),
+      q(7431) => q(xna),
+      q(7432) => q(xnb),
+      q(7433) => q(xng),
+      q(7434) => q(xnh),
+      q(7435) => q(xni),
+      q(7436) => q(xnk),
+      q(7437) => q(xnn),
+      q(7438) => q(xno),
+      q(7439) => q(xnr),
+      q(7440) => q(xns),
+      q(7441) => q(xnt),
+      q(7442) => q(xnu),
+      q(7443) => q(xny),
+      q(7444) => q(xnz),
+      q(7445) => q(xoc),
+      q(7446) => q(xod),
+      q(7447) => q(xog),
+      q(7448) => q(xoi),
+      q(7449) => q(xok),
+      q(7450) => q(xom),
+      q(7451) => q(xon),
+      q(7452) => q(xoo),
+      q(7453) => q(xop),
+      q(7454) => q(xor),
+      q(7455) => q(xow),
+      q(7456) => q(xpa),
+      q(7457) => q(xpc),
+      q(7458) => q(xpe),
+      q(7459) => q(xpg),
+      q(7460) => q(xpi),
+      q(7461) => q(xpj),
+      q(7462) => q(xpk),
+      q(7463) => q(xpm),
+      q(7464) => q(xpn),
+      q(7465) => q(xpo),
+      q(7466) => q(xpp),
+      q(7467) => q(xpq),
+      q(7468) => q(xpr),
+      q(7469) => q(xps),
+      q(7470) => q(xpt),
+      q(7471) => q(xpu),
+      q(7472) => q(xpy),
+      q(7473) => q(xqa),
+      q(7474) => q(xqt),
+      q(7475) => q(xra),
+      q(7476) => q(xrb),
+      q(7477) => q(xrd),
+      q(7478) => q(xre),
+      q(7479) => q(xrg),
+      q(7480) => q(xri),
+      q(7481) => q(xrm),
+      q(7482) => q(xrn),
+      q(7483) => q(xrq),
+      q(7484) => q(xrr),
+      q(7485) => q(xrt),
+      q(7486) => q(xru),
+      q(7487) => q(xrw),
+      q(7488) => q(xsa),
+      q(7489) => q(xsb),
+      q(7490) => q(xsc),
+      q(7491) => q(xsd),
+      q(7492) => q(xse),
+      q(7493) => q(xsh),
+      q(7494) => q(xsi),
+      q(7495) => q(xsl),
+      q(7496) => q(xsm),
+      q(7497) => q(xsn),
+      q(7498) => q(xso),
+      q(7499) => q(xsp),
+      q(7500) => q(xsq),
+      q(7501) => q(xsr),
+      q(7502) => q(xss),
+      q(7503) => q(xsu),
+      q(7504) => q(xsv),
+      q(7505) => q(xsy),
+      q(7506) => q(xta),
+      q(7507) => q(xtb),
+      q(7508) => q(xtc),
+      q(7509) => q(xtd),
+      q(7510) => q(xte),
+      q(7511) => q(xtg),
+      q(7512) => q(xth),
+      q(7513) => q(xti),
+      q(7514) => q(xtj),
+      q(7515) => q(xtl),
+      q(7516) => q(xtm),
+      q(7517) => q(xtn),
+      q(7518) => q(xto),
+      q(7519) => q(xtp),
+      q(7520) => q(xtq),
+      q(7521) => q(xtr),
+      q(7522) => q(xts),
+      q(7523) => q(xtt),
+      q(7524) => q(xtu),
+      q(7525) => q(xtv),
+      q(7526) => q(xtw),
+      q(7527) => q(xty),
+      q(7528) => q(xtz),
+      q(7529) => q(xua),
+      q(7530) => q(xub),
+      q(7531) => q(xud),
+      q(7532) => q(xug),
+      q(7533) => q(xuj),
+      q(7534) => q(xul),
+      q(7535) => q(xum),
+      q(7536) => q(xun),
+      q(7537) => q(xuo),
+      q(7538) => q(xup),
+      q(7539) => q(xur),
+      q(7540) => q(xut),
+      q(7541) => q(xuu),
+      q(7542) => q(xve),
+      q(7543) => q(xvi),
+      q(7544) => q(xvn),
+      q(7545) => q(xvo),
+      q(7546) => q(xvs),
+      q(7547) => q(xwa),
+      q(7548) => q(xwc),
+      q(7549) => q(xwd),
+      q(7550) => q(xwe),
+      q(7551) => q(xwg),
+      q(7552) => q(xwj),
+      q(7553) => q(xwk),
+      q(7554) => q(xwl),
+      q(7555) => q(xwo),
+      q(7556) => q(xwr),
+      q(7557) => q(xwt),
+      q(7558) => q(xww),
+      q(7559) => q(xxb),
+      q(7560) => q(xxk),
+      q(7561) => q(xxm),
+      q(7562) => q(xxr),
+      q(7563) => q(xxt),
+      q(7564) => q(xya),
+      q(7565) => q(xyb),
+      q(7566) => q(xyj),
+      q(7567) => q(xyk),
+      q(7568) => q(xyl),
+      q(7569) => q(xyt),
+      q(7570) => q(xyy),
+      q(7571) => q(xzh),
+      q(7572) => q(xzm),
+      q(7573) => q(xzp),
+      q(7574) => q(yaa),
+      q(7575) => q(yab),
+      q(7576) => q(yac),
+      q(7577) => q(yad),
+      q(7578) => q(yae),
+      q(7579) => q(yaf),
+      q(7580) => q(yag),
+      q(7581) => q(yah),
+      q(7582) => q(yai),
+      q(7583) => q(yaj),
+      q(7584) => q(yak),
+      q(7585) => q(yal),
+      q(7586) => q(yam),
+      q(7587) => q(yan),
+      q(7588) => q(yaq),
+      q(7589) => q(yar),
+      q(7590) => q(yas),
+      q(7591) => q(yat),
+      q(7592) => q(yau),
+      q(7593) => q(yav),
+      q(7594) => q(yaw),
+      q(7595) => q(yax),
+      q(7596) => q(yay),
+      q(7597) => q(yaz),
+      q(7598) => q(yba),
+      q(7599) => q(ybb),
+      q(7600) => q(ybe),
+      q(7601) => q(ybh),
+      q(7602) => q(ybi),
+      q(7603) => q(ybj),
+      q(7604) => q(ybk),
+      q(7605) => q(ybl),
+      q(7606) => q(ybm),
+      q(7607) => q(ybn),
+      q(7608) => q(ybo),
+      q(7609) => q(ybx),
+      q(7610) => q(yby),
+      q(7611) => q(ych),
+      q(7612) => q(ycl),
+      q(7613) => q(ycn),
+      q(7614) => q(ycp),
+      q(7615) => q(yda),
+      q(7616) => q(ydd),
+      q(7617) => q(yde),
+      q(7618) => q(ydg),
+      q(7619) => q(ydk),
+      q(7620) => q(yea),
+      q(7621) => q(yec),
+      q(7622) => q(yee),
+      q(7623) => q(yei),
+      q(7624) => q(yej),
+      q(7625) => q(yel),
+      q(7626) => q(yer),
+      q(7627) => q(yes),
+      q(7628) => q(yet),
+      q(7629) => q(yeu),
+      q(7630) => q(yev),
+      q(7631) => q(yey),
+      q(7632) => q(yga),
+      q(7633) => q(ygi),
+      q(7634) => q(ygl),
+      q(7635) => q(ygm),
+      q(7636) => q(ygp),
+      q(7637) => q(ygr),
+      q(7638) => q(ygs),
+      q(7639) => q(ygu),
+      q(7640) => q(ygw),
+      q(7641) => q(yha),
+      q(7642) => q(yhd),
+      q(7643) => q(yhl),
+      q(7644) => q(yia),
+      q(7645) => q(yig),
+      q(7646) => q(yih),
+      q(7647) => q(yii),
+      q(7648) => q(yij),
+      q(7649) => q(yik),
+      q(7650) => q(yil),
+      q(7651) => q(yim),
+      q(7652) => q(yin),
+      q(7653) => q(yip),
+      q(7654) => q(yiq),
+      q(7655) => q(yir),
+      q(7656) => q(yis),
+      q(7657) => q(yit),
+      q(7658) => q(yiu),
+      q(7659) => q(yiv),
+      q(7660) => q(yix),
+      q(7661) => q(yiz),
+      q(7662) => q(yka),
+      q(7663) => q(ykg),
+      q(7664) => q(yki),
+      q(7665) => q(ykk),
+      q(7666) => q(ykl),
+      q(7667) => q(ykm),
+      q(7668) => q(ykn),
+      q(7669) => q(yko),
+      q(7670) => q(ykr),
+      q(7671) => q(ykt),
+      q(7672) => q(yku),
+      q(7673) => q(yky),
+      q(7674) => q(yla),
+      q(7675) => q(ylb),
+      q(7676) => q(yle),
+      q(7677) => q(ylg),
+      q(7678) => q(yli),
+      q(7679) => q(yll),
+      q(7680) => q(ylm),
+      q(7681) => q(yln),
+      q(7682) => q(ylo),
+      q(7683) => q(ylr),
+      q(7684) => q(ylu),
+      q(7685) => q(yly),
+      q(7686) => q(ymb),
+      q(7687) => q(ymc),
+      q(7688) => q(ymd),
+      q(7689) => q(yme),
+      q(7690) => q(ymg),
+      q(7691) => q(ymh),
+      q(7692) => q(ymi),
+      q(7693) => q(ymk),
+      q(7694) => q(yml),
+      q(7695) => q(ymm),
+      q(7696) => q(ymn),
+      q(7697) => q(ymo),
+      q(7698) => q(ymp),
+      q(7699) => q(ymq),
+      q(7700) => q(ymr),
+      q(7701) => q(yms),
+      q(7702) => q(ymx),
+      q(7703) => q(ymz),
+      q(7704) => q(yna),
+      q(7705) => q(ynd),
+      q(7706) => q(yne),
+      q(7707) => q(yng),
+      q(7708) => q(ynk),
+      q(7709) => q(ynl),
+      q(7710) => q(ynn),
+      q(7711) => q(yno),
+      q(7712) => q(ynq),
+      q(7713) => q(yns),
+      q(7714) => q(ynu),
+      q(7715) => q(yob),
+      q(7716) => q(yog),
+      q(7717) => q(yoi),
+      q(7718) => q(yok),
+      q(7719) => q(yol),
+      q(7720) => q(yom),
+      q(7721) => q(yon),
+      q(7722) => q(yot),
+      q(7723) => q(yox),
+      q(7724) => q(yoy),
+      q(7725) => q(ypa),
+      q(7726) => q(ypb),
+      q(7727) => q(ypg),
+      q(7728) => q(yph),
+      q(7729) => q(ypm),
+      q(7730) => q(ypn),
+      q(7731) => q(ypo),
+      q(7732) => q(ypp),
+      q(7733) => q(ypz),
+      q(7734) => q(yra),
+      q(7735) => q(yrb),
+      q(7736) => q(yre),
+      q(7737) => q(yri),
+      q(7738) => q(yrk),
+      q(7739) => q(yrl),
+      q(7740) => q(yrm),
+      q(7741) => q(yrn),
+      q(7742) => q(yrs),
+      q(7743) => q(yrw),
+      q(7744) => q(yry),
+      q(7745) => q(ysc),
+      q(7746) => q(ysd),
+      q(7747) => q(ysg),
+      q(7748) => q(ysl),
+      q(7749) => q(ysn),
+      q(7750) => q(yso),
+      q(7751) => q(ysp),
+      q(7752) => q(ysr),
+      q(7753) => q(yss),
+      q(7754) => q(ysy),
+      q(7755) => q(yta),
+      q(7756) => q(ytl),
+      q(7757) => q(ytp),
+      q(7758) => q(ytw),
+      q(7759) => q(yty),
+      q(7760) => q(yua),
+      q(7761) => q(yub),
+      q(7762) => q(yuc),
+      q(7763) => q(yud),
+      q(7764) => q(yue),
+      q(7765) => q(yuf),
+      q(7766) => q(yug),
+      q(7767) => q(yui),
+      q(7768) => q(yuj),
+      q(7769) => q(yuk),
+      q(7770) => q(yul),
+      q(7771) => q(yum),
+      q(7772) => q(yun),
+      q(7773) => q(yup),
+      q(7774) => q(yuq),
+      q(7775) => q(yur),
+      q(7776) => q(yut),
+      q(7777) => q(yuw),
+      q(7778) => q(yux),
+      q(7779) => q(yuy),
+      q(7780) => q(yuz),
+      q(7781) => q(yva),
+      q(7782) => q(yvt),
+      q(7783) => q(ywa),
+      q(7784) => q(ywg),
+      q(7785) => q(ywl),
+      q(7786) => q(ywn),
+      q(7787) => q(ywq),
+      q(7788) => q(ywr),
+      q(7789) => q(ywt),
+      q(7790) => q(ywu),
+      q(7791) => q(yww),
+      q(7792) => q(yxa),
+      q(7793) => q(yxg),
+      q(7794) => q(yxl),
+      q(7795) => q(yxm),
+      q(7796) => q(yxu),
+      q(7797) => q(yxy),
+      q(7798) => q(yyr),
+      q(7799) => q(yyu),
+      q(7800) => q(yyz),
+      q(7801) => q(yzg),
+      q(7802) => q(yzk),
+      q(7803) => q(zaa),
+      q(7804) => q(zab),
+      q(7805) => q(zac),
+      q(7806) => q(zad),
+      q(7807) => q(zae),
+      q(7808) => q(zaf),
+      q(7809) => q(zag),
+      q(7810) => q(zah),
+      q(7811) => q(zai),
+      q(7812) => q(zaj),
+      q(7813) => q(zak),
+      q(7814) => q(zal),
+      q(7815) => q(zam),
+      q(7816) => q(zao),
+      q(7817) => q(zaq),
+      q(7818) => q(zar),
+      q(7819) => q(zas),
+      q(7820) => q(zat),
+      q(7821) => q(zau),
+      q(7822) => q(zav),
+      q(7823) => q(zaw),
+      q(7824) => q(zax),
+      q(7825) => q(zay),
+      q(7826) => q(zaz),
+      q(7827) => q(zbc),
+      q(7828) => q(zbe),
+      q(7829) => q(zbt),
+      q(7830) => q(zbw),
+      q(7831) => q(zca),
+      q(7832) => q(zch),
+      q(7833) => q(zdj),
+      q(7834) => q(zea),
+      q(7835) => q(zeg),
+      q(7836) => q(zeh),
+      q(7837) => q(zga),
+      q(7838) => q(zgb),
+      q(7839) => q(zgm),
+      q(7840) => q(zgn),
+      q(7841) => q(zgr),
+      q(7842) => q(zhb),
+      q(7843) => q(zhd),
+      q(7844) => q(zhi),
+      q(7845) => q(zhn),
+      q(7846) => q(zhw),
+      q(7847) => q(zia),
+      q(7848) => q(zib),
+      q(7849) => q(zik),
+      q(7850) => q(zil),
+      q(7851) => q(zim),
+      q(7852) => q(zin),
+      q(7853) => q(zir),
+      q(7854) => q(ziw),
+      q(7855) => q(ziz),
+      q(7856) => q(zka),
+      q(7857) => q(zkb),
+      q(7858) => q(zkd),
+      q(7859) => q(zkg),
+      q(7860) => q(zkh),
+      q(7861) => q(zkk),
+      q(7862) => q(zkn),
+      q(7863) => q(zko),
+      q(7864) => q(zkp),
+      q(7865) => q(zkr),
+      q(7866) => q(zkt),
+      q(7867) => q(zku),
+      q(7868) => q(zkv),
+      q(7869) => q(zkz),
+      q(7870) => q(zlj),
+      q(7871) => q(zlm),
+      q(7872) => q(zln),
+      q(7873) => q(zlq),
+      q(7874) => q(zma),
+      q(7875) => q(zmb),
+      q(7876) => q(zmc),
+      q(7877) => q(zmd),
+      q(7878) => q(zme),
+      q(7879) => q(zmf),
+      q(7880) => q(zmg),
+      q(7881) => q(zmh),
+      q(7882) => q(zmi),
+      q(7883) => q(zmj),
+      q(7884) => q(zmk),
+      q(7885) => q(zml),
+      q(7886) => q(zmm),
+      q(7887) => q(zmn),
+      q(7888) => q(zmo),
+      q(7889) => q(zmp),
+      q(7890) => q(zmq),
+      q(7891) => q(zmr),
+      q(7892) => q(zms),
+      q(7893) => q(zmt),
+      q(7894) => q(zmu),
+      q(7895) => q(zmv),
+      q(7896) => q(zmw),
+      q(7897) => q(zmx),
+      q(7898) => q(zmy),
+      q(7899) => q(zmz),
+      q(7900) => q(zna),
+      q(7901) => q(zne),
+      q(7902) => q(zng),
+      q(7903) => q(znk),
+      q(7904) => q(zns),
+      q(7905) => q(zoc),
+      q(7906) => q(zoh),
+      q(7907) => q(zom),
+      q(7908) => q(zoo),
+      q(7909) => q(zoq),
+      q(7910) => q(zor),
+      q(7911) => q(zos),
+      q(7912) => q(zpa),
+      q(7913) => q(zpb),
+      q(7914) => q(zpc),
+      q(7915) => q(zpd),
+      q(7916) => q(zpe),
+      q(7917) => q(zpf),
+      q(7918) => q(zpg),
+      q(7919) => q(zph),
+      q(7920) => q(zpi),
+      q(7921) => q(zpj),
+      q(7922) => q(zpk),
+      q(7923) => q(zpl),
+      q(7924) => q(zpm),
+      q(7925) => q(zpn),
+      q(7926) => q(zpo),
+      q(7927) => q(zpp),
+      q(7928) => q(zpq),
+      q(7929) => q(zpr),
+      q(7930) => q(zps),
+      q(7931) => q(zpt),
+      q(7932) => q(zpu),
+      q(7933) => q(zpv),
+      q(7934) => q(zpw),
+      q(7935) => q(zpx),
+      q(7936) => q(zpy),
+      q(7937) => q(zpz),
+      q(7938) => q(zqe),
+      q(7939) => q(zra),
+      q(7940) => q(zrg),
+      q(7941) => q(zrn),
+      q(7942) => q(zro),
+      q(7943) => q(zrp),
+      q(7944) => q(zrs),
+      q(7945) => q(zsa),
+      q(7946) => q(zsk),
+      q(7947) => q(zsl),
+      q(7948) => q(zsm),
+      q(7949) => q(zsr),
+      q(7950) => q(zsu),
+      q(7951) => q(zte),
+      q(7952) => q(ztg),
+      q(7953) => q(ztl),
+      q(7954) => q(ztm),
+      q(7955) => q(ztn),
+      q(7956) => q(ztp),
+      q(7957) => q(ztq),
+      q(7958) => q(zts),
+      q(7959) => q(ztt),
+      q(7960) => q(ztu),
+      q(7961) => q(ztx),
+      q(7962) => q(zty),
+      q(7963) => q(zua),
+      q(7964) => q(zuh),
+      q(7965) => q(zum),
+      q(7966) => q(zuy),
+      q(7967) => q(zwa),
+      q(7968) => q(zyb),
+      q(7969) => q(zyg),
+      q(7970) => q(zyj),
+      q(7971) => q(zyn),
+      q(7972) => q(zyp),
+      q(7973) => q(zzj),
       },
    q(term) => {
       q(0001) => q(aar),
index fc58225..3bf73c5 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: Mon Nov 24 13:38:10 GMT 2014
+#    Generated on: Fri Feb 20 15:27:22 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Retired{'language'}{'alpha-2'}{'code'} = {
    q(in) => q(Indonesian),
@@ -22,10 +22,16 @@ $Locale::Codes::Retired{'language'}{'alpha-2'}{'code'} = {
 };
 
 $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
+   q(aam) => q(Aramanik),
+   q(adp) => q(Adap),
+   q(aue) => q(=/Kx'au//'ein),
    q(ayx) => q(Ayi (China)),
    q(baz) => q(Tunen),
    q(bjd) => q(Bandjigali),
    q(bjq) => q(Southern Betsimisaraka Malagasy),
+   q(bmy) => q(Bemba (Democratic Republic of Congo)),
+   q(bxx) => q(Borna (Democratic Republic of Congo)),
+   q(byy) => q(Buya),
    q(ccq) => q(Chaungtha),
    q(cka) => q(Khumi Awa Chin),
    q(daf) => q(Dan),
@@ -34,22 +40,31 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
    q(djl) => q(Djiwarli),
    q(dkl) => q(Kolum So Dogon),
    q(dwl) => q(Walo Kumbe Dogon),
+   q(dzd) => q(Daza),
    q(elp) => q(Elpaputih),
    q(emo) => q(Emok),
    q(gbc) => q(Garawa),
+   q(gfx) => q(Mangetti Dune !Xung),
    q(ggr) => q(Aghu Tharnggalu),
    q(gio) => q(Gelao),
+   q(gti) => q(Gbati-ri),
    q(hrr) => q(Horuru),
    q(ibi) => q(Ibilo),
    q(ilw) => q(Talur),
+   q(ime) => q(Imeraguen),
    q(izi) => q(Izi-Ezaa-Ikwo-Mgbo),
    q(jar) => q(Jarawa (Nigeria)),
+   q(kbf) => q(Kakauhua),
    q(kdv) => q(Kado),
    q(kgh) => q(Upper Tanudan Kalinga),
+   q(koj) => q(Sara Dunjo),
    q(kpp) => q(Paku Karen),
+   q(kwq) => q(Kwak),
+   q(kxe) => q(Kakihum),
    q(kzh) => q(Kenuzi-Dongola),
    q(lcq) => q(Luhu),
    q(leg) => q(Lengua),
+   q(lii) => q(Lingkhim),
    q(lmm) => q(Lamam),
    q(meg) => q(Mea),
    q(mgx) => q(Omati),
@@ -58,31 +73,43 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
    q(mld) => q(Malakhel),
    q(mnt) => q(Maykulan),
    q(mwd) => q(Mudbura),
+   q(mwj) => q(Maligo),
    q(myq) => q(Forest Maninka),
    q(nbf) => q(Naxi),
    q(nbx) => q(Ngura),
    q(nln) => q(Durango Nahuatl),
    q(nlr) => q(Ngarla),
+   q(nnx) => q(Ngong),
    q(noo) => q(Nootka),
+   q(oun) => q(!O!ung),
    q(pbz) => q(Palu),
    q(pcr) => q(Panang),
    q(pgy) => q(Pongyong),
+   q(pmu) => q(Mirpur Panjabi),
    q(ppr) => q(Piru),
    q(puz) => q(Purum Naga),
    q(sap) => q(Sanapana),
    q(sca) => q(Sansu),
+   q(sgo) => q(Songa),
    q(tgg) => q(Tangga),
+   q(thx) => q(The),
    q(tie) => q(Tingal),
    q(tkk) => q(Takpa),
    q(tlw) => q(South Wemale),
+   q(tsf) => q(Southwestern Tamang),
    q(unp) => q(Worora),
+   q(uok) => q(Uokha),
    q(wit) => q(Wintu),
    q(wiw) => q(Wirangu),
    q(xia) => q(Xiandao),
+   q(xsj) => q(Subi),
    q(ybd) => q(Yangbye),
+   q(yds) => q(Yiddish Sign Language),
    q(yen) => q(Yendang),
    q(yiy) => q(Yir Yoront),
    q(yma) => q(Yamphe),
+   q(ymt) => q(Mator-Taygi-Karagas),
+   q(ynh) => q(Yangho),
    q(yos) => q(Yos),
    q(yuu) => q(Yugh),
 };
@@ -147,11 +174,16 @@ $Locale::Codes::Retired{'language'}{'alpha-2'}{'name'} = {
 };
 
 $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
+   q(!o!ung) => [ q(oun), q(!O!ung) ],
+   q(=/kx'au//'ein) => [ q(aue), q(=/Kx'au//'ein) ],
+   q(a'tong) => [ q(aot), q(A'tong) ],
+   q(adap) => [ q(adp), q(Adap) ],
    q(aghu tharnggalu) => [ q(ggr), q(Aghu Tharnggalu) ],
    q(ainu) => [ q(ain), q(Ainu) ],
    q(amarag) => [ q(amg), q(Amarag) ],
    q(anu) => [ q(anl), q(Anu) ],
    q(apalik) => [ q(apo), q(Apalik) ],
+   q(aramanik) => [ q(aam), q(Aramanik) ],
    q(aromanian) => [ q(rup), q(Aromanian) ],
    q(ayi (china)) => [ q(ayx), q(Ayi (China)) ],
    q(bandjigali) => [ q(bjd), q(Bandjigali) ],
@@ -164,9 +196,12 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(begbere-ejar) => [ q(bqv), q(Begbere-Ejar) ],
    q(bekwil) => [ q(bkw), q(Bekwil) ],
    q(bemba) => [ q(bem), q(Bemba) ],
+   q(bemba (democratic republic of congo)) => [ q(bmy), q(Bemba (Democratic Republic of Congo)) ],
    q(blin) => [ q(byn), q(Blin) ],
+   q(borna (democratic republic of congo)) => [ q(bxx), q(Borna (Democratic Republic of Congo)) ],
    q(brek karen) => [ q(kvl), q(Brek Karen) ],
    q(burum-mindik) => [ q(bmu), q(Burum-Mindik) ],
+   q(buya) => [ q(byy), q(Buya) ],
    q(central bicolano) => [ q(bcl), q(Central Bicolano) ],
    q(chaungtha) => [ q(ccq), q(Chaungtha) ],
    q(creoles and pidgins ) => [ q(crp), q(Creoles and pidgins ) ],
@@ -175,6 +210,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(creoles and pidgins, portuguese-based ) => [ q(cpp), q(Creoles and pidgins, Portuguese-based ) ],
    q(dakaka) => [ q(bpa), q(Dakaka) ],
    q(darling) => [ q(drl), q(Darling) ],
+   q(daza) => [ q(dzd), q(Daza) ],
    q(dhangu) => [ q(dhg), q(Dhangu) ],
    q(dhanwar (india)) => [ q(dha), q(Dhanwar (India)) ],
    q(dimir) => [ q(dmc), q(Dimir) ],
@@ -194,6 +230,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(french, old (842-ca.1400)) => [ q(fro), q(French, Old (842-ca.1400)) ],
    q(galoli) => [ q(gal), q(Galoli) ],
    q(garawa) => [ q(gbc), q(Garawa) ],
+   q(gbati-ri) => [ q(gti), q(Gbati-ri) ],
    q(gbaya) => [ q(gba), q(Gbaya) ],
    q(gelao) => [ q(gio), q(Gelao) ],
    q(german, middle high (ca.1050-1500)) => [ q(gmh), q(German, Middle High (ca.1050-1500)) ],
@@ -203,9 +240,11 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    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(hungworo) => [ q(nat), q(Hungworo) ],
    q(ibilo) => [ q(ibi), q(Ibilo) ],
    q(idun) => [ q(ldb), q(Idun) ],
    q(ikobi-mena) => [ q(meb), q(Ikobi-Mena) ],
+   q(imeraguen) => [ q(ime), q(Imeraguen) ],
    q(irish, middle (900-1200)) => [ q(mga), q(Irish, Middle (900-1200)) ],
    q(irish, old (to 900)) => [ q(sga), q(Irish, Old (to 900)) ],
    q(izi-ezaa-ikwo-mgbo) => [ q(izi), q(Izi-Ezaa-Ikwo-Mgbo) ],
@@ -213,6 +252,8 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(kadara) => [ q(kad), q(Kadara) ],
    q(kado) => [ q(kdv), q(Kado) ],
    q(kag-fer-jiir-koor-ror-us-zuksun) => [ q(gel), q(Kag-Fer-Jiir-Koor-Ror-Us-Zuksun) ],
+   q(kakauhua) => [ q(kbf), q(Kakauhua) ],
+   q(kakihum) => [ q(kxe), q(Kakihum) ],
    q(kamba) => [ q(kam), q(Kamba) ],
    q(kemezung) => [ q(dmo), q(Kemezung) ],
    q(kenuzi-dongola) => [ q(kzh), q(Kenuzi-Dongola) ],
@@ -221,21 +262,27 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(kolum so dogon) => [ q(dkl), q(Kolum So Dogon) ],
    q(konkani) => [ q(kok), q(Konkani) ],
    q(kumak) => [ q(nee), q(Kumak) ],
+   q(kuman) => [ q(kue), q(Kuman) ],
    q(kutang ghale) => [ q(ght), q(Kutang Ghale) ],
+   q(kwak) => [ q(kwq), q(Kwak) ],
    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(lingkhim) => [ q(lii), q(Lingkhim) ],
    q(lowa) => [ q(loy), q(Lowa) ],
    q(lower tanudan kalinga) => [ q(kml), q(Lower Tanudan Kalinga) ],
    q(luhu) => [ q(lcq), q(Luhu) ],
    q(mahei) => [ q(mja), q(Mahei) ],
    q(malakhel) => [ q(mld), q(Malakhel) ],
    q(malasanga) => [ q(mqz), q(Malasanga) ],
+   q(maligo) => [ q(mwj), q(Maligo) ],
+   q(mangetti dune !xung) => [ q(gfx), q(Mangetti Dune !Xung) ],
    q(mann) => [ q(mev), q(Mann) ],
    q(mari) => [ q(chm), q(Mari) ],
    q(maskoy pidgin) => [ q(mhh), q(Maskoy Pidgin) ],
+   q(mator-taygi-karagas) => [ q(ymt), q(Mator-Taygi-Karagas) ],
    q(maykulan) => [ q(mnt), q(Maykulan) ],
    q(mbabaram) => [ q(vmb), q(Mbabaram) ],
    q(mbedam) => [ q(xmd), q(Mbedam) ],
@@ -245,6 +292,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(minigir) => [ q(vmg), q(Minigir) ],
    q(mire) => [ q(mvh), q(Mire) ],
    q(miri) => [ q(mrg), q(Miri) ],
+   q(mirpur panjabi) => [ q(pmu), q(Mirpur Panjabi) ],
    q(misima-paneati) => [ q(mpx), q(Misima-Paneati) ],
    q(mixifore) => [ q(mfg), q(Mixifore) ],
    q(mpongmpong) => [ q(mgg), q(Mpongmpong) ],
@@ -252,20 +300,24 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(mudbura) => [ q(mwd), q(Mudbura) ],
    q(muduapa) => [ q(wiv), q(Muduapa) ],
    q(nakama) => [ q(nib), q(Nakama) ],
+   q(nama (namibia)) => [ q(naq), q(Nama (Namibia)) ],
    q(nanggu) => [ q(ngr), q(Nanggu) ],
    q(nangikurrunggurr) => [ q(nam), q(Nangikurrunggurr) ],
    q(ndrag'ngith) => [ q(dgt), q(Ndrag'ngith) ],
    q(nepal bhasa) => [ q(new), q(Nepal Bhasa) ],
    q(nga la) => [ q(hlt), q(Nga La) ],
    q(ngalkbun) => [ q(ngk), q(Ngalkbun) ],
+   q(ngong) => [ q(nnx), q(Ngong) ],
    q(ngura) => [ q(nbx), q(Ngura) ],
    q(nisi (india)) => [ q(dap), q(Nisi (India)) ],
    q(nootka) => [ q(noo), q(Nootka) ],
    q(norse, old) => [ q(non), q(Norse, Old) ],
    q(north wemale) => [ q(weo), q(North Wemale) ],
+   q(northeast pashayi) => [ q(aee), q(Northeast Pashayi) ],
    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(northwest pashayi) => [ q(glh), q(Northwest Pashayi) ],
    q(nsari) => [ q(asj), q(Nsari) ],
    q(nung (myanmar)) => [ q(nun), q(Nung (Myanmar)) ],
    q(omati) => [ q(mgx), q(Omati) ],
@@ -277,27 +329,40 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    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(pyu) => [ q(pby), q(Pyu) ],
    q(sakam) => [ q(skm), q(Sakam) ],
+   q(san marcos tlalcoyalco popoloca) => [ q(pls), q(San Marcos Tlalcoyalco Popoloca) ],
    q(sansu) => [ q(sca), q(Sansu) ],
+   q(sara dunjo) => [ q(koj), q(Sara Dunjo) ],
    q(sauk) => [ q(skc), q(Sauk) ],
    q(sepen) => [ q(spm), q(Sepen) ],
+   q(seraiki) => [ q(skr), q(Seraiki) ],
+   q(shabo) => [ q(sbf), q(Shabo) ],
    q(shangzhai) => [ q(jih), q(Shangzhai) ],
    q(so (cameroon)) => [ q(sox), q(So (Cameroon)) ],
+   q(songa) => [ q(sgo), q(Songa) ],
    q(south american indian (other)) => [ q(sai), q(South American Indian (Other)) ],
    q(south wemale) => [ q(tlw), q(South Wemale) ],
+   q(southeast pashayi) => [ q(psi), q(Southeast Pashayi) ],
    q(southern catanduanes bicolano) => [ q(bln), q(Southern Catanduanes Bicolano) ],
    q(southern lorung) => [ q(lrr), q(Southern Lorung) ],
+   q(southwest pashayi) => [ q(psh), q(Southwest Pashayi) ],
+   q(southwestern tamang) => [ q(tsf), q(Southwestern Tamang) ],
+   q(subi) => [ q(xsj), q(Subi) ],
    q(sulung) => [ q(suv), q(Sulung) ],
    q(takpa) => [ q(tkk), q(Takpa) ],
    q(talur) => [ q(ilw), q(Talur) ],
    q(tangga) => [ q(tgg), q(Tangga) ],
    q(tangkhul naga) => [ q(nmf), q(Tangkhul Naga) ],
+   q(the) => [ q(thx), q(The) ],
    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(uokha) => [ q(uok), q(Uokha) ],
    q(upper tanudan kalinga) => [ q(kgh), q(Upper Tanudan Kalinga) ],
+   q(vasekela bushman) => [ q(vaj), q(Vasekela Bushman) ],
    q(walamo) => [ q(wal), q(Walamo) ],
    q(walo kumbe dogon) => [ q(dwl), q(Walo Kumbe Dogon) ],
    q(waray) => [ q(war), q(Waray) ],
@@ -308,7 +373,9 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(xiandao) => [ q(xia), q(Xiandao) ],
    q(yamphe) => [ q(yma), q(Yamphe) ],
    q(yangbye) => [ q(ybd), q(Yangbye) ],
+   q(yangho) => [ q(ynh), q(Yangho) ],
    q(yeskwa) => [ q(yes), q(Yeskwa) ],
+   q(yiddish sign language) => [ q(yds), q(Yiddish Sign Language) ],
    q(yonggom) => [ q(yon), q(Yonggom) ],
    q(yos) => [ q(yos), q(Yos) ],
    q(yuaga) => [ q(nua), q(Yuaga) ],
index a4370ae..94130a9 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Codes::Script;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -22,7 +22,7 @@ use Locale::Codes::Script_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.33';
+$VERSION='3.34';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2script
                 script2code
index 1de28ec..b62d148 100644 (file)
@@ -123,7 +123,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 4c31b33..1e8f0de 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: Mon Nov 24 13:36:31 GMT 2014
+#    Generated on: Thu Feb 19 20:50:29 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Data{'script'}{'id'} = '0173';
 
index 808417c..eb4d17c 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: Mon Nov 24 13:38:10 GMT 2014
+#    Generated on: Fri Feb 20 15:27:22 GMT 2015
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.33';
+$VERSION='3.34';
 
 $Locale::Codes::Retired{'script'}{'alpha'}{'code'} = {
 };
index 732c2da..9dd896c 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Country;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.33';
+$VERSION='3.34';
 
 our (@ISA,@EXPORT);
 
index e89226d..133a9d6 100644 (file)
@@ -198,7 +198,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index d93d07e..26535d1 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Currency;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.33';
+$VERSION='3.34';
 
 our (@ISA,@EXPORT);
 
index 8ad59aa..6b52d7f 100644 (file)
@@ -119,7 +119,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001      Michael Hennecke
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 407cbd5..bf3afa4 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Language;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.33';
+$VERSION='3.34';
 
 our (@ISA,@EXPORT);
 
index 0cf5066..771aa8a 100644 (file)
@@ -129,7 +129,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index c92906f..185935d 100644 (file)
@@ -1,7 +1,7 @@
 package Locale::Script;
 # Copyright (C) 2001      Canon Research Centre Europe (CRE).
 # Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2014 Sullivan Beck
+# Copyright (c) 2010-2015 Sullivan Beck
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.33';
+$VERSION='3.34';
 
 our (@ISA,@EXPORT);
 
index 07e5c83..a1c2c81 100644 (file)
@@ -123,7 +123,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
 
    Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
    Copyright (c) 2001-2010 Neil Bowers
-   Copyright (c) 2010-2014 Sullivan Beck
+   Copyright (c) 2010-2015 Sullivan Beck
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 51f1db0..014b25a 100644 (file)
@@ -48,7 +48,7 @@ $tests = "
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 uk
    ~
@@ -69,7 +69,7 @@ alias_code uk gb LOCALE_CODE_ALPHA_3 ~ 0
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 uk
    ~
@@ -84,11 +84,11 @@ alias_code uk gb ~ uk
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 uk
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 country2code
 United Kingdom
index c282975..0dce7a9 100644 (file)
@@ -48,7 +48,7 @@ $tests = "
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 uk
    ~
@@ -69,7 +69,7 @@ alias_code uk gb LOCALE_CODE_ALPHA_3 ~ 0
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 uk
    ~
@@ -84,11 +84,11 @@ alias_code uk gb ~ uk
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 uk
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 country2code
 United Kingdom
index 0cf978e..bd83e48 100644 (file)
@@ -49,17 +49,17 @@ uk ~ _undef_
 
 BO
    ~
-   Bolivia, Plurinational State of
+   Bolivia (Plurinational State of)
 
 BO
 LOCALE_CODE_ALPHA_2
    ~
-   Bolivia, Plurinational State of
+   Bolivia (Plurinational State of)
 
 bol
 LOCALE_CODE_ALPHA_3
    ~
-   Bolivia, Plurinational State of
+   Bolivia (Plurinational State of)
 
 pk ~ Pakistan
 
@@ -67,7 +67,7 @@ sn ~ Senegal
 
 us
    ~
-   United States
+   United States of America
 
 ad ~ Andorra
 
@@ -83,7 +83,7 @@ zw ~ Zimbabwe
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 kz ~ Kazakhstan
 
index 68a3df7..d33e9aa 100644 (file)
@@ -49,17 +49,17 @@ uk ~ _undef_
 
 BO
    ~
-   Bolivia, Plurinational State of
+   Bolivia (Plurinational State of)
 
 BO
 LOCALE_CODE_ALPHA_2
    ~
-   Bolivia, Plurinational State of
+   Bolivia (Plurinational State of)
 
 bol
 LOCALE_CODE_ALPHA_3
    ~
-   Bolivia, Plurinational State of
+   Bolivia (Plurinational State of)
 
 pk ~ Pakistan
 
@@ -67,7 +67,7 @@ sn ~ Senegal
 
 us
    ~
-   United States
+   United States of America
 
 ad ~ Andorra
 
@@ -83,7 +83,7 @@ zw ~ Zimbabwe
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 kz ~ Kazakhstan
 
index 950848d..89c30e9 100644 (file)
@@ -91,7 +91,7 @@ $tests = "
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 rename_country x1 NewName ~ 0
 
@@ -103,7 +103,7 @@ rename_country gb NewName LOCALE_CODE_ALPHA_3 ~ 0
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 rename_country gb NewName ~ 1
 
@@ -113,7 +113,7 @@ gb
 
 us
    ~
-   United States
+   United States of America
 
 rename_country
 us
index 46896cf..38eeaac 100644 (file)
@@ -91,7 +91,7 @@ $tests = "
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 rename_country x1 NewName ~ 0
 
@@ -103,7 +103,7 @@ rename_country gb NewName LOCALE_CODE_ALPHA_3 ~ 0
 
 gb
    ~
-   United Kingdom
+   United Kingdom of Great Britain and Northern Ireland
 
 rename_country gb NewName ~ 1
 
index 431a40a..bd6a8aa 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl -w
-# Copyright (c) 1996-2014 Sullivan Beck. All rights reserved.
+# Copyright (c) 1996-2015 Sullivan Beck. All rights reserved.
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
 
index c24c2c0..85ae285 100644 (file)
@@ -33,5 +33,5 @@ my $foo = {};
 bless($foo,"A");
 
 eval{ $foo->test }
-       ? fail("Didn't die on missing ancestor") 
+       ? fail("Didn't die on missing ancestor")
        : pass("Correctly dies after full traversal");
index 11dadc7..a8e7bd9 100644 (file)
 package Test::Builder;
 
-use 5.008001;
+use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_098';
+our $VERSION = '1.001014';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
+BEGIN {
+    if( $] < 5.008 ) {
+        require Test::Builder::IO::Scalar;
+    }
+}
 
-use Test::Stream 1.301001 qw/ -internal STATE_LEGACY STATE_PLAN STATE_COUNT /;
-use Test::Stream::Toolset;
-use Test::Stream::Context;
-use Test::Stream::Carp qw/confess/;
-use Test::Stream::Meta qw/MODERN/;
-
-use Test::Stream::Util qw/try protect unoverload_str is_regex/;
-use Scalar::Util qw/blessed reftype/;
-
-use Test::More::Tools;
 
+# Make Test::Builder thread-safe for ithreads.
 BEGIN {
-    my $meta = Test::Stream::Meta->is_tester('main');
-    Test::Stream->shared->set_use_legacy(1)
-        unless $meta && $meta->[MODERN];
-}
+    use Config;
+    # Load threads::shared when threads are turned on.
+    # 5.8.0's threads are so busted we no longer support them.
+    if( $] >= 5.008001 && $Config{useithreads} && $INC{'threads.pm'} ) {
+        require threads::shared;
+
+        # Hack around YET ANOTHER threads::shared bug.  It would
+        # occasionally forget the contents of the variable when sharing it.
+        # So we first copy the data, then share, then put our copy back.
+        *share = sub (\[$@%]) {
+            my $type = ref $_[0];
+            my $data;
+
+            if( $type eq 'HASH' ) {
+                %$data = %{ $_[0] };
+            }
+            elsif( $type eq 'ARRAY' ) {
+                @$data = @{ $_[0] };
+            }
+            elsif( $type eq 'SCALAR' ) {
+                $$data = ${ $_[0] };
+            }
+            else {
+                die( "Unknown type: " . $type );
+            }
 
-# The mostly-singleton, and other package vars.
-our $Test  = Test::Builder->new;
-our $_ORIG_Test = $Test;
-our $Level = 1;
+            $_[0] = &threads::shared::share( $_[0] );
+
+            if( $type eq 'HASH' ) {
+                %{ $_[0] } = %$data;
+            }
+            elsif( $type eq 'ARRAY' ) {
+                @{ $_[0] } = @$data;
+            }
+            elsif( $type eq 'SCALAR' ) {
+                ${ $_[0] } = $$data;
+            }
+            else {
+                die( "Unknown type: " . $type );
+            }
 
-sub ctx {
-    my $self = shift || die "No self in context";
-    my ($add) = @_;
-    my $ctx = Test::Stream::Context::context(2 + ($add || 0), $self->{stream});
-    if (defined $self->{Todo}) {
-        $ctx->set_in_todo(1);
-        $ctx->set_todo($self->{Todo});
-        $ctx->set_diag_todo(1);
+            return $_[0];
+        };
+    }
+    # 5.8.0's threads::shared is busted when threads are off
+    # and earlier Perls just don't have that module at all.
+    else {
+        *share = sub { return $_[0] };
+        *lock  = sub { 0 };
     }
-    return $ctx;
 }
 
-sub stream {
-    my $self = shift;
-    return $self->{stream} || Test::Stream->shared;
-}
+=head1 NAME
 
-sub depth { $_[0]->{depth} || 0 }
+Test::Builder - Backend for building test libraries
 
-# This is only for unit tests at this point.
-sub _ending {
-    my $self = shift;
-    my ($ctx) = @_;
-    require Test::Stream::ExitMagic;
-    $self->{stream}->set_no_ending(0);
-    Test::Stream::ExitMagic->new->do_magic($self->{stream}, $ctx);
-}
-
-my %WARNED;
-our $CTX;
-our %ORIG = (
-    ok   => \&ok,
-    diag => \&diag,
-    note => \&note,
-    plan => \&plan,
-    done_testing => \&done_testing,
-);
+=head1 SYNOPSIS
 
-sub WARN_OF_OVERRIDE {
-    my ($sub, $ctx) = @_;
+  package My::Test::Module;
+  use base 'Test::Builder::Module';
 
-    return unless $ctx->modern;
-    my $old = $ORIG{$sub};
-    # Use package instead of self, we want replaced subs, not subclass overrides.
-    my $new = __PACKAGE__->can($sub);
+  my $CLASS = __PACKAGE__;
 
-    return if $new == $old;
+  sub ok {
+      my($test, $name) = @_;
+      my $tb = $CLASS->builder;
 
-    require B;
-    my $o    = B::svref_2object($new);
-    my $gv   = $o->GV;
-    my $st   = $o->START;
-    my $name = $gv->NAME;
-    my $pkg  = $gv->STASH->NAME;
-    my $line = $st->line;
-    my $file = $st->file;
+      $tb->ok($test, $name);
+  }
 
-    warn <<"    EOT" unless $WARNED{"$pkg $name $file $line"}++;
 
-*******************************************************************************
-Something monkeypatched Test::Builder::$sub()!
-The new sub is '$pkg\::$name' defined in $file around line $line.
-In the near future monkeypatching Test::Builder::ok() will no longer work
-as expected.
-*******************************************************************************
-    EOT
-}
+=head1 DESCRIPTION
 
+L<Test::Simple> and L<Test::More> have proven to be popular testing modules,
+but they're not always flexible enough.  Test::Builder provides a
+building block upon which to write your own test libraries I<which can
+work together>.
 
-####################
-# {{{ Constructors #
-####################
+=head2 Construction
 
-sub new {
-    my $class  = shift;
-    my %params = @_;
-    $Test ||= $class->create(shared_stream => 1);
+=over 4
+
+=item B<new>
+
+  my $Test = Test::Builder->new;
+
+Returns a Test::Builder object representing the current state of the
+test.
+
+Since you only run one test per program C<new> always returns the same
+Test::Builder object.  No matter how many times you call C<new()>, you're
+getting the same object.  This is called a singleton.  This is done so that
+multiple modules share such global information as the test counter and
+where test output is going.
+
+If you want a completely new Test::Builder object different from the
+singleton, use C<create>.
 
+=cut
+
+our $Test = Test::Builder->new;
+
+sub new {
+    my($class) = shift;
+    $Test ||= $class->create;
     return $Test;
 }
 
+=item B<create>
+
+  my $Test = Test::Builder->create;
+
+Ok, so there can be more than one Test::Builder object and this is how
+you get it.  You might use this instead of C<new()> if you're testing
+a Test::Builder based module, but otherwise you probably want C<new>.
+
+B<NOTE>: the implementation is not complete.  C<level>, for example, is
+still shared amongst B<all> Test::Builder objects, even ones created using
+this method.  Also, the method name may change in the future.
+
+=cut
+
 sub create {
-    my $class  = shift;
-    my %params = @_;
+    my $class = shift;
 
     my $self = bless {}, $class;
-    $self->reset(%params);
+    $self->reset;
 
     return $self;
 }
 
+
 # Copy an object, currently a shallow.
 # This does *not* bless the destination.  This keeps the destructor from
 # firing when we're just storing a copy of the object to restore later.
 sub _copy {
-    my ($src, $dest) = @_;
+    my($src, $dest) = @_;
+
     %$dest = %$src;
+    _share_keys($dest);
+
     return;
 }
 
-####################
-# }}} Constructors #
-####################
 
-#############################
-# {{{ Children and subtests #
-#############################
+=item B<child>
 
-sub subtest {
-    my $self = shift;
-    my $ctx = $self->ctx();
-    require Test::Stream::Subtest;
-    return Test::Stream::Subtest::subtest(@_);
-}
+  my $child = $builder->child($name_of_child);
+  $child->plan( tests => 4 );
+  $child->ok(some_code());
+  ...
+  $child->finalize;
+
+Returns a new instance of C<Test::Builder>.  Any output from this child will
+be indented four spaces more than the parent's indentation.  When done, the
+C<finalize> method I<must> be called explicitly.
+
+Trying to create a new child with a previous child still active (i.e.,
+C<finalize> not called) will C<croak>.
+
+Trying to run a test when you have an open child will also C<croak> and cause
+the test suite to fail.
+
+=cut
 
 sub child {
     my( $self, $name ) = @_;
 
-    my $ctx = $self->ctx;
-
-    if ($self->{child}) {
-        my $cname = $self->{child}->{Name};
-        $ctx->throw("You already have a child named ($cname) running");
+    if( $self->{Child_Name} ) {
+        $self->croak("You already have a child named ($self->{Child_Name}) running");
     }
 
-    $name ||= "Child of " . $self->{Name};
-    my $stream = $self->{stream} || Test::Stream->shared;
-    $ctx->subtest_start($name, parent_todo => $ctx->in_todo);
+    my $parent_in_todo = $self->in_todo;
 
-    my $child = bless {
-        %$self,
-        '?' => $?,
-        parent => $self,
-    };
+    # Clear $TODO for the child.
+    my $orig_TODO = $self->find_TODO(undef, 1, undef);
+
+    my $class = ref $self;
+    my $child = $class->create;
+
+    # Add to our indentation
+    $child->_indent( $self->_indent . '    ' );
+
+    # Make the child use the same outputs as the parent
+    for my $method (qw(output failure_output todo_output)) {
+        $child->$method( $self->$method );
+    }
 
-    $? = 0;
-    $child->{Name} = $name;
-    $self->{child} = $child;
-    Scalar::Util::weaken($self->{child});
+    # Ensure the child understands if they're inside a TODO
+    if( $parent_in_todo ) {
+        $child->failure_output( $self->todo_output );
+    }
 
+    # This will be reset in finalize. We do this here lest one child failure
+    # cause all children to fail.
+    $child->{Child_Error} = $?;
+    $?                    = 0;
+    $child->{Parent}      = $self;
+    $child->{Parent_TODO} = $orig_TODO;
+    $child->{Name}        = $name || "Child of " . $self->name;
+    $self->{Child_Name}   = $child->name;
     return $child;
 }
 
-sub finalize {
-    my $self = shift;
 
-    return unless $self->{parent};
+=item B<subtest>
+
+    $builder->subtest($name, \&subtests, @args);
 
-    my $ctx = $self->ctx;
+See documentation of C<subtest> in Test::More.  
+
+C<subtest> also, and optionally, accepts arguments which will be passed to the
+subtests reference.
+
+=cut
+
+sub subtest {
+    my $self = shift;
+    my($name, $subtests, @args) = @_;
 
-    if ($self->{child}) {
-        my $cname = $self->{child}->{Name};
-        $ctx->throw("Can't call finalize() with child ($cname) active");
+    if ('CODE' ne ref $subtests) {
+        $self->croak("subtest()'s second argument must be a code ref");
     }
 
-    $self->_ending($ctx);
-    my $passing = $ctx->stream->is_passing;
-    my $count = $ctx->stream->count;
-    my $name = $self->{Name};
+    # Turn the child into the parent so anyone who has stored a copy of
+    # the Test::Builder singleton will get the child.
+    my $error;
+    my $child;
+    my $parent = {};
+    {
+        # child() calls reset() which sets $Level to 1, so we localize
+        # $Level first to limit the scope of the reset to the subtest.
+        local $Test::Builder::Level = $Test::Builder::Level + 1;
+
+        # Store the guts of $self as $parent and turn $child into $self.
+        $child  = $self->child($name);
+        _copy($self,  $parent);
+        _copy($child, $self);
+
+        my $run_the_subtests = sub {
+            # Add subtest name for clarification of starting point
+            $self->note("Subtest: $name");
+            $subtests->(@args);
+            $self->done_testing unless $self->_plan_handled;
+            1;
+        };
+
+        if( !eval { $run_the_subtests->() } ) {
+            $error = $@;
+        }
+    }
 
-    my $stream = $self->{stream} || Test::Stream->shared;
+    # Restore the parent and the copied child.
+    _copy($self,   $child);
+    _copy($parent, $self);
 
-    my $parent = $self->parent;
-    $self->{parent}->{child} = undef;
-    $self->{parent} = undef;
+    # Restore the parent's $TODO
+    $self->find_TODO(undef, 1, $child->{Parent_TODO});
 
-    $? = $self->{'?'};
+    # Die *after* we restore the parent.
+    die $error if $error and !eval { $error->isa('Test::Builder::Exception') };
 
-    my $st = $ctx->subtest_stop($name);
+    local $Test::Builder::Level = $Test::Builder::Level + 1;
+    my $finalize = $child->finalize;
 
-    $parent->ctx->subtest(
-        # Stuff from ok (most of this gets initialized inside)
-        undef, # real_bool, gets set properly by initializer
-        $st->{name}, # name
-        undef, # diag
-        undef, # bool
-        undef, # level
+    $self->BAIL_OUT($child->{Bailed_Out_Reason}) if $child->{Bailed_Out};
 
-        # Subtest specific stuff
-        $st->{state},
-        $st->{events},
-        $st->{exception},
-        $st->{early_return},
-        $st->{delayed},
-        $st->{instant},
-    );
+    return $finalize;
 }
 
-sub in_subtest {
-    my $self = shift;
-    my $ctx = $self->ctx;
-    return scalar @{$ctx->stream->subtests};
-}
+=begin _private
 
-sub parent { $_[0]->{parent} }
-sub name   { $_[0]->{Name} }
+=item B<_plan_handled>
 
-sub DESTROY {
-    my $self = shift;
-    return unless $self->{parent};
-    return if $self->{Skip_All};
-    $self->{parent}->is_passing(0);
-    my $name = $self->{Name};
-    die "Child ($name) exited without calling finalize()";
-}
+    if ( $Test->_plan_handled ) { ... }
 
-#############################
-# }}} Children and subtests #
-#############################
+Returns true if the developer has explicitly handled the plan via:
 
-#####################################
-# {{{ stuff for TODO status #
-#####################################
+=over 4
 
-sub find_TODO {
-    my ($self, $pack, $set, $new_value) = @_;
-
-    unless ($pack) {
-        if (my $ctx = Test::Stream::Context->peek) {
-            $pack = $ctx->package;
-            my $old = $ctx->todo;
-            $ctx->set_todo($new_value) if $set;
-            return $old;
-        }
+=item * Explicitly setting the number of tests
 
-        $pack = $self->exported_to || return;
-    }
+=item * Setting 'no_plan'
 
-    no strict 'refs';    ## no critic
-    no warnings 'once';
-    my $old_value = ${$pack . '::TODO'};
-    $set and ${$pack . '::TODO'} = $new_value;
-    return $old_value;
-}
+=item * Set 'skip_all'.
 
-sub todo {
-    my ($self, $pack) = @_;
+=back
 
-    return $self->{Todo} if defined $self->{Todo};
+This is currently used in subtests when we implicitly call C<< $Test->done_testing >>
+if the developer has not set a plan.
 
-    my $ctx = $self->ctx;
+=end _private
 
-    my $todo = $self->find_TODO($pack);
-    return $todo if defined $todo;
+=cut
 
-    return '';
+sub _plan_handled {
+    my $self = shift;
+    return $self->{Have_Plan} || $self->{No_Plan} || $self->{Skip_All};
 }
 
-sub in_todo {
-    my $self = shift;
 
-    my $ctx = $self->ctx;
-    return 1 if $ctx->in_todo;
+=item B<finalize>
 
-    return (defined $self->{Todo} || $self->find_TODO) ? 1 : 0;
-}
+  my $ok = $child->finalize;
 
-sub todo_start {
-    my $self = shift;
-    my $message = @_ ? shift : '';
+When your child is done running tests, you must call C<finalize> to clean up
+and tell the parent your pass/fail status.
 
-    $self->{Start_Todo}++;
-    if ($self->in_todo) {
-        push @{$self->{Todo_Stack}} => $self->todo;
-    }
-    $self->{Todo} = $message;
+Calling C<finalize> on a child with open children will C<croak>.
 
-    return;
-}
+If the child falls out of scope before C<finalize> is called, a failure
+diagnostic will be issued and the child is considered to have failed.
 
-sub todo_end {
+No attempt to call methods on a child after C<finalize> is called is
+guaranteed to succeed.
+
+Calling this on the root builder is a no-op.
+
+=cut
+
+sub finalize {
     my $self = shift;
 
-    if (!$self->{Start_Todo}) {
-        $self->ctx(-1)->throw('todo_end() called without todo_start()');
+    return unless $self->parent;
+    if( $self->{Child_Name} ) {
+        $self->croak("Can't call finalize() with child ($self->{Child_Name}) active");
     }
 
-    $self->{Start_Todo}--;
+    local $? = 0;     # don't fail if $subtests happened to set $? nonzero
+    $self->_ending;
 
-    if ($self->{Start_Todo} && @{$self->{Todo_Stack}}) {
-        $self->{Todo} = pop @{$self->{Todo_Stack}};
-    }
-    else {
-        delete $self->{Todo};
+    # XXX This will only be necessary for TAP envelopes (we think)
+    #$self->_print( $self->is_passing ? "PASS\n" : "FAIL\n" );
+
+    local $Test::Builder::Level = $Test::Builder::Level + 1;
+    my $ok = 1;
+    $self->parent->{Child_Name} = undef;
+    unless ($self->{Bailed_Out}) {
+        if ( $self->{Skip_All} ) {
+            $self->parent->skip($self->{Skip_All}, $self->name);
+        }
+        elsif ( not @{ $self->{Test_Results} } ) {
+            $self->parent->ok( 0, sprintf q[No tests run for subtest "%s"], $self->name );
+        }
+        else {
+            $self->parent->ok( $self->is_passing, $self->name );
+        }
     }
+    $? = $self->{Child_Error};
+    delete $self->{Parent};
 
-    return;
+    return $self->is_passing;
 }
 
-#####################################
-# }}} Finding Testers and Providers #
-#####################################
-
-################
-# {{{ Planning #
-################
-
-my %PLAN_CMDS = (
-    no_plan  => 'no_plan',
-    skip_all => 'skip_all',
-    tests    => '_plan_tests',
-);
+sub _indent      {
+    my $self = shift;
 
-sub plan {
-    my ($self, $cmd, @args) = @_;
+    if( @_ ) {
+        $self->{Indent} = shift;
+    }
 
-    my $ctx = $CTX || Test::Stream::Context->peek || $self->ctx();
-    WARN_OF_OVERRIDE(plan => $ctx);
+    return $self->{Indent};
+}
 
-    return unless $cmd;
+=item B<parent>
 
-    if (my $method = $PLAN_CMDS{$cmd}) {
-        $self->$method(@args);
-    }
-    else {
-        my @in = grep { defined } ($cmd, @args);
-        $self->ctx->throw("plan() doesn't understand @in");
-    }
+ if ( my $parent = $builder->parent ) {
+     ...
+ }
 
-    return 1;
-}
+Returns the parent C<Test::Builder> instance, if any.  Only used with child
+builders for nested TAP.
 
-sub skip_all {
-    my ($self, $reason) = @_;
+=cut
 
-    $self->{Skip_All} = 1;
+sub parent { shift->{Parent} }
 
-    my $ctx = $CTX || Test::Stream::Context->peek || $self->ctx();
+=item B<name>
 
-    $ctx->_plan(0, 'SKIP', $reason);
-}
+ diag $builder->name;
 
-sub no_plan {
-    my ($self, @args) = @_;
+Returns the name of the current builder.  Top level builders default to C<$0>
+(the name of the executable).  Child builders are named via the C<child>
+method.  If no name is supplied, will be named "Child of $parent->name".
 
-    my $ctx = $CTX || Test::Stream::Context->peek || $self->ctx();
+=cut
 
-    $ctx->alert("no_plan takes no arguments") if @args;
-    $ctx->_plan(0, 'NO PLAN');
+sub name { shift->{Name} }
 
-    return 1;
+sub DESTROY {
+    my $self = shift;
+    if ( $self->parent and $$ == $self->{Original_Pid} ) {
+        my $name = $self->name;
+        $self->diag(<<"FAIL");
+Child ($name) exited without calling finalize()
+FAIL
+        $self->parent->{In_Destroy} = 1;
+        $self->parent->ok(0, $name);
+    }
 }
 
-sub _plan_tests {
-    my ($self, $arg) = @_;
+=item B<reset>
 
-    my $ctx = $CTX || Test::Stream::Context->peek || $self->ctx();
+  $Test->reset;
 
-    if ($arg) {
-        $ctx->throw("Number of tests must be a positive integer.  You gave it '$arg'")
-            unless $arg =~ /^\+?\d+$/;
+Reinitializes the Test::Builder singleton to its original state.
+Mostly useful for tests run in persistent environments where the same
+test might be run multiple times in the same process.
 
-        $ctx->_plan($arg);
-    }
-    elsif (!defined $arg) {
-        $ctx->throw("Got an undefined number of tests");
-    }
-    else {
-        $ctx->throw("You said to run 0 tests");
-    }
+=cut
 
-    return;
-}
+our $Level;
 
-sub done_testing {
-    my ($self, $num_tests) = @_;
+sub reset {    ## no critic (Subroutines::ProhibitBuiltinHomonyms)
+    my($self) = @_;
 
-    my $ctx = $CTX || Test::Stream::Context->peek || $self->ctx();
-    WARN_OF_OVERRIDE(done_testing => $ctx);
+    # We leave this a global because it has to be localized and localizing
+    # hash keys is just asking for pain.  Also, it was documented.
+    $Level = 1;
 
-    my $out = $ctx->stream->done_testing($ctx, $num_tests);
-    return $out;
-}
+    $self->{Name}         = $0;
+    $self->is_passing(1);
+    $self->{Ending}       = 0;
+    $self->{Have_Plan}    = 0;
+    $self->{No_Plan}      = 0;
+    $self->{Have_Output_Plan} = 0;
+    $self->{Done_Testing} = 0;
 
-################
-# }}} Planning #
-################
+    $self->{Original_Pid} = $$;
+    $self->{Child_Name}   = undef;
+    $self->{Indent}     ||= '';
 
-#############################
-# {{{ Base Event Producers #
-#############################
+    $self->{Curr_Test} = 0;
+    $self->{Test_Results} = &share( [] );
 
-sub ok {
-    my $self = shift;
-    my($test, $name) = @_;
+    $self->{Exported_To}    = undef;
+    $self->{Expected_Tests} = 0;
 
-    my $ctx = $CTX || Test::Stream::Context->peek || $self->ctx();
-    WARN_OF_OVERRIDE(ok => $ctx);
+    $self->{Skip_All} = 0;
 
-    if ($self->{child}) {
-        $self->is_passing(0);
-        $ctx->throw("Cannot run test ($name) with active children");
-    }
+    $self->{Use_Nums} = 1;
 
-    $ctx->_unwind_ok($test, $name);
-    return $test ? 1 : 0;
-}
+    $self->{No_Header} = 0;
+    $self->{No_Ending} = 0;
 
-sub BAIL_OUT {
-    my( $self, $reason ) = @_;
-    $self->ctx()->bail($reason);
-}
+    $self->{Todo}       = undef;
+    $self->{Todo_Stack} = [];
+    $self->{Start_Todo} = 0;
+    $self->{Opened_Testhandles} = 0;
 
-sub skip {
-    my( $self, $why ) = @_;
-    $why ||= '';
-    unoverload_str( \$why );
+    $self->_share_keys;
+    $self->_dup_stdhandles;
 
-    my $ctx = $self->ctx();
-    $ctx->set_skip($why);
-    $ctx->ok(1, '');
-    $ctx->set_skip(undef);
+    return;
 }
 
-sub todo_skip {
-    my( $self, $why ) = @_;
-    $why ||= '';
-    unoverload_str( \$why );
-
-    my $ctx = $self->ctx();
-    $ctx->set_skip($why);
-    $ctx->set_todo($why);
-    $ctx->ok(0, '');
-    $ctx->set_skip(undef);
-    $ctx->set_todo(undef);
-}
 
-sub diag {
+# Shared scalar values are lost when a hash is copied, so we have
+# a separate method to restore them.
+# Shared references are retained across copies.
+sub _share_keys {
     my $self = shift;
-    my $msg = join '', map { defined($_) ? $_ : 'undef' } @_;
 
-    my $ctx = $CTX || Test::Stream::Context->peek || $self->ctx();
-    WARN_OF_OVERRIDE(diag => $ctx);
+    share( $self->{Curr_Test} );
 
-    $ctx->_diag($msg);
     return;
 }
 
-sub note {
-    my $self = shift;
-    my $msg = join '', map { defined($_) ? $_ : 'undef' } @_;
 
-    my $ctx = $CTX || Test::Stream::Context->peek || $self->ctx();
-    WARN_OF_OVERRIDE(note => $ctx);
+=back
 
-    $ctx->_note($msg);
-}
+=head2 Setting up tests
 
-#############################
-# }}} Base Event Producers #
-#############################
+These methods are for setting up tests and declaring how many there
+are.  You usually only want to call one of these methods.
 
-#######################
-# {{{ Public helpers #
-#######################
+=over 4
 
-sub explain {
-    my $self = shift;
+=item B<plan>
 
-    return map {
-        ref $_
-          ? do {
-            protect { require Data::Dumper };
-            my $dumper = Data::Dumper->new( [$_] );
-            $dumper->Indent(1)->Terse(1);
-            $dumper->Sortkeys(1) if $dumper->can("Sortkeys");
-            $dumper->Dump;
-          }
-          : $_
-    } @_;
-}
+  $Test->plan('no_plan');
+  $Test->plan( skip_all => $reason );
+  $Test->plan( tests => $num_tests );
 
-sub carp {
-    my $self = shift;
-    $self->ctx->alert(join '' => @_);
-}
+A convenient way to set up your tests.  Call this and Test::Builder
+will print the appropriate headers and take the appropriate actions.
 
-sub croak {
-    my $self = shift;
-    $self->ctx->throw(join '' => @_);
-}
+If you call C<plan()>, don't call any of the other methods below.
 
-sub has_plan {
-    my $self = shift;
+If a child calls "skip_all" in the plan, a C<Test::Builder::Exception> is
+thrown.  Trap this error, call C<finalize()> and don't run any more tests on
+the child.
 
-    my $plan = $self->ctx->stream->plan || return undef;
-    return 'no_plan' if $plan->directive && $plan->directive eq 'NO PLAN';
-    return $plan->max;
-}
+ my $child = $Test->child('some child');
+ eval { $child->plan( $condition ? ( skip_all => $reason ) : ( tests => 3 )  ) };
+ if ( eval { $@->isa('Test::Builder::Exception') } ) {
+    $child->finalize;
+    return;
+ }
+ # run your tests
 
-sub reset {
-    my $self = shift;
-    my %params = @_;
+=cut
+
+my %plan_cmds = (
+    no_plan     => \&no_plan,
+    skip_all    => \&skip_all,
+    tests       => \&_plan_tests,
+);
+
+sub plan {
+    my( $self, $cmd, $arg ) = @_;
+
+    return unless $cmd;
+
+    local $Level = $Level + 1;
 
-    $self->{use_shared} = 1 if $params{shared_stream};
+    $self->croak("You tried to plan twice") if $self->{Have_Plan};
 
-    if ($self->{use_shared}) {
-        Test::Stream->shared->_reset;
-        Test::Stream->shared->state->[-1]->[STATE_LEGACY] = [];
+    if( my $method = $plan_cmds{$cmd} ) {
+        local $Level = $Level + 1;
+        $self->$method($arg);
     }
     else {
-        $self->{stream} = Test::Stream->new();
-        $self->{stream}->set_use_legacy(1);
-        $self->{stream}->state->[-1]->[STATE_LEGACY] = [];
+        my @args = grep { defined } ( $cmd, $arg );
+        $self->croak("plan() doesn't understand @args");
     }
 
-    # We leave this a global because it has to be localized and localizing
-    # hash keys is just asking for pain.  Also, it was documented.
-    $Level = 1;
-
-    $self->{Name} = $0;
+    return 1;
+}
 
-    $self->{Original_Pid} = $$;
-    $self->{Child_Name}   = undef;
 
-    $self->{Exported_To} = undef;
+sub _plan_tests {
+    my($self, $arg) = @_;
 
-    $self->{Todo}               = undef;
-    $self->{Todo_Stack}         = [];
-    $self->{Start_Todo}         = 0;
-    $self->{Opened_Testhandles} = 0;
+    if($arg) {
+        local $Level = $Level + 1;
+        return $self->expected_tests($arg);
+    }
+    elsif( !defined $arg ) {
+        $self->croak("Got an undefined number of tests");
+    }
+    else {
+        $self->croak("You said to run 0 tests");
+    }
 
     return;
 }
 
-#######################
-# }}} Public helpers #
-#######################
+=item B<expected_tests>
 
-#################################
-# {{{ Advanced Event Producers #
-#################################
+    my $max = $Test->expected_tests;
+    $Test->expected_tests($max);
 
-sub cmp_ok {
-    my( $self, $got, $type, $expect, $name ) = @_;
-    my $ctx = $self->ctx;
-    my ($ok, @diag) = tmt->cmp_check($got, $type, $expect);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
+Gets/sets the number of tests we expect this test to run and prints out
+the appropriate headers.
 
-sub is_eq {
-    my( $self, $got, $expect, $name ) = @_;
-    my $ctx = $self->ctx;
-    my ($ok, @diag) = tmt->is_eq($got, $expect);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
+=cut
 
-sub is_num {
-    my( $self, $got, $expect, $name ) = @_;
-    my $ctx = $self->ctx;
-    my ($ok, @diag) = tmt->is_num($got, $expect);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
+sub expected_tests {
+    my $self = shift;
+    my($max) = @_;
 
-sub isnt_eq {
-    my( $self, $got, $dont_expect, $name ) = @_;
-    my $ctx = $self->ctx;
-    my ($ok, @diag) = tmt->isnt_eq($got, $dont_expect);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
+    if(@_) {
+        $self->croak("Number of tests must be a positive integer.  You gave it '$max'")
+          unless $max =~ /^\+?\d+$/;
 
-sub isnt_num {
-    my( $self, $got, $dont_expect, $name ) = @_;
-    my $ctx = $self->ctx;
-    my ($ok, @diag) = tmt->isnt_num($got, $dont_expect);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
+        $self->{Expected_Tests} = $max;
+        $self->{Have_Plan}      = 1;
 
-sub like {
-    my( $self, $thing, $regex, $name ) = @_;
-    my $ctx = $self->ctx;
-    my ($ok, @diag) = tmt->regex_check($thing, $regex, '=~');
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
+        $self->_output_plan($max) unless $self->no_header;
+    }
+    return $self->{Expected_Tests};
 }
 
-sub unlike {
-    my( $self, $thing, $regex, $name ) = @_;
-    my $ctx = $self->ctx;
-    my ($ok, @diag) = tmt->regex_check($thing, $regex, '!~');
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
+=item B<no_plan>
 
-#################################
-# }}} Advanced Event Producers #
-#################################
+  $Test->no_plan;
 
-################################################
-# {{{ Misc #
-################################################
+Declares that this test will run an indeterminate number of tests.
 
-sub _new_fh {
-    my $self = shift;
-    my($file_or_fh) = shift;
+=cut
 
-    return $file_or_fh if $self->is_fh($file_or_fh);
+sub no_plan {
+    my($self, $arg) = @_;
 
-    my $fh;
-    if( ref $file_or_fh eq 'SCALAR' ) {
-        open $fh, ">>", $file_or_fh
-          or croak("Can't open scalar ref $file_or_fh: $!");
-    }
-    else {
-        open $fh, ">", $file_or_fh
-          or croak("Can't open test output log $file_or_fh: $!");
-        Test::Stream::IOSets->_autoflush($fh);
+    $self->carp("no_plan takes no arguments") if $arg;
+
+    $self->{No_Plan}   = 1;
+    $self->{Have_Plan} = 1;
+
+    return 1;
+}
+
+=begin private
+
+=item B<_output_plan>
+
+  $tb->_output_plan($max);
+  $tb->_output_plan($max, $directive);
+  $tb->_output_plan($max, $directive => $reason);
+
+Handles displaying the test plan.
+
+If a C<$directive> and/or C<$reason> are given they will be output with the
+plan.  So here's what skipping all tests looks like:
+
+    $tb->_output_plan(0, "SKIP", "Because I said so");
+
+It sets C<< $tb->{Have_Output_Plan} >> and will croak if the plan was already
+output.
+
+=end private
+
+=cut
+
+sub _output_plan {
+    my($self, $max, $directive, $reason) = @_;
+
+    $self->carp("The plan was already output") if $self->{Have_Output_Plan};
+
+    my $plan = "1..$max";
+    $plan .= " # $directive" if defined $directive;
+    $plan .= " $reason"      if defined $reason;
+
+    $self->_print("$plan\n");
+
+    $self->{Have_Output_Plan} = 1;
+
+    return;
+}
+
+
+=item B<done_testing>
+
+  $Test->done_testing();
+  $Test->done_testing($num_tests);
+
+Declares that you are done testing, no more tests will be run after this point.
+
+If a plan has not yet been output, it will do so.
+
+$num_tests is the number of tests you planned to run.  If a numbered
+plan was already declared, and if this contradicts, a failing test
+will be run to reflect the planning mistake.  If C<no_plan> was declared,
+this will override.
+
+If C<done_testing()> is called twice, the second call will issue a
+failing test.
+
+If C<$num_tests> is omitted, the number of tests run will be used, like
+no_plan.
+
+C<done_testing()> is, in effect, used when you'd want to use C<no_plan>, but
+safer. You'd use it like so:
+
+    $Test->ok($a == $b);
+    $Test->done_testing();
+
+Or to plan a variable number of tests:
+
+    for my $test (@tests) {
+        $Test->ok($test);
+    }
+    $Test->done_testing(scalar @tests);
+
+=cut
+
+sub done_testing {
+    my($self, $num_tests) = @_;
+
+    # If done_testing() specified the number of tests, shut off no_plan.
+    if( defined $num_tests ) {
+        $self->{No_Plan} = 0;
+    }
+    else {
+        $num_tests = $self->current_test;
+    }
+
+    if( $self->{Done_Testing} ) {
+        my($file, $line) = @{$self->{Done_Testing}}[1,2];
+        $self->ok(0, "done_testing() was already called at $file line $line");
+        return;
+    }
+
+    $self->{Done_Testing} = [caller];
+
+    if( $self->expected_tests && $num_tests != $self->expected_tests ) {
+        $self->ok(0, "planned to run @{[ $self->expected_tests ]} ".
+                     "but done_testing() expects $num_tests");
+    }
+    else {
+        $self->{Expected_Tests} = $num_tests;
+    }
+
+    $self->_output_plan($num_tests) unless $self->{Have_Output_Plan};
+
+    $self->{Have_Plan} = 1;
+
+    # The wrong number of tests were run
+    $self->is_passing(0) if $self->{Expected_Tests} != $self->{Curr_Test};
+
+    # No tests were run
+    $self->is_passing(0) if $self->{Curr_Test} == 0;
+
+    return 1;
+}
+
+
+=item B<has_plan>
+
+  $plan = $Test->has_plan
+
+Find out whether a plan has been defined. C<$plan> is either C<undef> (no plan
+has been set), C<no_plan> (indeterminate # of tests) or an integer (the number
+of expected tests).
+
+=cut
+
+sub has_plan {
+    my $self = shift;
+
+    return( $self->{Expected_Tests} ) if $self->{Expected_Tests};
+    return('no_plan') if $self->{No_Plan};
+    return(undef);
+}
+
+=item B<skip_all>
+
+  $Test->skip_all;
+  $Test->skip_all($reason);
+
+Skips all the tests, using the given C<$reason>.  Exits immediately with 0.
+
+=cut
+
+sub skip_all {
+    my( $self, $reason ) = @_;
+
+    $self->{Skip_All} = $self->parent ? $reason : 1;
+
+    $self->_output_plan(0, "SKIP", $reason) unless $self->no_header;
+    if ( $self->parent ) {
+        die bless {} => 'Test::Builder::Exception';
+    }
+    exit(0);
+}
+
+=item B<exported_to>
+
+  my $pack = $Test->exported_to;
+  $Test->exported_to($pack);
+
+Tells Test::Builder what package you exported your functions to.
+
+This method isn't terribly useful since modules which share the same
+Test::Builder object might get exported to different packages and only
+the last one will be honored.
+
+=cut
+
+sub exported_to {
+    my( $self, $pack ) = @_;
+
+    if( defined $pack ) {
+        $self->{Exported_To} = $pack;
+    }
+    return $self->{Exported_To};
+}
+
+=back
+
+=head2 Running tests
+
+These actually run the tests, analogous to the functions in Test::More.
+
+They all return true if the test passed, false if the test failed.
+
+C<$name> is always optional.
+
+=over 4
+
+=item B<ok>
+
+  $Test->ok($test, $name);
+
+Your basic test.  Pass if C<$test> is true, fail if $test is false.  Just
+like Test::Simple's C<ok()>.
+
+=cut
+
+sub ok {
+    my( $self, $test, $name ) = @_;
+
+    if ( $self->{Child_Name} and not $self->{In_Destroy} ) {
+        $name = 'unnamed test' unless defined $name;
+        $self->is_passing(0);
+        $self->croak("Cannot run test ($name) with active children");
+    }
+    # $test might contain an object which we don't want to accidentally
+    # store, so we turn it into a boolean.
+    $test = $test ? 1 : 0;
+
+    lock $self->{Curr_Test};
+    $self->{Curr_Test}++;
+
+    # In case $name is a string overloaded object, force it to stringify.
+    $self->_unoverload_str( \$name );
+
+    $self->diag(<<"ERR") if defined $name and $name =~ /^[\d\s]+$/;
+    You named your test '$name'.  You shouldn't use numbers for your test names.
+    Very confusing.
+ERR
+
+    # Capture the value of $TODO for the rest of this ok() call
+    # so it can more easily be found by other routines.
+    my $todo    = $self->todo();
+    my $in_todo = $self->in_todo;
+    local $self->{Todo} = $todo if $in_todo;
+
+    $self->_unoverload_str( \$todo );
+
+    my $out;
+    my $result = &share( {} );
+
+    unless($test) {
+        $out .= "not ";
+        @$result{ 'ok', 'actual_ok' } = ( ( $self->in_todo ? 1 : 0 ), 0 );
+    }
+    else {
+        @$result{ 'ok', 'actual_ok' } = ( 1, $test );
+    }
+
+    $out .= "ok";
+    $out .= " $self->{Curr_Test}" if $self->use_numbers;
+
+    if( defined $name ) {
+        $name =~ s|#|\\#|g;    # # in a name can confuse Test::Harness.
+        $out .= " - $name";
+        $result->{name} = $name;
+    }
+    else {
+        $result->{name} = '';
+    }
+
+    if( $self->in_todo ) {
+        $out .= " # TODO $todo";
+        $result->{reason} = $todo;
+        $result->{type}   = 'todo';
+    }
+    else {
+        $result->{reason} = '';
+        $result->{type}   = '';
+    }
+
+    $self->{Test_Results}[ $self->{Curr_Test} - 1 ] = $result;
+    $out .= "\n";
+
+    $self->_print($out);
+
+    unless($test) {
+        my $msg = $self->in_todo ? "Failed (TODO)" : "Failed";
+        $self->_print_to_fh( $self->_diag_fh, "\n" ) if $ENV{HARNESS_ACTIVE};
+
+        my( undef, $file, $line ) = $self->caller;
+        if( defined $name ) {
+            $self->diag(qq[  $msg test '$name'\n]);
+            $self->diag(qq[  at $file line $line.\n]);
+        }
+        else {
+            $self->diag(qq[  $msg test at $file line $line.\n]);
+        }
+    }
+
+    $self->is_passing(0) unless $test || $self->in_todo;
+
+    # Check that we haven't violated the plan
+    $self->_check_is_passing_plan();
+
+    return $test ? 1 : 0;
+}
+
+
+# Check that we haven't yet violated the plan and set
+# is_passing() accordingly
+sub _check_is_passing_plan {
+    my $self = shift;
+
+    my $plan = $self->has_plan;
+    return unless defined $plan;        # no plan yet defined
+    return unless $plan !~ /\D/;        # no numeric plan
+    $self->is_passing(0) if $plan < $self->{Curr_Test};
+}
+
+
+sub _unoverload {
+    my $self = shift;
+    my $type = shift;
+
+    $self->_try(sub { require overload; }, die_on_fail => 1);
+
+    foreach my $thing (@_) {
+        if( $self->_is_object($$thing) ) {
+            if( my $string_meth = overload::Method( $$thing, $type ) ) {
+                $$thing = $$thing->$string_meth();
+            }
+        }
+    }
+
+    return;
+}
+
+sub _is_object {
+    my( $self, $thing ) = @_;
+
+    return $self->_try( sub { ref $thing && $thing->isa('UNIVERSAL') } ) ? 1 : 0;
+}
+
+sub _unoverload_str {
+    my $self = shift;
+
+    return $self->_unoverload( q[""], @_ );
+}
+
+sub _unoverload_num {
+    my $self = shift;
+
+    $self->_unoverload( '0+', @_ );
+
+    for my $val (@_) {
+        next unless $self->_is_dualvar($$val);
+        $$val = $$val + 0;
+    }
+
+    return;
+}
+
+# This is a hack to detect a dualvar such as $!
+sub _is_dualvar {
+    my( $self, $val ) = @_;
+
+    # Objects are not dualvars.
+    return 0 if ref $val;
+
+    no warnings 'numeric';
+    my $numval = $val + 0;
+    return ($numval != 0 and $numval ne $val ? 1 : 0);
+}
+
+=item B<is_eq>
+
+  $Test->is_eq($got, $expected, $name);
+
+Like Test::More's C<is()>.  Checks if C<$got eq $expected>.  This is the
+string version.
+
+C<undef> only ever matches another C<undef>.
+
+=item B<is_num>
+
+  $Test->is_num($got, $expected, $name);
+
+Like Test::More's C<is()>.  Checks if C<$got == $expected>.  This is the
+numeric version.
+
+C<undef> only ever matches another C<undef>.
+
+=cut
+
+sub is_eq {
+    my( $self, $got, $expect, $name ) = @_;
+    local $Level = $Level + 1;
+
+    if( !defined $got || !defined $expect ) {
+        # undef only matches undef and nothing else
+        my $test = !defined $got && !defined $expect;
+
+        $self->ok( $test, $name );
+        $self->_is_diag( $got, 'eq', $expect ) unless $test;
+        return $test;
+    }
+
+    return $self->cmp_ok( $got, 'eq', $expect, $name );
+}
+
+sub is_num {
+    my( $self, $got, $expect, $name ) = @_;
+    local $Level = $Level + 1;
+
+    if( !defined $got || !defined $expect ) {
+        # undef only matches undef and nothing else
+        my $test = !defined $got && !defined $expect;
+
+        $self->ok( $test, $name );
+        $self->_is_diag( $got, '==', $expect ) unless $test;
+        return $test;
+    }
+
+    return $self->cmp_ok( $got, '==', $expect, $name );
+}
+
+sub _diag_fmt {
+    my( $self, $type, $val ) = @_;
+
+    if( defined $$val ) {
+        if( $type eq 'eq' or $type eq 'ne' ) {
+            # quote and force string context
+            $$val = "'$$val'";
+        }
+        else {
+            # force numeric context
+            $self->_unoverload_num($val);
+        }
+    }
+    else {
+        $$val = 'undef';
+    }
+
+    return;
+}
+
+sub _is_diag {
+    my( $self, $got, $type, $expect ) = @_;
+
+    $self->_diag_fmt( $type, $_ ) for \$got, \$expect;
+
+    local $Level = $Level + 1;
+    return $self->diag(<<"DIAGNOSTIC");
+         got: $got
+    expected: $expect
+DIAGNOSTIC
+
+}
+
+sub _isnt_diag {
+    my( $self, $got, $type ) = @_;
+
+    $self->_diag_fmt( $type, \$got );
+
+    local $Level = $Level + 1;
+    return $self->diag(<<"DIAGNOSTIC");
+         got: $got
+    expected: anything else
+DIAGNOSTIC
+}
+
+=item B<isnt_eq>
+
+  $Test->isnt_eq($got, $dont_expect, $name);
+
+Like L<Test::More>'s C<isnt()>.  Checks if C<$got ne $dont_expect>.  This is
+the string version.
+
+=item B<isnt_num>
+
+  $Test->isnt_num($got, $dont_expect, $name);
+
+Like L<Test::More>'s C<isnt()>.  Checks if C<$got ne $dont_expect>.  This is
+the numeric version.
+
+=cut
+
+sub isnt_eq {
+    my( $self, $got, $dont_expect, $name ) = @_;
+    local $Level = $Level + 1;
+
+    if( !defined $got || !defined $dont_expect ) {
+        # undef only matches undef and nothing else
+        my $test = defined $got || defined $dont_expect;
+
+        $self->ok( $test, $name );
+        $self->_isnt_diag( $got, 'ne' ) unless $test;
+        return $test;
+    }
+
+    return $self->cmp_ok( $got, 'ne', $dont_expect, $name );
+}
+
+sub isnt_num {
+    my( $self, $got, $dont_expect, $name ) = @_;
+    local $Level = $Level + 1;
+
+    if( !defined $got || !defined $dont_expect ) {
+        # undef only matches undef and nothing else
+        my $test = defined $got || defined $dont_expect;
+
+        $self->ok( $test, $name );
+        $self->_isnt_diag( $got, '!=' ) unless $test;
+        return $test;
+    }
+
+    return $self->cmp_ok( $got, '!=', $dont_expect, $name );
+}
+
+=item B<like>
+
+  $Test->like($thing, qr/$regex/, $name);
+  $Test->like($thing, '/$regex/', $name);
+
+Like L<Test::More>'s C<like()>.  Checks if $thing matches the given C<$regex>.
+
+=item B<unlike>
+
+  $Test->unlike($thing, qr/$regex/, $name);
+  $Test->unlike($thing, '/$regex/', $name);
+
+Like L<Test::More>'s C<unlike()>.  Checks if $thing B<does not match> the
+given C<$regex>.
+
+=cut
+
+sub like {
+    my( $self, $thing, $regex, $name ) = @_;
+
+    local $Level = $Level + 1;
+    return $self->_regex_ok( $thing, $regex, '=~', $name );
+}
+
+sub unlike {
+    my( $self, $thing, $regex, $name ) = @_;
+
+    local $Level = $Level + 1;
+    return $self->_regex_ok( $thing, $regex, '!~', $name );
+}
+
+=item B<cmp_ok>
+
+  $Test->cmp_ok($thing, $type, $that, $name);
+
+Works just like L<Test::More>'s C<cmp_ok()>.
+
+    $Test->cmp_ok($big_num, '!=', $other_big_num);
+
+=cut
+
+my %numeric_cmps = map { ( $_, 1 ) } ( "<", "<=", ">", ">=", "==", "!=", "<=>" );
+
+# Bad, these are not comparison operators. Should we include more?
+my %cmp_ok_bl = map { ( $_, 1 ) } ( "=", "+=", ".=", "x=", "^=", "|=", "||=", "&&=", "...");
+
+sub cmp_ok {
+    my( $self, $got, $type, $expect, $name ) = @_;
+
+    if ($cmp_ok_bl{$type}) {
+        $self->croak("$type is not a valid comparison operator in cmp_ok()");
+    }
+
+    my ($test, $succ);
+    my $error;
+    {
+        ## no critic (BuiltinFunctions::ProhibitStringyEval)
+
+        local( $@, $!, $SIG{__DIE__} );    # isolate eval
+
+        my($pack, $file, $line) = $self->caller();
+
+        # This is so that warnings come out at the caller's level
+        $succ = eval qq[
+#line $line "(eval in cmp_ok) $file"
+\$test = (\$got $type \$expect);
+1;
+];
+        $error = $@;
+    }
+    local $Level = $Level + 1;
+    my $ok = $self->ok( $test, $name );
+
+    # Treat overloaded objects as numbers if we're asked to do a
+    # numeric comparison.
+    my $unoverload
+      = $numeric_cmps{$type}
+      ? '_unoverload_num'
+      : '_unoverload_str';
+
+    $self->diag(<<"END") unless $succ;
+An error occurred while using $type:
+------------------------------------
+$error
+------------------------------------
+END
+
+    unless($ok) {
+        $self->$unoverload( \$got, \$expect );
+
+        if( $type =~ /^(eq|==)$/ ) {
+            $self->_is_diag( $got, $type, $expect );
+        }
+        elsif( $type =~ /^(ne|!=)$/ ) {
+            $self->_isnt_diag( $got, $type );
+        }
+        else {
+            $self->_cmp_diag( $got, $type, $expect );
+        }
     }
+    return $ok;
+}
 
-    return $fh;
+sub _cmp_diag {
+    my( $self, $got, $type, $expect ) = @_;
+
+    $got    = defined $got    ? "'$got'"    : 'undef';
+    $expect = defined $expect ? "'$expect'" : 'undef';
+
+    local $Level = $Level + 1;
+    return $self->diag(<<"DIAGNOSTIC");
+    $got
+        $type
+    $expect
+DIAGNOSTIC
 }
 
-sub output {
+sub _caller_context {
     my $self = shift;
-    my $handles = $self->ctx->stream->io_sets->init_encoding('legacy');
-    $handles->[0] = $self->_new_fh(@_) if @_;
-    return $handles->[0];
+
+    my( $pack, $file, $line ) = $self->caller(1);
+
+    my $code = '';
+    $code .= "#line $line $file\n" if defined $file and defined $line;
+
+    return $code;
 }
 
-sub failure_output {
-    my $self = shift;
-    my $handles = $self->ctx->stream->io_sets->init_encoding('legacy');
-    $handles->[1] = $self->_new_fh(@_) if @_;
-    return $handles->[1];
+=back
+
+
+=head2 Other Testing Methods
+
+These are methods which are used in the course of writing a test but are not themselves tests.
+
+=over 4
+
+=item B<BAIL_OUT>
+
+    $Test->BAIL_OUT($reason);
+
+Indicates to the L<Test::Harness> that things are going so badly all
+testing should terminate.  This includes running any additional test
+scripts.
+
+It will exit with 255.
+
+=cut
+
+sub BAIL_OUT {
+    my( $self, $reason ) = @_;
+
+    $self->{Bailed_Out} = 1;
+
+    if ($self->parent) {
+        $self->{Bailed_Out_Reason} = $reason;
+        $self->no_ending(1);
+        die bless {} => 'Test::Builder::Exception';
+    }
+
+    $self->_print("Bail out!  $reason");
+    exit 255;
 }
 
-sub todo_output {
-    my $self = shift;
-    my $handles = $self->ctx->stream->io_sets->init_encoding('legacy');
-    $handles->[2] = $self->_new_fh(@_) if @_;
-    return $handles->[2] || $handles->[0];
+=for deprecated
+BAIL_OUT() used to be BAILOUT()
+
+=cut
+
+{
+    no warnings 'once';
+    *BAILOUT = \&BAIL_OUT;
 }
 
-sub reset_outputs {
-    my $self = shift;
-    my $ctx = $self->ctx;
-    $ctx->stream->io_sets->reset_legacy;
+=item B<skip>
+
+    $Test->skip;
+    $Test->skip($why);
+
+Skips the current test, reporting C<$why>.
+
+=cut
+
+sub skip {
+    my( $self, $why, $name ) = @_;
+    $why ||= '';
+    $name = '' unless defined $name;
+    $self->_unoverload_str( \$why );
+
+    lock( $self->{Curr_Test} );
+    $self->{Curr_Test}++;
+
+    $self->{Test_Results}[ $self->{Curr_Test} - 1 ] = &share(
+        {
+            'ok'      => 1,
+            actual_ok => 1,
+            name      => $name,
+            type      => 'skip',
+            reason    => $why,
+        }
+    );
+
+    my $out = "ok";
+    $out .= " $self->{Curr_Test}" if $self->use_numbers;
+    $out .= " # skip";
+    $out .= " $why"               if length $why;
+    $out .= "\n";
+
+    $self->_print($out);
+
+    return 1;
 }
 
-sub use_numbers {
-    my $self = shift;
-    my $ctx = $self->ctx;
-    $ctx->stream->set_use_numbers(@_) if @_;
-    $ctx->stream->use_numbers;
+=item B<todo_skip>
+
+  $Test->todo_skip;
+  $Test->todo_skip($why);
+
+Like C<skip()>, only it will declare the test as failing and TODO.  Similar
+to
+
+    print "not ok $tnum # TODO $why\n";
+
+=cut
+
+sub todo_skip {
+    my( $self, $why ) = @_;
+    $why ||= '';
+
+    lock( $self->{Curr_Test} );
+    $self->{Curr_Test}++;
+
+    $self->{Test_Results}[ $self->{Curr_Test} - 1 ] = &share(
+        {
+            'ok'      => 1,
+            actual_ok => 0,
+            name      => '',
+            type      => 'todo_skip',
+            reason    => $why,
+        }
+    );
+
+    my $out = "not ok";
+    $out .= " $self->{Curr_Test}" if $self->use_numbers;
+    $out .= " # TODO & SKIP $why\n";
+
+    $self->_print($out);
+
+    return 1;
 }
 
-sub no_ending {
-    my $self = shift;
-    my $ctx = $self->ctx;
-    $ctx->stream->set_no_ending(@_) if @_;
-    $ctx->stream->no_ending || 0;
+=begin _unimplemented
+
+=item B<skip_rest>
+
+  $Test->skip_rest;
+  $Test->skip_rest($reason);
+
+Like C<skip()>, only it skips all the rest of the tests you plan to run
+and terminates the test.
+
+If you're running under C<no_plan>, it skips once and terminates the
+test.
+
+=end _unimplemented
+
+=back
+
+
+=head2 Test building utility methods
+
+These methods are useful when writing your own test methods.
+
+=over 4
+
+=item B<maybe_regex>
+
+  $Test->maybe_regex(qr/$regex/);
+  $Test->maybe_regex('/$regex/');
+
+This method used to be useful back when Test::Builder worked on Perls
+before 5.6 which didn't have qr//.  Now its pretty useless.
+
+Convenience method for building testing functions that take regular
+expressions as arguments.
+
+Takes a quoted regular expression produced by C<qr//>, or a string
+representing a regular expression.
+
+Returns a Perl value which may be used instead of the corresponding
+regular expression, or C<undef> if its argument is not recognised.
+
+For example, a version of C<like()>, sans the useful diagnostic messages,
+could be written as:
+
+  sub laconic_like {
+      my ($self, $thing, $regex, $name) = @_;
+      my $usable_regex = $self->maybe_regex($regex);
+      die "expecting regex, found '$regex'\n"
+          unless $usable_regex;
+      $self->ok($thing =~ m/$usable_regex/, $name);
+  }
+
+=cut
+
+sub maybe_regex {
+    my( $self, $regex ) = @_;
+    my $usable_regex = undef;
+
+    return $usable_regex unless defined $regex;
+
+    my( $re, $opts );
+
+    # Check for qr/foo/
+    if( _is_qr($regex) ) {
+        $usable_regex = $regex;
+    }
+    # Check for '/foo/' or 'm,foo,'
+    elsif(( $re, $opts )        = $regex =~ m{^ /(.*)/ (\w*) $ }sx              or
+          ( undef, $re, $opts ) = $regex =~ m,^ m([^\w\s]) (.+) \1 (\w*) $,sx
+    )
+    {
+        $usable_regex = length $opts ? "(?$opts)$re" : $re;
+    }
+
+    return $usable_regex;
 }
 
-sub no_header {
-    my $self = shift;
-    my $ctx = $self->ctx;
-    $ctx->stream->set_no_header(@_) if @_;
-    $ctx->stream->no_header || 0;
+sub _is_qr {
+    my $regex = shift;
+
+    # is_regexp() checks for regexes in a robust manner, say if they're
+    # blessed.
+    return re::is_regexp($regex) if defined &re::is_regexp;
+    return ref $regex eq 'Regexp';
 }
 
-sub no_diag {
-    my $self = shift;
-    my $ctx = $self->ctx;
-    $ctx->stream->set_no_diag(@_) if @_;
-    $ctx->stream->no_diag || 0;
+sub _regex_ok {
+    my( $self, $thing, $regex, $cmp, $name ) = @_;
+
+    my $ok           = 0;
+    my $usable_regex = $self->maybe_regex($regex);
+    unless( defined $usable_regex ) {
+        local $Level = $Level + 1;
+        $ok = $self->ok( 0, $name );
+        $self->diag("    '$regex' doesn't look much like a regex to me.");
+        return $ok;
+    }
+
+    {
+        my $test;
+        my $context = $self->_caller_context;
+
+        {
+            ## no critic (BuiltinFunctions::ProhibitStringyEval)
+
+            local( $@, $!, $SIG{__DIE__} );    # isolate eval
+
+            # No point in issuing an uninit warning, they'll see it in the diagnostics
+            no warnings 'uninitialized';
+
+            $test = eval $context . q{$test = $thing =~ /$usable_regex/ ? 1 : 0};
+        }
+
+        $test = !$test if $cmp eq '!~';
+
+        local $Level = $Level + 1;
+        $ok = $self->ok( $test, $name );
+    }
+
+    unless($ok) {
+        $thing = defined $thing ? "'$thing'" : 'undef';
+        my $match = $cmp eq '=~' ? "doesn't match" : "matches";
+
+        local $Level = $Level + 1;
+        $self->diag( sprintf <<'DIAGNOSTIC', $thing, $match, $regex );
+                  %s
+    %13s '%s'
+DIAGNOSTIC
+
+    }
+
+    return $ok;
 }
 
-sub exported_to {
-    my($self, $pack) = @_;
-    $self->{Exported_To} = $pack if defined $pack;
-    return $self->{Exported_To};
+# I'm not ready to publish this.  It doesn't deal with array return
+# values from the code or context.
+
+=begin private
+
+=item B<_try>
+
+    my $return_from_code          = $Test->try(sub { code });
+    my($return_from_code, $error) = $Test->try(sub { code });
+
+Works like eval BLOCK except it ensures it has no effect on the rest
+of the test (ie. C<$@> is not set) nor is effected by outside
+interference (ie. C<$SIG{__DIE__}>) and works around some quirks in older
+Perls.
+
+C<$error> is what would normally be in C<$@>.
+
+It is suggested you use this in place of eval BLOCK.
+
+=cut
+
+sub _try {
+    my( $self, $code, %opts ) = @_;
+
+    my $error;
+    my $return;
+    {
+        local $!;               # eval can mess up $!
+        local $@;               # don't set $@ in the test
+        local $SIG{__DIE__};    # don't trip an outside DIE handler.
+        $return = eval { $code->() };
+        $error = $@;
+    }
+
+    die $error if $error and $opts{die_on_fail};
+
+    return wantarray ? ( $return, $error ) : $return;
 }
 
+=end private
+
+
+=item B<is_fh>
+
+    my $is_fh = $Test->is_fh($thing);
+
+Determines if the given C<$thing> can be used as a filehandle.
+
+=cut
+
 sub is_fh {
     my $self     = shift;
     my $maybe_fh = shift;
@@ -716,628 +1552,1121 @@ sub is_fh {
     return 1 if ref $maybe_fh  eq 'GLOB';    # its a glob ref
     return 1 if ref \$maybe_fh eq 'GLOB';    # its a glob
 
-    my $out;
-    protect {
-        $out = eval { $maybe_fh->isa("IO::Handle") }
-            || eval { tied($maybe_fh)->can('TIEHANDLE') };
+    return eval { $maybe_fh->isa("IO::Handle") } ||
+           eval { tied($maybe_fh)->can('TIEHANDLE') };
+}
+
+=back
+
+
+=head2 Test style
+
+
+=over 4
+
+=item B<level>
+
+    $Test->level($how_high);
+
+How far up the call stack should C<$Test> look when reporting where the
+test failed.
+
+Defaults to 1.
+
+Setting L<$Test::Builder::Level> overrides.  This is typically useful
+localized:
+
+    sub my_ok {
+        my $test = shift;
+
+        local $Test::Builder::Level = $Test::Builder::Level + 1;
+        $TB->ok($test);
+    }
+
+To be polite to other functions wrapping your own you usually want to increment C<$Level> rather than set it to a constant.
+
+=cut
+
+sub level {
+    my( $self, $level ) = @_;
+
+    if( defined $level ) {
+        $Level = $level;
+    }
+    return $Level;
+}
+
+=item B<use_numbers>
+
+    $Test->use_numbers($on_or_off);
+
+Whether or not the test should output numbers.  That is, this if true:
+
+  ok 1
+  ok 2
+  ok 3
+
+or this if false
+
+  ok
+  ok
+  ok
+
+Most useful when you can't depend on the test output order, such as
+when threads or forking is involved.
+
+Defaults to on.
+
+=cut
+
+sub use_numbers {
+    my( $self, $use_nums ) = @_;
+
+    if( defined $use_nums ) {
+        $self->{Use_Nums} = $use_nums;
+    }
+    return $self->{Use_Nums};
+}
+
+=item B<no_diag>
+
+    $Test->no_diag($no_diag);
+
+If set true no diagnostics will be printed.  This includes calls to
+C<diag()>.
+
+=item B<no_ending>
+
+    $Test->no_ending($no_ending);
+
+Normally, Test::Builder does some extra diagnostics when the test
+ends.  It also changes the exit code as described below.
+
+If this is true, none of that will be done.
+
+=item B<no_header>
+
+    $Test->no_header($no_header);
+
+If set to true, no "1..N" header will be printed.
+
+=cut
+
+foreach my $attribute (qw(No_Header No_Ending No_Diag)) {
+    my $method = lc $attribute;
+
+    my $code = sub {
+        my( $self, $no ) = @_;
+
+        if( defined $no ) {
+            $self->{$attribute} = $no;
+        }
+        return $self->{$attribute};
     };
 
-    return $out;
+    no strict 'refs';    ## no critic
+    *{ __PACKAGE__ . '::' . $method } = $code;
 }
 
-sub BAILOUT { goto &BAIL_OUT }
+=back
+
+=head2 Output
 
-sub expected_tests {
+Controlling where the test output goes.
+
+It's ok for your test to change where STDOUT and STDERR point to,
+Test::Builder's default output settings will not be affected.
+
+=over 4
+
+=item B<diag>
+
+    $Test->diag(@msgs);
+
+Prints out the given C<@msgs>.  Like C<print>, arguments are simply
+appended together.
+
+Normally, it uses the C<failure_output()> handle, but if this is for a
+TODO test, the C<todo_output()> handle is used.
+
+Output will be indented and marked with a # so as not to interfere
+with test output.  A newline will be put on the end if there isn't one
+already.
+
+We encourage using this rather than calling print directly.
+
+Returns false.  Why?  Because C<diag()> is often used in conjunction with
+a failing test (C<ok() || diag()>) it "passes through" the failure.
+
+    return ok(...) || diag(...);
+
+=for blame transfer
+Mark Fowler <mark@twoshortplanks.com>
+
+=cut
+
+sub diag {
+    my $self = shift;
+
+    $self->_print_comment( $self->_diag_fh, @_ );
+}
+
+=item B<note>
+
+    $Test->note(@msgs);
+
+Like C<diag()>, but it prints to the C<output()> handle so it will not
+normally be seen by the user except in verbose mode.
+
+=cut
+
+sub note {
+    my $self = shift;
+
+    $self->_print_comment( $self->output, @_ );
+}
+
+sub _diag_fh {
+    my $self = shift;
+
+    local $Level = $Level + 1;
+    return $self->in_todo ? $self->todo_output : $self->failure_output;
+}
+
+sub _print_comment {
+    my( $self, $fh, @msgs ) = @_;
+
+    return if $self->no_diag;
+    return unless @msgs;
+
+    # Prevent printing headers when compiling (i.e. -c)
+    return if $^C;
+
+    # Smash args together like print does.
+    # Convert undef to 'undef' so its readable.
+    my $msg = join '', map { defined($_) ? $_ : 'undef' } @msgs;
+
+    # Escape the beginning, _print will take care of the rest.
+    $msg =~ s/^/# /;
+
+    local $Level = $Level + 1;
+    $self->_print_to_fh( $fh, $msg );
+
+    return 0;
+}
+
+=item B<explain>
+
+    my @dump = $Test->explain(@msgs);
+
+Will dump the contents of any references in a human readable format.
+Handy for things like...
+
+    is_deeply($have, $want) || diag explain $have;
+
+or
+
+    is_deeply($have, $want) || note explain $have;
+
+=cut
+
+sub explain {
     my $self = shift;
 
-    my $ctx = $self->ctx;
-    $ctx->plan(@_) if @_;
+    return map {
+        ref $_
+          ? do {
+            $self->_try(sub { require Data::Dumper }, die_on_fail => 1);
 
-    my $plan = $ctx->stream->state->[-1]->[STATE_PLAN] || return 0;
-    return $plan->max || 0;
+            my $dumper = Data::Dumper->new( [$_] );
+            $dumper->Indent(1)->Terse(1);
+            $dumper->Sortkeys(1) if $dumper->can("Sortkeys");
+            $dumper->Dump;
+          }
+          : $_
+    } @_;
 }
 
-sub caller {    ## no critic (Subroutines::ProhibitBuiltinHomonyms)
-    my $self = shift;
+=begin _private
 
-    my $ctx = $self->ctx;
+=item B<_print>
 
-    return wantarray ? $ctx->call : $ctx->package;
-}
+    $Test->_print(@msgs);
 
-sub level {
-    my( $self, $level ) = @_;
-    $Level = $level if defined $level;
-    return $Level;
-}
+Prints to the C<output()> filehandle.
 
-sub maybe_regex {
-    my ($self, $regex) = @_;
-    return is_regex($regex);
-}
+=end _private
 
-sub is_passing {
+=cut
+
+sub _print {
     my $self = shift;
-    my $ctx = $self->ctx;
-    $ctx->stream->is_passing(@_);
+    return $self->_print_to_fh( $self->output, @_ );
 }
 
-# Yeah, this is not efficient, but it is only legacy support, barely anything
-# uses it, and they really should not.
-sub current_test {
-    my $self = shift;
+sub _print_to_fh {
+    my( $self, $fh, @msgs ) = @_;
 
-    my $ctx = $self->ctx;
-
-    if (@_) {
-        my ($num) = @_;
-        my $state = $ctx->stream->state->[-1];
-        $state->[STATE_COUNT] = $num;
-
-        my $old = $state->[STATE_LEGACY] || [];
-        my $new = [];
-
-        my $nctx = $ctx->snapshot;
-        $nctx->set_todo('incrementing test number');
-        $nctx->set_in_todo(1);
-
-        for (1 .. $num) {
-            my $i;
-            $i = shift @$old while @$old && (!$i || !$i->isa('Test::Stream::Event::Ok'));
-            $i ||= Test::Stream::Event::Ok->new(
-                $nctx,
-                [CORE::caller()],
-                0,
-                undef,
-                undef,
-                undef,
-                1,
-            );
-
-            push @$new => $i;
-        }
+    # Prevent printing headers when only compiling.  Mostly for when
+    # tests are deparsed with B::Deparse
+    return if $^C;
 
-        $state->[STATE_LEGACY] = $new;
-    }
+    my $msg = join '', @msgs;
+    my $indent = $self->_indent;
 
-    $ctx->stream->count;
-}
+    local( $\, $", $, ) = ( undef, ' ', '' );
 
-sub details {
-    my $self = shift;
-    my $ctx = $self->ctx;
-    my $state = $ctx->stream->state->[-1];
-    my @out;
-    return @out unless $state->[STATE_LEGACY];
+    # Escape each line after the first with a # so we don't
+    # confuse Test::Harness.
+    $msg =~ s{\n(?!\z)}{\n$indent# }sg;
 
-    for my $e (@{$state->[STATE_LEGACY]}) {
-        next unless $e && $e->isa('Test::Stream::Event::Ok');
-        push @out => $e->to_legacy;
-    }
+    # Stick a newline on the end if it needs it.
+    $msg .= "\n" unless $msg =~ /\n\z/;
 
-    return @out;
+    return print $fh $indent, $msg;
 }
 
-sub summary {
-    my $self = shift;
-    my $ctx = $self->ctx;
-    my $state = $ctx->stream->state->[-1];
-    return @{[]} unless $state->[STATE_LEGACY];
-    return map { $_->isa('Test::Stream::Event::Ok') ? ($_->bool ? 1 : 0) : ()} @{$state->[STATE_LEGACY]};
-}
+=item B<output>
 
-###################################
-# }}} Misc #
-###################################
+=item B<failure_output>
 
-####################
-# {{{ TB1.5 stuff  #
-####################
+=item B<todo_output>
 
-# This is just a list of method Test::Builder current does not have that Test::Builder 1.5 does.
-my %TB15_METHODS = map { $_ => 1 } qw{
-    _file_and_line _join_message _make_default _my_exit _reset_todo_state
-    _result_to_hash _results _todo_state formatter history in_test
-    no_change_exit_code post_event post_result set_formatter set_plan test_end
-    test_exit_code test_start test_state
-};
+    my $filehandle = $Test->output;
+    $Test->output($filehandle);
+    $Test->output($filename);
+    $Test->output(\$scalar);
 
-our $AUTOLOAD;
+These methods control where Test::Builder will print its output.
+They take either an open C<$filehandle>, a C<$filename> to open and write to
+or a C<$scalar> reference to append to.  It will always return a C<$filehandle>.
 
-sub AUTOLOAD {
-    $AUTOLOAD =~ m/^(.*)::([^:]+)$/;
-    my ($package, $sub) = ($1, $2);
+B<output> is where normal "ok/not ok" test output goes.
 
-    my @caller = CORE::caller();
-    my $msg    = qq{Can't locate object method "$sub" via package "$package" at $caller[1] line $caller[2].\n};
+Defaults to STDOUT.
 
-    $msg .= <<"    EOT" if $TB15_METHODS{$sub};
+B<failure_output> is where diagnostic output on test failures and
+C<diag()> goes.  It is normally not read by Test::Harness and instead is
+displayed to the user.
 
-    *************************************************************************
-    '$sub' is a Test::Builder 1.5 method. Test::Builder 1.5 is a dead branch.
-    You need to update your code so that it no longer treats Test::Builders
-    over a specific version number as anything special.
+Defaults to STDERR.
 
-    See: http://blogs.perl.org/users/chad_exodist_granum/2014/03/testmore---new-maintainer-also-stop-version-checking.html
-    *************************************************************************
-    EOT
+C<todo_output> is used instead of C<failure_output()> for the
+diagnostics of a failing TODO test.  These will not be seen by the
+user.
 
-    die $msg;
-}
+Defaults to STDOUT.
 
-####################
-# }}} TB1.5 stuff  #
-####################
+=cut
 
-##################################
-# {{{ Legacy support, do not use #
-##################################
+sub output {
+    my( $self, $fh ) = @_;
 
-# These are here to support old versions of Test::More which may be bundled
-# with some dists. See https://github.com/Test-More/test-more/issues/479
+    if( defined $fh ) {
+        $self->{Out_FH} = $self->_new_fh($fh);
+    }
+    return $self->{Out_FH};
+}
 
-sub _try {
-    my( $self, $code, %opts ) = @_;
+sub failure_output {
+    my( $self, $fh ) = @_;
 
-    my $error;
-    my $return;
-    protect {
-        $return = eval { $code->() };
-        $error = $@;
-    };
+    if( defined $fh ) {
+        $self->{Fail_FH} = $self->_new_fh($fh);
+    }
+    return $self->{Fail_FH};
+}
 
-    die $error if $error and $opts{die_on_fail};
+sub todo_output {
+    my( $self, $fh ) = @_;
 
-    return wantarray ? ( $return, $error ) : $return;
+    if( defined $fh ) {
+        $self->{Todo_FH} = $self->_new_fh($fh);
+    }
+    return $self->{Todo_FH};
 }
 
-sub _unoverload {
+sub _new_fh {
     my $self = shift;
-    my $type = shift;
-
-    $self->_try(sub { require overload; }, die_on_fail => 1);
+    my($file_or_fh) = shift;
 
-    foreach my $thing (@_) {
-        if( $self->_is_object($$thing) ) {
-            if( my $string_meth = overload::Method( $$thing, $type ) ) {
-                $$thing = $$thing->$string_meth();
-            }
+    my $fh;
+    if( $self->is_fh($file_or_fh) ) {
+        $fh = $file_or_fh;
+    }
+    elsif( ref $file_or_fh eq 'SCALAR' ) {
+        # Scalar refs as filehandles was added in 5.8.
+        if( $] >= 5.008 ) {
+            open $fh, ">>", $file_or_fh
+              or $self->croak("Can't open scalar ref $file_or_fh: $!");
+        }
+        # Emulate scalar ref filehandles with a tie.
+        else {
+            $fh = Test::Builder::IO::Scalar->new($file_or_fh)
+              or $self->croak("Can't tie scalar ref $file_or_fh");
         }
     }
+    else {
+        open $fh, ">", $file_or_fh
+          or $self->croak("Can't open test output log $file_or_fh: $!");
+        _autoflush($fh);
+    }
 
-    return;
+    return $fh;
 }
 
-sub _is_object {
-    my( $self, $thing ) = @_;
+sub _autoflush {
+    my($fh) = shift;
+    my $old_fh = select $fh;
+    $| = 1;
+    select $old_fh;
 
-    return $self->_try( sub { ref $thing && $thing->isa('UNIVERSAL') } ) ? 1 : 0;
+    return;
 }
 
-sub _unoverload_str {
+my( $Testout, $Testerr );
+
+sub _dup_stdhandles {
     my $self = shift;
 
-    return $self->_unoverload( q[""], @_ );
+    $self->_open_testhandles;
+
+    # Set everything to unbuffered else plain prints to STDOUT will
+    # come out in the wrong order from our own prints.
+    _autoflush($Testout);
+    _autoflush( \*STDOUT );
+    _autoflush($Testerr);
+    _autoflush( \*STDERR );
+
+    $self->reset_outputs;
+
+    return;
 }
 
-sub _unoverload_num {
+sub _open_testhandles {
     my $self = shift;
 
-    $self->_unoverload( '0+', @_ );
+    return if $self->{Opened_Testhandles};
 
-    for my $val (@_) {
-        next unless $self->_is_dualvar($$val);
-        $$val = $$val + 0;
-    }
+    # We dup STDOUT and STDERR so people can change them in their
+    # test suites while still getting normal test output.
+    open( $Testout, ">&STDOUT" ) or die "Can't dup STDOUT:  $!";
+    open( $Testerr, ">&STDERR" ) or die "Can't dup STDERR:  $!";
+
+    $self->_copy_io_layers( \*STDOUT, $Testout );
+    $self->_copy_io_layers( \*STDERR, $Testerr );
+
+    $self->{Opened_Testhandles} = 1;
 
     return;
 }
 
-# This is a hack to detect a dualvar such as $!
-sub _is_dualvar {
-    my( $self, $val ) = @_;
+sub _copy_io_layers {
+    my( $self, $src, $dst ) = @_;
 
-    # Objects are not dualvars.
-    return 0 if ref $val;
+    $self->_try(
+        sub {
+            require PerlIO;
+            my @src_layers = PerlIO::get_layers($src);
 
-    no warnings 'numeric';
-    my $numval = $val + 0;
-    return ($numval != 0 and $numval ne $val ? 1 : 0);
+            _apply_layers($dst, @src_layers) if @src_layers;
+        }
+    );
+
+    return;
 }
 
-##################################
-# }}} Legacy support, do not use #
-##################################
+sub _apply_layers {
+    my ($fh, @layers) = @_;
+    my %seen;
+    my @unique = grep { $_ ne 'unix' and !$seen{$_}++ } @layers;
+    binmode($fh, join(":", "", "raw", @unique));
+}
 
-1;
 
-__END__
+=item reset_outputs
 
-=pod
+  $tb->reset_outputs;
 
-=encoding UTF-8
+Resets all the output filehandles back to their defaults.
 
-=head1 NAME
+=cut
+
+sub reset_outputs {
+    my $self = shift;
 
-Test::Builder - *DEPRECATED* Module for building testing libraries.
+    $self->output        ($Testout);
+    $self->failure_output($Testerr);
+    $self->todo_output   ($Testout);
 
-=head1 DESCRIPTION
+    return;
+}
 
-This module was previously the base module for almost any testing library. This
-module is now little more than a compatability wrapper around L<Test::Stream>.
-If you are looking to write or update a testing library you should look at
-L<Test::Stream::Toolset>.
+=item carp
 
-=head1 PACKAGE VARS
+  $tb->carp(@message);
 
-=over 4
+Warns with C<@message> but the message will appear to come from the
+point where the original test function was called (C<< $tb->caller >>).
+
+=item croak
+
+  $tb->croak(@message);
 
-=item $Test::Builder::Test
+Dies with C<@message> but the message will appear to come from the
+point where the original test function was called (C<< $tb->caller >>).
 
-The variable that holds the Test::Builder singleton.
+=cut
 
-=item $Test::Builder::Level
+sub _message_at_caller {
+    my $self = shift;
+
+    local $Level = $Level + 1;
+    my( $pack, $file, $line ) = $self->caller;
+    return join( "", @_ ) . " at $file line $line.\n";
+}
+
+sub carp {
+    my $self = shift;
+    return warn $self->_message_at_caller(@_);
+}
+
+sub croak {
+    my $self = shift;
+    return die $self->_message_at_caller(@_);
+}
 
-In the past this variable was used to track stack depth so that Test::Builder
-could report the correct line number. If you use Test::Builder this will still
-work, but in new code it is better to use the L<Test::Stream::Context> module.
 
 =back
 
-=head1 METHODS
 
-=head2 CONSTRUCTORS
+=head2 Test Status and Info
 
 =over 4
 
-=item Test::Builder->new
+=item B<current_test>
 
-Returns the singleton stored in C<$Test::Builder::Test>.
+    my $curr_test = $Test->current_test;
+    $Test->current_test($num);
 
-=item Test::Builder->create
+Gets/sets the current test number we're on.  You usually shouldn't
+have to set this.
 
-=item Test::Builder->create(use_shared => 1)
+If set forward, the details of the missing tests are filled in as 'unknown'.
+if set backward, the details of the intervening tests are deleted.  You
+can erase history if you really want to.
 
-Returns a new instance of Test::Builder. It is important to note that this
-instance will not use the shared L<Test::Stream> object unless you pass in the
-C<< use_shared => 1 >> argument.
+=cut
 
-=back
+sub current_test {
+    my( $self, $num ) = @_;
+
+    lock( $self->{Curr_Test} );
+    if( defined $num ) {
+        $self->{Curr_Test} = $num;
+
+        # If the test counter is being pushed forward fill in the details.
+        my $test_results = $self->{Test_Results};
+        if( $num > @$test_results ) {
+            my $start = @$test_results ? @$test_results : 0;
+            for( $start .. $num - 1 ) {
+                $test_results->[$_] = &share(
+                    {
+                        'ok'      => 1,
+                        actual_ok => undef,
+                        reason    => 'incrementing test number',
+                        type      => 'unknown',
+                        name      => undef
+                    }
+                );
+            }
+        }
+        # If backward, wipe history.  Its their funeral.
+        elsif( $num < @$test_results ) {
+            $#{$test_results} = $num - 1;
+        }
+    }
+    return $self->{Curr_Test};
+}
 
-=head2 UTIL
+=item B<is_passing>
 
-=over 4
+   my $ok = $builder->is_passing;
 
-=item $TB->ctx
+Indicates if the test suite is currently passing.
 
-Helper method for Test::Builder to get a L<Test::Stream::Context> object.
+More formally, it will be false if anything has happened which makes
+it impossible for the test suite to pass.  True otherwise.
 
-=item $TB->depth
+For example, if no tests have run C<is_passing()> will be true because
+even though a suite with no tests is a failure you can add a passing
+test to it and start passing.
 
-Get the subtest depth
+Don't think about it too much.
 
-=item $TB->find_TODO
+=cut
 
-=item $TB->in_todo
+sub is_passing {
+    my $self = shift;
 
-=item $TB->todo
+    if( @_ ) {
+        $self->{Is_Passing} = shift;
+    }
 
-These all check on todo state and value
+    return $self->{Is_Passing};
+}
 
-=back
 
-=head2 OTHER
+=item B<summary>
 
-=over 4
+    my @tests = $Test->summary;
 
-=item $TB->caller
+A simple summary of the tests so far.  True for pass, false for fail.
+This is a logical pass/fail, so todos are passes.
 
-=item $TB->carp
+Of course, test #1 is $tests[0], etc...
 
-=item $TB->croak
+=cut
 
-These let you figure out when/where the test is defined in the test file.
+sub summary {
+    my($self) = shift;
 
-=item $TB->child
+    return map { $_->{'ok'} } @{ $self->{Test_Results} };
+}
 
-Start a subtest (Please do not use this)
+=item B<details>
 
-=item $TB->finalize
+    my @tests = $Test->details;
 
-Finish a subtest (Please do not use this)
+Like C<summary()>, but with a lot more detail.
 
-=item $TB->explain
+    $tests[$test_num - 1] = 
+            { 'ok'       => is the test considered a pass?
+              actual_ok  => did it literally say 'ok'?
+              name       => name of the test (if any)
+              type       => type of test (if any, see below).
+              reason     => reason for the above (if any)
+            };
 
-Interface to Data::Dumper that dumps whatever you give it.
+'ok' is true if Test::Harness will consider the test to be a pass.
 
-=item $TB->exported_to
+'actual_ok' is a reflection of whether or not the test literally
+printed 'ok' or 'not ok'.  This is for examining the result of 'todo'
+tests.
 
-This used to tell you what package used Test::Builder, it never worked well.
-The previous bad and unpredictable behavior of this has largely been preserved,
-however nothing internal uses it in any meaningful way anymore.
+'name' is the name of the test.
 
-=item $TB->is_fh
+'type' indicates if it was a special test.  Normal tests have a type
+of ''.  Type can be one of the following:
 
-Check if something is a filehandle
+    skip        see skip()
+    todo        see todo()
+    todo_skip   see todo_skip()
+    unknown     see below
 
-=item $TB->level
+Sometimes the Test::Builder test counter is incremented without it
+printing any test output, for example, when C<current_test()> is changed.
+In these cases, Test::Builder doesn't know the result of the test, so
+its type is 'unknown'.  These details for these tests are filled in.
+They are considered ok, but the name and actual_ok is left C<undef>.
 
-Get/Set C<$Test::Builder::Level>. $Level is a package var, and most things
-localize it, so this method is pretty useless.
+For example "not ok 23 - hole count # TODO insufficient donuts" would
+result in this structure:
 
-=item $TB->maybe_regex
+    $tests[22] =    # 23 - 1, since arrays start from 0.
+      { ok        => 1,   # logically, the test passed since its todo
+        actual_ok => 0,   # in absolute terms, it failed
+        name      => 'hole count',
+        type      => 'todo',
+        reason    => 'insufficient donuts'
+      };
 
-Check if something might be a regex.
+=cut
 
-=item $TB->reset
+sub details {
+    my $self = shift;
+    return @{ $self->{Test_Results} };
+}
 
-Reset the builder object to a very basic and default state. You almost
-certainly do not need this unless you are writing a tool to test testing
-libraries. Even then you probably do not want this.
+=item B<todo>
 
-=item $TB->todo_end
+    my $todo_reason = $Test->todo;
+    my $todo_reason = $Test->todo($pack);
 
-=item $TB->todo_start
+If the current tests are considered "TODO" it will return the reason,
+if any.  This reason can come from a C<$TODO> variable or the last call
+to C<todo_start()>.
 
-Start/end TODO state, there are better ways to do this now.
+Since a TODO test does not need a reason, this function can return an
+empty string even when inside a TODO block.  Use C<< $Test->in_todo >>
+to determine if you are currently inside a TODO block.
 
-=back
+C<todo()> is about finding the right package to look for C<$TODO> in.  It's
+pretty good at guessing the right package to look at.  It first looks for
+the caller based on C<$Level + 1>, since C<todo()> is usually called inside
+a test function.  As a last resort it will use C<exported_to()>.
 
-=head2 STREAM INTERFACE
+Sometimes there is some confusion about where C<todo()> should be looking
+for the C<$TODO> variable.  If you want to be sure, tell it explicitly
+what $pack to use.
 
-These simply interface into functionality of L<Test::Stream>.
+=cut
 
-=over 4
+sub todo {
+    my( $self, $pack ) = @_;
 
-=item $TB->failure_output
+    return $self->{Todo} if defined $self->{Todo};
 
-=item $TB->output
+    local $Level = $Level + 1;
+    my $todo = $self->find_TODO($pack);
+    return $todo if defined $todo;
 
-=item $TB->reset_outputs
+    return '';
+}
 
-=item $TB->todo_output
+=item B<find_TODO>
 
-These get/set the IO handle used in the 'legacy' tap encoding.
+    my $todo_reason = $Test->find_TODO();
+    my $todo_reason = $Test->find_TODO($pack);
 
-=item $TB->no_diag
+Like C<todo()> but only returns the value of C<$TODO> ignoring
+C<todo_start()>.
 
-Do not display L<Test::Stream::Event::Diag> events.
+Can also be used to set C<$TODO> to a new value while returning the
+old value:
 
-=item $TB->no_ending
+    my $old_reason = $Test->find_TODO($pack, 1, $new_reason);
 
-Do not do some special magic at the end that tells you what went wrong with
-tests.
+=cut
 
-=item $TB->no_header
+sub find_TODO {
+    my( $self, $pack, $set, $new_value ) = @_;
 
-Do not display the plan
+    $pack = $pack || $self->caller(1) || $self->exported_to;
+    return unless $pack;
 
-=item $TB->use_numbers
+    no strict 'refs';    ## no critic
+    my $old_value = ${ $pack . '::TODO' };
+    $set and ${ $pack . '::TODO' } = $new_value;
+    return $old_value;
+}
 
-Turn numbers in TAP on and off.
+=item B<in_todo>
 
-=back
+    my $in_todo = $Test->in_todo;
 
-=head2 HISTORY
+Returns true if the test is currently inside a TODO block.
 
-=over
+=cut
 
-=item $TB->details
+sub in_todo {
+    my $self = shift;
 
-Get all the events that occured on this object. Each event will be transformed
-into a hash that matches the legacy output of this method.
+    local $Level = $Level + 1;
+    return( defined $self->{Todo} || $self->find_TODO ) ? 1 : 0;
+}
 
-=item $TB->expected_tests
+=item B<todo_start>
 
-Set/Get expected number of tests
+    $Test->todo_start();
+    $Test->todo_start($message);
 
-=item $TB->has_plan
+This method allows you declare all subsequent tests as TODO tests, up until
+the C<todo_end> method has been called.
 
-Check if there is a plan
+The C<TODO:> and C<$TODO> syntax is generally pretty good about figuring out
+whether or not we're in a TODO test.  However, often we find that this is not
+possible to determine (such as when we want to use C<$TODO> but
+the tests are being executed in other packages which can't be inferred
+beforehand).
 
-=item $TB->summary
+Note that you can use this to nest "todo" tests
 
-List of pass/fail results.
+ $Test->todo_start('working on this');
+ # lots of code
+ $Test->todo_start('working on that');
+ # more code
+ $Test->todo_end;
+ $Test->todo_end;
 
-=back
+This is generally not recommended, but large testing systems often have weird
+internal needs.
 
-=head2 EVENT GENERATORS
+We've tried to make this also work with the TODO: syntax, but it's not
+guaranteed and its use is also discouraged:
 
-See L<Test::Stream::Context>, L<Test::Stream::Toolset>, and
-L<Test::More::Tools>. Calling the methods below is not advised.
+ TODO: {
+     local $TODO = 'We have work to do!';
+     $Test->todo_start('working on this');
+     # lots of code
+     $Test->todo_start('working on that');
+     # more code
+     $Test->todo_end;
+     $Test->todo_end;
+ }
 
-=over 4
+Pick one style or another of "TODO" to be on the safe side.
 
-=item $TB->BAILOUT
+=cut
 
-=item $TB->BAIL_OUT
+sub todo_start {
+    my $self = shift;
+    my $message = @_ ? shift : '';
 
-=item $TB->cmp_ok
+    $self->{Start_Todo}++;
+    if( $self->in_todo ) {
+        push @{ $self->{Todo_Stack} } => $self->todo;
+    }
+    $self->{Todo} = $message;
 
-=item $TB->current_test
+    return;
+}
 
-=item $TB->diag
+=item C<todo_end>
 
-=item $TB->done_testing
+ $Test->todo_end;
 
-=item $TB->is_eq
+Stops running tests as "TODO" tests.  This method is fatal if called without a
+preceding C<todo_start> method call.
 
-=item $TB->is_num
+=cut
 
-=item $TB->is_passing
+sub todo_end {
+    my $self = shift;
 
-=item $TB->isnt_eq
+    if( !$self->{Start_Todo} ) {
+        $self->croak('todo_end() called without todo_start()');
+    }
 
-=item $TB->isnt_num
+    $self->{Start_Todo}--;
 
-=item $TB->like
+    if( $self->{Start_Todo} && @{ $self->{Todo_Stack} } ) {
+        $self->{Todo} = pop @{ $self->{Todo_Stack} };
+    }
+    else {
+        delete $self->{Todo};
+    }
 
-=item $TB->no_plan
+    return;
+}
 
-=item $TB->note
+=item B<caller>
 
-=item $TB->ok
+    my $package = $Test->caller;
+    my($pack, $file, $line) = $Test->caller;
+    my($pack, $file, $line) = $Test->caller($height);
 
-=item $TB->plan
+Like the normal C<caller()>, except it reports according to your C<level()>.
 
-=item $TB->skip
+C<$height> will be added to the C<level()>.
 
-=item $TB->skip_all
+If C<caller()> winds up off the top of the stack it report the highest context.
 
-=item $TB->subtest
+=cut
 
-=item $TB->todo_skip
+sub caller {    ## no critic (Subroutines::ProhibitBuiltinHomonyms)
+    my( $self, $height ) = @_;
+    $height ||= 0;
 
-=item $TB->unlike
+    my $level = $self->level + $height + 1;
+    my @caller;
+    do {
+        @caller = CORE::caller( $level );
+        $level--;
+    } until @caller;
+    return wantarray ? @caller : $caller[0];
+}
 
 =back
 
-=head2 ACCESSORS
+=cut
+
+=begin _private
 
 =over 4
 
-=item $TB->stream
+=item B<_sanity_check>
+
+  $self->_sanity_check();
 
-Get the stream used by this builder (or the shared stream).
+Runs a bunch of end of test sanity checks to make sure reality came
+through ok.  If anything is wrong it will die with a fairly friendly
+error message.
 
-=item $TB->name
+=cut
 
-Name of the test
+#'#
+sub _sanity_check {
+    my $self = shift;
 
-=item $TB->parent
+    $self->_whoa( $self->{Curr_Test} < 0, 'Says here you ran a negative number of tests!' );
+    $self->_whoa( $self->{Curr_Test} != @{ $self->{Test_Results} },
+        'Somehow you got a different number of results than tests ran!' );
 
-Parent if this is a child.
+    return;
+}
 
-=back
+=item B<_whoa>
 
-=head1 MONKEYPATCHING
+  $self->_whoa($check, $description);
 
-Many legacy testing modules monkeypatch C<ok()>, C<plan()>, and others. The
-abillity to monkeypatch these to effect all events of the specified type is now
-considered discouraged. For backwords compatability monkeypatching continues to
-work, however in the distant future it will be removed. L<Test::Stream> upon
-which Test::Builder is now built, provides hooks and API's for doing everything
-that previously required monkeypatching.
+A sanity check, similar to C<assert()>.  If the C<$check> is true, something
+has gone horribly wrong.  It will die with the given C<$description> and
+a note to contact the author.
 
-=head1 TUTORIALS
+=cut
 
-=over 4
+sub _whoa {
+    my( $self, $check, $desc ) = @_;
+    if($check) {
+        local $Level = $Level + 1;
+        $self->croak(<<"WHOA");
+WHOA!  $desc
+This should never happen!  Please contact the author immediately!
+WHOA
+    }
+
+    return;
+}
 
-=item L<Test::Tutorial>
+=item B<_my_exit>
 
-The original L<Test::Tutorial>. Uses comedy to introduce you to testing from
-scratch.
+  _my_exit($exit_num);
 
-=item L<Test::Tutorial::WritingTests>
+Perl seems to have some trouble with exiting inside an C<END> block.
+5.6.1 does some odd things.  Instead, this function edits C<$?>
+directly.  It should B<only> be called from inside an C<END> block.
+It doesn't actually exit, that's your job.
 
-The L<Test::Tutorial::WritingTests> tutorial takes a more technical approach.
-The idea behind this tutorial is to give you a technical introduction to
-testing that can easily be used as a reference. This is for people who say
-"Just tell me how to do it, and quickly!".
+=cut
 
-=item L<Test::Tutorial::WritingTools>
+sub _my_exit {
+    $? = $_[0];    ## no critic (Variables::RequireLocalizedPunctuationVars)
 
-The L<Test::Tutorial::WritingTools> tutorial is an introduction to writing
-testing tools that play nicely with other L<Test::Stream> and L<Test::Builder>
-based tools. This is what you should look at if you want to write
-Test::MyWidget.
+    return 1;
+}
 
 =back
 
-=head1 SOURCE
+=end _private
 
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
+=cut
 
-=head1 MAINTAINER
+sub _ending {
+    my $self = shift;
+    return if $self->no_ending;
+    return if $self->{Ending}++;
 
-=over 4
+    my $real_exit_code = $?;
 
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+    # Don't bother with an ending if this is a forked copy.  Only the parent
+    # should do the ending.
+    if( $self->{Original_Pid} != $$ ) {
+        return;
+    }
 
-=back
+    # Ran tests but never declared a plan or hit done_testing
+    if( !$self->{Have_Plan} and $self->{Curr_Test} ) {
+        $self->is_passing(0);
+        $self->diag("Tests were run but no plan was declared and done_testing() was not seen.");
+
+        if($real_exit_code) {
+            $self->diag(<<"FAIL");
+Looks like your test exited with $real_exit_code just after $self->{Curr_Test}.
+FAIL
+            $self->is_passing(0);
+            _my_exit($real_exit_code) && return;
+        }
 
-=head1 AUTHORS
+        # But if the tests ran, handle exit code.
+        my $test_results = $self->{Test_Results};
+        if(@$test_results) {
+            my $num_failed = grep !$_->{'ok'}, @{$test_results}[ 0 .. $self->{Curr_Test} - 1 ];
+            if ($num_failed > 0) {
 
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
+                my $exit_code = $num_failed <= 254 ? $num_failed : 254;
+                _my_exit($exit_code) && return;
+            }
+        }
+        _my_exit(254) && return;
+    }
 
-=over 4
+    # Exit if plan() was never called.  This is so "require Test::Simple"
+    # doesn't puke.
+    if( !$self->{Have_Plan} ) {
+        return;
+    }
 
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+    # Don't do an ending if we bailed out.
+    if( $self->{Bailed_Out} ) {
+        $self->is_passing(0);
+        return;
+    }
+    # Figure out if we passed or failed and print helpful messages.
+    my $test_results = $self->{Test_Results};
+    if(@$test_results) {
+        # The plan?  We have no plan.
+        if( $self->{No_Plan} ) {
+            $self->_output_plan($self->{Curr_Test}) unless $self->no_header;
+            $self->{Expected_Tests} = $self->{Curr_Test};
+        }
 
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
+        # Auto-extended arrays and elements which aren't explicitly
+        # filled in with a shared reference will puke under 5.8.0
+        # ithreads.  So we have to fill them in by hand. :(
+        my $empty_result = &share( {} );
+        for my $idx ( 0 .. $self->{Expected_Tests} - 1 ) {
+            $test_results->[$idx] = $empty_result
+              unless defined $test_results->[$idx];
+        }
 
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
+        my $num_failed = grep !$_->{'ok'}, @{$test_results}[ 0 .. $self->{Curr_Test} - 1 ];
 
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
+        my $num_extra = $self->{Curr_Test} - $self->{Expected_Tests};
 
-=item 唐鳳
+        if( $num_extra != 0 ) {
+            my $s = $self->{Expected_Tests} == 1 ? '' : 's';
+            $self->diag(<<"FAIL");
+Looks like you planned $self->{Expected_Tests} test$s but ran $self->{Curr_Test}.
+FAIL
+            $self->is_passing(0);
+        }
 
-=back
+        if($num_failed) {
+            my $num_tests = $self->{Curr_Test};
+            my $s = $num_failed == 1 ? '' : 's';
 
-=head1 COPYRIGHT
+            my $qualifier = $num_extra == 0 ? '' : ' run';
 
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
+            $self->diag(<<"FAIL");
+Looks like you failed $num_failed test$s of $num_tests$qualifier.
+FAIL
+            $self->is_passing(0);
+        }
 
-=over 4
+        if($real_exit_code) {
+            $self->diag(<<"FAIL");
+Looks like your test exited with $real_exit_code just after $self->{Curr_Test}.
+FAIL
+            $self->is_passing(0);
+            _my_exit($real_exit_code) && return;
+        }
+
+        my $exit_code;
+        if($num_failed) {
+            $exit_code = $num_failed <= 254 ? $num_failed : 254;
+        }
+        elsif( $num_extra != 0 ) {
+            $exit_code = 255;
+        }
+        else {
+            $exit_code = 0;
+        }
 
-=item Test::Stream
+        _my_exit($exit_code) && return;
+    }
+    elsif( $self->{Skip_All} ) {
+        _my_exit(0) && return;
+    }
+    elsif($real_exit_code) {
+        $self->diag(<<"FAIL");
+Looks like your test exited with $real_exit_code before it could output anything.
+FAIL
+        $self->is_passing(0);
+        _my_exit($real_exit_code) && return;
+    }
+    else {
+        $self->diag("No tests run!\n");
+        $self->is_passing(0);
+        _my_exit(255) && return;
+    }
+
+    $self->is_passing(0);
+    $self->_whoa( 1, "We fell off the end of _ending()" );
+}
 
-=item Test::Stream::Tester
+END {
+    $Test->_ending if defined $Test;
+}
 
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
+=head1 EXIT CODES
 
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+If all your tests passed, Test::Builder will exit with zero (which is
+normal).  If anything failed it will exit with how many failed.  If
+you run less (or more) tests than you planned, the missing (or extras)
+will be considered failures.  If no tests were ever run Test::Builder
+will throw a warning and exit with 255.  If the test died, even after
+having successfully completed all its tests, it will still be
+considered a failure and will exit with 255.
 
-See F<http://www.perl.com/perl/misc/Artistic.html>
+So the exit codes are...
 
-=item Test::Simple
+    0                   all tests successful
+    255                 test died or all passed but wrong # of tests run
+    any other number    how many failed (including missing or extras)
 
-=item Test::More
+If you fail more than 254 tests, it will be reported as 254.
 
-=item Test::Builder
+=head1 THREADS
 
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
+In perl 5.8.1 and later, Test::Builder is thread-safe.  The test
+number is shared amongst all threads.  This means if one thread sets
+the test number using C<current_test()> they will all be effected.
 
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
+While versions earlier than 5.8.1 had threads they contain too many
+bugs to support.
 
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
+Test::Builder is only thread-aware if threads.pm is loaded I<before>
+Test::Builder.
 
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+=head1 MEMORY
 
-See F<http://www.perl.com/perl/misc/Artistic.html>
+An informative hash, accessible via C<details()>, is stored for each
+test you perform.  So memory usage will scale linearly with each test
+run. Although this is not a problem for most test suites, it can
+become an issue if you do large (hundred thousands to million)
+combinatorics tests in the same run.
 
-=item Test::use::ok
+In such cases, you are advised to either split the test file into smaller
+ones, or use a reverse approach, doing "normal" (code) compares and
+triggering C<fail()> should anything go unexpected.
 
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
+Future versions of Test::Builder will have a way to turn history off.
 
-This work is published from Taiwan.
 
-L<http://creativecommons.org/publicdomain/zero/1.0>
+=head1 EXAMPLES
 
-=item Test::Tester
+CPAN can provide the best examples.  L<Test::Simple>, L<Test::More>,
+L<Test::Exception> and L<Test::Differences> all use Test::Builder.
 
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
+=head1 SEE ALSO
 
-Under the same license as Perl itself
+L<Test::Simple>, L<Test::More>, L<Test::Harness>
 
-See http://www.perl.com/perl/misc/Artistic.html
+=head1 AUTHORS
+
+Original code by chromatic, maintained by Michael G Schwern
+E<lt>schwern@pobox.comE<gt>
 
-=item Test::Builder::Tester
+=head1 MAINTAINERS
 
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
+=over 4
 
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
 
 =back
+
+=head1 COPYRIGHT
+
+Copyright 2002-2008 by chromatic E<lt>chromatic@wgz.orgE<gt> and
+                       Michael G Schwern E<lt>schwern@pobox.comE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://www.perl.com/perl/misc/Artistic.html>
+
+=cut
+
+1;
+
diff --git a/cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm b/cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm
new file mode 100644 (file)
index 0000000..54700c4
--- /dev/null
@@ -0,0 +1,658 @@
+package Test::Builder::IO::Scalar;
+
+
+=head1 NAME
+
+Test::Builder::IO::Scalar - A copy of IO::Scalar for Test::Builder
+
+=head1 DESCRIPTION
+
+This is a copy of L<IO::Scalar> which ships with L<Test::Builder> to
+support scalar references as filehandles on Perl 5.6.  Newer
+versions of Perl simply use C<open()>'s built in support.
+
+L<Test::Builder> can not have dependencies on other modules without
+careful consideration, so its simply been copied into the distribution.
+
+=head1 COPYRIGHT and LICENSE
+
+This file came from the "IO-stringy" Perl5 toolkit.
+
+Copyright (c) 1996 by Eryq.  All rights reserved.
+Copyright (c) 1999,2001 by ZeeGee Software Inc.  All rights reserved.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+
+=cut
+
+# This is copied code, I don't care.
+##no critic
+
+use Carp;
+use strict;
+use vars qw($VERSION @ISA);
+use IO::Handle;
+
+use 5.005;
+
+### The package version, both in 1.23 style *and* usable by MakeMaker:
+$VERSION = "2.113";
+
+### Inheritance:
+@ISA = qw(IO::Handle);
+
+#==============================
+
+=head2 Construction
+
+=over 4
+
+=cut
+
+#------------------------------
+
+=item new [ARGS...]
+
+I<Class method.>
+Return a new, unattached scalar handle.
+If any arguments are given, they're sent to open().
+
+=cut
+
+sub new {
+    my $proto = shift;
+    my $class = ref($proto) || $proto;
+    my $self = bless \do { local *FH }, $class;
+    tie *$self, $class, $self;
+    $self->open(@_);   ### open on anonymous by default
+    $self;
+}
+sub DESTROY {
+    shift->close;
+}
+
+#------------------------------
+
+=item open [SCALARREF]
+
+I<Instance method.>
+Open the scalar handle on a new scalar, pointed to by SCALARREF.
+If no SCALARREF is given, a "private" scalar is created to hold
+the file data.
+
+Returns the self object on success, undefined on error.
+
+=cut
+
+sub open {
+    my ($self, $sref) = @_;
+
+    ### Sanity:
+    defined($sref) or do {my $s = ''; $sref = \$s};
+    (ref($sref) eq "SCALAR") or croak "open() needs a ref to a scalar";
+
+    ### Setup:
+    *$self->{Pos} = 0;          ### seek position
+    *$self->{SR}  = $sref;      ### scalar reference
+    $self;
+}
+
+#------------------------------
+
+=item opened
+
+I<Instance method.>
+Is the scalar handle opened on something?
+
+=cut
+
+sub opened {
+    *{shift()}->{SR};
+}
+
+#------------------------------
+
+=item close
+
+I<Instance method.>
+Disassociate the scalar handle from its underlying scalar.
+Done automatically on destroy.
+
+=cut
+
+sub close {
+    my $self = shift;
+    %{*$self} = ();
+    1;
+}
+
+=back
+
+=cut
+
+
+
+#==============================
+
+=head2 Input and output
+
+=over 4
+
+=cut
+
+
+#------------------------------
+
+=item flush
+
+I<Instance method.>
+No-op, provided for OO compatibility.
+
+=cut
+
+sub flush { "0 but true" }
+
+#------------------------------
+
+=item getc
+
+I<Instance method.>
+Return the next character, or undef if none remain.
+
+=cut
+
+sub getc {
+    my $self = shift;
+
+    ### Return undef right away if at EOF; else, move pos forward:
+    return undef if $self->eof;
+    substr(${*$self->{SR}}, *$self->{Pos}++, 1);
+}
+
+#------------------------------
+
+=item getline
+
+I<Instance method.>
+Return the next line, or undef on end of string.
+Can safely be called in an array context.
+Currently, lines are delimited by "\n".
+
+=cut
+
+sub getline {
+    my $self = shift;
+
+    ### Return undef right away if at EOF:
+    return undef if $self->eof;
+
+    ### Get next line:
+    my $sr = *$self->{SR};
+    my $i  = *$self->{Pos};            ### Start matching at this point.
+
+    ### Minimal impact implementation!
+    ### We do the fast fast thing (no regexps) if using the
+    ### classic input record separator.
+
+    ### Case 1: $/ is undef: slurp all...
+    if    (!defined($/)) {
+       *$self->{Pos} = length $$sr;
+        return substr($$sr, $i);
+    }
+
+    ### Case 2: $/ is "\n": zoom zoom zoom...
+    elsif ($/ eq "\012") {
+
+        ### Seek ahead for "\n"... yes, this really is faster than regexps.
+        my $len = length($$sr);
+        for (; $i < $len; ++$i) {
+           last if ord (substr ($$sr, $i, 1)) == 10;
+        }
+
+        ### Extract the line:
+        my $line;
+        if ($i < $len) {                ### We found a "\n":
+            $line = substr ($$sr, *$self->{Pos}, $i - *$self->{Pos} + 1);
+            *$self->{Pos} = $i+1;            ### Remember where we finished up.
+        }
+        else {                          ### No "\n"; slurp the remainder:
+            $line = substr ($$sr, *$self->{Pos}, $i - *$self->{Pos});
+            *$self->{Pos} = $len;
+        }
+        return $line;
+    }
+
+    ### Case 3: $/ is ref to int. Do fixed-size records.
+    ###        (Thanks to Dominique Quatravaux.)
+    elsif (ref($/)) {
+        my $len = length($$sr);
+               my $i = ${$/} + 0;
+               my $line = substr ($$sr, *$self->{Pos}, $i);
+               *$self->{Pos} += $i;
+        *$self->{Pos} = $len if (*$self->{Pos} > $len);
+               return $line;
+    }
+
+    ### Case 4: $/ is either "" (paragraphs) or something weird...
+    ###         This is Graham's general-purpose stuff, which might be
+    ###         a tad slower than Case 2 for typical data, because
+    ###         of the regexps.
+    else {
+        pos($$sr) = $i;
+
+       ### If in paragraph mode, skip leading lines (and update i!):
+        length($/) or
+           (($$sr =~ m/\G\n*/g) and ($i = pos($$sr)));
+
+        ### If we see the separator in the buffer ahead...
+        if (length($/)
+           ?  $$sr =~ m,\Q$/\E,g          ###   (ordinary sep) TBD: precomp!
+            :  $$sr =~ m,\n\n,g            ###   (a paragraph)
+            ) {
+            *$self->{Pos} = pos $$sr;
+            return substr($$sr, $i, *$self->{Pos}-$i);
+        }
+        ### Else if no separator remains, just slurp the rest:
+        else {
+            *$self->{Pos} = length $$sr;
+            return substr($$sr, $i);
+        }
+    }
+}
+
+#------------------------------
+
+=item getlines
+
+I<Instance method.>
+Get all remaining lines.
+It will croak() if accidentally called in a scalar context.
+
+=cut
+
+sub getlines {
+    my $self = shift;
+    wantarray or croak("can't call getlines in scalar context!");
+    my ($line, @lines);
+    push @lines, $line while (defined($line = $self->getline));
+    @lines;
+}
+
+#------------------------------
+
+=item print ARGS...
+
+I<Instance method.>
+Print ARGS to the underlying scalar.
+
+B<Warning:> this continues to always cause a seek to the end
+of the string, but if you perform seek()s and tell()s, it is
+still safer to explicitly seek-to-end before subsequent print()s.
+
+=cut
+
+sub print {
+    my $self = shift;
+    *$self->{Pos} = length(${*$self->{SR}} .= join('', @_) . (defined($\) ? $\ : ""));
+    1;
+}
+sub _unsafe_print {
+    my $self = shift;
+    my $append = join('', @_) . $\;
+    ${*$self->{SR}} .= $append;
+    *$self->{Pos}   += length($append);
+    1;
+}
+sub _old_print {
+    my $self = shift;
+    ${*$self->{SR}} .= join('', @_) . $\;
+    *$self->{Pos} = length(${*$self->{SR}});
+    1;
+}
+
+
+#------------------------------
+
+=item read BUF, NBYTES, [OFFSET]
+
+I<Instance method.>
+Read some bytes from the scalar.
+Returns the number of bytes actually read, 0 on end-of-file, undef on error.
+
+=cut
+
+sub read {
+    my $self = $_[0];
+    my $n    = $_[2];
+    my $off  = $_[3] || 0;
+
+    my $read = substr(${*$self->{SR}}, *$self->{Pos}, $n);
+    $n = length($read);
+    *$self->{Pos} += $n;
+    ($off ? substr($_[1], $off) : $_[1]) = $read;
+    return $n;
+}
+
+#------------------------------
+
+=item write BUF, NBYTES, [OFFSET]
+
+I<Instance method.>
+Write some bytes to the scalar.
+
+=cut
+
+sub write {
+    my $self = $_[0];
+    my $n    = $_[2];
+    my $off  = $_[3] || 0;
+
+    my $data = substr($_[1], $off, $n);
+    $n = length($data);
+    $self->print($data);
+    return $n;
+}
+
+#------------------------------
+
+=item sysread BUF, LEN, [OFFSET]
+
+I<Instance method.>
+Read some bytes from the scalar.
+Returns the number of bytes actually read, 0 on end-of-file, undef on error.
+
+=cut
+
+sub sysread {
+  my $self = shift;
+  $self->read(@_);
+}
+
+#------------------------------
+
+=item syswrite BUF, NBYTES, [OFFSET]
+
+I<Instance method.>
+Write some bytes to the scalar.
+
+=cut
+
+sub syswrite {
+  my $self = shift;
+  $self->write(@_);
+}
+
+=back
+
+=cut
+
+
+#==============================
+
+=head2 Seeking/telling and other attributes
+
+=over 4
+
+=cut
+
+
+#------------------------------
+
+=item autoflush
+
+I<Instance method.>
+No-op, provided for OO compatibility.
+
+=cut
+
+sub autoflush {}
+
+#------------------------------
+
+=item binmode
+
+I<Instance method.>
+No-op, provided for OO compatibility.
+
+=cut
+
+sub binmode {}
+
+#------------------------------
+
+=item clearerr
+
+I<Instance method.>  Clear the error and EOF flags.  A no-op.
+
+=cut
+
+sub clearerr { 1 }
+
+#------------------------------
+
+=item eof
+
+I<Instance method.>  Are we at end of file?
+
+=cut
+
+sub eof {
+    my $self = shift;
+    (*$self->{Pos} >= length(${*$self->{SR}}));
+}
+
+#------------------------------
+
+=item seek OFFSET, WHENCE
+
+I<Instance method.>  Seek to a given position in the stream.
+
+=cut
+
+sub seek {
+    my ($self, $pos, $whence) = @_;
+    my $eofpos = length(${*$self->{SR}});
+
+    ### Seek:
+    if    ($whence == 0) { *$self->{Pos} = $pos }             ### SEEK_SET
+    elsif ($whence == 1) { *$self->{Pos} += $pos }            ### SEEK_CUR
+    elsif ($whence == 2) { *$self->{Pos} = $eofpos + $pos}    ### SEEK_END
+    else                 { croak "bad seek whence ($whence)" }
+
+    ### Fixup:
+    if (*$self->{Pos} < 0)       { *$self->{Pos} = 0 }
+    if (*$self->{Pos} > $eofpos) { *$self->{Pos} = $eofpos }
+    return 1;
+}
+
+#------------------------------
+
+=item sysseek OFFSET, WHENCE
+
+I<Instance method.> Identical to C<seek OFFSET, WHENCE>, I<q.v.>
+
+=cut
+
+sub sysseek {
+    my $self = shift;
+    $self->seek (@_);
+}
+
+#------------------------------
+
+=item tell
+
+I<Instance method.>
+Return the current position in the stream, as a numeric offset.
+
+=cut
+
+sub tell { *{shift()}->{Pos} }
+
+#------------------------------
+
+=item  use_RS [YESNO]
+
+I<Instance method.>
+B<Deprecated and ignored.>
+Obey the current setting of $/, like IO::Handle does?
+Default is false in 1.x, but cold-welded true in 2.x and later.
+
+=cut
+
+sub use_RS {
+    my ($self, $yesno) = @_;
+    carp "use_RS is deprecated and ignored; \$/ is always consulted\n";
+ }
+
+#------------------------------
+
+=item setpos POS
+
+I<Instance method.>
+Set the current position, using the opaque value returned by C<getpos()>.
+
+=cut
+
+sub setpos { shift->seek($_[0],0) }
+
+#------------------------------
+
+=item getpos
+
+I<Instance method.>
+Return the current position in the string, as an opaque object.
+
+=cut
+
+*getpos = \&tell;
+
+
+#------------------------------
+
+=item sref
+
+I<Instance method.>
+Return a reference to the underlying scalar.
+
+=cut
+
+sub sref { *{shift()}->{SR} }
+
+
+#------------------------------
+# Tied handle methods...
+#------------------------------
+
+# Conventional tiehandle interface:
+sub TIEHANDLE {
+    ((defined($_[1]) && UNIVERSAL::isa($_[1], __PACKAGE__))
+     ? $_[1]
+     : shift->new(@_));
+}
+sub GETC      { shift->getc(@_) }
+sub PRINT     { shift->print(@_) }
+sub PRINTF    { shift->print(sprintf(shift, @_)) }
+sub READ      { shift->read(@_) }
+sub READLINE  { wantarray ? shift->getlines(@_) : shift->getline(@_) }
+sub WRITE     { shift->write(@_); }
+sub CLOSE     { shift->close(@_); }
+sub SEEK      { shift->seek(@_); }
+sub TELL      { shift->tell(@_); }
+sub EOF       { shift->eof(@_); }
+
+#------------------------------------------------------------
+
+1;
+
+__END__
+
+
+
+=back
+
+=cut
+
+
+=head1 WARNINGS
+
+Perl's TIEHANDLE spec was incomplete prior to 5.005_57;
+it was missing support for C<seek()>, C<tell()>, and C<eof()>.
+Attempting to use these functions with an IO::Scalar will not work
+prior to 5.005_57. IO::Scalar will not have the relevant methods
+invoked; and even worse, this kind of bug can lie dormant for a while.
+If you turn warnings on (via C<$^W> or C<perl -w>),
+and you see something like this...
+
+    attempt to seek on unopened filehandle
+
+...then you are probably trying to use one of these functions
+on an IO::Scalar with an old Perl.  The remedy is to simply
+use the OO version; e.g.:
+
+    $SH->seek(0,0);    ### GOOD: will work on any 5.005
+    seek($SH,0,0);     ### WARNING: will only work on 5.005_57 and beyond
+
+
+=head1 VERSION
+
+$Id: Scalar.pm,v 1.6 2005/02/10 21:21:53 dfs Exp $
+
+
+=head1 AUTHORS
+
+=head2 Primary Maintainer
+
+David F. Skoll (F<dfs@roaringpenguin.com>).
+
+=head2 Principal author
+
+Eryq (F<eryq@zeegee.com>).
+President, ZeeGee Software Inc (F<http://www.zeegee.com>).
+
+
+=head2 Other contributors
+
+The full set of contributors always includes the folks mentioned
+in L<IO::Stringy/"CHANGE LOG">.  But just the same, special
+thanks to the following individuals for their invaluable contributions
+(if I've forgotten or misspelled your name, please email me!):
+
+I<Andy Glew,>
+for contributing C<getc()>.
+
+I<Brandon Browning,>
+for suggesting C<opened()>.
+
+I<David Richter,>
+for finding and fixing the bug in C<PRINTF()>.
+
+I<Eric L. Brine,>
+for his offset-using read() and write() implementations.
+
+I<Richard Jones,>
+for his patches to massively improve the performance of C<getline()>
+and add C<sysread> and C<syswrite>.
+
+I<B. K. Oxley (binkley),>
+for stringification and inheritance improvements,
+and sundry good ideas.
+
+I<Doug Wilson,>
+for the IO::Handle inheritance and automatic tie-ing.
+
+
+=head1 SEE ALSO
+
+L<IO::String>, which is quite similar but which was designed
+more-recently and with an IO::Handle-like interface in mind,
+so you could mix OO- and native-filehandle usage without using tied().
+
+I<Note:> as of version 2.x, these classes all work like
+their IO::Handle counterparts, so we have comparable
+functionality to IO::String.
+
+=cut
+
index a5d8eba..2322d8a 100644 (file)
@@ -2,27 +2,18 @@ package Test::Builder::Module;
 
 use strict;
 
-use Test::Stream 1.301001 '-internal';
-use Test::Builder 0.99;
+use Test::Builder 1.00;
 
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = '1.301001_098';
+our $VERSION = '1.001014';
 $VERSION = eval $VERSION;      ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
-=pod
-
-=encoding UTF-8
 
 =head1 NAME
 
-Test::Builder::Module - *DEPRECATED* Base class for test modules
-
-=head1 DEPRECATED
-
-B<This module is deprecated> See L<Test::Stream::Toolset> for what you should
-use instead.
+Test::Builder::Module - Base class for test modules
 
 =head1 SYNOPSIS
 
@@ -38,15 +29,12 @@ use instead.
       my $tb = $CLASS->builder;
       return $tb->ok(@_);
   }
-
+  
   1;
 
 
 =head1 DESCRIPTION
 
-B<This module is deprecated> See L<Test::Stream::Toolset> for what you should
-use instead.
-
 This is a superclass for L<Test::Builder>-based modules.  It provides a
 handful of common functionality and a method of getting at the underlying
 L<Test::Builder> object.
@@ -68,8 +56,8 @@ same basic way as L<Test::More>'s, setting the plan and controlling
 exporting of functions and variables.  This allows your module to set
 the plan independent of L<Test::More>.
 
-All arguments passed to C<import()> are passed onto
-C<< Your::Module->builder->plan() >> with the exception of
+All arguments passed to C<import()> are passed onto 
+C<< Your::Module->builder->plan() >> with the exception of 
 C<< import =>[qw(things to import)] >>.
 
     use Your::Module import => [qw(this that)], tests => 23;
@@ -88,14 +76,12 @@ C<import_extra()>.
 sub import {
     my($class) = shift;
 
-    my $test = $class->builder;
-    my $caller = caller;
-
-    warn __PACKAGE__ . " is deprecated!\n" if $caller->can('TB_INSTANCE') && $caller->TB_INSTANCE->modern;
-
     # Don't run all this when loading ourself.
     return 1 if $class eq 'Test::Builder::Module';
 
+    my $test = $class->builder;
+
+    my $caller = caller;
 
     $test->exported_to($caller);
 
@@ -185,103 +171,3 @@ sub builder {
 }
 
 1;
-
-__END__
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
index 8762147..b0554b8 100644 (file)
@@ -1,28 +1,17 @@
 package Test::Builder::Tester;
 
 use strict;
-our $VERSION = '1.301001_098';
-$VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = "1.28";
 
-use Test::Stream 1.301001 '-internal';
-use Test::Builder 1.301001;
+use Test::Builder 0.99;
 use Symbol;
-use Test::Stream::Carp qw/croak/;
-
-=pod
-
-=encoding UTF-8
+use Carp;
 
 =head1 NAME
 
-Test::Builder::Tester - *DEPRECATED* test testsuites that have been built with
+Test::Builder::Tester - test testsuites that have been built with
 Test::Builder
 
-=head1 DEPRECATED
-
-B<This module is deprecated.> Please see L<Test::Stream::Tester> for a
-better alternative that does not involve dealing with TAP/string output.
-
 =head1 SYNOPSIS
 
     use Test::Builder::Tester tests => 1;
@@ -59,55 +48,37 @@ output.
 # set up testing
 ####
 
-#my $t = Test::Builder->new;
+my $t = Test::Builder->new;
 
 ###
 # make us an exporter
 ###
 
-use Test::Stream::Toolset;
-use Test::Stream::Exporter;
-default_exports qw/test_out test_err test_fail test_diag test_test line_num/;
-Test::Stream::Exporter->cleanup;
+use Exporter;
+our @ISA = qw(Exporter);
+
+our @EXPORT = qw(test_out test_err test_fail test_diag test_test line_num);
 
-sub before_import {
+sub import {
     my $class = shift;
-    my ($importer, $list) = @_;
+    my(@plan) = @_;
 
-    my $meta    = init_tester($importer);
-    my $context = context(1);
-    my $other   = [];
-    my $idx     = 0;
+    my $caller = caller;
 
-    while ($idx <= $#{$list}) {
-        my $item = $list->[$idx++];
-        next unless $item;
+    $t->exported_to($caller);
+    $t->plan(@plan);
 
-        if (defined $item and $item eq 'no_diag') {
-            Test::Stream->shared->set_no_diag(1);
-        }
-        elsif ($item eq 'tests') {
-            $context->plan($list->[$idx++]);
-        }
-        elsif ($item eq 'skip_all') {
-            $context->plan(0, 'SKIP', $list->[$idx++]);
-        }
-        elsif ($item eq 'no_plan') {
-            $context->plan(0, 'NO PLAN');
-        }
-        elsif ($item eq 'import') {
-            push @$other => @{$list->[$idx++]};
+    my @imports = ();
+    foreach my $idx ( 0 .. $#plan ) {
+        if( $plan[$idx] eq 'import' ) {
+            @imports = @{ $plan[ $idx + 1 ] };
+            last;
         }
     }
 
-    @$list = @$other;
-
-    return;
+    __PACKAGE__->export_to_level( 1, __PACKAGE__, @imports );
 }
 
-
-sub builder { Test::Builder->new }
-
 ###
 # set up file handles
 ###
@@ -129,9 +100,6 @@ my $testing = 0;
 my $testing_num;
 my $original_is_passing;
 
-my $original_stream;
-my $original_state;
-
 # remembering where the file handles were originally connected
 my $original_output_handle;
 my $original_failure_handle;
@@ -146,18 +114,15 @@ sub _start_testing {
     $original_harness_env = $ENV{HARNESS_ACTIVE} || 0;
     $ENV{HARNESS_ACTIVE} = 0;
 
-    $original_stream = builder->{stream} || Test::Stream->shared;
-    $original_state  = [@{$original_stream->state->[-1]}];
-
     # remember what the handles were set to
-    $original_output_handle  = builder()->output();
-    $original_failure_handle = builder()->failure_output();
-    $original_todo_handle    = builder()->todo_output();
+    $original_output_handle  = $t->output();
+    $original_failure_handle = $t->failure_output();
+    $original_todo_handle    = $t->todo_output();
 
     # switch out to our own handles
-    builder()->output($output_handle);
-    builder()->failure_output($error_handle);
-    builder()->todo_output($output_handle);
+    $t->output($output_handle);
+    $t->failure_output($error_handle);
+    $t->todo_output($output_handle);
 
     # clear the expected list
     $out->reset();
@@ -165,13 +130,13 @@ sub _start_testing {
 
     # remember that we're testing
     $testing     = 1;
-    $testing_num = builder()->current_test;
-    builder()->current_test(0);
-    $original_is_passing  = builder()->is_passing;
-    builder()->is_passing(1);
+    $testing_num = $t->current_test;
+    $t->current_test(0);
+    $original_is_passing  = $t->is_passing;
+    $t->is_passing(1);
 
     # look, we shouldn't do the ending stuff
-    builder()->no_ending(1);
+    $t->no_ending(1);
 }
 
 =head2 Functions
@@ -209,7 +174,6 @@ output filehandles)
 =cut
 
 sub test_out {
-    my $ctx = context;
     # do we need to do any setup?
     _start_testing() unless $testing;
 
@@ -217,7 +181,6 @@ sub test_out {
 }
 
 sub test_err {
-    my $ctx = context;
     # do we need to do any setup?
     _start_testing() unless $testing;
 
@@ -251,7 +214,6 @@ more simply as:
 =cut
 
 sub test_fail {
-    my $ctx = context;
     # do we need to do any setup?
     _start_testing() unless $testing;
 
@@ -294,13 +256,12 @@ without the newlines.
 =cut
 
 sub test_diag {
-    my $ctx = context;
     # do we need to do any setup?
     _start_testing() unless $testing;
 
     # expect the same thing, but prepended with "#     "
     local $_;
-    $err->expect( map { m/\S/ ? "# $_" : "" } @_ );
+    $err->expect( map { "# $_" } @_ );
 }
 
 =item test_test
@@ -343,7 +304,6 @@ will function normally and cause success/errors for L<Test::Harness>.
 =cut
 
 sub test_test {
-    my $ctx = context;
     # decode the arguments as described in the pod
     my $mess;
     my %args;
@@ -362,23 +322,21 @@ sub test_test {
       unless $testing;
 
     # okay, reconnect the test suite back to the saved handles
-    builder()->output($original_output_handle);
-    builder()->failure_output($original_failure_handle);
-    builder()->todo_output($original_todo_handle);
+    $t->output($original_output_handle);
+    $t->failure_output($original_failure_handle);
+    $t->todo_output($original_todo_handle);
 
     # restore the test no, etc, back to the original point
-    builder()->current_test($testing_num);
+    $t->current_test($testing_num);
     $testing = 0;
-    builder()->is_passing($original_is_passing);
+    $t->is_passing($original_is_passing);
 
     # re-enable the original setting of the harness
     $ENV{HARNESS_ACTIVE} = $original_harness_env;
 
-    @{$original_stream->state->[-1]} = @$original_state;
-
     # check the output we've stashed
-    unless( builder()->ok( ( $args{skip_out} || $out->check ) &&
-                    ( $args{skip_err} || $err->check ), $mess )
+    unless( $t->ok( ( $args{skip_out} || $out->check ) &&
+                    ( $args{skip_err} || $err->check ), $mess ) 
     )
     {
         # print out the diagnostic information about why this
@@ -386,10 +344,10 @@ sub test_test {
 
         local $_;
 
-        builder()->diag( map { "$_\n" } $out->complaint )
+        $t->diag( map { "$_\n" } $out->complaint )
           unless $args{skip_out} || $out->check;
 
-        builder()->diag( map { "$_\n" } $err->complaint )
+        $t->diag( map { "$_\n" } $err->complaint )
           unless $args{skip_err} || $err->check;
     }
 }
@@ -460,112 +418,48 @@ sub color {
 
 =back
 
-=head1 NOTES
-
-Thanks to Richard Clamp E<lt>richardc@unixbeard.netE<gt> for letting
-me use his testing system to try this module out on.
+=head1 BUGS
 
-=head1 SEE ALSO
-
-L<Test::Builder>, L<Test::Builder::Tester::Color>, L<Test::More>.
+Calls C<< Test::Builder->no_ending >> turning off the ending tests.
+This is needed as otherwise it will trip out because we've run more
+tests than we strictly should have and it'll register any failures we
+had that we were testing for as real failures.
 
-=head1 SOURCE
+The color function doesn't work unless L<Term::ANSIColor> is
+compatible with your terminal.
 
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
+Bugs (and requests for new features) can be reported to the author
+though the CPAN RT system:
+L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Builder-Tester>
 
-=head1 MAINTAINER
+=head1 AUTHOR
 
-=over 4
+Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
 
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+Some code taken from L<Test::More> and L<Test::Catch>, written by
+Michael G Schwern E<lt>schwern@pobox.comE<gt>.  Hence, those parts
+Copyright Micheal G Schwern 2001.  Used and distributed with
+permission.
 
-=back
-
-=head1 AUTHORS
+This program is free software; you can redistribute it
+and/or modify it under the same terms as Perl itself.
 
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
+=head1 MAINTAINERS
 
 =over 4
 
 =item Chad Granum E<lt>exodist@cpan.orgE<gt>
 
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
 =back
 
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
+=head1 NOTES
 
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
+Thanks to Richard Clamp E<lt>richardc@unixbeard.netE<gt> for letting
+me use his testing system to try this module out on.
 
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
+=head1 SEE ALSO
 
-=back
+L<Test::Builder>, L<Test::Builder::Tester::Color>, L<Test::More>.
 
 =cut
 
@@ -593,10 +487,8 @@ sub expect {
 sub _account_for_subtest {
     my( $self, $check ) = @_;
 
-    my $ctx = Test::Stream::Context::context();
-    my $depth = @{$ctx->stream->subtests};
     # Since we ship with Test::Builder, calling a private method is safe...ish.
-    return ref($check) ? $check : ($depth ? '    ' x $depth : '') . $check;
+    return ref($check) ? $check : $t->_indent . $check;
 }
 
 sub _translate_Failed_check {
index 675a86a..9a89310 100644 (file)
@@ -1,15 +1,10 @@
 package Test::Builder::Tester::Color;
 
 use strict;
-our $VERSION = '1.301001_098';
-$VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = "1.290001";
 
-use Test::Stream 1.301001 '-internal';
 require Test::Builder::Tester;
 
-=pod
-
-=encoding UTF-8
 
 =head1 NAME
 
@@ -54,103 +49,3 @@ L<Test::Builder::Tester>, L<Term::ANSIColor>
 =cut
 
 1;
-
-__END__
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/CanFork.pm b/cpan/Test-Simple/lib/Test/CanFork.pm
deleted file mode 100644 (file)
index c94614c..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-package Test::CanFork;
-use strict;
-use warnings;
-
-use Config;
-
-my $Can_Fork = $Config{d_fork}
-    || (($^O eq 'MSWin32' || $^O eq 'NetWare')
-    and $Config{useithreads}
-    and $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/);
-
-sub import {
-    my $class = shift;
-
-    if (!$Can_Fork) {
-        require Test::More;
-        Test::More::plan(skip_all => "This system cannot fork");
-    }
-
-    if ($^O eq 'MSWin32' && $] == 5.010000) {
-        require Test::More;
-        Test::More::plan('skip_all' => "5.10 has fork/threading issues that break fork on win32");
-    }
-
-    for my $var (@_) {
-        next if $ENV{$var};
-
-        require Test::More;
-        Test::More::plan(skip_all => "This forking test will only run when the '$var' environment variable is set.");
-    }
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Test::CanFork - Only run tests when forking is supported, optionally conditioned on ENV vars.
-
-=head1 DESCRIPTION
-
-Use this first thing in a test that should be skipped when forking is not
-supported. You can also specify that the test should be skipped when specific
-environment variables are not set.
-
-=head1 SYNOPSYS
-
-Skip the test if forking is unsupported:
-
-    use Test::CanFork;
-    use Test::More;
-    ...
-
-Skip the test if forking is unsupported, or any of the specified env vars are
-not set:
-
-    use Test::CanFork qw/AUTHOR_TESTING RUN_PROBLEMATIC_TESTS .../;
-    use Test::More;
-    ...
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 COPYRIGHT
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
diff --git a/cpan/Test-Simple/lib/Test/CanThread.pm b/cpan/Test-Simple/lib/Test/CanThread.pm
deleted file mode 100644 (file)
index 0e022f0..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-package Test::CanThread;
-use strict;
-use warnings;
-
-use Config;
-
-my $works = 1;
-$works &&= $] >= 5.008001;
-$works &&= $Config{'useithreads'};
-$works &&= eval { require threads; 'threads'->import; 1 };
-
-sub import {
-    my $class = shift;
-
-    unless ($works) {
-        require Test::More;
-        Test::More::plan(skip_all => "Skip no working threads");
-    }
-
-    if ($INC{'Devel/Cover.pm'}) {
-        require Test::More;
-        Test::More::plan(skip_all => "Devel::Cover does not work with threads yet");
-    }
-
-    while(my $var = shift(@_)) {
-        next if $ENV{$var};
-
-        require Test::More;
-        Test::More::plan(skip_all => "This threaded test will only run when the '$var' environment variable is set.");
-    }
-
-    if ($] == 5.010000) {
-        require File::Temp;
-        require File::Spec;
-
-        my $perl = File::Spec->rel2abs($^X);
-        my ($fh, $fn) = File::Temp::tempfile();
-        print $fh <<'        EOT';
-            BEGIN { print STDERR "# Checking for thread segfaults\n# " }
-            use threads;
-            my $t = threads->create(sub { 1 });
-            $t->join;
-            print STDERR "Threads appear to work\n";
-            exit 0;
-        EOT
-        close($fh);
-
-        my $exit = system(qq{"$perl" "$fn"});
-
-        if ($exit) {
-            require Test::More;
-            Test::More::plan(skip_all => "Threads segfault on this perl");
-        }
-    }
-
-    my $caller = caller;
-    eval "package $caller; use threads; 1" || die $@;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Test::CanThread - Only run tests when threading is supported, optionally conditioned on ENV vars.
-
-=head1 DESCRIPTION
-
-Use this first thing in a test that should be skipped when threading is not
-supported. You can also specify that the test should be skipped when specific
-environment variables are not set.
-
-=head1 SYNOPSYS
-
-Skip the test if threading is unsupported:
-
-    use Test::CanThread;
-    use Test::More;
-    ...
-
-Skip the test if threading is unsupported, or any of the specified env vars are
-not set:
-
-    use Test::CanThread qw/AUTHOR_TESTING RUN_PROBLEMATIC_TESTS .../;
-    use Test::More;
-    ...
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 COPYRIGHT
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
diff --git a/cpan/Test-Simple/lib/Test/FAQ.pod b/cpan/Test-Simple/lib/Test/FAQ.pod
deleted file mode 100644 (file)
index 770984a..0000000
+++ /dev/null
@@ -1,479 +0,0 @@
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::FAQ - Frequently Asked Questions about testing with Perl
-
-=head1 DESCRIPTION
-
-Frequently Asked Questions about testing in general and specific
-issues with Perl.
-
-=head2 Is there any tutorial on testing?
-
-L<Test::Tutorial>
-
-=head2 Are there any modules for testing?
-
-A whole bunch.  Start with L<Test::Simple> then move onto Test::More.
-
-Then go onto L<http://search.cpan.org> and search for "Test".
-
-Also check out L<Fennec>.
-
-=head2 Are there any modules for testing web pages/CGI programs?
-
-L<Test::WWW::Mechanize>, L<Test::WWW::Selenium>
-
-=head2 Are there any modules for testing external programs?
-
-L<Test::Cmd>
-
-=head2 Can you do xUnit/JUnit style testing in Perl?
-
-Yes, L<Test::Class> allows you to write test methods while continuing to
-use all the usual CPAN testing modules.  It is the best and most
-perlish way to do xUnit style testing.
-
-L<Test::Unit> is a more direct port of XUnit to Perl, but it does not use
-the Perl conventions and does not play well with other CPAN testing
-modules.  As of this writing, it is abandoned.  B<Do not use>.
-
-The L<Test::Inline> (aka L<Pod::Tests>) is worth mentioning as it allows you to
-put tests into the POD in the same file as the code.
-
-
-=head2 How do I test my module is backwards/forwards compatible?
-
-First, install a bunch of perls of commonly used versions.  At the
-moment, you could try these
-
-    5.7.2
-    5.6.1
-    5.005_03
-    5.004_05
-
-if you're feeling brave, you might want to have on hand these
-
-    bleadperl
-    5.6.0
-    5.004_04
-    5.004
-
-going back beyond 5.003 is probably beyond the call of duty.
-
-You can then add something like this to your F<Makefile.PL>.  It
-overrides the L<ExtUtils::MakeMaker> C<test_via_harness()> method to run the tests
-against several different versions of Perl.
-
-    # If PERL_TEST_ALL is set, run "make test" against
-    # other perls as well as the current perl.
-    {
-        package MY;
-
-        sub test_via_harness {
-            my($self, $orig_perl, $tests) = @_;
-
-            # names of your other perl binaries.
-            my @other_perls = qw(perl5.004_05 perl5.005_03 perl5.7.2);
-
-            my @perls = ($orig_perl);
-            push @perls, @other_perls if $ENV{PERL_TEST_ALL};
-
-            my $out;
-            foreach my $perl (@perls) {
-                $out .= $self->SUPER::test_via_harness($perl, $tests);
-            }
-
-            return $out;
-        }
-    }
-
-and re-run your F<Makefile.PL> with the C<PERL_TEST_ALL> environment
-variable set
-
-    PERL_TEST_ALL=1 perl Makefile.PL
-
-now C<make test> will run against each of your other perls.
-
-
-=head2 If I'm testing Foo::Bar, where do I put tests for Foo::Bar::Baz?
-
-=head2 How do I know when my tests are good enough?
-
-A: Use tools for measuring the code coverage of your tests, e.g. how many of
-your source code lines/subs/expressions/paths are executed (aka covered) by
-the test suite. The more, the better, of course, although you may not
-be able achieve 100%. If your testsuite covers under 100%, then
-the rest of your code is, basically, untested. Which means it may work in
-surprising ways (e.g. doesn't do things like they are intended or
-documented), have bugs (e.g. return wrong results) or it may not work at
-all.
-
-=head2 How do I measure the coverage of my test suite?
-
-L<Devel::Cover>
-
-=head2 How do I get tests to run in a certain order?
-
-Tests run in alphabetical order, so simply name your test files in the order
-you want them to run.  Numbering your test files works, too.
-
-    t/00_compile.t
-    t/01_config.t
-    t/zz_teardown.t
-
-0 runs first, z runs last.
-
-To achieve a specific order, try L<Test::Manifest>.
-
-Typically you do B<not> want your tests to require being run in a
-certain order, but it can be useful to do a compile check first or to
-run the tests on a very basic module before everything else.  This
-gives you early information if a basic module fails which will bring
-everything else down.
-
-Another use is if you have a suite wide setup/teardown, such as
-creating and delete a large test database, which may be too
-expensive to do for every test.
-
-We recommend B<against> numbering every test file.  For most files
-this ordering will be arbitrary and the leading number obscures the
-real name of the file.  See L<What should I name my test files?> for
-more information.
-
-
-=head2 What should I name my tests?
-
-=head2 What should I name my test files?
-
-A test filename serves three purposes:
-
-Most importantly, it serves to identify what is being tested.  Each
-test file should test a clear piece of functionality.  This could be
-at single class, a single method, even a single bug.
-
-The order in which tests are run is usually dictated by the filename.
-See L<How do I get tests to run in a certain order?> for details.
-
-Finally, the grouping of tests into common bits of functionality can
-be achieved by directory and filenames.  For example, all the tests
-for L<Test::Builder> are in the F<t/Builder/> directory.
-
-As an example, F<t/Builder/reset.t> contains the tests for
-C<< Test::Builder->reset >>.  F<t/00compile.t> checks that everything
-compiles, and it will run first.  F<t/dont_overwrite_die_handler.t>
-checks that we don't overwrite the C<< $SIG{__DIE__} >> handler.
-
-
-=head2 How do I deal with tests that sometimes pass and sometimes fail?
-
-=head2 How do I test with a database/network/server that the user may or may not have?
-
-=head2 What's a good way to test lists?
-
-C<is_deeply()> from L<Test::More> as well as L<Test::Deep>.
-
-=head2 Is there such a thing as untestable code?
-
-There's always compile/export checks.
-
-Code must be written with testability in mind.  Separation of form and
-functionality.
-
-=head2 What do I do when I can't make the code do the same thing twice?
-
-Force it to do the same thing twice.
-
-Even a random number generator can be tested.
-
-=head2 How do I test a GUI?
-
-=head2 How do I test an image generator?
-
-=head2 How do I test that my code handles failures gracefully?
-
-=head2 How do I check the right warnings are issued?
-
-L<Test::Warn>
-
-=head2 How do I test code that prints?
-
-L<Test::Output>
-
-=head2 I want to test that my code dies when I do X
-
-L<Test::Exception>
-
-=head2 I want to print out more diagnostic info on failure.
-
-C<ok(...) || diag "...";>
-
-=head2 How can I simulate failures to make sure that my code does the Right Thing in the face of them?
-
-
-=head2 Why use an ok() function?
-
-On Tue, Aug 28, 2001 at 02:12:46PM +0100, Robin Houston wrote:
-> Michael Schwern wrote:
-> > Ah HA!  I've been wondering why nobody ever thinks to write a simple
-> > ok() function for their tests!  perlhack has bad testing advice.
->
-> Could you explain the advantage of having a "simple ok() function"?
-
-Because writing:
-
-    print "not " unless some thing worked;
-    print "ok $test\n";  $test++;
-
-gets rapidly annoying.  This is why we made up subroutines in the
-first place.  It also looks like hell and obscures the real purpose.
-
-Besides, that will cause problems on VMS.
-
-
-> As somebody who has spent many painful hours debugging test failures,
-> I'm intimately familiar with the _disadvantages_. When you run the
-> test, you know that "test 113 failed". That's all you know, in general.
-
-Second advantage is you can easily upgrade the C<ok()> function to fix
-this, either by slapping this line in:
-
-        printf "# Failed test at line %d\n", (caller)[2];
-
-or simply junking the whole thing and switching to L<Test::Simple> or
-L<Test::More>, which does all sorts of nice diagnostics-on-failure for
-you.  Its C<ok()> function is backwards compatible with the above.
-
-There's some issues with using L<Test::Simple> to test really basic Perl
-functionality, you have to choose on a per test basis.  Since
-L<Test::Simple> doesn't use C<pack()> it's safe for F<t/op/pack.t> to use
-L<Test::Simple>.  I just didn't want to make the perlhack patching
-example too complicated.
-
-
-=head2 Dummy Mode
-
-> One compromise would be to use a test-generating script, which allows
-> the tests to be structured simply and _generates_ the actual test
-> code. One could then grep the generated test script to locate the
-> failing code.
-
-This is a very interesting, and very common, response to the problem.
-I'm going to make some observations about reactions to testing,
-they're not specific to you.
-
-If you've ever read the Bastard Operator From Hell series, you'll
-recall the Dummy Mode.
-
-    The words "power surging" and "drivers" have got her.  People hear
-    words like that and go into Dummy Mode and do ANYTHING you say.  I
-    could tell her to run naked across campus with a powercord rammed
-    up her backside and she'd probably do it...  Hmmm...
-
-There seems to be a Dummy Mode WRT testing.  An otherwise competent
-person goes to write a test and they suddenly forget all basic
-programming practice.
-
-
-The reasons for using an C<ok()> function above are the same reasons to
-use functions in general, we should all know them.  We'd laugh our
-heads off at code that repeated as much as your average test does.
-These are newbie mistakes.
-
-And the normal 'can do' flair seems to disappear.  I know Robin.  I
-*know* that in any other situation he would have come up with the
-C<caller()> trick in about 15 seconds flat.  Instead weird, elaborate,
-inelegant hacks are thought up to solve the simplest problems.
-
-
-I guess there are certain programming idioms that are foreign enough
-to throw your brain into reverse if you're not ready for them.  Like
-trying to think in Lisp, for example.  Or being presented with OO for
-the first time.  I guess writing test is one of those.
-
-
-=head2 How do I use Test::More without depending on it?
-
-Install L<Test::More> into F<t/lib> under your source directory.  Then in your tests
-say C<use lib 't/lib'>.
-
-=head2 How do I deal with threads and forking?
-
-    use Test::More qw/enable_forking/;
-
-or
-
-    use Test::More qw/modern/;
-
-=head2 Why do I need more than ok?
-
-Since every test can be reduced to checking if a statement is true,
-C<ok()> can test everything.  But C<ok()> doesn't tell you why the test
-failed.  For that you need to tell the test more... which is why
-you need L<Test::More>.
-
-    ok $pirate->name eq "Roberts", "person's name";
-
-    not ok 1 - person's name
-    # Failed test at pirates.t line 23.
-
-If the above fails, you don't know what C<< $person->name >> returned.
-You have to go in and add a C<diag> call.  This is time consuming.  If
-it's a heisenbug, it might not fail again!  If it's a user reporting a
-test failure, they might not be bothered to hack the tests to give you
-more information.
-
-    is $person->name, "Roberts", "person's name";
-
-    not ok 1 - person's name
-    # Failed test at pirates.t line 23.
-    #        got: 'Wesley'
-    #   expected: 'Roberts'
-
-Using C<is> from L<Test::More> you now know what value you got and
-what value you expected.
-
-The most useful functions in L<Test::More> are C<is()>, C<like()> and C<is_deeply()>.
-
-
-=head2 What's wrong with C<print $test ? "ok" : "not ok">?
-
-=head2 How do I check for an infinite loop?
-
-On Mon, Mar 18, 2002 at 03:57:55AM -0500, Mark-Jason Dominus wrote:
->
-> Michael The Schwern <schwern@pobox.com> says:
-> > Use alarm and skip the test if $Config{d_alarm} is false (see
-> > t/op/alarm.t for an example).  If you think the infinite loop is due
-> > to a programming glitch, as opposed to a cross-platform issue, this
-> > will be enough.
->
-> Thanks very much!
->
-
-=head2 How can I check that flock works?
-
-=head2 How do I use the comparison functions of a testing module without it being a test?
-
-Any testing function based on L<Test::Builder>, most are, can be quieted so it does
-not do any testing.  It simply returns true or false.  Use the following code...
-
-    use Test::More;     # or any testing module
-
-    use Test::Builder;
-    use File::Spec;
-
-    # Get the internal Test::Builder object
-    my $tb = Test::Builder->new;
-
-    $tb->plan("no_plan");
-
-    # Keep Test::Builder from displaying anything
-    $tb->no_diag(1);
-    $tb->no_ending(1);
-    $tb->no_header(1);
-    $tb->output( File::Spec->devnull );
-
-    # Now you can use the testing function.
-    print is_deeply( "foo", "bar" ) ? "Yes" : "No";
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
index 8b812ac..4bab267 100644 (file)
 package Test::More;
 
-use 5.008001;
+use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_098';
-$VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
-
-use Test::Stream 1.301001 '-internal';
-use Test::Stream::Util qw/protect try spoof/;
-use Test::Stream::Toolset qw/is_tester init_tester context before_import/;
-use Test::Stream::Subtest qw/subtest/;
-
-use Test::Stream::Carp qw/croak carp/;
-use Scalar::Util qw/blessed/;
-
-use Test::More::Tools;
-use Test::More::DeepCheck::Strict;
-
-use Test::Builder;
-
-use Test::Stream::Exporter qw/
-    default_export default_exports export_to export_to_level
-/;
-
-our $TODO;
-default_export '$TODO' => \$TODO;
-default_exports qw{
-    plan done_testing
+#---- perlcritic exemptions. ----#
 
-    ok
-    is isnt
-    like unlike
-    cmp_ok
-    is_deeply
-    eq_array eq_hash eq_set
-    can_ok isa_ok new_ok
-    pass fail
-    require_ok use_ok
-    subtest
-
-    explain
-
-    diag note
-
-    skip todo_skip
-    BAIL_OUT
-};
-Test::Stream::Exporter->cleanup;
-
-{
-    no warnings 'once';
-    $Test::Builder::Level ||= 1;
-}
-
-sub import {
-    my $class = shift;
-    my $caller = caller;
-    my @args = @_;
+# We use a lot of subroutine prototypes
+## no critic (Subroutines::ProhibitSubroutinePrototypes)
 
-    my $stash = $class->before_import($caller, \@args) if $class->can('before_import');
-    export_to($class, $caller, @args);
-    $class->after_import($caller, $stash, @args) if $class->can('after_import');
-    $class->import_extra(@args);
+# Can't use Carp because it might cause C<use_ok()> to accidentally succeed
+# even though the module being used forgot to use Carp.  Yes, this
+# actually happened.
+sub _carp {
+    my( $file, $line ) = ( caller(1) )[ 1, 2 ];
+    return warn @_, " at $file line $line\n";
 }
 
-sub import_extra { 1 };
-
-sub builder { Test::Builder->new }
-
-sub ok ($;$) {
-    my ($test, $name) = @_;
-    my $ctx  = context();
-    if($test) {
-        $ctx->ok(1, $name);
-        return 1;
-    }
-    else {
-        $ctx->ok(0, $name);
-        return 0;
-    }
-}
-
-sub plan {
-    return unless @_;
-    my ($directive, $arg) = @_;
-    my $ctx = context();
-
-    if ($directive eq 'tests') {
-        $ctx->plan($arg);
-    }
-    else {
-        $ctx->plan(0, $directive, $arg);
-    }
-}
-
-sub done_testing {
-    my ($num) = @_;
-    my $ctx = context();
-    $ctx->done_testing($num);
-}
-
-sub is($$;$) {
-    my ($got, $want, $name) = @_;
-    my $ctx = context();
-    my ($ok, @diag) = tmt->is_eq($got, $want);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-sub isnt ($$;$) {
-    my ($got, $forbid, $name) = @_;
-    my $ctx = context();
-    my ($ok, @diag) = tmt->isnt_eq($got, $forbid);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-{
-    no warnings 'once';
-    *isn't = \&isnt;
-    # ' to unconfuse syntax higlighters
-}
-
-sub like ($$;$) {
-    my ($got, $check, $name) = @_;
-    my $ctx = context();
-    my ($ok, @diag) = tmt->regex_check($got, $check, '=~');
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-sub unlike ($$;$) {
-    my ($got, $forbid, $name) = @_;
-    my $ctx = context();
-    my ($ok, @diag) = tmt->regex_check($got, $forbid, '!~');
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-sub cmp_ok($$$;$) {
-    my ($got, $type, $expect, $name) = @_;
-    my $ctx = context();
-    my ($ok, @diag) = tmt->cmp_check($got, $type, $expect);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-sub can_ok($@) {
-    my ($thing, @methods) = @_;
-    my $ctx = context();
-
-    my $class = ref $thing || $thing || '';
-    my ($ok, @diag);
-
-    if (!@methods) {
-        ($ok, @diag) = (0, "    can_ok() called with no methods");
-    }
-    elsif (!$class) {
-        ($ok, @diag) = (0, "    can_ok() called with empty class or reference");
-    }
-    else {
-        ($ok, @diag) = tmt->can_check($thing, $class, @methods);
-    }
-
-    my $name = (@methods == 1 && defined $methods[0])
-        ? "$class\->can('$methods[0]')"
-        : "$class\->can(...)";
-
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-sub isa_ok ($$;$) {
-    my ($thing, $class, $thing_name) = @_;
-    my $ctx = context();
-    $thing_name = "'$thing_name'" if $thing_name;
-    my ($ok, @diag) = tmt->isa_check($thing, $class, \$thing_name);
-    my $name = "$thing_name isa '$class'";
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-sub new_ok {
-    croak "new_ok() must be given at least a class" unless @_;
-    my ($class, $args, $object_name) = @_;
-    my $ctx = context();
-    my ($obj, $name, $ok, @diag) = tmt->new_check($class, $args, $object_name);
-    $ctx->ok($ok, $name, \@diag);
-    return $obj;
-}
-
-sub pass (;$) {
-    my $ctx = context();
-    return $ctx->ok(1, @_);
-}
-
-sub fail (;$) {
-    my $ctx = context();
-    return $ctx->ok(0, @_);
-}
-
-sub explain {
-    my $ctx = context();
-    tmt->explain(@_);
-}
-
-sub diag {
-    my $ctx = context();
-    $ctx->diag($_) for @_;
-}
-
-sub note {
-    my $ctx = context();
-    $ctx->note($_) for @_;
-}
-
-sub skip {
-    my( $why, $how_many ) = @_;
-    my $ctx = context();
-
-    _skip($why, $how_many, 'skip', 1);
-
-    no warnings 'exiting';
-    last SKIP;
-}
-
-sub _skip {
-    my( $why, $how_many, $func, $bool ) = @_;
-    my $ctx = context();
-
-    my $plan = $ctx->stream->plan;
-
-    # If there is no plan we do not need to worry about counts
-    my $need_count = $plan ? !($plan->directive && $plan->directive eq 'NO PLAN') : 0;
-
-    if ($need_count && !defined $how_many) {
-        $ctx->alert("$func() needs to know \$how_many tests are in the block");
-    }
-
-    $ctx->alert("$func() was passed a non-numeric number of tests.  Did you get the arguments backwards?")
-        if defined $how_many and $how_many =~ /\D/;
-
-    $how_many = 1 unless defined $how_many;
-    $ctx->set_skip($why);
-    for( 1 .. $how_many ) {
-        $ctx->ok($bool, '');
-    }
-}
-
-sub todo_skip {
-    my($why, $how_many) = @_;
-
-    my $ctx = context();
-    $ctx->set_in_todo(1);
-    $ctx->set_todo($why);
-    _skip($why, $how_many, 'todo_skip', 0);
-
-    no warnings 'exiting';
-    last TODO;
-}
-
-sub BAIL_OUT {
-    my ($reason) = @_;
-    my $ctx = context();
-    $ctx->bail($reason);
-}
-
-sub is_deeply {
-    my ($got, $want, $name) = @_;
-
-    my $ctx = context();
-
-    unless( @_ == 2 or @_ == 3 ) {
-        my $msg = <<'WARNING';
-is_deeply() takes two or three args, you gave %d.
-This usually means you passed an array or hash instead
-of a reference to it
-WARNING
-        chop $msg;    # clip off newline so carp() will put in line/file
-
-        $ctx->alert(sprintf $msg, scalar @_);
-
-        $ctx->ok(0, undef, ['incorrect number of args']);
-        return 0;
-    }
-
-    my ($ok, @diag) = Test::More::DeepCheck::Strict->check($got, $want);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-sub eq_array {
-    my ($got, $want, $name) = @_;
-    my $ctx = context();
-    my ($ok, @diag) = Test::More::DeepCheck::Strict->check_array($got, $want);
-    return $ok;
-}
-
-sub eq_hash {
-    my ($got, $want, $name) = @_;
-    my $ctx = context();
-    my ($ok, @diag) = Test::More::DeepCheck::Strict->check_hash($got, $want);
-    return $ok;
-}
-
-sub eq_set {
-    my ($got, $want, $name) = @_;
-    my $ctx = context();
-    my ($ok, @diag) = Test::More::DeepCheck::Strict->check_set($got, $want);
-    return $ok;
-}
-
-sub require_ok($;$) {
-    my($module) = shift;
-    my $ctx = context();
-
-    # Try to determine if we've been given a module name or file.
-    # Module names must be barewords, files not.
-    $module = qq['$module'] unless _is_module_name($module);
-
-    my ($ret, $err);
-    {
-        local $SIG{__DIE__};
-        ($ret, $err) = spoof [caller] => "require $module";
-    }
-
-    my @diag;
-    unless ($ret) {
-        chomp $err;
-        push @diag => <<"        DIAG";
-    Tried to require '$module'.
-    Error:  $err
-        DIAG
-    }
-
-    $ctx->ok( $ret, "require $module;", \@diag );
-    return $ret ? 1 : 0;
-}
-
-sub _is_module_name {
-    my $module = shift;
-
-    # Module names start with a letter.
-    # End with an alphanumeric.
-    # The rest is an alphanumeric or ::
-    $module =~ s/\b::\b//g;
-
-    return $module =~ /^[a-zA-Z]\w*$/ ? 1 : 0;
-}
-
-sub use_ok($;@) {
-    my ($module, @imports) = @_;
-    @imports = () unless @imports;
-    my $ctx = context();
-
-    my($pack, $filename, $line) = caller;
-    $filename =~ y/\n\r/_/; # so it doesn't run off the "#line $line $f" line
-
-    my ($ret, $err, $newdie, @diag);
-    {
-        local $SIG{__DIE__};
-
-        if( @imports == 1 and $imports[0] =~ /^\d+(?:\.\d+)?$/ ) {
-            # probably a version check.  Perl needs to see the bare number
-            # for it to work with non-Exporter based modules.
-            ($ret, $err) = spoof [$pack, $filename, $line] => "use $module $imports[0]";
-        }
-        else {
-            ($ret, $err) = spoof [$pack, $filename, $line] => "use $module \@args", @imports;
-        }
-
-        $newdie = $SIG{__DIE__};
-    }
-
-    $SIG{__DIE__} = $newdie if defined $newdie;
-
-    unless ($ret) {
-        chomp $err;
-        push @diag => <<"        DIAG";
-    Tried to use '$module'.
-    Error:  $err
-        DIAG
-    }
-
-    $ctx->ok($ret, "use $module;", \@diag);
-
-    return $ret ? 1 : 0;
-}
-
-1;
-
-__END__
-
-=pod
+our $VERSION = '1.001014';
+$VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
-=encoding UTF-8
+use Test::Builder::Module 0.99;
+our @ISA    = qw(Test::Builder::Module);
+our @EXPORT = qw(ok use_ok require_ok
+  is isnt like unlike is_deeply
+  cmp_ok
+  skip todo todo_skip
+  pass fail
+  eq_array eq_hash eq_set
+  $TODO
+  plan
+  done_testing
+  can_ok isa_ok new_ok
+  diag note explain
+  subtest
+  BAIL_OUT
+);
 
 =head1 NAME
 
-Test::More - The defacto standard in unit testing tools.
+Test::More - yet another framework for writing test scripts
 
 =head1 SYNOPSIS
 
-    # Using Test::Stream BEFORE using Test::More removes expensive legacy
-    # support. This Also provides context(), cull(), and tap_encoding()
-    use Test::Stream;
+  use Test::More tests => 23;
+  # or
+  use Test::More skip_all => $reason;
+  # or
+  use Test::More;   # see done_testing()
 
-    # Load after Test::Stream to get the benefits of removed legacy
-    use Test::More;
+  require_ok( 'Some::Module' );
+
+  # Various ways to say "ok"
+  ok($got eq $expected, $test_name);
 
-    use ok 'Some::Module';
+  is  ($got, $expected, $test_name);
+  isnt($got, $expected, $test_name);
 
-    can_ok($module, @methods);
-    isa_ok($object, $class);
+  # Rather than print STDERR "# here's what went wrong\n"
+  diag("here's what went wrong");
 
-    pass($test_name);
-    fail($test_name);
+  like  ($got, qr/expected/, $test_name);
+  unlike($got, qr/expected/, $test_name);
 
-    ok($got eq $expected, $test_name);
+  cmp_ok($got, '==', $expected, $test_name);
 
-    is  ($got, $expected, $test_name);
-    isnt($got, $expected, $test_name);
+  is_deeply($got_complex_structure, $expected_complex_structure, $test_name);
 
-    like  ($got, qr/expected/, $test_name);
-    unlike($got, qr/expected/, $test_name);
+  SKIP: {
+      skip $why, $how_many unless $have_some_feature;
 
-    cmp_ok($got, '==', $expected, $test_name);
+      ok( foo(),       $test_name );
+      is( foo(42), 23, $test_name );
+  };
 
-    is_deeply(
-        $got_complex_structure,
-        $expected_complex_structure,
-        $test_name
-    );
+  TODO: {
+      local $TODO = $why;
 
-    # Rather than print STDERR "# here's what went wrong\n"
-    diag("here's what went wrong");
+      ok( foo(),       $test_name );
+      is( foo(42), 23, $test_name );
+  };
 
-    SKIP: {
-        skip $why, $how_many unless $have_some_feature;
+  can_ok($module, @methods);
+  isa_ok($object, $class);
 
-        ok( foo(),       $test_name );
-        is( foo(42), 23, $test_name );
-    };
+  pass($test_name);
+  fail($test_name);
 
-    TODO: {
-        local $TODO = $why;
-
-        ok( foo(),       $test_name );
-        is( foo(42), 23, $test_name );
-    };
-
-    sub my_compare {
-        my ($got, $want, $name) = @_;
-        my $ctx = context(); # From Test::Stream
-        my $ok = $got eq $want;
-        $ctx->ok($ok, $name);
-        ...
-        return $ok;
-    };
+  BAIL_OUT($why);
 
-    # If this fails it will report this line instead of the line in my_compare.
-    my_compare('a', 'b');
+  # UNIMPLEMENTED!!!
+  my @status = Test::More::status;
 
-    done_testing;
 
 =head1 DESCRIPTION
 
@@ -477,6 +105,7 @@ facilities to skip tests, test future features and compare complicated
 data structures.  While you can do almost anything with a simple
 C<ok()> function, it doesn't provide good diagnostic output.
 
+
 =head2 I love it when a plan comes together
 
 Before anything else, you need a testing plan.  This basically declares
@@ -531,6 +160,40 @@ or for deciding between running the tests at all:
       plan tests => 42;
   }
 
+=cut
+
+sub plan {
+    my $tb = Test::More->builder;
+
+    return $tb->plan(@_);
+}
+
+# This implements "use Test::More 'no_diag'" but the behavior is
+# deprecated.
+sub import_extra {
+    my $class = shift;
+    my $list  = shift;
+
+    my @other = ();
+    my $idx   = 0;
+    while( $idx <= $#{$list} ) {
+        my $item = $list->[$idx];
+
+        if( defined $item and $item eq 'no_diag' ) {
+            $class->builder->no_diag(1);
+        }
+        else {
+            push @other, $item;
+        }
+
+        $idx++;
+    }
+
+    @$list = @other;
+
+    return;
+}
+
 =over 4
 
 =item B<done_testing>
@@ -550,114 +213,12 @@ This is safer than and replaces the "no_plan" plan.
 
 =back
 
-=head2 Test::Stream
-
-If Test::Stream is loaded before Test::More then it will prevent the insertion
-of some legacy support shims, saving you memory and improving performance.
-
-    use Test::Stream;
-    use Test::More;
-
-You can also use it to make forking work:
-
-    use Test::Stream 'enable_fork';
-
-=head2 TAP Encoding
-
-You can now control the encoding of your TAP output using Test::Stream.
-
-    use Test::Stream; # imports tap_encoding
-    use Test::More;
-
-    tap_encoding 'utf8';
-
-You can also just set 'utf8' it at import time
-
-    use Test::Stream 'utf8';
-
-or something other than utf8
-
-    use Test::Stream encoding => 'latin1';
-
-=over 4
-
-=item tap_encoding 'utf8';
-
-=item tap_encoding 'YOUR_ENCODING';
-
-=item tap_encoding 'xxx' => sub { ... };
-
-The C<tap_encoding($encoding)> function will ensure that any B<FUTURE> TAP
-output produced by I<This Package> will be output in the specified encoding.
-
-You may also provide a codeblock in which case the scope of the encoding change
-will only apply to that codeblock.
-
-B<Note>: This is effective only for the current package. Other packages can/may
-select other encodings for their TAP output. For packages where none is
-specified, the original STDOUT and STDERR settings are used, the results are
-unpredictable.
-
-B<Note>: The encoding of the TAP, it is necessary to set to match the
-locale of the encoding of the terminal.
-
-However, in tests code that are performed in a variety of environments,
-it can not be assumed in advance the encoding of the locale of the terminal,
-it is recommended how to set the encoding to your environment using the
-C<Encode::Locale> module.
-
-The following is an example of code.
-
-  use utf8;
-  use Test::Stream;
-  use Test::More;
-  use Encode::Locale;
-
-  tap_encoding('console_out');
-
-B<Note>: Filenames are a touchy subject:
-
-Different OS's and filesystems handle filenames differently. When you do not
-specify an encoding, the filename will be unmodified, you get whatever perl
-thinks it is. If you do specify an encoding, the filename will be assumed to be
-in that encoding, and an attempt will be made to unscramble it. If the
-unscrambling fails the original name will be used.
-
-This filename unscrambling is necessary for example on linux systems when you
-use utf8 encoding and a utf8 filename. Perl will read the bytes of the name,
-and treat them as bytes. if you then try to print the name to a utf8 handle it
-will treat each byte as a different character. Test::More attempts to fix this
-scrambling for you.
-
-=back
-
-=head2 Helpers
-
-Sometimes you want to write functions for things you do frequently that include
-calling ok() or other test functions. Doing this can make it hard to debug
-problems as failures will be reported in your sub, and not at the place where
-you called your sub. Now there is a solution to this, the
-L<Test::Stream::Context> object!.
-
-L<Test::Stream> exports the C<context()> function which will return a context
-object for your use. The idea is that you generate a context object at the
-lowest level (the function you call from your test file). Deeper functions that
-need context will get the object you already generated, at least until the
-object falls out of scope or is undefined.
+=cut
 
-    sub my_compare {
-        my ($got, $want, $name) = @_;
-        my $ctx = context();
-
-        # is() will find the context object above, instead of generating a new
-        # one. That way a failure will be reported to the correct line
-        is($got, $want);
-
-        # This time it will generate a new context object. That means a failure
-        # will report to this line.
-        $ctx = undef;
-        is($got, $want);
-    };
+sub done_testing {
+    my $tb = Test::More->builder;
+    $tb->done_testing(@_);
+}
 
 =head2 Test names
 
@@ -724,6 +285,15 @@ Should an C<ok()> fail, it will produce some diagnostics:
 
 This is the same as L<Test::Simple>'s C<ok()> routine.
 
+=cut
+
+sub ok ($;$) {
+    my( $test, $name ) = @_;
+    my $tb = Test::More->builder;
+
+    return $tb->ok( $test, $name );
+}
+
 =item B<is>
 
 =item B<isnt>
@@ -798,6 +368,23 @@ different from some other value:
 For those grammatical pedants out there, there's an C<isn't()>
 function which is an alias of C<isnt()>.
 
+=cut
+
+sub is ($$;$) {
+    my $tb = Test::More->builder;
+
+    return $tb->is_eq(@_);
+}
+
+sub isnt ($$;$) {
+    my $tb = Test::More->builder;
+
+    return $tb->isnt_eq(@_);
+}
+
+*isn't = \&isnt;
+# ' to unconfuse syntax higlighters
+
 =item B<like>
 
   like( $got, qr/expected/, $test_name );
@@ -826,6 +413,14 @@ Regex options may be placed on the end (C<'/expected/i'>).
 Its advantages over C<ok()> are similar to that of C<is()> and C<isnt()>.  Better
 diagnostics on failure.
 
+=cut
+
+sub like ($$;$) {
+    my $tb = Test::More->builder;
+
+    return $tb->like(@_);
+}
+
 =item B<unlike>
 
   unlike( $got, qr/expected/, $test_name );
@@ -833,6 +428,14 @@ diagnostics on failure.
 Works exactly as C<like()>, only it checks if $got B<does not> match the
 given pattern.
 
+=cut
+
+sub unlike ($$;$) {
+    my $tb = Test::More->builder;
+
+    return $tb->unlike(@_);
+}
+
 =item B<cmp_ok>
 
   cmp_ok( $got, $op, $expected, $test_name );
@@ -865,11 +468,20 @@ C<is()>'s use of C<eq> will interfere:
 
     cmp_ok( $big_hairy_number, '==', $another_big_hairy_number );
 
-It's especially useful when comparing greater-than or smaller-than
+It's especially useful when comparing greater-than or smaller-than 
 relation between values:
 
     cmp_ok( $some_value, '<=', $upper_limit );
 
+
+=cut
+
+sub cmp_ok($$$;$) {
+    my $tb = Test::More->builder;
+
+    return $tb->cmp_ok(@_);
+}
+
 =item B<can_ok>
 
   can_ok($module, @methods);
@@ -882,9 +494,9 @@ Checks to make sure the $module or $object can do these @methods
 
 is almost exactly like saying:
 
-    ok( Foo->can('this') &&
-        Foo->can('that') &&
-        Foo->can('whatever')
+    ok( Foo->can('this') && 
+        Foo->can('that') && 
+        Foo->can('whatever') 
       );
 
 only without all the typing and with a better interface.  Handy for
@@ -897,6 +509,40 @@ as one test.  If you desire otherwise, use:
         can_ok('Foo', $meth);
     }
 
+=cut
+
+sub can_ok ($@) {
+    my( $proto, @methods ) = @_;
+    my $class = ref $proto || $proto;
+    my $tb = Test::More->builder;
+
+    unless($class) {
+        my $ok = $tb->ok( 0, "->can(...)" );
+        $tb->diag('    can_ok() called with empty class or reference');
+        return $ok;
+    }
+
+    unless(@methods) {
+        my $ok = $tb->ok( 0, "$class->can(...)" );
+        $tb->diag('    can_ok() called with no methods');
+        return $ok;
+    }
+
+    my @nok = ();
+    foreach my $method (@methods) {
+        $tb->_try( sub { $proto->can($method) } ) or push @nok, $method;
+    }
+
+    my $name = (@methods == 1) ? "$class->can('$methods[0]')" :
+                                 "$class->can(...)"           ;
+
+    my $ok = $tb->ok( !@nok, $name );
+
+    $tb->diag( map "    $class->can('$_') failed\n", @nok );
+
+    return $ok;
+}
+
 =item B<isa_ok>
 
   isa_ok($object,   $class, $object_name);
@@ -929,6 +575,88 @@ The diagnostics of this test normally just refer to 'the object'.  If
 you'd like them to be more specific, you can supply an $object_name
 (for example 'Test customer').
 
+=cut
+
+sub isa_ok ($$;$) {
+    my( $thing, $class, $thing_name ) = @_;
+    my $tb = Test::More->builder;
+
+    my $whatami;
+    if( !defined $thing ) {
+        $whatami = 'undef';
+    }
+    elsif( ref $thing ) {
+        $whatami = 'reference';
+
+        local($@,$!);
+        require Scalar::Util;
+        if( Scalar::Util::blessed($thing) ) {
+            $whatami = 'object';
+        }
+    }
+    else {
+        $whatami = 'class';
+    }
+
+    # We can't use UNIVERSAL::isa because we want to honor isa() overrides
+    my( $rslt, $error ) = $tb->_try( sub { $thing->isa($class) } );
+
+    if($error) {
+        die <<WHOA unless $error =~ /^Can't (locate|call) method "isa"/;
+WHOA! I tried to call ->isa on your $whatami and got some weird error.
+Here's the error.
+$error
+WHOA
+    }
+
+    # Special case for isa_ok( [], "ARRAY" ) and like
+    if( $whatami eq 'reference' ) {
+        $rslt = UNIVERSAL::isa($thing, $class);
+    }
+
+    my($diag, $name);
+    if( defined $thing_name ) {
+        $name = "'$thing_name' isa '$class'";
+        $diag = defined $thing ? "'$thing_name' isn't a '$class'" : "'$thing_name' isn't defined";
+    }
+    elsif( $whatami eq 'object' ) {
+        my $my_class = ref $thing;
+        $thing_name = qq[An object of class '$my_class'];
+        $name = "$thing_name isa '$class'";
+        $diag = "The object of class '$my_class' isn't a '$class'";
+    }
+    elsif( $whatami eq 'reference' ) {
+        my $type = ref $thing;
+        $thing_name = qq[A reference of type '$type'];
+        $name = "$thing_name isa '$class'";
+        $diag = "The reference of type '$type' isn't a '$class'";
+    }
+    elsif( $whatami eq 'undef' ) {
+        $thing_name = 'undef';
+        $name = "$thing_name isa '$class'";
+        $diag = "$thing_name isn't defined";
+    }
+    elsif( $whatami eq 'class' ) {
+        $thing_name = qq[The class (or class-like) '$thing'];
+        $name = "$thing_name isa '$class'";
+        $diag = "$thing_name isn't a '$class'";
+    }
+    else {
+        die;
+    }
+
+    my $ok;
+    if($rslt) {
+        $ok = $tb->ok( 1, $name );
+    }
+    else {
+        $ok = $tb->ok( 0, $name );
+        $tb->diag("    $diag\n");
+    }
+
+    return $ok;
+}
+
 =item B<new_ok>
 
   my $obj = new_ok( $class );
@@ -948,6 +676,31 @@ If @args is not given, an empty list will be used.
 This function only works on C<new()> and it assumes C<new()> will return
 just a single object which isa C<$class>.
 
+=cut
+
+sub new_ok {
+    my $tb = Test::More->builder;
+    $tb->croak("new_ok() must be given at least a class") unless @_;
+
+    my( $class, $args, $object_name ) = @_;
+
+    $args ||= [];
+
+    my $obj;
+    my( $success, $error ) = $tb->_try( sub { $obj = $class->new(@$args); 1 } );
+    if($success) {
+        local $Test::Builder::Level = $Test::Builder::Level + 1;
+        isa_ok $obj, $class, $object_name;
+    }
+    else {
+        $class = 'undef' if !defined $class;
+        $tb->ok( 0, "$class->new() died" );
+        $tb->diag("    Error was:  $error");
+    }
+
+    return $obj;
+}
+
 =item B<subtest>
 
     subtest $name => \&code;
@@ -959,7 +712,7 @@ result of the whole subtest to determine if its ok or not ok.
 For example...
 
   use Test::More tests => 3;
-
   pass("First test");
 
   subtest 'An example subtest' => sub {
@@ -1009,38 +762,14 @@ subtests are equivalent:
       done_testing();
   };
 
-B<NOTE on using skip_all in a BEGIN inside a subtest.>
-
-Sometimes you want to run a file as a subtest:
-
-    subtest foo => sub { do 'foo.pl' };
-
-where foo.pl;
-
-    use Test::More skip_all => "won't work";
-
-This will work fine, but will issue a warning. The issue is that the normal
-flow control method will now work inside a BEGIN block. The C<use Test::More>
-statement is run in a BEGIN block. As a result an exception is thrown instead
-of the normal flow control. In most cases this works fine.
+=cut
 
-A case like this however will have issues:
-
-    subtest foo => sub {
-        do 'foo.pl'; # Will issue a skip_all
-
-        # You would expect the subtest to stop, but the 'do' captures the
-        # exception, as a result the following statement does execute.
-
-        ok(0, "blah");
-    };
-
-You can work around this by cheking the return from C<do>, along with C<$@>, or you can alter foo.pl so that it does this:
-
-    use Test::More;
-    plan skip_all => 'broken';
+sub subtest {
+    my ($name, $subtests) = @_;
 
-When the plan is issues outside of the BEGIN block it works just fine.
+    my $tb = Test::More->builder;
+    return $tb->subtest(@_);
+}
 
 =item B<pass>
 
@@ -1057,29 +786,22 @@ C<ok(1)> and C<ok(0)>.
 
 Use these very, very, very sparingly.
 
-=back
-
-=head2 Debugging tests
-
-Want a stack trace when a test failure occurs? Have some other hook in mind?
-Easy!
+=cut
 
-    use Test::More;
-    use Carp qw/confess/;
+sub pass (;$) {
+    my $tb = Test::More->builder;
 
-    Test::Stream->shared->listen(sub {
-        my ($stream, $event) = @_;
+    return $tb->ok( 1, @_ );
+}
 
-        # Only care about 'Ok' events (this includes subtests)
-        return unless $event->isa('Test::Stream::Event::Ok');
+sub fail (;$) {
+    my $tb = Test::More->builder;
 
-        # Only care about failures
-        return if $event->bool;
+    return $tb->ok( 0, @_ );
+}
 
-        confess "Failed test! here is a stacktrace!";
-    });
+=back
 
-    ok(0, "This will give you a trace.");
 
 =head2 Module tests
 
@@ -1088,44 +810,12 @@ successfully load.  For example, you'll often want a first test which
 simply loads all the modules in the distribution to make sure they
 work before going on to do more complicated testing.
 
-For such purposes we have C<use ok 'module'>. C<use_ok> is still around, but is
-considered discouraged in favor of C<use ok 'module'>. C<require_ok> is also
-discouraged because it tries to guess if you gave it a file name or module
-name. C<require_ok>'s guessing mechanism is broken, but fixing it can break
-things.
+For such purposes we have C<use_ok> and C<require_ok>.
 
 =over 4
 
-=item B<use ok 'module'>
-
-=item B<use ok 'module', @args>
-
-    use ok 'Some::Module';
-    use ok 'Another::Module', qw/import_a import_b/;
-
-This will load the specified module and pass through any extra arguments to
-that module. This will also produce a test result.
-
-B<Note - Do not do this:>
-
-    my $class = 'My::Module';
-    use ok $class;
-
-The value 'My::Module' is not assigned to the C<$class> variable until
-run-time, but the C<use ok $class> statement is run at compile time. The result
-of this is that we try to load 'undef' as a module. This will generate an
-exception: C<'use ok' called with an empty argument, did you try to use a package name from an uninitialized variable?>
-
-If you must do something like this, here is a more-correct way:
-
-    my $class;
-    BEGIN { $class = 'My::Module' }
-    use ok $class;
-
 =item B<require_ok>
 
-B<***DISCOURAGED***> - Broken guessing
-
    require_ok($module);
    require_ok($file);
 
@@ -1141,18 +831,61 @@ No exception will be thrown if the load fails.
     # require Some::Module
     require_ok "Some::Module";
 
-    # require "Some/File.pl";
-    require_ok "Some/File.pl";
+    # require "Some/File.pl";
+    require_ok "Some/File.pl";
+
+    # stop testing if any of your modules will not load
+    for my $module (@module) {
+        require_ok $module or BAIL_OUT "Can't load $module";
+    }
+
+=cut
+
+sub require_ok ($) {
+    my($module) = shift;
+    my $tb = Test::More->builder;
+
+    my $pack = caller;
+
+    # Try to determine if we've been given a module name or file.
+    # Module names must be barewords, files not.
+    $module = qq['$module'] unless _is_module_name($module);
+
+    my $code = <<REQUIRE;
+package $pack;
+require $module;
+1;
+REQUIRE
+
+    my( $eval_result, $eval_error ) = _eval($code);
+    my $ok = $tb->ok( $eval_result, "require $module;" );
+
+    unless($ok) {
+        chomp $eval_error;
+        $tb->diag(<<DIAGNOSTIC);
+    Tried to require '$module'.
+    Error:  $eval_error
+DIAGNOSTIC
+
+    }
+
+    return $ok;
+}
+
+sub _is_module_name {
+    my $module = shift;
+
+    # Module names start with a letter.
+    # End with an alphanumeric.
+    # The rest is an alphanumeric or ::
+    $module =~ s/\b::\b//g;
+
+    return $module =~ /^[a-zA-Z]\w*$/ ? 1 : 0;
+}
 
-    # stop testing if any of your modules will not load
-    for my $module (@module) {
-        require_ok $module or BAIL_OUT "Can't load $module";
-    }
 
 =item B<use_ok>
 
-B<***DISCOURAGED***> See C<use ok 'module'>
-
    BEGIN { use_ok($module); }
    BEGIN { use_ok($module, @imports); }
 
@@ -1200,8 +933,77 @@ import anything, use C<require_ok>.
 
   BEGIN { require_ok "Foo" }
 
+=cut
+
+sub use_ok ($;@) {
+    my( $module, @imports ) = @_;
+    @imports = () unless @imports;
+    my $tb = Test::More->builder;
+
+    my( $pack, $filename, $line ) = caller;
+    $filename =~ y/\n\r/_/; # so it doesn't run off the "#line $line $f" line
+
+    my $code;
+    if( @imports == 1 and $imports[0] =~ /^\d+(?:\.\d+)?$/ ) {
+        # probably a version check.  Perl needs to see the bare number
+        # for it to work with non-Exporter based modules.
+        $code = <<USE;
+package $pack;
+
+#line $line $filename
+use $module $imports[0];
+1;
+USE
+    }
+    else {
+        $code = <<USE;
+package $pack;
+
+#line $line $filename
+use $module \@{\$args[0]};
+1;
+USE
+    }
+
+    my( $eval_result, $eval_error ) = _eval( $code, \@imports );
+    my $ok = $tb->ok( $eval_result, "use $module;" );
+
+    unless($ok) {
+        chomp $eval_error;
+        $@ =~ s{^BEGIN failed--compilation aborted at .*$}
+                {BEGIN failed--compilation aborted at $filename line $line.}m;
+        $tb->diag(<<DIAGNOSTIC);
+    Tried to use '$module'.
+    Error:  $eval_error
+DIAGNOSTIC
+
+    }
+
+    return $ok;
+}
+
+sub _eval {
+    my( $code, @args ) = @_;
+
+    # Work around oddities surrounding resetting of $@ by immediately
+    # storing it.
+    my( $sigdie, $eval_result, $eval_error );
+    {
+        local( $@, $!, $SIG{__DIE__} );    # isolate eval
+        $eval_result = eval $code;              ## no critic (BuiltinFunctions::ProhibitStringyEval)
+        $eval_error  = $@;
+        $sigdie      = $SIG{__DIE__} || undef;
+    }
+    # make sure that $code got a chance to set $SIG{__DIE__}
+    $SIG{__DIE__} = $sigdie if defined $sigdie;
+
+    return( $eval_result, $eval_error );
+}
+
+
 =back
 
+
 =head2 Complex data structures
 
 Not everything is a simple eq check or regex.  There are times you
@@ -1232,6 +1034,112 @@ improve in the future.
 L<Test::Differences> and L<Test::Deep> provide more in-depth functionality
 along these lines.
 
+=cut
+
+our( @Data_Stack, %Refs_Seen );
+my $DNE = bless [], 'Does::Not::Exist';
+
+sub _dne {
+    return ref $_[0] eq ref $DNE;
+}
+
+## no critic (Subroutines::RequireArgUnpacking)
+sub is_deeply {
+    my $tb = Test::More->builder;
+
+    unless( @_ == 2 or @_ == 3 ) {
+        my $msg = <<'WARNING';
+is_deeply() takes two or three args, you gave %d.
+This usually means you passed an array or hash instead 
+of a reference to it
+WARNING
+        chop $msg;    # clip off newline so carp() will put in line/file
+
+        _carp sprintf $msg, scalar @_;
+
+        return $tb->ok(0);
+    }
+
+    my( $got, $expected, $name ) = @_;
+
+    $tb->_unoverload_str( \$expected, \$got );
+
+    my $ok;
+    if( !ref $got and !ref $expected ) {    # neither is a reference
+        $ok = $tb->is_eq( $got, $expected, $name );
+    }
+    elsif( !ref $got xor !ref $expected ) {    # one's a reference, one isn't
+        $ok = $tb->ok( 0, $name );
+        $tb->diag( _format_stack({ vals => [ $got, $expected ] }) );
+    }
+    else {                                     # both references
+        local @Data_Stack = ();
+        if( _deep_check( $got, $expected ) ) {
+            $ok = $tb->ok( 1, $name );
+        }
+        else {
+            $ok = $tb->ok( 0, $name );
+            $tb->diag( _format_stack(@Data_Stack) );
+        }
+    }
+
+    return $ok;
+}
+
+sub _format_stack {
+    my(@Stack) = @_;
+
+    my $var       = '$FOO';
+    my $did_arrow = 0;
+    foreach my $entry (@Stack) {
+        my $type = $entry->{type} || '';
+        my $idx = $entry->{'idx'};
+        if( $type eq 'HASH' ) {
+            $var .= "->" unless $did_arrow++;
+            $var .= "{$idx}";
+        }
+        elsif( $type eq 'ARRAY' ) {
+            $var .= "->" unless $did_arrow++;
+            $var .= "[$idx]";
+        }
+        elsif( $type eq 'REF' ) {
+            $var = "\${$var}";
+        }
+    }
+
+    my @vals = @{ $Stack[-1]{vals} }[ 0, 1 ];
+    my @vars = ();
+    ( $vars[0] = $var ) =~ s/\$FOO/     \$got/;
+    ( $vars[1] = $var ) =~ s/\$FOO/\$expected/;
+
+    my $out = "Structures begin differing at:\n";
+    foreach my $idx ( 0 .. $#vals ) {
+        my $val = $vals[$idx];
+        $vals[$idx]
+          = !defined $val ? 'undef'
+          : _dne($val)    ? "Does not exist"
+          : ref $val      ? "$val"
+          :                 "'$val'";
+    }
+
+    $out .= "$vars[0] = $vals[0]\n";
+    $out .= "$vars[1] = $vals[1]\n";
+
+    $out =~ s/^/    /msg;
+    return $out;
+}
+
+sub _type {
+    my $thing = shift;
+
+    return '' if !ref $thing;
+
+    for my $type (qw(Regexp ARRAY HASH REF SCALAR GLOB CODE)) {
+        return $type if UNIVERSAL::isa( $thing, $type );
+    }
+
+    return '';
+}
 
 =back
 
@@ -1286,6 +1194,16 @@ don't indicate a problem.
 
     note("Tempfile is $tempfile");
 
+=cut
+
+sub diag {
+    return Test::More->builder->diag(@_);
+}
+
+sub note {
+    return Test::More->builder->note(@_);
+}
+
 =item B<explain>
 
   my @dump = explain @diagnostic_message;
@@ -1302,6 +1220,12 @@ or
     note explain \%args;
     Some::Class->method(%args);
 
+=cut
+
+sub explain {
+    return Test::More->builder->explain(@_);
+}
+
 =back
 
 
@@ -1309,7 +1233,7 @@ or
 
 Sometimes running a test under certain conditions will cause the
 test script to die.  A certain function or method isn't implemented
-(such as C<fork()> on MacOS), some resource isn't available (like a
+(such as C<fork()> on MacOS), some resource isn't available (like a 
 net connection) or a module isn't available.  In these cases it's
 necessary to skip tests, or declare that they are supposed to fail
 but will work in the future (a todo test).
@@ -1362,6 +1286,34 @@ You don't skip tests which are failing because there's a bug in your
 program, or for which you don't yet have code written.  For that you
 use TODO.  Read on.
 
+=cut
+
+## no critic (Subroutines::RequireFinalReturn)
+sub skip {
+    my( $why, $how_many ) = @_;
+    my $tb = Test::More->builder;
+
+    unless( defined $how_many ) {
+        # $how_many can only be avoided when no_plan is in use.
+        _carp "skip() needs to know \$how_many tests are in the block"
+          unless $tb->has_plan eq 'no_plan';
+        $how_many = 1;
+    }
+
+    if( defined $how_many and $how_many =~ /\D/ ) {
+        _carp
+          "skip() was passed a non-numeric number of tests.  Did you get the arguments backwards?";
+        $how_many = 1;
+    }
+
+    for( 1 .. $how_many ) {
+        $tb->skip($why);
+    }
+
+    no warnings 'exiting';
+    last SKIP;
+}
+
 =item B<TODO: BLOCK>
 
     TODO: {
@@ -1418,6 +1370,26 @@ The syntax and behavior is similar to a C<SKIP: BLOCK> except the
 tests will be marked as failing but todo.  L<Test::Harness> will
 interpret them as passing.
 
+=cut
+
+sub todo_skip {
+    my( $why, $how_many ) = @_;
+    my $tb = Test::More->builder;
+
+    unless( defined $how_many ) {
+        # $how_many can only be avoided when no_plan is in use.
+        _carp "todo_skip() needs to know \$how_many tests are in the block"
+          unless $tb->has_plan eq 'no_plan';
+        $how_many = 1;
+    }
+
+    for( 1 .. $how_many ) {
+        $tb->todo_skip($why);
+    }
+
+    no warnings 'exiting';
+    last TODO;
+}
 
 =item When do I use SKIP vs. TODO?
 
@@ -1453,8 +1425,18 @@ The test will exit with 255.
 
 For even better control look at L<Test::Most>.
 
+=cut
+
+sub BAIL_OUT {
+    my $reason = shift;
+    my $tb     = Test::More->builder;
+
+    $tb->BAIL_OUT($reason);
+}
+
 =back
 
+
 =head2 Discouraged comparison functions
 
 The use of the following functions is discouraged as they are not
@@ -1467,7 +1449,7 @@ These functions are usually used inside an C<ok()>.
 
     ok( eq_array(\@got, \@expected) );
 
-C<is_deeply()> can do that better and with diagnostics.
+C<is_deeply()> can do that better and with diagnostics.  
 
     is_deeply( \@got, \@expected );
 
@@ -1482,6 +1464,146 @@ They may be deprecated in future versions.
 Checks if two arrays are equivalent.  This is a deep check, so
 multi-level structures are handled correctly.
 
+=cut
+
+#'#
+sub eq_array {
+    local @Data_Stack = ();
+    _deep_check(@_);
+}
+
+sub _eq_array {
+    my( $a1, $a2 ) = @_;
+
+    if( grep _type($_) ne 'ARRAY', $a1, $a2 ) {
+        warn "eq_array passed a non-array ref";
+        return 0;
+    }
+
+    return 1 if $a1 eq $a2;
+
+    my $ok = 1;
+    my $max = $#$a1 > $#$a2 ? $#$a1 : $#$a2;
+    for( 0 .. $max ) {
+        my $e1 = $_ > $#$a1 ? $DNE : $a1->[$_];
+        my $e2 = $_ > $#$a2 ? $DNE : $a2->[$_];
+
+        next if _equal_nonrefs($e1, $e2);
+
+        push @Data_Stack, { type => 'ARRAY', idx => $_, vals => [ $e1, $e2 ] };
+        $ok = _deep_check( $e1, $e2 );
+        pop @Data_Stack if $ok;
+
+        last unless $ok;
+    }
+
+    return $ok;
+}
+
+sub _equal_nonrefs {
+    my( $e1, $e2 ) = @_;
+
+    return if ref $e1 or ref $e2;
+
+    if ( defined $e1 ) {
+        return 1 if defined $e2 and $e1 eq $e2;
+    }
+    else {
+        return 1 if !defined $e2;
+    }
+
+    return;
+}
+
+sub _deep_check {
+    my( $e1, $e2 ) = @_;
+    my $tb = Test::More->builder;
+
+    my $ok = 0;
+
+    # Effectively turn %Refs_Seen into a stack.  This avoids picking up
+    # the same referenced used twice (such as [\$a, \$a]) to be considered
+    # circular.
+    local %Refs_Seen = %Refs_Seen;
+
+    {
+        $tb->_unoverload_str( \$e1, \$e2 );
+
+        # Either they're both references or both not.
+        my $same_ref = !( !ref $e1 xor !ref $e2 );
+        my $not_ref = ( !ref $e1 and !ref $e2 );
+
+        if( defined $e1 xor defined $e2 ) {
+            $ok = 0;
+        }
+        elsif( !defined $e1 and !defined $e2 ) {
+            # Shortcut if they're both undefined.
+            $ok = 1;
+        }
+        elsif( _dne($e1) xor _dne($e2) ) {
+            $ok = 0;
+        }
+        elsif( $same_ref and( $e1 eq $e2 ) ) {
+            $ok = 1;
+        }
+        elsif($not_ref) {
+            push @Data_Stack, { type => '', vals => [ $e1, $e2 ] };
+            $ok = 0;
+        }
+        else {
+            if( $Refs_Seen{$e1} ) {
+                return $Refs_Seen{$e1} eq $e2;
+            }
+            else {
+                $Refs_Seen{$e1} = "$e2";
+            }
+
+            my $type = _type($e1);
+            $type = 'DIFFERENT' unless _type($e2) eq $type;
+
+            if( $type eq 'DIFFERENT' ) {
+                push @Data_Stack, { type => $type, vals => [ $e1, $e2 ] };
+                $ok = 0;
+            }
+            elsif( $type eq 'ARRAY' ) {
+                $ok = _eq_array( $e1, $e2 );
+            }
+            elsif( $type eq 'HASH' ) {
+                $ok = _eq_hash( $e1, $e2 );
+            }
+            elsif( $type eq 'REF' ) {
+                push @Data_Stack, { type => $type, vals => [ $e1, $e2 ] };
+                $ok = _deep_check( $$e1, $$e2 );
+                pop @Data_Stack if $ok;
+            }
+            elsif( $type eq 'SCALAR' ) {
+                push @Data_Stack, { type => 'REF', vals => [ $e1, $e2 ] };
+                $ok = _deep_check( $$e1, $$e2 );
+                pop @Data_Stack if $ok;
+            }
+            elsif($type) {
+                push @Data_Stack, { type => $type, vals => [ $e1, $e2 ] };
+                $ok = 0;
+            }
+            else {
+                _whoa( 1, "No type in _deep_check" );
+            }
+        }
+    }
+
+    return $ok;
+}
+
+sub _whoa {
+    my( $check, $desc ) = @_;
+    if($check) {
+        die <<"WHOA";
+WHOA!  $desc
+This should never happen!  Please contact the author immediately!
+WHOA
+    }
+}
+
 =item B<eq_hash>
 
   my $is_eq = eq_hash(\%got, \%expected);
@@ -1489,6 +1611,40 @@ multi-level structures are handled correctly.
 Determines if the two hashes contain the same keys and values.  This
 is a deep check.
 
+=cut
+
+sub eq_hash {
+    local @Data_Stack = ();
+    return _deep_check(@_);
+}
+
+sub _eq_hash {
+    my( $a1, $a2 ) = @_;
+
+    if( grep _type($_) ne 'HASH', $a1, $a2 ) {
+        warn "eq_hash passed a non-hash ref";
+        return 0;
+    }
+
+    return 1 if $a1 eq $a2;
+
+    my $ok = 1;
+    my $bigger = keys %$a1 > keys %$a2 ? $a1 : $a2;
+    foreach my $k ( keys %$bigger ) {
+        my $e1 = exists $a1->{$k} ? $a1->{$k} : $DNE;
+        my $e2 = exists $a2->{$k} ? $a2->{$k} : $DNE;
+
+        next if _equal_nonrefs($e1, $e2);
+
+        push @Data_Stack, { type => 'HASH', idx => $k, vals => [ $e1, $e2 ] };
+        $ok = _deep_check( $e1, $e2 );
+        pop @Data_Stack if $ok;
+
+        last unless $ok;
+    }
+
+    return $ok;
+}
 
 =item B<eq_set>
 
@@ -1514,17 +1670,58 @@ level.  The following is an example of a comparison which might not work:
 
 L<Test::Deep> contains much better set comparison functions.
 
+=cut
+
+sub eq_set {
+    my( $a1, $a2 ) = @_;
+    return 0 unless @$a1 == @$a2;
+
+    no warnings 'uninitialized';
+
+    # It really doesn't matter how we sort them, as long as both arrays are
+    # sorted with the same algorithm.
+    #
+    # Ensure that references are not accidentally treated the same as a
+    # string containing the reference.
+    #
+    # Have to inline the sort routine due to a threading/sort bug.
+    # See [rt.cpan.org 6782]
+    #
+    # I don't know how references would be sorted so we just don't sort
+    # them.  This means eq_set doesn't really work with refs.
+    return eq_array(
+        [ grep( ref, @$a1 ), sort( grep( !ref, @$a1 ) ) ],
+        [ grep( ref, @$a2 ), sort( grep( !ref, @$a2 ) ) ],
+    );
+}
+
 =back
 
 
 =head2 Extending and Embedding Test::More
 
 Sometimes the Test::More interface isn't quite enough.  Fortunately,
-Test::More is built on top of L<Test::Stream> which provides a single,
+Test::More is built on top of L<Test::Builder> which provides a single,
 unified backend for any test library to use.  This means two test
-libraries which both use <Test::Stream> B<can> be used together in the
+libraries which both use <Test::Builder> B<can> be used together in the
 same program>.
 
+If you simply want to do a little tweaking of how the tests behave,
+you can access the underlying L<Test::Builder> object like so:
+
+=over 4
+
+=item B<builder>
+
+    my $test_builder = Test::More->builder;
+
+Returns the L<Test::Builder> object underlying Test::More for you to play
+with.
+
+
+=back
+
+
 =head1 EXIT CODES
 
 If all your tests passed, L<Test::Builder> will exit with zero (which is
@@ -1553,53 +1750,31 @@ Test::More works with Perls as old as 5.8.1.
 Thread support is not very reliable before 5.10.1, but that's
 because threads are not very reliable before 5.10.1.
 
-Although Test::More has been a core module in versions of Perl since 5.6.2,
-Test::More has evolved since then, and not all of the features you're used to
-will be present in the shipped version of Test::More. If you are writing a
-module, don't forget to indicate in your package metadata the minimum version
-of Test::More that you require. For instance, if you want to use
-C<done_testing()> but want your test script to run on Perl 5.10.0, you will
-need to explicitly require Test::More > 0.88.
+Although Test::More has been a core module in versions of Perl since 5.6.2, Test::More has evolved since then, and not all of the features you're used to will be present in the shipped version of Test::More. If you are writing a module, don't forget to indicate in your package metadata the minimum version of Test::More that you require. For instance, if you want to use C<done_testing()> but want your test script to run on Perl 5.10.0, you will need to explicitly require Test::More > 0.88.
 
 Key feature milestones include:
 
 =over 4
 
-=item event stream
-
-=item forking support
-
-=item tap encoding
-
-Test::Builder and Test::More version 1.301001 introduce these major
-modernizations.
-
 =item subtests
 
-Subtests were released in Test::More 0.94, which came with Perl 5.12.0.
-Subtests did not implicitly call C<done_testing()> until 0.96; the first Perl
-with that fix was Perl 5.14.0 with 0.98.
+Subtests were released in Test::More 0.94, which came with Perl 5.12.0. Subtests did not implicitly call C<done_testing()> until 0.96; the first Perl with that fix was Perl 5.14.0 with 0.98.
 
 =item C<done_testing()>
 
-This was released in Test::More 0.88 and first shipped with Perl in 5.10.1 as
-part of Test::More 0.92.
+This was released in Test::More 0.88 and first shipped with Perl in 5.10.1 as part of Test::More 0.92. 
 
 =item C<cmp_ok()>
 
-Although C<cmp_ok()> was introduced in 0.40, 0.86 fixed an important bug to
-make it safe for overloaded objects; the fixed first shipped with Perl in
-5.10.1 as part of Test::More 0.92.
+Although C<cmp_ok()> was introduced in 0.40, 0.86 fixed an important bug to make it safe for overloaded objects; the fixed first shipped with Perl in 5.10.1 as part of Test::More 0.92.
 
 =item C<new_ok()> C<note()> and C<explain()>
 
-These were was released in Test::More 0.82, and first shipped with Perl in
-5.10.1 as part of Test::More 0.92.
+These were was released in Test::More 0.82, and first shipped with Perl in 5.10.1 as part of Test::More 0.92. 
 
 =back
 
-There is a full version history in the Changes file, and the Test::More
-versions included as core can be found using L<Module::CoreList>:
+There is a full version history in the Changes file, and the Test::More versions included as core can be found using L<Module::CoreList>:
 
     $ corelist -a Test::More
 
@@ -1611,33 +1786,22 @@ versions included as core can be found using L<Module::CoreList>:
 =item utf8 / "Wide character in print"
 
 If you use utf8 or other non-ASCII characters with Test::More you
-might get a "Wide character in print" warning.
-Using C<< binmode STDOUT, ":utf8" >> will not fix it.
+might get a "Wide character in print" warning.  Using
+C<< binmode STDOUT, ":utf8" >> will not fix it.
+L<Test::Builder> (which powers
+Test::More) duplicates STDOUT and STDERR.  So any changes to them,
+including changing their output disciplines, will not be seem by
+Test::More.
 
-Use the C<tap_encoding> function to configure the TAP stream encoding.
+One work around is to apply encodings to STDOUT and STDERR as early
+as possible and before Test::More (or any other Test module) loads.
 
-    use utf8;
-    use Test::Stream; # imports tap_encoding
-    use Test::More;
-    tap_encoding 'utf8';
-
-L<Test::Builder> (which powers Test::More) duplicates STDOUT and STDERR.
-So any changes to them, including changing their output disciplines,
-will not be seen by Test::More.
-
-B<Note>:deprecated ways to use utf8 or other non-ASCII characters.
-
-In the past it was necessary to alter the filehandle encoding prior to loading
-Test::More. This is no longer necessary thanks to C<tap_encoding()>.
-
-    # *** DEPRECATED WAY ***
     use open ':std', ':encoding(utf8)';
     use Test::More;
 
 A more direct work around is to change the filehandles used by
 L<Test::Builder>.
 
-    # *** EVEN MORE DEPRECATED WAY ***
     my $builder = Test::More->builder;
     binmode $builder->output,         ":encoding(utf8)";
     binmode $builder->failure_output, ":encoding(utf8)";
@@ -1661,11 +1825,6 @@ complex data structures.
 
 =item Threads
 
-B<NOTE:> The underlying mechanism to support threads has changed as of version
-1.301001. Instead of sharing several variables and locking them, threads now
-use the same mechanism as forking support. The new system writes events to temp
-files which are culled by the main process.
-
 Test::More will only be aware of threads if C<use threads> has been done
 I<before> Test::More is loaded.  This is ok:
 
@@ -1699,6 +1858,8 @@ magic side-effects are kept to a minimum.  WYSIWYG.
 
 =head1 SEE ALSO
 
+=head2
+
 =head2 ALTERNATIVES
 
 L<Test::Simple> if all this confuses you and you just want to write
@@ -1746,12 +1907,14 @@ L<Bundle::Test> installs a whole bunch of useful test modules.
 
 L<Test::Most> Most commonly needed test functions and features.
 
-=head1 SOURCE
+=head1 AUTHORS
 
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
+Michael G Schwern E<lt>schwern@pobox.comE<gt> with much inspiration
+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 MAINTAINER
+=head1 MAINTAINERS
 
 =over 4
 
@@ -1759,57 +1922,20 @@ F<http://github.com/Test-More/test-more/>.
 
 =back
 
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
 
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+=head1 BUGS
 
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
+See F<http://rt.cpan.org> to report and view bugs.
 
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
 
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
+=head1 SOURCE
 
-=item 唐鳳
+The source code repository for Test::More can be found at
+F<http://github.com/Test-More/test-more/>.
 
-=back
 
 =head1 COPYRIGHT
 
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
 Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
 
 This program is free software; you can redistribute it and/or
@@ -1817,29 +1943,6 @@ modify it under the same terms as Perl itself.
 
 See F<http://www.perl.com/perl/misc/Artistic.html>
 
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
+=cut
 
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
+1;
diff --git a/cpan/Test-Simple/lib/Test/More/DeepCheck.pm b/cpan/Test-Simple/lib/Test/More/DeepCheck.pm
deleted file mode 100644 (file)
index 0f9ae9a..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-package Test::More::DeepCheck;
-use strict;
-use warnings;
-
-use Test::Stream::ArrayBase(
-    accessors => [qw/seen/],
-);
-
-sub init {
-    $_[0]->[SEEN] ||= [{}];
-}
-
-my %PAIRS = ( '{' => '}', '[' => ']' );
-my $DNE = bless [], 'Does::Not::Exist';
-
-sub is_dne { ref $_[-1] eq ref $DNE }
-sub dne { $DNE };
-
-sub preface { "" };
-
-sub format_stack {
-    my $self = shift;
-    my $start = $self->STACK_START;
-    my $end   = @$self - 1;
-
-    my @Stack = @{$self}[$start .. $end];
-
-    my @parts1 = ('     $got');
-    my @parts2 = ('$expected');
-
-    my $did_arrow = 0;
-    for my $entry (@Stack) {
-        next unless $entry;
-        my $type = $entry->{type} || '';
-        my $idx  = $entry->{idx};
-        my $key  = $entry->{key};
-        my $wrap = $entry->{wrap};
-
-        if ($type eq 'HASH') {
-            unless ($did_arrow) {
-                push @parts1 => '->';
-                push @parts2 => '->';
-                $did_arrow++;
-            }
-            push @parts1 => "{$idx}";
-            push @parts2 => "{$idx}";
-        }
-        elsif ($type eq 'OBJECT') {
-            push @parts1 => '->';
-            push @parts2 => '->';
-            push @parts1 => "$idx()";
-            push @parts2 => "{$idx}";
-            $did_arrow = 0;
-        }
-        elsif ($type eq 'ARRAY') {
-            unless ($did_arrow) {
-                push @parts1 => '->';
-                push @parts2 => '->';
-                $did_arrow++;
-            }
-            push @parts1 => "[$idx]";
-            push @parts2 => "[$idx]";
-        }
-        elsif ($type eq 'REF') {
-            unshift @parts1 => '${';
-            unshift @parts2 => '${';
-            push @parts1 => '}';
-            push @parts2 => '}';
-        }
-
-        if ($wrap) {
-            my $pair = $PAIRS{$wrap};
-            unshift @parts1 => $wrap;
-            unshift @parts2 => $wrap;
-            push @parts1 => $pair;
-            push @parts2 => $pair;
-        }
-    }
-
-    my $error = $Stack[-1]->{error};
-    chomp($error) if $error;
-
-    my @vals = @{$Stack[-1]{vals}}[0, 1];
-    my @vars = (
-        join('', @parts1),
-        join('', @parts2),
-    );
-
-    my $out = $self->preface;
-    for my $idx (0 .. $#vals) {
-        my $val = $vals[$idx];
-        $vals[$idx] =
-              !defined $val ? 'undef'
-            : is_dne($val)  ? "Does not exist"
-            : ref $val      ? "$val"
-            :                 "'$val'";
-    }
-
-    $out .= "$vars[0] = $vals[0]\n";
-    $out .= "$vars[1] = $vals[1]\n";
-    $out .= "$error\n" if $error;
-
-    $out =~ s/^/    /msg;
-    return $out;
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::More::DeepCheck - Base class or is_deeply() and mostly_like()
-implementations.
-
-=head1 DESCRIPTION
-
-This is the base class for deep check functions provided by L<Test::More> and
-L<Test::MostlyLike>. This class contains all the debugging and diagnostics
-code shared betweent he 2 tools.
-
-Most of this was refactored from the original C<is_deeply()> implementation. If
-you find any bugs or incompatabilities please report them.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/More/DeepCheck/Strict.pm b/cpan/Test-Simple/lib/Test/More/DeepCheck/Strict.pm
deleted file mode 100644 (file)
index 5ac69e8..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-package Test::More::DeepCheck::Strict;
-use strict;
-use warnings;
-
-use Scalar::Util qw/reftype/;
-use Test::More::Tools;
-use Test::Stream::Carp qw/cluck confess/;
-use Test::Stream::Util qw/try unoverload_str is_regex/;
-
-use Test::Stream::ArrayBase(
-    accessors => [qw/stack_start/],
-    base => 'Test::More::DeepCheck',
-);
-
-sub preface { "Structures begin differing at:\n" }
-
-sub check {
-    my $class = shift;
-    my ($got, $expect) = @_;
-
-    unoverload_str(\$got, \$expect);
-    my $self = $class->new();
-
-    # neither is a reference
-    return tmt->is_eq($got, $expect)
-        if !ref $got and !ref $expect;
-
-    # one's a reference, one isn't
-    if (!ref $got xor !ref $expect) {
-        push @$self => {vals => [$got, $expect], line => __LINE__};
-        return (0, $self->format_stack);
-    }
-
-    push @$self => {vals => [$got, $expect], line => __LINE__};
-    my $ok = $self->_deep_check($got, $expect);
-    return ($ok, $ok ? () : $self->format_stack);
-}
-
-sub check_array {
-    my $class = shift;
-    my ($got, $expect) = @_;
-    my $self = $class->new();
-    push @$self => {vals => [$got, $expect], line => __LINE__};
-    my $ok = $self->_deep_check($got, $expect);
-    return ($ok, $ok ? () : $self->format_stack);
-}
-
-sub check_hash {
-    my $class = shift;
-    my ($got, $expect) = @_;
-    my $self = $class->new();
-    push @$self => {vals => [$got, $expect], line => __LINE__};
-    my $ok = $self->_deep_check($got, $expect);
-    return ($ok, $ok ? () : $self->format_stack);
-}
-
-sub check_set {
-    my $class = shift;
-    my ($got, $expect) = @_;
-
-    return 0 unless @$got == @$expect;
-
-    no warnings 'uninitialized';
-
-    # It really doesn't matter how we sort them, as long as both arrays are
-    # sorted with the same algorithm.
-    #
-    # Ensure that references are not accidentally treated the same as a
-    # string containing the reference.
-    #
-    # Have to inline the sort routine due to a threading/sort bug.
-    # See [rt.cpan.org 6782]
-    #
-    # I don't know how references would be sorted so we just don't sort
-    # them.  This means eq_set doesn't really work with refs.
-    return $class->check_array(
-        [ grep( ref, @$got ),    sort( grep( !ref, @$got ) )    ],
-        [ grep( ref, @$expect ), sort( grep( !ref, @$expect ) ) ],
-    );
-}
-
-sub _deep_check {
-    my $self = shift;
-    confess "XXX" unless ref $self;
-    my($e1, $e2) = @_;
-
-    unoverload_str( \$e1, \$e2 );
-
-    # Either they're both references or both not.
-    my $same_ref = !(!ref $e1 xor !ref $e2);
-    my $not_ref  =  (!ref $e1 and !ref $e2);
-
-    return 0 if  defined $e1 xor  defined $e2;
-    return 1 if !defined $e1 and !defined $e2; # Shortcut if they're both undefined.
-    return 0 if  $self->is_dne($e1) xor $self->is_dne($e2);
-    return 1 if  $same_ref   and ($e1 eq $e2);
-
-    if ($not_ref) {
-        push @$self => {type => '', vals => [$e1, $e2], line => __LINE__};
-        return 0;
-    }
-
-    # This avoids picking up the same referenced used twice (such as
-    # [\$a, \$a]) to be considered circular.
-    my $seen = {%{$self->[SEEN]->[-1]}};
-    push @{$self->[SEEN]} => $seen;
-    my $ok = $self->_inner_check($seen, $e1, $e2);
-    pop @{$self->[SEEN]};
-    return $ok;
-}
-
-sub _inner_check {
-    my $self = shift;
-    my ($seen, $e1, $e2) = @_;
-
-    return $seen->{$e1} if $seen->{$e1} && $seen->{$e1} eq $e2;
-    $seen->{$e1} = "$e2";
-
-    my $type1 = reftype($e1) || '';
-    my $type2 = reftype($e2) || '';
-    my $diff  = $type1 ne $type2;
-
-    if ($diff) {
-        push @$self => {type => 'DIFFERENT', vals => [$e1, $e2], line => __LINE__};
-        return 0;
-    }
-
-    return $self->_check_array($e1, $e2) if $type1 eq 'ARRAY';
-    return $self->_check_hash($e1, $e2)  if $type1 eq 'HASH';
-
-    if ($type1 eq 'REF' || $type1 eq 'SCALAR' && !(defined(is_regex($e1)) && defined(is_regex($e2)))) {
-        push @$self => {type => 'REF', vals => [$e1, $e2], line => __LINE__};
-        my $ok = $self->_deep_check($$e1, $$e2);
-        pop @$self if $ok;
-        return $ok;
-    }
-
-    push @$self => {type => $type1, vals => [$e1, $e2], line => __LINE__};
-    return 0;
-}
-
-sub _check_array {
-    my $self = shift;
-    my ($a1, $a2) = @_;
-
-    if (grep reftype($_) ne 'ARRAY', $a1, $a2) {
-        cluck "_check_array passed a non-array ref";
-        return 0;
-    }
-
-    return 1 if $a1 eq $a2;
-
-    my $ok = 1;
-    my $max = $#$a1 > $#$a2 ? $#$a1 : $#$a2;
-    for (0 .. $max) {
-        my $e1 = $_ > $#$a1 ? $self->dne : $a1->[$_];
-        my $e2 = $_ > $#$a2 ? $self->dne : $a2->[$_];
-
-        next if $self->_check_nonrefs($e1, $e2);
-
-        push @$self => {type => 'ARRAY', idx => $_, vals => [$e1, $e2], line => __LINE__};
-        $ok = $self->_deep_check($e1, $e2);
-        pop @$self if $ok;
-
-        last unless $ok;
-    }
-
-    return $ok;
-}
-
-sub _check_nonrefs {
-    my $self = shift;
-    my($e1, $e2) = @_;
-
-    return if ref $e1 or ref $e2;
-
-    if (defined $e1) {
-        return 1 if defined $e2 and $e1 eq $e2;
-    }
-    else {
-        return 1 if !defined $e2;
-    }
-
-    return 0;
-}
-
-sub _check_hash {
-    my $self = shift;
-    my ($a1, $a2) = @_;
-
-    if (grep {(reftype($_) || '') ne 'HASH' } $a1, $a2) {
-        cluck "_check_hash passed a non-hash ref";
-        return 0;
-    }
-
-    return 1 if $a1 eq $a2;
-
-    my $ok = 1;
-    my $bigger = keys %$a1 > keys %$a2 ? $a1 : $a2;
-    for my $k (sort keys %$bigger) {
-        my $e1 = exists $a1->{$k} ? $a1->{$k} : $self->dne;
-        my $e2 = exists $a2->{$k} ? $a2->{$k} : $self->dne;
-
-        next if $self->_check_nonrefs($e1, $e2);
-
-        push @$self => {type => 'HASH', idx => $k, vals => [$e1, $e2], line => __LINE__};
-        $ok = $self->_deep_check($e1, $e2);
-        pop @$self if $ok;
-
-        last unless $ok;
-    }
-
-    return $ok;
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::More::DeepCheck::Strict - Where is_deeply() is implemented.
-
-=head1 DESCRIPTION
-
-This is the package where the code for C<is_deeply()> from L<Test::More> lives.
-This code was refactored into this form, but should remain 100% compatible with
-the old implementation. If you find an incompatability please report it.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/More/DeepCheck/Tolerant.pm b/cpan/Test-Simple/lib/Test/More/DeepCheck/Tolerant.pm
deleted file mode 100644 (file)
index 793b4c0..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
-package Test::More::DeepCheck::Tolerant;
-use strict;
-use warnings;
-
-use Test::More::Tools;
-use Scalar::Util qw/reftype blessed/;
-use Test::Stream::Util qw/try unoverload_str is_regex/;
-
-use Test::Stream::ArrayBase(
-    accessors => [qw/stack_start/],
-    base => 'Test::More::DeepCheck',
-);
-
-sub preface { "First mismatch:\n" };
-
-sub check {
-    my $class = shift;
-    my ($got, $expect) = @_;
-
-    unoverload_str(\$got, \$expect);
-    my $self = $class->new();
-
-    # neither is a reference
-    return tmt->is_eq($got, $expect)
-        if !ref $got and !ref $expect;
-
-    push @$self => {type => '', vals => [$got, $expect], line => __LINE__};
-    my $ok = $self->_deep_check($got, $expect);
-    return ($ok, $ok ? () : $self->format_stack);
-}
-
-#============================
-
-sub _reftype {
-    my ($thing) = @_;
-    my $type = reftype $thing || return '';
-
-    $type = uc($type);
-
-    return $type unless $type eq 'SCALAR';
-
-    $type = 'REGEXP' if $type eq 'REGEX' || defined is_regex($thing);
-
-    return $type;
-}
-
-sub _nonref_check {
-    my ($self) = shift;
-    my ($got, $expect) = @_;
-
-    my $numeric = $got !~ m/\D/i && $expect !~ m/\D/i;
-    return $numeric ? $got == $expect : "$got" eq "$expect";
-}
-
-sub _deep_check {
-    my ($self) = shift;
-    my ($got, $expect) = @_;
-
-    return 1 unless defined($got) ||  defined($expect);
-    return 0 if     defined($got) xor defined($expect);
-
-    my $seen = $self->[SEEN]->[-1];
-    return 1 if $seen->{$got} && $seen->{$got} eq $expect;
-    $seen->{$got} = "$expect";
-
-    my $etype = _reftype $expect;
-    my $gtype = _reftype $got;
-
-    return 0 if ($etype && $etype ne 'REGEXP' && !$gtype) || ($gtype && !$etype);
-
-    return $self->_nonref_check($got, $expect) unless $etype;
-
-    ##### Both are refs at this point ####
-    return 1 if $gtype && $got == $expect;
-
-    if ($etype eq 'REGEXP') {
-        return "$got" eq "$expect" if $gtype eq 'REGEXP'; # Identical regexp check
-        return $got =~ $expect;
-    }
-
-    my $ok = 0;
-    $seen = {%$seen};
-    push @{$self->[SEEN]} => $seen;
-    if ($etype eq 'ARRAY') {
-        $ok = $self->_array_check($got, $expect);
-    }
-    elsif ($etype eq 'HASH') {
-        $ok = $self->_hash_check($got, $expect);
-    }
-    pop @{$self->[SEEN]};
-
-    return $ok;
-}
-
-sub _array_check {
-    my $self = shift;
-    my ($got, $expect) = @_;
-
-    return 0 if _reftype($got) ne 'ARRAY';
-
-    for (my $i = 0; $i < @$expect; $i++) {
-        push @$self => {type => 'ARRAY', idx => $i, vals => [$got->[$i], $expect->[$i]], line => __LINE__};
-        $self->_deep_check($got->[$i], $expect->[$i]) || return 0;
-        pop @$self;
-    }
-
-    return 1;
-}
-
-sub _hash_check {
-    my $self = shift;
-    my ($got, $expect) = @_;
-
-    my $blessed  = blessed($got);
-    my $hashref  = _reftype($got) eq 'HASH';
-    my $arrayref = _reftype($got) eq 'ARRAY';
-
-    for my $key (sort keys %$expect) {
-        #                                             $wrap   $direct  $field   Leftover from wrap
-        my ($wrap, $direct, $field) = ($key =~ m/^  ([\[\{]?)   (:?)   ([^\]]*) [\]\}]?$/x);
-
-        if ($wrap) {
-            if (!$blessed) {
-                push @$self => {
-                    type  => 'OBJECT',
-                    idx   => $field,
-                    wrap  => $wrap,
-                    vals  => ["(EXCEPTION)", $expect->{$key}],
-                    error => "Cannot call method '$field' on an unblessed reference.\n",
-                    line  => __LINE__,
-                };
-                return 0;
-            }
-            if ($direct) {
-                push @$self => {
-                    type  => 'OBJECT',
-                    idx   => $field,
-                    wrap  => $wrap,
-                    vals  => ['(EXCEPTION)', $expect->{$key}],
-                    error => "'$key' is invalid, cannot wrap($wrap) a direct-access($direct).\n",
-                    line  => __LINE__,
-                };
-                return 0;
-            }
-        }
-
-        my ($val, $type);
-        if ($direct || !$blessed) {
-            if ($arrayref) {
-                $type = 'ARRAY';
-                if ($field !~ m/^-?\d+$/i) {
-                    push @$self => {
-                        type  => 'ARRAY',
-                        idx   => $field,
-                        vals  => ['(EXCEPTION)', $expect->{$key}],
-                        error => "'$field' is not a valid array index\n",
-                        line  => __LINE__,
-                    };
-                    return 0;
-                }
-
-                # Try, if they specify -1 in an empty array it may throw an exception
-                my ($success, $error) = try { $val = $got->[$field] };
-                if (!$success) {
-                    push @$self => {
-                        type  => 'ARRAY',
-                        idx   => $field,
-                        vals  => ['(EXCEPTION)', $expect->{$key}],
-                        error => $error,
-                        line  => __LINE__,
-                    };
-                    return 0;
-                }
-            }
-            else {
-                $type = 'HASH';
-                $val  = $got->{$field};
-            }
-        }
-        else {
-            $type = 'OBJECT';
-            my ($success, $error) = try {
-                if ($wrap) {
-                    if ($wrap eq '[') {
-                        $val = [$got->$field()];
-                    }
-                    elsif ($wrap eq '{') {
-                        $val = {$got->$field()};
-                    }
-                    else {
-                        die "'$wrap' is not a valid way to wrap a method call";
-                    }
-                }
-                else {
-                    $val = $got->$field();
-                }
-            };
-            if (!$success) {
-                push @$self => {
-                    type  => 'OBJECT',
-                    idx   => $field,
-                    wrap  => $wrap || undef,
-                    vals  => ['(EXCEPTION)', $expect->{$key}],
-                    error => $error,
-                    line  => __LINE__,
-                };
-                return 0;
-            }
-        }
-
-        push @$self => {type => $type, idx => $field, vals => [$val, $expect->{$key}], line => __LINE__, wrap => $wrap || undef};
-        $self->_deep_check($val, $expect->{$key}) || return 0;
-        pop @$self;
-    }
-
-    return 1;
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::More::DeepCheck::Tolerant - Under the hood implementation of
-mostly_like()
-
-=head1 DESCRIPTION
-
-This is where L<Test::MostlyLike> is implemented.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/More/Tools.pm b/cpan/Test-Simple/lib/Test/More/Tools.pm
deleted file mode 100644 (file)
index 1fea46f..0000000
+++ /dev/null
@@ -1,506 +0,0 @@
-package Test::More::Tools;
-use strict;
-use warnings;
-
-use Test::Stream::Context;
-
-use Test::Stream::Exporter;
-default_exports qw/tmt/;
-Test::Stream::Exporter->cleanup;
-
-use Test::Stream::Util qw/try protect is_regex unoverload_str unoverload_num/;
-use Scalar::Util qw/blessed reftype/;
-
-sub tmt() { __PACKAGE__ }
-
-# Bad, these are not comparison operators. Should we include more?
-my %CMP_OK_BL    = map { ( $_, 1 ) } ( "=", "+=", ".=", "x=", "^=", "|=", "||=", "&&=", "...");
-my %NUMERIC_CMPS = map { ( $_, 1 ) } ( "<", "<=", ">", ">=", "==", "!=", "<=>" );
-
-sub _cmp_eval {
-    my ($line, $name, $file, $got, $type, $expect) = @_;
-    my $test;
-    # This is so that warnings come out at the caller's level
-    ## no critic (BuiltinFunctions::ProhibitStringyEval)
-    eval qq[
-#line $line "(eval in $name) $file"
-\$test = (\$got $type \$expect);
-1;
-    ] || die $@;
-    return $test;
-}
-
-sub cmp_check {
-    my($class, $got, $type, $expect) = @_;
-
-    my $ctx = context();
-    my $name = $ctx->subname;
-    $name =~ s/^.*:://g;
-    $name = 'cmp_check' if $name eq '__ANON__';
-    $ctx->throw("$type is not a valid comparison operator in $name\()")
-        if $CMP_OK_BL{$type};
-
-    my ($p, $file, $line) = $ctx->call;
-
-    my $test = 0;
-    my ($success, $error) = try {
-        $test = _cmp_eval($line, $name, $file, $got, $type, $expect);
-    };
-
-    my @diag;
-    push @diag => <<"    END" unless $success;
-An error occurred while using $type:
-------------------------------------
-$error
-------------------------------------
-    END
-
-    unless($test) {
-        # Treat overloaded objects as numbers if we're asked to do a
-        # numeric comparison.
-        my $unoverload = $NUMERIC_CMPS{$type}
-            ? \&unoverload_num
-            : \&unoverload_str;
-
-        $unoverload->(\$got, \$expect);
-
-        if( $type =~ /^(eq|==)$/ ) {
-            push @diag => $class->_is_diag( $got, $type, $expect );
-        }
-        elsif( $type =~ /^(ne|!=)$/ ) {
-            push @diag => $class->_isnt_diag( $got, $type );
-        }
-        else {
-            push @diag => $class->_cmp_diag( $got, $type, $expect );
-        }
-    }
-
-    return($test, @diag);
-}
-
-sub is_eq {
-    my($class, $got, $expect) = @_;
-
-    if( !defined $got || !defined $expect ) {
-        # undef only matches undef and nothing else
-        my $test = !defined $got && !defined $expect;
-        return ($test, $test ? () : $class->_is_diag($got, 'eq', $expect));
-    }
-
-    return $class->cmp_check($got, 'eq', $expect);
-}
-
-sub is_num {
-    my($class, $got, $expect) = @_;
-
-    if( !defined $got || !defined $expect ) {
-        # undef only matches undef and nothing else
-        my $test = !defined $got && !defined $expect;
-        return ($test, $test ? () : $class->_is_diag($got, '==', $expect));
-    }
-
-    return $class->cmp_check($got, '==', $expect);
-}
-
-sub isnt_eq {
-    my($class, $got, $dont_expect) = @_;
-
-    if( !defined $got || !defined $dont_expect ) {
-        # undef only matches undef and nothing else
-        my $test = defined $got || defined $dont_expect;
-        return ($test, $test ? () : $class->_isnt_diag($got, 'ne'));
-    }
-
-    return $class->cmp_check($got, 'ne', $dont_expect);
-}
-
-sub isnt_num {
-    my($class, $got, $dont_expect) = @_;
-
-    if( !defined $got || !defined $dont_expect ) {
-        # undef only matches undef and nothing else
-        my $test = defined $got || defined $dont_expect;
-        return ($test, $test ? () : $class->_isnt_diag($got, '!='));
-    }
-
-    return $class->cmp_check($got, '!=', $dont_expect);
-}
-
-sub regex_check {
-    my($class, $thing, $got_regex, $cmp) = @_;
-
-    my $regex = is_regex($got_regex);
-    return (0, "    '$got_regex' doesn't look much like a regex to me.")
-        unless defined $regex;
-
-    my $ctx = context();
-    my ($p, $file, $line) = $ctx->call;
-
-    my $test;
-    my $mock = qq{#line $line "$file"\n};
-
-    my @warnings;
-    my ($success, $error) = try {
-        # No point in issuing an uninit warning, they'll see it in the diagnostics
-        no warnings 'uninitialized';
-        ## no critic (BuiltinFunctions::ProhibitStringyEval)
-        protect { eval $mock . q{$test = $thing =~ /$regex/ ? 1 : 0; 1} || die $@ };
-    };
-
-    return (0, "Exception: $error") unless $success;
-
-    my $negate = $cmp eq '!~';
-
-    $test = !$test if $negate;
-
-    unless($test) {
-        $thing = defined $thing ? "'$thing'" : 'undef';
-        my $match = $negate ? "matches" : "doesn't match";
-        my $diag = sprintf(qq{                  \%s\n    \%13s '\%s'\n}, $thing, $match, $got_regex);
-        return (0, $diag);
-    }
-
-    return (1);
-}
-
-sub can_check {
-    my ($us, $proto, $class, @methods) = @_;
-
-    my @diag;
-    for my $method (@methods) {
-        my $ok;
-        my ($success, $error) = try { $ok = $proto->can($method) };
-        if ($success) {
-            push @diag => "    $class\->can('$method') failed" unless $ok;
-        }
-        else {
-            my $file = __FILE__;
-            $error =~ s/ at \Q$file\E line \d+//;
-            push @diag => "    $class\->can('$method') failed with an exception:\n    $error";
-        }
-    }
-
-    return (!@diag, @diag)
-}
-
-sub isa_check {
-    my($us, $thing, $class, $thing_name) = @_;
-
-    my ($whatami, $try_isa, $diag, $type);
-    if( !defined $thing ) {
-        $whatami = 'undef';
-        $$thing_name = "undef" unless defined $$thing_name;
-        $diag = defined $thing ? "$$thing_name isn't a '$class'" : "$$thing_name isn't defined";
-    }
-    elsif($type = blessed $thing) {
-        $whatami = 'object';
-        $try_isa = 1;
-        $$thing_name = "An object of class '$type'" unless defined $$thing_name;
-        $diag = "$$thing_name isn't a '$class'";
-    }
-    elsif($type = ref $thing) {
-        $whatami = 'reference';
-        $$thing_name = "A reference of type '$type'" unless defined $$thing_name;
-        $diag = "$$thing_name isn't a '$class'";
-    }
-    else {
-        $whatami = 'class';
-        $try_isa = $thing && $thing !~ m/^\d+$/;
-        $$thing_name = "The class (or class-like) '$thing'" unless defined $$thing_name;
-        $diag = "$$thing_name isn't a '$class'";
-    }
-
-    my $ok;
-    if ($try_isa) {
-        # We can't use UNIVERSAL::isa because we want to honor isa() overrides
-        my ($success, $error) = try {
-            my $ctx = context();
-            my ($p, $f, $l) = $ctx->call;
-            eval qq{#line $l "$f"\n\$ok = \$thing\->isa(\$class); 1} || die $@;
-        };
-
-        die <<"        WHOA" unless $success;
-WHOA! I tried to call ->isa on your $whatami and got some weird error.
-Here's the error.
-$error
-        WHOA
-    }
-    else {
-        # Special case for isa_ok( [], "ARRAY" ) and like
-        $ok = UNIVERSAL::isa($thing, $class);
-    }
-
-    return ($ok) if $ok;
-    return ($ok, "    $diag\n");
-}
-
-sub new_check {
-    my($us, $class, $args, $object_name) = @_;
-
-    $args ||= [];
-
-    my $obj;
-    my($success, $error) = try {
-        my $ctx = context();
-        my ($p, $f, $l) = $ctx->call;
-        eval qq{#line $l "$f"\n\$obj = \$class\->new(\@\$args); 1} || die $@;
-    };
-    if($success) {
-        $object_name = "'$object_name'" if $object_name;
-        my ($ok, @diag) = $us->isa_check($obj, $class, \$object_name);
-        my $name = "$object_name isa '$class'";
-        return ($obj, $name, $ok, @diag);
-    }
-    else {
-        $class = 'undef' unless defined $class;
-        return (undef, "$class->new() died", 0, "    Error was:  $error");
-    }
-}
-
-sub explain {
-    my ($us, @args) = @_;
-    protect { require Data::Dumper };
-
-    return map {
-        ref $_
-          ? do {
-            my $dumper = Data::Dumper->new( [$_] );
-            $dumper->Indent(1)->Terse(1);
-            $dumper->Sortkeys(1) if $dumper->can("Sortkeys");
-            $dumper->Dump;
-          }
-          : $_
-    } @args;
-}
-
-sub _diag_fmt {
-    my( $class, $type, $val ) = @_;
-
-    if( defined $$val ) {
-        if( $type eq 'eq' or $type eq 'ne' ) {
-            # quote and force string context
-            $$val = "'$$val'";
-        }
-        else {
-            # force numeric context
-            unoverload_num($val);
-        }
-    }
-    else {
-        $$val = 'undef';
-    }
-
-    return;
-}
-
-sub _is_diag {
-    my( $class, $got, $type, $expect ) = @_;
-
-    $class->_diag_fmt( $type, $_ ) for \$got, \$expect;
-
-    return <<"DIAGNOSTIC";
-         got: $got
-    expected: $expect
-DIAGNOSTIC
-}
-
-sub _isnt_diag {
-    my( $class, $got, $type ) = @_;
-
-    $class->_diag_fmt( $type, \$got );
-
-    return <<"DIAGNOSTIC";
-         got: $got
-    expected: anything else
-DIAGNOSTIC
-}
-
-
-sub _cmp_diag {
-    my( $class, $got, $type, $expect ) = @_;
-
-    $got    = defined $got    ? "'$got'"    : 'undef';
-    $expect = defined $expect ? "'$expect'" : 'undef';
-
-    return <<"DIAGNOSTIC";
-    $got
-        $type
-    $expect
-DIAGNOSTIC
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::More::Tools - Generic form of tools from Test::More.
-
-=head1 DESCRIPTION
-
-People used to call L<Test::More> tools within other testing tools. This mostly
-works, but it generates events for each call. This package gives you access to
-the implementations directly, without generating events for you. This allows
-you to create a composite tool without generating extra events.
-
-=head1 SYNOPSYS
-
-    use Test::More::Tools qw/tmt/;
-    use Test::Stream::Toolset qw/context/;
-
-    # This is how Test::More::is is implemented
-    sub my_is {
-        my ($got, $want, $name) = @_;
-
-        my $ctx = context;
-
-        my ($ok, @diag) = tmt->is_eq($got, $want);
-
-        $ctx->ok($ok, $name, \@diag);
-    }
-
-=head1 EXPORTS
-
-=over 4
-
-=item $pkg = tmt()
-
-Simply returns the string 'Test::More::Tools';
-
-=back
-
-=head1 CLASS METHODS
-
-Not all methods are listed. The ones that have been omitted are not intuitive,
-and probably should not be used at all.
-
-=over 4
-
-=item ($bool, @diag) = tmt->cmp_check($got, $op, $want)
-
-Check 2 values using the operator specified example: C<$got == $want>
-
-=item ($bool, @diag) = tmt->is_eq($got, $want)
-
-String compare.
-
-=item ($bool, @diag) = tmt->is_num($got, $want)
-
-Numeric compare.
-
-=item ($bool, @diag) = tmt->isnt_eq($got, $dont_want)
-
-String inequality compare.
-
-=item ($bool, @diag) = tmt->isnt_num($got, $dont_want)
-
-Numeric inequality compare.
-
-=item ($bool, @diag) = tmt->regex_check($got, $regex, $op)
-
-Regex compare. C<$op> may be C<=~> or C<!~>.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/MostlyLike.pm b/cpan/Test-Simple/lib/Test/MostlyLike.pm
deleted file mode 100644 (file)
index 8831609..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-package Test::MostlyLike;
-use strict;
-use warnings;
-
-use Test::Stream::Toolset;
-use Test::Stream::Exporter;
-default_exports qw/mostly_like/;
-Test::Stream::Exporter->cleanup;
-
-use Test::More::DeepCheck::Tolerant;
-
-sub mostly_like {
-    my ($got, $want, $name) = @_;
-
-    my $ctx = context();
-
-    unless( @_ == 2 or @_ == 3 ) {
-        my $msg = <<'WARNING';
-mostly_like() takes two or three args, you gave %d.
-This usually means you passed an array or hash instead
-of a reference to it
-WARNING
-        chop $msg;    # clip off newline so carp() will put in line/file
-
-        $ctx->alert(sprintf $msg, scalar @_);
-
-        $ctx->ok(0, undef, ['incorrect number of args']);
-        return 0;
-    }
-
-    my ($ok, @diag) = Test::More::DeepCheck::Tolerant->check($got, $want);
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-1;
-
-__END__
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::MostlyLike - Relaxed checking of deep data structures.
-
-=head1 SYNOPSYS
-
-    my $got = [qw/foo bar baz/];
-
-    mostly_like(
-        $got,
-        ['foo', qr/a/],
-        "Deeply nested structure matches (mostly)"
-    );
-
-=head1 DESCRIPTION
-
-A tool based on C<is_deeply> from L<Test::More>. This tool produces nearly
-identical diagnostics. This tool gives you extra control by letting you check
-only the parts of the structure you care about, ignoring the rest.
-
-=head1 EXPORTS
-
-=over 4
-
-=item $bool = mostly_like($got, $expect, $name)
-
-Generates a single ok event with diagnostics to help you find any failures.
-
-Got should be the data structure you want to test. $expect should be a data
-structure representing what you expect to see. Unlike C<is_deeply> any keys in
-C<$got> that do not I<exist> in C<$expect> will be ignored.
-
-=back
-
-=head1 WHAT TO EXPECT
-
-When an a blessed object is encountered in the C<$got> structure, any fields
-listed in C<$expect> will be called as methods on the C<$got> object. See the
-object/direct element access section below for bypassing this.
-
-Any keys or attributes in C<$got> will be ignored unless the also I<exist> in C<$expect>
-
-=head1 IGNORING THINGS YOU DO NOT CARE ABOUT
-
-    my $got    = { foo => 1, bar => 2 };
-    my $expect = { foo => 1 };
-
-    mostly_like($got, $expect, "Ignores 'bar'");
-
-If you want to check that a value is not set:
-
-    my $got    = { foo => 1, bar => 2 };
-    my $expect = { foo => 1, bar => undef };
-
-    mostly_like($got, $expect, "Will fail since 'bar' has a value");
-
-=head2 EXACT MATCHES
-
-    my $got    = 'foo';
-    my $expect = 'foo';
-    mostly_like($got, $expect, "Check a value directly");
-
-Also works for deeply nested structures
-
-    mostly_like(
-        [
-            {stuff => 'foo bar baz'},
-        ],
-        [
-            {stuff => 'foo bar baz'},
-        ],
-        "Check a value directly, nested"
-    );
-
-=head2 REGEX MATCHES
-
-    my $got    = 'foo bar baz';
-    my $expect = qr/bar/;
-    mostly_like($got, $expect, 'Match');
-
-Works nested as well:
-
-    mostly_like(
-        [
-            {stuff => 'foo bar baz'},
-        ],
-        [
-            {stuff => qr/bar/},
-        ],
-        "Check a value directly, nested"
-    );
-
-=head2 ARRAY ELEMENT MATCHES
-
-    my $got = [qw/foo bar baz/];
-    my $exp = [qw/foo bar/];
-
-    mostly_like($got, $exp, "Ignores unspecified indexes");
-
-You can also just check specific indexes:
-
-    my $got = [qw/foo bar baz/];
-    my $exp = { ':1' => 'bar' };
-
-    mostly_like($got, $exp, "Only checks array index 1");
-
-When doing this the index must always be prefixed with ':'.
-
-=head2 HASH ELEMENT MATCHES
-
-    my $got = { foo => 1, bar => 2 };
-    my $exp = { foo => 1 };
-
-    mostly_like($got, $exp, "Only checks foo");
-
-=head2 OBJECT METHOD MATCHES
-
-=head3 UNALTERED
-
-    sub foo { $_[0]->{foo} }
-
-    my $got = bless {foo => 1}, __PACKAGE__;
-    my $exp = { foo => 1 };
-
-    mostly_like($got, $exp, 'Checks the return of $got->foo()');
-
-=head3 WRAPPED
-
-Sometimes methods return lists, in such cases you can wrap them in arrayrefs or
-hashrefs:
-
-    sub list { qw/foo bar baz/ }
-    sub dict { foo => 0, bar => 1, baz => 2 }
-
-    my $got = bless {}, __PACKAGE__;
-    my $exp = {
-        '[list]' => [ qw/foo bar baz/ ],
-        '[dict]' => { foo => 0, bar => 1, baz => 2 },
-    };
-    mostly_like($got, $exp, "Wrapped the method calls");
-
-=head3 DIRECT ELEMENT ACCESS
-
-Sometimes you want to ignore the methods and get the hash value directly.
-
-    sub foo { die "do not call me" }
-
-    my $got = bless { foo => 'secret' }, __PACKAGE__;
-    my $exp = { ':foo' => 'secret' };
-
-    mostly_like($got, $exp, "Did not call the fatal method");
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-=item Test::MostlyLike
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
index 3ab5693..56457b4 100644 (file)
@@ -1,69 +1,17 @@
 package Test::Simple;
 
-use 5.008001;
+use 5.006;
 
 use strict;
-use warnings;
 
-our $VERSION = '1.301001_098';
+our $VERSION = '1.001014';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
-use Test::Stream 1.301001_098 '-internal';
-use Test::Stream::Toolset;
-
-use Test::Stream::Exporter;
-default_exports qw/ok/;
-Test::Stream::Exporter->cleanup;
-
-sub before_import {
-    my $class = shift;
-    my ($importer, $list) = @_;
-
-    my $meta    = init_tester($importer);
-    my $context = context(1);
-    my $idx = 0;
-    my $other = [];
-    while ($idx <= $#{$list}) {
-        my $item = $list->[$idx++];
-
-        if (defined $item and $item eq 'no_diag') {
-            Test::Stream->shared->set_no_diag(1);
-        }
-        elsif ($item eq 'tests') {
-            $context->plan($list->[$idx++]);
-        }
-        elsif ($item eq 'skip_all') {
-            $context->plan(0, 'SKIP', $list->[$idx++]);
-        }
-        elsif ($item eq 'no_plan') {
-            $context->plan(0, 'NO PLAN');
-        }
-        elsif ($item eq 'import') {
-            push @$other => @{$list->[$idx++]};
-        }
-        else {
-            $context->throw("Unknown option: $item");
-        }
-    }
-
-    @$list = @$other;
-
-    return;
-}
-
-sub ok ($;$) {    ## no critic (Subroutines::ProhibitSubroutinePrototypes)
-    my $ctx = context();
-    return $ctx->ok(@_);
-    return $_[0] ? 1 : 0;
-}
-
-1;
-
-__END__
-
-=pod
+use Test::Builder::Module 0.99;
+our @ISA    = qw(Test::Builder::Module);
+our @EXPORT = qw(ok);
 
-=encoding UTF-8
+my $CLASS = __PACKAGE__;
 
 =head1 NAME
 
@@ -75,6 +23,7 @@ Test::Simple - Basic utilities for writing tests.
 
   ok( $foo eq $bar, 'foo is bar' );
 
+
 =head1 DESCRIPTION
 
 ** If you are unfamiliar with testing B<read L<Test::Tutorial> first!> **
@@ -125,6 +74,12 @@ All tests are run in scalar context.  So this:
 
 will do what you mean (fail if stuff is empty)
 
+=cut
+
+sub ok ($;$) {    ## no critic (Subroutines::ProhibitSubroutinePrototypes)
+    return $CLASS->builder->ok(@_);
+}
+
 =back
 
 Test::Simple will start by printing number of tests run in the form
@@ -238,100 +193,29 @@ programs and things will still work).
 
 Look in L<Test::More>'s SEE ALSO for more testing modules.
 
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
 
 =head1 AUTHORS
 
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
+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>
 
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
 =back
 
 =head1 COPYRIGHT
 
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
 Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
 
-This program is free software; you can redistribute it and/or
+This program is free software; you can redistribute it and/or 
 modify it under the same terms as Perl itself.
 
 See F<http://www.perl.com/perl/misc/Artistic.html>
 
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
+=cut
 
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
+1;
diff --git a/cpan/Test-Simple/lib/Test/Stream.pm b/cpan/Test-Simple/lib/Test/Stream.pm
deleted file mode 100644 (file)
index 1c05f1d..0000000
+++ /dev/null
@@ -1,1184 +0,0 @@
-package Test::Stream;
-use strict;
-use warnings;
-
-our $VERSION = '1.301001_098';
-$VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
-
-use Test::Stream::Context qw/context/;
-use Test::Stream::Threads;
-use Test::Stream::IOSets;
-use Test::Stream::Util qw/try/;
-use Test::Stream::Carp qw/croak confess carp/;
-use Test::Stream::Meta qw/MODERN ENCODING init_tester/;
-
-use Test::Stream::ArrayBase(
-    accessors => [qw{
-        no_ending no_diag no_header
-        pid tid
-        state
-        subtests
-        subtest_tap_instant
-        subtest_tap_delayed
-        mungers
-        listeners
-        follow_ups
-        bailed_out
-        exit_on_disruption
-        use_tap use_legacy _use_fork
-        use_numbers
-        io_sets
-        event_id
-        in_subthread
-    }],
-);
-
-sub STATE_COUNT()   { 0 }
-sub STATE_FAILED()  { 1 }
-sub STATE_PLAN()    { 2 }
-sub STATE_PASSING() { 3 }
-sub STATE_LEGACY()  { 4 }
-sub STATE_ENDED()   { 5 }
-
-sub OUT_STD()  { 0 }
-sub OUT_ERR()  { 1 }
-sub OUT_TODO() { 2 }
-
-use Test::Stream::Exporter;
-exports qw/
-    OUT_STD OUT_ERR OUT_TODO
-    STATE_COUNT STATE_FAILED STATE_PLAN STATE_PASSING STATE_LEGACY STATE_ENDED
-/;
-default_exports qw/ cull tap_encoding context /;
-Test::Stream::Exporter->cleanup;
-
-sub tap_encoding {
-    my ($encoding) = @_;
-
-    require Encode;
-
-    croak "encoding '$encoding' is not valid, or not available"
-        unless $encoding eq 'legacy' || Encode::find_encoding($encoding);
-
-    require Test::Stream::Context;
-    my $ctx = Test::Stream::Context::context();
-    $ctx->stream->io_sets->init_encoding($encoding);
-
-    my $meta = init_tester($ctx->package);
-    $meta->[ENCODING] = $encoding;
-}
-
-sub cull {
-    my $ctx = Test::Stream::Context::context();
-    $ctx->stream->fork_cull();
-}
-
-sub before_import {
-    my $class = shift;
-    my ($importer, $list) = @_;
-
-    if (@$list && $list->[0] eq '-internal') {
-        shift @$list;
-        return;
-    }
-
-    my $meta = init_tester($importer);
-    $meta->[MODERN] = 1;
-
-    my $other  = [];
-    my $idx    = 0;
-    my $stream = $class->shared;
-
-    while ($idx <= $#{$list}) {
-        my $item = $list->[$idx++];
-        next unless $item;
-
-        if ($item eq 'subtest_tap') {
-            my $val = $list->[$idx++];
-            if (!$val || $val eq 'none') {
-                $stream->set_subtest_tap_instant(0);
-                $stream->set_subtest_tap_delayed(0);
-            }
-            elsif ($val eq 'instant') {
-                $stream->set_subtest_tap_instant(1);
-                $stream->set_subtest_tap_delayed(0);
-            }
-            elsif ($val eq 'delayed') {
-                $stream->set_subtest_tap_instant(0);
-                $stream->set_subtest_tap_delayed(1);
-            }
-            elsif ($val eq 'both') {
-                $stream->set_subtest_tap_instant(1);
-                $stream->set_subtest_tap_delayed(1);
-            }
-            else {
-                croak "'$val' is not a valid option for '$item'";
-            }
-        }
-        elsif ($item eq 'utf8') {
-            $stream->io_sets->init_encoding('utf8');
-            $meta->[ENCODING] = 'utf8';
-        }
-        elsif ($item eq 'encoding') {
-            my $encoding = $list->[$idx++];
-
-            croak "encoding '$encoding' is not valid, or not available"
-                unless Encode::find_encoding($encoding);
-
-            $stream->io_sets->init_encoding($encoding);
-            $meta->[ENCODING] = $encoding;
-        }
-        elsif ($item eq 'enable_fork') {
-            $stream->use_fork;
-        }
-        else {
-            push @$other => $item;
-        }
-    }
-
-    @$list = @$other;
-
-    return;
-}
-
-sub plan   { $_[0]->[STATE]->[-1]->[STATE_PLAN]   }
-sub count  { $_[0]->[STATE]->[-1]->[STATE_COUNT]  }
-sub failed { $_[0]->[STATE]->[-1]->[STATE_FAILED] }
-sub ended  { $_[0]->[STATE]->[-1]->[STATE_ENDED]  }
-sub legacy { $_[0]->[STATE]->[-1]->[STATE_LEGACY] }
-
-sub is_passing {
-    my $self = shift;
-
-    if (@_) {
-        ($self->[STATE]->[-1]->[STATE_PASSING]) = @_;
-    }
-
-    my $current = $self->[STATE]->[-1]->[STATE_PASSING];
-
-    my $plan = $self->[STATE]->[-1]->[STATE_PLAN];
-    return $current if $self->[STATE]->[-1]->[STATE_ENDED];
-    return $current unless $plan;
-    return $current unless $plan->max;
-    return $current if $plan->directive && $plan->directive eq 'NO PLAN';
-    return $current unless $self->[STATE]->[-1]->[STATE_COUNT] > $plan->max;
-
-    return $self->[STATE]->[-1]->[STATE_PASSING] = 0;
-}
-
-sub init {
-    my $self = shift;
-
-    $self->[PID]         = $$;
-    $self->[TID]         = get_tid();
-    $self->[STATE]       = [[0, 0, undef, 1]];
-    $self->[USE_TAP]     = 1;
-    $self->[USE_NUMBERS] = 1;
-    $self->[IO_SETS]     = Test::Stream::IOSets->new;
-    $self->[EVENT_ID]    = 1;
-    $self->[NO_ENDING]   = 1;
-    $self->[SUBTESTS]    = [];
-
-    $self->[SUBTEST_TAP_INSTANT] = 1;
-    $self->[SUBTEST_TAP_DELAYED] = 0;
-
-    $self->use_fork if USE_THREADS;
-
-    $self->[EXIT_ON_DISRUPTION] = 1;
-}
-
-{
-    my ($root, @stack, $magic);
-
-    END {
-        $root->fork_cull if $root && $root->_use_fork && $$ == $root->[PID];
-        $magic->do_magic($root) if $magic && $root && !$root->[NO_ENDING]
-    }
-
-    sub _stack { @stack }
-
-    sub shared {
-        my ($class) = @_;
-        return $stack[-1] if @stack;
-
-        @stack = ($root = $class->new(0));
-        $root->[NO_ENDING] = 0;
-
-        require Test::Stream::Context;
-        require Test::Stream::Event::Finish;
-        require Test::Stream::ExitMagic;
-        require Test::Stream::ExitMagic::Context;
-
-        $magic = Test::Stream::ExitMagic->new;
-
-        return $root;
-    }
-
-    sub clear {
-        $root->[NO_ENDING] = 1;
-        $root  = undef;
-        $magic = undef;
-        @stack = ();
-    }
-
-    sub intercept_start {
-        my $class = shift;
-        my ($new) = @_;
-
-        my $old = $stack[-1];
-
-        unless($new) {
-            $new = $class->new();
-
-            $new->set_exit_on_disruption(0);
-            $new->set_use_tap(0);
-            $new->set_use_legacy(0);
-        }
-
-        push @stack => $new;
-
-        return ($new, $old);
-    }
-
-    sub intercept_stop {
-        my $class = shift;
-        my ($current) = @_;
-        croak "Stream stack inconsistency" unless $current == $stack[-1];
-        pop @stack;
-    }
-}
-
-sub intercept {
-    my $class = shift;
-    my ($code) = @_;
-
-    croak "The first argument to intercept must be a coderef"
-        unless $code && ref $code && ref $code eq 'CODE';
-
-    my ($new, $old) = $class->intercept_start();
-    my ($ok, $error) = try { $code->($new, $old) };
-    $class->intercept_stop($new);
-
-    die $error unless $ok;
-    return $ok;
-}
-
-sub listen {
-    my $self = shift;
-    for my $sub (@_) {
-        next unless $sub;
-
-        croak "listen only takes coderefs for arguments, got '$sub'"
-            unless ref $sub && ref $sub eq 'CODE';
-
-        push @{$self->[LISTENERS]} => $sub;
-    }
-}
-
-sub munge {
-    my $self = shift;
-    for my $sub (@_) {
-        next unless $sub;
-
-        croak "munge only takes coderefs for arguments, got '$sub'"
-            unless ref $sub && ref $sub eq 'CODE';
-
-        push @{$self->[MUNGERS]} => $sub;
-    }
-}
-
-sub follow_up {
-    my $self = shift;
-    for my $sub (@_) {
-        next unless $sub;
-
-        croak "follow_up only takes coderefs for arguments, got '$sub'"
-            unless ref $sub && ref $sub eq 'CODE';
-
-        push @{$self->[FOLLOW_UPS]} => $sub;
-    }
-}
-
-sub use_fork {
-    require File::Temp;
-    require Storable;
-
-    $_[0]->[_USE_FORK] ||= File::Temp::tempdir(CLEANUP => 0);
-    confess "Could not get a temp dir" unless $_[0]->[_USE_FORK];
-    if ($^O eq 'VMS') {
-        require VMS::Filespec;
-        $_[0]->[_USE_FORK] = VMS::Filespec::unixify($_[0]->[_USE_FORK]);
-    }
-    return 1;
-}
-
-sub fork_out {
-    my $self = shift;
-
-    my $tempdir = $self->[_USE_FORK];
-    confess "Fork support has not been turned on!" unless $tempdir;
-
-    my $tid = get_tid();
-
-    for my $event (@_) {
-        next unless $event;
-        next if $event->isa('Test::Stream::Event::Finish');
-
-        # First write the file, then rename it so that it is not read before it is ready.
-        my $name =  $tempdir . "/$$-$tid-" . ($self->[EVENT_ID]++);
-        my ($ret, $err) = try { Storable::store($event, $name) };
-        # Temporary to debug an error on one cpan-testers box
-        unless ($ret) {
-            require Data::Dumper;
-            confess(Data::Dumper::Dumper({ error => $err, event => $event}));
-        }
-        rename($name, "$name.ready") || confess "Could not rename file '$name' -> '$name.ready'";
-    }
-}
-
-sub fork_cull {
-    my $self = shift;
-
-    confess "fork_cull() can only be called from the parent process!"
-        if $$ != $self->[PID];
-
-    confess "fork_cull() can only be called from the parent thread!"
-        if get_tid() != $self->[TID];
-
-    my $tempdir = $self->[_USE_FORK];
-    confess "Fork support has not been turned on!" unless $tempdir;
-
-    opendir(my $dh, $tempdir) || croak "could not open temp dir ($tempdir)!";
-
-    my @files = sort readdir($dh);
-    for my $file (@files) {
-        next if $file =~ m/^\.+$/;
-        next unless $file =~ m/\.ready$/;
-
-        # Untaint the path.
-        my $full = "$tempdir/$file";
-        ($full) = ($full =~ m/^(.*)$/gs);
-
-        my $obj = Storable::retrieve($full);
-        confess "Empty event object found '$full'" unless $obj;
-
-        if ($ENV{TEST_KEEP_TMP_DIR}) {
-            rename($full, "$full.complete")
-                || confess "Could not rename file '$full', '$full.complete'";
-        }
-        else {
-            unlink($full) || die "Could not unlink file: $file";
-        }
-
-        my $cache = $self->_update_state($self->[STATE]->[0], $obj);
-        $self->_process_event($obj, $cache);
-        $self->_finalize_event($obj, $cache);
-    }
-
-    closedir($dh);
-}
-
-sub done_testing {
-    my $self = shift;
-    my ($ctx, $num) = @_;
-    my $state = $self->[STATE]->[-1];
-
-    if (my $old = $state->[STATE_ENDED]) {
-        my ($p1, $f1, $l1) = $old->call;
-        $ctx->ok(0, "done_testing() was already called at $f1 line $l1");
-        return;
-    }
-
-    # Do not run followups in subtest!
-    if ($self->[FOLLOW_UPS] && !@{$self->[SUBTESTS]}) {
-        $_->($ctx) for @{$self->[FOLLOW_UPS]};
-    }
-
-    $state->[STATE_ENDED] = $ctx->snapshot;
-
-    my $ran  = $state->[STATE_COUNT];
-    my $plan = $state->[STATE_PLAN] ? $state->[STATE_PLAN]->max : 0;
-
-    if (defined($num) && $plan && $num != $plan) {
-        $ctx->ok(0, "planned to run $plan but done_testing() expects $num");
-        return;
-    }
-
-    # Use _plan to bypass Test::Builder::plan() monkeypatching
-    $ctx->_plan($num || $plan || $ran) unless $state->[STATE_PLAN];
-
-    if ($plan && $plan != $ran) {
-        $state->[STATE_PASSING] = 0;
-        return;
-    }
-
-    if ($num && $num != $ran) {
-        $state->[STATE_PASSING] = 0;
-        return;
-    }
-
-    unless ($ran) {
-        $state->[STATE_PASSING] = 0;
-        return;
-    }
-}
-
-sub subtest_start {
-    my $self = shift;
-    my ($name, %params) = @_;
-
-    my $state = [0, 0, undef, 1];
-
-    $params{parent_todo} ||= Test::Stream::Context::context->in_todo;
-
-    if(@{$self->[SUBTESTS]}) {
-        $params{parent_todo} ||= $self->[SUBTESTS]->[-1]->{parent_todo};
-    }
-
-    push @{$self->[STATE]}    => $state;
-    push @{$self->[SUBTESTS]} => {
-        instant => $self->[SUBTEST_TAP_INSTANT],
-        delayed => $self->[SUBTEST_TAP_DELAYED],
-
-        %params,
-
-        state        => $state,
-        events       => [],
-        name         => $name,
-    };
-
-    return $self->[SUBTESTS]->[-1];
-}
-
-sub subtest_stop {
-    my $self = shift;
-    my ($name) = @_;
-
-    confess "No subtest to stop!"
-        unless @{$self->[SUBTESTS]};
-
-    confess "Subtest name mismatch!"
-        unless $self->[SUBTESTS]->[-1]->{name} eq $name;
-
-    my $st = pop @{$self->[SUBTESTS]};
-    pop @{$self->[STATE]};
-
-    return $st;
-}
-
-sub subtest { @{$_[0]->[SUBTESTS]} ? $_[0]->[SUBTESTS]->[-1] : () }
-
-sub send {
-    my ($self, $e) = @_;
-
-    my $cache = $self->_update_state($self->[STATE]->[-1], $e);
-
-    # Subtests get dibbs on events
-    if (my $num = @{$self->[SUBTESTS]}) {
-        my $st = $self->[SUBTESTS]->[-1];
-
-        $e->set_in_subtest($num);
-        $e->context->set_diag_todo(1) if $st->{parent_todo};
-
-        push @{$st->{events}} => $e;
-
-        $self->_render_tap($cache) if $st->{instant} && !$cache->{no_out};
-    }
-    elsif($self->[_USE_FORK] && ($$ != $self->[PID] || get_tid() != $self->[TID])) {
-        $self->fork_out($e);
-    }
-    else {
-        $self->_process_event($e, $cache);
-    }
-
-    $self->_finalize_event($e, $cache);
-
-    return $e;
-}
-
-sub _update_state {
-    my ($self, $state, $e) = @_;
-    my $cache = {tap_event => $e, state => $state};
-
-    if ($e->isa('Test::Stream::Event::Ok')) {
-        $cache->{do_tap} = 1;
-        $state->[STATE_COUNT]++;
-        if (!$e->bool) {
-            $state->[STATE_FAILED]++;
-            $state->[STATE_PASSING] = 0;
-        }
-    }
-    elsif (!$self->[NO_HEADER] && $e->isa('Test::Stream::Event::Finish')) {
-        $state->[STATE_ENDED] = $e->context->snapshot;
-
-        my $plan = $state->[STATE_PLAN];
-        if ($plan && $e->tests_run && $plan->directive eq 'NO PLAN') {
-            $plan->set_max($state->[STATE_COUNT]);
-            $plan->set_directive(undef);
-            $cache->{tap_event} = $plan;
-            $cache->{do_tap} = 1;
-        }
-        else {
-            $cache->{do_tap} = 0;
-            $cache->{no_out} = 1;
-        }
-    }
-    elsif ($self->[NO_DIAG] && $e->isa('Test::Stream::Event::Diag')) {
-        $cache->{no_out} = 1;
-    }
-    elsif ($e->isa('Test::Stream::Event::Plan')) {
-        $cache->{is_plan} = 1;
-
-        if($self->[NO_HEADER]) {
-            $cache->{no_out} = 1;
-        }
-        elsif(my $existing = $state->[STATE_PLAN]) {
-            my $directive = $existing ? $existing->directive : '';
-
-            if ($existing && (!$directive || $directive eq 'NO PLAN')) {
-                my ($p1, $f1, $l1) = $existing->context->call;
-                my ($p2, $f2, $l2) = $e->context->call;
-                die "Tried to plan twice!\n    $f1 line $l1\n    $f2 line $l2\n";
-            }
-        }
-
-        my $directive = $e->directive;
-        $cache->{no_out} = 1 if $directive && $directive eq 'NO PLAN';
-    }
-
-    push @{$state->[STATE_LEGACY]} => $e if $self->[USE_LEGACY];
-
-    $cache->{number} = $state->[STATE_COUNT];
-
-    return $cache;
-}
-
-sub _process_event {
-    my ($self, $e, $cache) = @_;
-
-    if ($self->[MUNGERS]) {
-        $_->($self, $e, $e->subevents) for @{$self->[MUNGERS]};
-    }
-
-    $self->_render_tap($cache) unless $cache->{no_out};
-
-    if ($self->[LISTENERS]) {
-        $_->($self, $e) for @{$self->[LISTENERS]};
-    }
-}
-
-sub _render_tap {
-    my ($self, $cache) = @_;
-
-    return if $^C;
-    return unless $self->[USE_TAP];
-    my $e = $cache->{tap_event};
-    return unless $cache->{do_tap} || $e->can('to_tap');
-
-    my $num = $self->use_numbers ? $cache->{number} : undef;
-    my @sets = $e->to_tap($num);
-
-    my $in_subtest = $e->in_subtest || 0;
-    my $indent = '    ' x $in_subtest;
-
-    for my $set (@sets) {
-        my ($hid, $msg) = @$set;
-        next unless $msg;
-        my $enc = $e->encoding || confess "Could not find encoding!";
-        my $io = $self->[IO_SETS]->{$enc}->[$hid] || confess "Could not find IO $hid for $enc";
-
-        local($\, $", $,) = (undef, ' ', '');
-        $msg =~ s/^/$indent/mg if $in_subtest;
-        print $io $msg;
-    }
-}
-
-sub _scan_for_begin {
-    my ($stop_at) = @_;
-    my $level = 2;
-
-    while (my @call = caller($level++)) {
-        return 1 if $call[3] =~ m/::BEGIN$/;
-        return 0 if $call[3] eq $stop_at;
-    }
-
-    return undef;
-}
-
-sub _finalize_event {
-    my ($self, $e, $cache) = @_;
-
-    if ($cache->{is_plan}) {
-        $cache->{state}->[STATE_PLAN] = $e;
-        return unless $e->directive;
-        return unless $e->directive eq 'SKIP';
-
-        my $subtest = @{$self->[SUBTESTS]};
-
-        $self->[SUBTESTS]->[-1]->{early_return} = $e if $subtest;
-
-        if ($subtest) {
-            my $begin = _scan_for_begin('Test::Stream::Subtest::subtest');
-
-            if ($begin) {
-                warn "SKIP_ALL in subtest via 'BEGIN' or 'use', using exception for flow control\n";
-                die $e;
-            }
-            elsif(defined $begin) {
-                no warnings 'exiting';
-                eval { last TEST_STREAM_SUBTEST };
-                warn "SKIP_ALL in subtest flow control error: $@";
-                warn "Falling back to using an exception.\n";
-                die $e;
-            }
-            else {
-                warn "SKIP_ALL in subtest could not find flow-control label, using exception for flow control\n";
-                die $e;
-            }
-        }
-
-        die $e unless $self->[EXIT_ON_DISRUPTION];
-        exit 0;
-    }
-    elsif (!$cache->{do_tap} && $e->isa('Test::Stream::Event::Bail')) {
-        $self->[BAILED_OUT] = $e;
-        $self->[NO_ENDING]  = 1;
-
-        my $subtest = @{$self->[SUBTESTS]};
-
-        $self->[SUBTESTS]->[-1]->{early_return} = $e if $subtest;
-
-        if ($subtest) {
-            my $begin = _scan_for_begin('Test::Stream::Subtest::subtest');
-
-            if ($begin) {
-                warn "BAILOUT in subtest via 'BEGIN' or 'use', using exception for flow control.\n";
-                die $e;
-            }
-            elsif(defined $begin) {
-                no warnings 'exiting';
-                eval { last TEST_STREAM_SUBTEST };
-                warn "BAILOUT in subtest flow control error: $@";
-                warn "Falling back to using an exception.\n";
-                die $e;
-            }
-            else {
-                warn "BAILOUT in subtest could not find flow-control label, using exception for flow control.\n";
-                die $e;
-            }
-        }
-
-        die $e unless $self->[EXIT_ON_DISRUPTION];
-        exit 255;
-    }
-}
-
-sub _reset {
-    my $self = shift;
-
-    return unless $self->pid != $$ || $self->tid != get_tid();
-
-    $self->[PID] = $$;
-    $self->[TID] = get_tid();
-    if (USE_THREADS || $self->[_USE_FORK]) {
-        $self->[_USE_FORK] = undef;
-        $self->use_fork;
-    }
-    $self->[STATE] = [[0, 0, undef, 1]];
-}
-
-sub CLONE {
-    for my $stream (_stack()) {
-        next unless defined $stream->pid;
-        next unless defined $stream->tid;
-
-        next if $$ == $stream->pid && get_tid() == $stream->tid;
-
-        $stream->[IN_SUBTHREAD] = 1;
-    }
-}
-
-sub DESTROY {
-    my $self = shift;
-
-    return if $self->in_subthread;
-
-    my $dir = $self->[_USE_FORK] || return;
-
-    return unless defined $self->pid;
-    return unless defined $self->tid;
-
-    return unless $$        == $self->pid;
-    return unless get_tid() == $self->tid;
-
-    if ($ENV{TEST_KEEP_TMP_DIR}) {
-        print STDERR "# Not removing temp dir: $dir\n";
-        return;
-    }
-
-    opendir(my $dh, $dir) || confess "Could not open temp dir! ($dir)";
-    while(my $file = readdir($dh)) {
-        next if $file =~ m/^\.+$/;
-        die "Unculled event! You ran tests in a child process, but never pulled them in!\n"
-            if $file !~ m/\.complete$/;
-        unlink("$dir/$file") || confess "Could not unlink file: '$dir/$file'";
-    }
-    closedir($dh);
-    rmdir($dir) || warn "Could not remove temp dir ($dir)";
-}
-
-sub STORABLE_freeze {
-    my ($self, $cloning) = @_;
-    return if $cloning;
-    return ($self);
-}
-
-sub STORABLE_thaw {
-    my ($self, $cloning, @vals) = @_;
-    return if $cloning;
-    return Test::Stream->shared;
-}
-
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream - A modern infrastructure for testing.
-
-=head1 SYNOPSYS
-
-    # Enables modern enhancements such as forking support and TAP encoding.
-    # Also turns off expensive legacy support.
-    use Test::Stream;
-    use Test::More;
-
-    # ... Tests ...
-
-    done_testing;
-
-=head1 FEATURES
-
-When you load Test::Stream inside your test file you prevent Test::More from
-turning on some expensive legacy support. You will also get warnings if your
-code, or any other code you load uses deprecated or discouraged practices.
-
-=head1 IMPORT ARGUMENTS
-
-Any import argument not recognised will be treated as an export, if it is not a
-valid export an exception will be thrown.
-
-=over 4
-
-=item '-internal'
-
-This argument, I<when given first>, will prevent the import process from
-turning on enhanced features. This is mainly for internal use (thus the name)
-in order to access/load Test::Stream.
-
-=item subtest_tap => 'none'
-
-Do not show events within subtests, just the subtest result itself.
-
-=item subtest_tap => 'instant'
-
-Show events as they happen (this is how legacy Test::More worked). This is the
-default.
-
-=item subtest_tap => 'delayed'
-
-Show events within subtest AFTER the subtest event itself is complete.
-
-=item subtest_tap => 'both'
-
-Show events as they happen, then also display them after.
-
-=item 'enable_fork'
-
-Turns on support for code that forks. This is not activated by default because
-it adds ~30ms to the Test::More compile-time, which can really add up in large
-test suites. Turn it on only when needed.
-
-=item 'utf8'
-
-Set the TAP encoding to utf8
-
-=item encoding => '...'
-
-Set the TAP encoding.
-
-=back
-
-=head1 EXPORTS
-
-=head2 DEFAULT EXPORTS
-
-=over 4
-
-=item tap_encoding( $ENCODING )
-
-Set the tap encoding from this point on.
-
-=item cull
-
-Bring in results from child processes/threads. This is automatically done
-whenever a context is obtained, but you may wish to do it on demand.
-
-=back
-
-=head2 CONSTANTS
-
-none of these are exported by default you must request them
-
-=over
-
-=item OUT_STD
-
-=item OUT_ERR
-
-=item OUT_TODO
-
-These are indexes of specific IO handles inside an IO set (each encoding has an
-IO set).
-
-=item STATE_COUNT
-
-=item STATE_FAILED
-
-=item STATE_PLAN
-
-=item STATE_PASSING
-
-=item STATE_LEGACY
-
-=item STATE_ENDED
-
-These are indexes into the STATE array present in the stream.
-
-=back
-
-=head1 THE STREAM STACK AND METHODS
-
-At any point there can be any number of streams. Most streams will be present
-in the stream stack. The stack is managed via a collection of class methods.
-You can always access the "current" or "central" stream using
-Test::Stream->shared. If you want your events to go where they are supposed to
-then you should always send them to the shared stream.
-
-It is important to note that any toogle, control, listener, munger, etc.
-applied to a stream will effect only that stream. Independant streams, streams
-down the stack, and streams added later will not get any settings from other
-stacks. Keep this in mind if you take it upon yourself to modify the stream
-stack.
-
-=head2 TOGGLES AND CONTROLS
-
-=over 4
-
-=item $stream->use_fork
-
-Turn on forking support (it cannot be turned off).
-
-=item $stream->set_subtest_tap_instant($bool)
-
-=item $bool = $stream->subtest_tap_instant
-
-Render subtest events as they happen.
-
-=item $stream->set_subtest_tap_delayed($bool)
-
-=item $bool = $stream->subtest_tap_delayed
-
-Render subtest events when printing the result of the subtest
-
-=item $stream->set_exit_on_disruption($bool)
-
-=item $bool = $stream->exit_on_disruption
-
-When true, skip_all and bailout will call exit. When false the bailout and
-skip_all events will be thrown as exceptions.
-
-=item $stream->set_use_tap($bool)
-
-=item $bool = $stream->use_tap
-
-Turn TAP rendering on or off.
-
-=item $stream->set_use_legacy($bool)
-
-=item $bool = $stream->use_legacy
-
-Turn legacy result storing on and off.
-
-=item $stream->set_use_numbers($bool)
-
-=item $bool = $stream->use_numbers
-
-Turn test numbers on and off.
-
-=item $stash = $stream->subtest_start($name, %params)
-
-=item $stash = $stream->subtest_stop($name)
-
-These will push/pop new states and subtest stashes.
-
-B<Using these directly is not recommended.> Also see the wrapper methods in
-L<Test::Stream::Context>.
-
-=back
-
-=head2 SENDING EVENTS
-
-    Test::Stream->shared->send($event)
-
-The C<send()> method is used to issue an event to the stream. This method will
-handle thread/fork sych, mungers, listeners, TAP output, etc.
-
-=head2 ALTERING EVENTS
-
-    Test::Stream->shared->munge(sub {
-        my ($stream, $event) = @_;
-
-        ... Modify the event object ...
-
-        # return is ignored.
-    });
-
-Mungers can never be removed once added. The return from a munger is ignored.
-Any changes you wish to make to the object must be done directly by altering
-it in place. The munger is called before the event is rendered as TAP, and
-AFTER the event has made any necessary state changes.
-
-=head2 LISTENING FOR EVENTS
-
-    Test::Stream->shared->listen(sub {
-        my ($stream, $event) = @_;
-
-        ... do whatever you want with the event ...
-
-        # return is ignored
-    });
-
-Listeners can never be removed once added. The return from a listener is
-ignored. Changing an event in a listener is not something you should ever do,
-though no protections are in place to prevent it (this may change!). The
-listeners are called AFTER the event has been rendered as TAP.
-
-=head2 POST-TEST BEHAVIORS
-
-    Test::Stream->shared->follow_up(sub {
-        my ($context) = @_;
-
-        ... do whatever you need to ...
-
-        # Return is ignored
-    });
-
-follow_up subs are called only once, when the stream recieves a finish event. There are 2 ways a finish event can occur:
-
-=over 4
-
-=item done_testing
-
-A finish event is generated when you call done_testing. The finish event occurs
-before the plan is output.
-
-=item EXIT MAGIC
-
-A finish event is generated when the Test::Stream END block is called, just
-before cleanup. This event will not happen if it was already geenerated by a
-call to done_testing.
-
-=back
-
-=head2 OTHER METHODS
-
-=over
-
-=item $stream->state
-
-Get the current state of the stream. The state is an array where specific
-indexes have specific meanings. These indexes are managed via constants.
-
-=item $stream->plan
-
-Get the plan event, if a plan has been issued.
-
-=item $stream->count
-
-Get the test count so far.
-
-=item $stream->failed
-
-Get the number of failed tests so far.
-
-=item $stream->ended
-
-Get the context in which the tests ended, if they have ended.
-
-=item $stream->legacy
-
-Used internally to store events for legacy support.
-
-=item $stream->is_passing
-
-Check if the test is passing its plan.
-
-=item $stream->done_testing($context, $max)
-
-Tell the stream we are done testing.
-
-=item $stream->fork_cull
-
-Gather events from other threads/processes.
-
-=back
-
-=head2 STACK METHODS AND INTERCEPTING EVENTS
-
-=over 4
-
-=item $stream = Test::Stream->shared
-
-Get the current shared stream. The shared stream is the stream at the top of
-the stack.
-
-=item Test::Stream->clear
-
-Completely remove the stream stack. It is very unlikely you will ever want to
-do this.
-
-=item ($new, $old) = Test::Stream->intercept_start($new)
-
-=item ($new, $old) = Test::Stream->intercept_start
-
-Push a new stream to the top of the stack. If you do not provide a stack a new
-one will be created for you. If you have one created for you it will have the
-following differences from a default stack:
-
-    $new->set_exit_on_disruption(0);
-    $new->set_use_tap(0);
-    $new->set_use_legacy(0);
-
-=item Test::Stream->intercept_stop($top)
-
-Pop the stack, you must pass in the instance you expect to be popped, there
-will be an exception if they do not match.
-
-=item Test::Stream->intercept(sub { ... })
-
-    Test::Stream->intercept(sub {
-        my ($new, $old) = @_;
-
-        ...
-    });
-
-Temporarily push a new stream to the top of the stack. The codeblock you pass
-in will be run. Once your codelbock returns the stack will be popped and
-restored to the previous state.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/API.pm b/cpan/Test-Simple/lib/Test/Stream/API.pm
deleted file mode 100644 (file)
index 0253081..0000000
+++ /dev/null
@@ -1,696 +0,0 @@
-package Test::Stream::API;
-use strict;
-use warnings;
-
-use Test::Stream::Tester qw/intercept/;
-use Test::Stream::Carp qw/croak confess/;
-use Test::Stream::Meta qw/is_tester init_tester/;
-use Test::Stream qw/cull tap_encoding OUT_STD OUT_ERR OUT_TODO/;
-
-use Test::Stream::Exporter qw/import exports export_to/;
-exports qw{
-    listen munge follow_up
-    enable_forking cull
-    peek_todo push_todo pop_todo set_todo inspect_todo
-    is_tester init_tester
-    is_modern set_modern
-    context peek_context clear_context set_context
-    intercept
-    state_count state_failed state_plan state_ended is_passing
-    current_stream
-
-    disable_tap enable_tap subtest_tap_instant subtest_tap_delayed tap_encoding
-    enable_numbers disable_numbers set_tap_outputs get_tap_outputs
-};
-Test::Stream::Exporter->cleanup();
-
-BEGIN {
-    require Test::Stream::Context;
-    Test::Stream::Context->import(qw/context inspect_todo/);
-    *peek_context  = \&Test::Stream::Context::peek;
-    *clear_context = \&Test::Stream::Context::clear;
-    *set_context   = \&Test::Stream::Context::set;
-    *push_todo     = \&Test::Stream::Context::push_todo;
-    *pop_todo      = \&Test::Stream::Context::pop_todo;
-    *peek_todo     = \&Test::Stream::Context::peek_todo;
-}
-
-sub listen(&)       { Test::Stream->shared->listen($_[0])      }
-sub munge(&)        { Test::Stream->shared->munge($_[0])       }
-sub follow_up(&)    { Test::Stream->shared->follow_up($_[0])   }
-sub enable_forking  { Test::Stream->shared->use_fork()         }
-sub disable_tap     { Test::Stream->shared->set_use_tap(0)     }
-sub enable_tap      { Test::Stream->shared->set_use_tap(1)     }
-sub enable_numbers  { Test::Stream->shared->set_use_numbers(1) }
-sub disable_numbers { Test::Stream->shared->set_use_numbers(0) }
-sub current_stream  { Test::Stream->shared()                   }
-sub state_count     { Test::Stream->shared->count()            }
-sub state_failed    { Test::Stream->shared->failed()           }
-sub state_plan      { Test::Stream->shared->plan()             }
-sub state_ended     { Test::Stream->shared->ended()            }
-sub is_passing      { Test::Stream->shared->is_passing         }
-
-sub subtest_tap_instant {
-    Test::Stream->shared->set_subtest_tap_instant(1);
-    Test::Stream->shared->set_subtest_tap_delayed(0);
-}
-
-sub subtest_tap_delayed {
-    Test::Stream->shared->set_subtest_tap_instant(0);
-    Test::Stream->shared->set_subtest_tap_delayed(1);
-}
-
-sub is_modern {
-    my ($package) = @_;
-    my $meta = is_tester($package) || croak "'$package' is not a tester package";
-    return $meta->modern ? 1 : 0;
-}
-
-sub set_modern {
-    my $package = shift;
-    croak "set_modern takes a package and a value" unless @_;
-    my $value = shift;
-    my $meta = is_tester($package) || croak "'$package' is not a tester package";
-    return $meta->set_modern($value);
-}
-
-sub set_todo {
-    my ($pkg, $why) = @_;
-    my $meta = is_tester($pkg) || croak "'$pkg' is not a tester package";
-    $meta->set_todo($why);
-}
-
-sub set_tap_outputs {
-    my %params = @_;
-    my $encoding = delete $params{encoding} || 'legacy';
-    my $std      = delete $params{std};
-    my $err      = delete $params{err};
-    my $todo     = delete $params{todo};
-
-    my @bad = keys %params;
-    croak "set_tap_output does not recognise these keys: " . join ", ", @bad
-        if @bad;
-
-    my $ioset = Test::Stream->shared->io_sets;
-    my $enc = $ioset->init_encoding($encoding);
-
-    $enc->[OUT_STD]  = $std  if $std;
-    $enc->[OUT_ERR]  = $err  if $err;
-    $enc->[OUT_TODO] = $todo if $todo;
-
-    return $enc;
-}
-
-sub get_tap_outputs {
-    my ($enc) = @_;
-    my $set = Test::Stream->shared->io_sets->init_encoding($enc || 'legacy');
-    return {
-        encoding => $enc || 'legacy',
-        std      => $set->[0],
-        err      => $set->[1],
-        todo     => $set->[2],
-    };
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::API - Single point of access to Test::Stream extendability
-features.
-
-=head1 DESCRIPTION
-
-There are times where you want to extend or alter the bahvior of a test file or
-test suite. This module collects all the features and tools that
-L<Test::Stream> offers for such actions. Everything in this file is accessible
-in other places, but with less sugar coating.
-
-=head1 SYNOPSYS
-
-Nothing is exported by default, you must request it.
-
-    use Test::Stream::API qw/ ... /;
-
-=head2 MODIFYING EVENTS
-
-    use Test::Stream::API qw/ munge /;
-
-    munge {
-        my ($stream, $event, @subevents) = @_;
-
-        if($event->isa('Test::Stream::Diag')) {
-            $event->set_message( "KILROY WAS HERE: " . $event->message );
-        }
-    };
-
-=head2 REPLACING TAP WITH ALTERNATIVE OUTPUT
-
-    use Test::Stream::API qw/ disable_tap listen /;
-
-    disable_tap();
-
-    listen {
-        my $stream = shift;
-        my ($event, @subevents) = @_;
-
-        # Tracking results in a db?
-        my $id = log_event_to_db($e);
-        log_subevent_to_db($id, $_) for @subevents;
-    }
-
-=head2 END OF TEST BEHAVIORS
-
-    use Test::Stream::API qw/ follow_up is_passing /;
-
-    follow_up {
-        my ($context) = @_;
-
-        if (is_passing()) {
-            print "KILROY Says the test file passed!\n";
-        }
-        else {
-            print "KILROY is not happy with you!\n";
-        }
-    };
-
-=head2 ENABLING FORKING SUPPORT
-
-    use Test::More;
-    use Test::Stream::API qw/ enable_forking /;
-
-    enable_forking();
-
-    # This all just works now!
-    my $pid = fork();
-    if ($pid) { # Parent
-        ok(1, "From Parent");
-    }
-    else { # child
-        ok(1, "From Child");
-        exit 0;
-    }
-
-    done_testing;
-
-B<Note:> Result order between processes is not guarenteed, but the test number
-is handled for you meaning you don't need to care.
-
-Results:
-
-    ok 1 - From Child
-    ok 2 - From Parent
-
-Or:
-
-    ok 1 - From Parent
-    ok 2 - From Child
-
-=head2 REDIRECTING TAP OUTPUT
-
-You may omit any arguments to leave a specific handle unchanged. It is not
-possible to set a handle to undef or 0 or any other false value.
-
-    use Test::Stream::API qw/ set_tap_outputs /;
-
-    set_tap_outputs(
-        encoding => 'legacy',           # Default,
-        std      => $STD_IO_HANDLE,     # equivilent to $TB->output()
-        err      => $ERR_IO_HANDLE,     # equivilent to $TB->failure_output()
-        todo     => $TODO_IO_HANDLE,    # equivilent to $TB->todo_output()
-    );
-
-B<Note:> Each encoding has independant filehandles.
-
-=head1 GENERATING EVENTS
-
-=head2 EASY WAY
-
-The best way to generate an event is through a L<Test::Stream::Context>
-object. All events have a method associated with them on the context object.
-The method will be the last part of the evene package name lowercased, for
-example L<Test::Stream::Event::Ok> can be issued via C<< $context->ok(...) >>.
-
-    use Test::Stream::API qw/ context /;
-    my $context = context();
-    $context->EVENT_TYPE(...);
-
-The arguments to the event method are the values for event accessors in order,
-excluding the C<context>, C<created>, and C<in_subtest> arguments. For instance
-here is how the Ok event is defined:
-
-    package Test::Stream::Event::Ok;
-    use Test::Stream::Event(
-        accessors  => [qw/real_bool name diag .../],
-        ...
-    );
-
-This means that the C<< $context->ok >> method takes up to 5 arguments. The
-first argument is a boolean true/false, the second is the name of the test, and
-the third is an arrayref of diagnostics messages or
-L<Test::Stream::Event::Diag> objects.
-
-    $context->ok($bool, $name, [$diag]);
-
-Here are the main event methods, as well as their standard arguments:
-
-=over 4
-
-=item $context->ok($bool, $name, \@diag)
-
-Issue an L<Test::Stream::Event::Ok> event.
-
-=item $context->diag($msg)
-
-Issue an L<Test::Stream::Event::Diag> event.
-
-=item $context->note($msg)
-
-Issue an L<Test::Stream::Event::Note> event.
-
-=item $context->plan($max, $directive, $reason)
-
-Issue an L<Test::Stream::Event::Plan> event. C<$max> is the number of expected
-tests. C<$directive> is a plan directive such as 'no_plan' or 'skip_all'.
-C<$reason> is the reason for the directive (only applicable to skip_all).
-
-=item $context->bail($reason)
-
-Issue an L<Test::Stream::Event::Bail> event.
-
-=back
-
-=head2 HARD WAY
-
-This is not recommended, but it demonstrates just how much the context shortcut
-methods do for you.
-
-    # First make a context
-    my $context = Test::Stream::Context->new_from_pairs(
-        frame     => ..., # Where to report errors
-        stream    => ..., # Test::Stream object to use
-        encoding  => ..., # encoding from test package meta-data
-        in_todo   => ..., # Are we in a todo?
-        todo      => ..., # Which todo message should be used?
-        modern    => ..., # Is the test package modern?
-        pid       => ..., # Current PID
-        skip      => ..., # Are we inside a 'skip' state?
-        provider  => ..., # What tool created the context?
-    );
-
-    # Make the event
-    my $ok = Test::Stream::Event::Ok->new_from_pairs(
-        # Should reflect where the event was produced, NOT WHERE ERRORS ARE REPORTED
-        created => [__PACKAGE__, __FILE__,              __LINE__],
-        context => $context,     # A context is required
-        in_subtest => 0,
-
-        bool => $bool,
-        name => $name,
-        diag => \@diag,
-    );
-
-    # Send the event to the stream.
-    Test::Stream->shared->send($ok);
-
-
-=head1 EXPORTED FUNCTIONS
-
-All of these are functions. These functions all effect the current-shared
-L<Test::Stream> object only.
-
-=head2 EVENT MANAGEMENT
-
-These let you install a callback that is triggered for all primary events. The
-first argument is the L<Test::Stream> object, the second is the primary
-L<Test::Stream::Event>, any additional arguments are subevents. All subevents
-are L<Test::Stream::Event> objects which are directly tied to the primary one.
-The main example of a subevent is the failure L<Test::Stream::Event::Diag>
-object associated with a failed L<Test::Stream::Event::Ok>, events within a
-subtest are another example.
-
-=over 4
-
-=item listen { my ($stream, $event, @subevents) = @_; ... }
-
-Listen callbacks happen just after TAP is rendered (or just after it would be
-rendered if TAP is disabled).
-
-=item munge { my ($stream, $event, @subevents) = @_; ... }
-
-Muinspect_todonge callbacks happen just before TAP is rendered (or just before
-it would be rendered if TAP is disabled).
-
-=back
-
-=head2 POST-TEST BEHAVIOR
-
-=over 4
-
-=item follow_up { my ($context) = @_; ... }
-
-A followup callback allows you to install behavior that happens either when
-C<done_testing()> is called, or when the test file completes.
-
-B<CAVEAT:> If done_testing is not used, the callback will happen in the
-C<END {...}> block used by L<Test::Stream> to enact magic at the end of the
-test.
-
-=back
-
-=head2 CONCURRENCY
-
-=over 4
-
-=item enable_forking()
-
-Turns forking support on. This turns on a synchronization method that *just
-works* when you fork inside a test. This must be turned on prior to any
-forking.
-
-=item cull()
-
-This can only be called in the main process or thread. This is a way to
-manually pull in results from other processes or threads. Typically this
-happens automatically, but this allows you to ensure results have been gathered
-by a specific point.
-
-=back
-
-=head2 CONTROL OVER TAP
-
-=over 4
-
-=item enable_tap()
-
-Turn TAP on (on by default).
-
-=item disable_tap()
-
-Turn TAP off.
-
-=item enable_numbers()
-
-Show test numbers when rendering TAP.
-
-=item disable_numbers()
-
-Do not show test numbers when rendering TAP.
-
-=item subtest_tap_instant()
-
-This is the default way to render subtests:
-
-    # Subtest: a_subtest
-        ok 1 - pass
-        1..1
-    ok 1 - a_subtest
-
-Using this will automatically turn off C<subtest_tap_delayed>
-
-=item subtest_tap_delayed()
-
-This is an alternative way to render subtests, this method waits until the
-subtest is complete then renders it in a structured way:
-
-    ok 1 - a_subtest {
-        ok 1 - pass
-        1..1
-    }
-
-Using this will automatically turn off C<subtest_tap_instant>
-
-=item tap_encoding($ENCODING)
-
-This lets you change the encoding for TAP output. This only effects the current
-test package.
-
-=item set_tap_outputs(encoding => 'legacy', std => $IO, err => $IO, todo => $IO)
-
-This lets you replace the filehandles used to output TAP for any specific
-encoding. All fields are optional, any handles not specified will not be
-changed. The C<encoding> parameter defaults to 'legacy'.
-
-B<Note:> The todo handle is used for failure output inside subtests where the
-subtest was started already in todo.
-
-=item $hashref = get_tap_outputs($encoding)
-
-'legacy' is used when encoding is not specified.
-
-Returns a hashref with the output handles:
-
-    {
-        encoding => $encoding,
-        std      => $STD_HANDLE,
-        err      => $ERR_HANDLE,
-        todo     => $TODO_HANDLE,
-    }
-
-B<Note:> The todo handle is used for failure output inside subtests where the
-subtest was started already in todo.
-
-=back
-
-=head2 TEST PACKAGE METADATA
-
-=over 4
-
-=item $bool = is_modern($package)
-
-Check if a test package has the 'modern' flag.
-
-B<Note:> Throws an exception if C<$package> is not already a test package.
-
-=item set_modern($package, $value)
-
-Turn on the modern flag for the specified test package.
-
-B<Note:> Throws an exception if C<$package> is not already a test package.
-
-=back
-
-=head2 TODO MANAGEMENT
-
-=over 4
-
-=item push_todo($todo)
-
-=item $todo = pop_todo()
-
-=item $todo = peek_todo()
-
-These can be used to manipulate a global C<todo> state. When a true value is at
-the top of the todo stack it will effect any events generated via an
-L<Test::Stream::Context> object. Typically all events are generated this way.
-
-=item set_todo($package, $todo)
-
-This lets you set the todo state for the specified test package. This will
-throw an exception if the package is not a test package.
-
-=item $todo_hashref = inspect_todo($package)
-
-=item $todo_hashref = inspect_todo()
-
-This lets you inspect the TODO state. Optionally you can specify a package to
-inspect. The return is a hashref with several keys:
-
-    {
-        TODO => $TODO_STACK_ARRAYREF,
-        TB   => $TEST_BUILDER_TODO_STATE,
-        META => $PACKAGE_METADATA_TODO_STATE,
-        PKG  => $package::TODO,
-    }
-
-This lets you see what todo states are set where. This is primarily useful when
-debugging to see why something is unexpectedly TODO, or when something is not
-TODO despite expectations.
-
-=back
-
-=head2 TEST PACKAGE MANAGEMENT
-
-=over 4
-
-=item $meta = is_tester($package)
-
-Check if a package is a tester, if it is the meta-object for the tester is
-returned.
-
-=item $meta = init_tester($package)
-
-Set the package as a tester and return the meta-object. If the package is
-already a tester it will return the existing meta-object.
-
-=back
-
-=head2 CONTEXTUAL INFORMATION
-
-=over 4
-
-=item $context = context()
-
-=item $context = context($add_level)
-
-This will get the correct L<Test::Stream::Context> object. This may be one that
-was previously initialized, or it may generate a new one. Read the
-L<Test::Stream::Context> documentation for more info.
-
-Note, C<context()> assumes you are at the lowest level of your tool, and looks
-at the current caller. If you need it to look further you can call it with a
-numeric argument which is added to the level. To clarify, calling C<context()>
-is the same as calling C<context(0)>.
-
-=item $stream = current_stream()
-
-This will return the current L<Test::Stream> Object. L<Test::Stream> objects
-typically live on a global stack, the topmost item on the stack is the one that
-is normally used.
-
-=back
-
-=head2 CAPTURING EVENTS
-
-=over 4
-
-=item $events_arrayref = intercept { ... };
-
-Any events generated inside the codeblock will be intercepted and returned. No
-events within the block will go to the real L<Test::Stream> instance.
-
-B<Note:> This comes from the L<Test::Stream::Tester> package which provides
-addiitonal tools that are useful for testing/validating events.
-
-=back
-
-=head2 TEST STATE
-
-=over 4
-
-=item $num = state_count()
-
-Check how many tests have been run.
-
-=item $num = state_failed()
-
-Check how many tests have failed.
-
-=item $plan_event = state_plan()
-
-Check if a plan has been issued, if so the L<Test::Stream::Event::Plan>
-instance will be returned.
-
-=item $bool = state_ended()
-
-True if the test is complete (after done_testing).
-
-=item $bool = is_passing()
-
-Check if the test state is passing.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Architecture.pod b/cpan/Test-Simple/lib/Test/Stream/Architecture.pod
deleted file mode 100644 (file)
index 84aec12..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Architecture - overview of how the Test-More dist works.
-
-=head1 DESCRIPTION
-
-This document explains the Test::More architecture from top to bottom.
-
-=head1 KEY COMPONENTS
-
-This is the list of primary components and their brief description, the most
-critical ones will have more details in later sections.
-
-=over 4
-
-=item Test::More
-
-=item Test::Simple
-
-These contain the public subroutines for anyone who wishes to write tests.
-
-=item Test::More::Tools
-
-All of the tools that L<Test::More> provided have been relocated into
-L<Test::More::Tools> and refactored to make them generic and reusable.
-
-This means you can use them without inadvertently firing off events. In many
-cases this is what tool builders actually want but instead they settle for
-bumping C<$Level> and calling is(), like(), or ok() and producing extra
-events.
-
-=item Test::Builder
-
-This was the B<old> under-the-hood module for anyone who wished to write
-a L<Test::More>-compatible test library. It still works and should be fully
-functional and backwards compatible. It is, however, discouraged as it is
-mostly a compatibility wrapper.
-
-=item Test::Stream
-
-This is the B<new> heart and soul of the Test::* architecture. It is not the
-primary interface that a unit-test author will use. This module is responsible
-for collecting all events from all threads and processes and then forwarding
-them to TAP and any other added listeners.
-
-=item Test::Stream::IOSets
-
-This manages the IO handles to which all TAP is sent.
-
-In the old days, L<Test::Builder> cloned STDERR and STDOUT and applied various
-magic to them.
-
-This module provides that legacy support while also adding support for L<utf8>
-and other encodings. By default, all TAP goes to the 'legacy' outputs, which
-mimick what Test::Builder has always done. The 'legacy' outputs are also
-what get altered if someone uses the C<Test::Builder-E<gt>output> interface.
-
-=item Test::Stream::Toolset
-
-This is the primary interface a test module author should use. It ties together
-some key functions you should use. It provides 3 critical functions:
-
-    is_tester($package)
-
-    init_tester($package)
-
-    my $ctx = context();
-
-=item Test::Stream::Context
-
-A context is used to generate events in test functions.
-
-Once a context object is created (the normal way) it is remembered and
-anything that requests a context object will obtain the same instance.
-
-After the context instance is destroyed (at end of your test function) it is
-forgotten. The next test function to run must obtain a new context instance.
-
-=item Test::Stream::Event
-
-=item Test::Stream::Event::Ok
-
-=item Test::Stream::Event::Diag
-
-=item Test::Stream::Event::Note
-
-=item Test::Stream::Event::*
-
-All events generated by L<Test::More> and other test tools now boil down to a
-proper object. All event subclasses must use L<Test::Stream::Event> as a base.
-
-=item Test::Stream::ArrayBase
-
-This is the L<Moose> of L<Test::Stream>. It is responsible for generating
-accessors and similar work. Unlike Moose, it uses an arrayref as the
-underlying object to improve performance. Performance was a real problem in
-some early alphas and the speed gains from this decision are huge.
-
-=item Test::Stream::Tester
-
-This module can validate testing tools and their events.
-
-=back
-
-=head1 THE STREAM OBJECT
-
-=over 4
-
-=item L<Test::Stream>
-
-=back
-
-=head2 HISTORY
-
-L<Test::Builder> was (and still is) a singleton. The singleton model was
-chosen to solve the problem of synchronizing everything to a central location.
-Ultimately, all test results needed to make their way to a central place that
-could assign each test a number and create output in the correct order.
-
-The singleton model proved to be a major headache.
-
-Intercepting events typically meant replacing the singleton permanently
-(L<Test::Tester>) or for a limited scope. Another option people took
-(L<Test::Builder::Tester>) was to simply replace the IO handles
-Test::Builder was tracking.
-
-Test::Builder did not provide any real mechanisms for altering events
-before processing them, or for intercepting them before they were turned into
-TAP. As a result many modules have monkeypatched Test::Builder, particularily
-the C<ok()> method.
-
-=head2 CURRENT DESIGN
-
-L<Test::Stream> unfortunately must still act as a singleton (mostly). This
-time, the design put as little logic as possible into the singleton.
-
-=head3 RESPONSIBILITIES OF TEST::STREAM
-
-Test::Stream has 4 main jobs:
-
-=over 4
-
-=item Collect events from all threads and processes into 1 place
-
-    $stream->send($event);
-
-The send() method will ensure that the event gets to the right place, no
-matter which thread or process your code is in. (Forking support must be turned
-on. It is off by default).
-
-B<Note:> This method is key to performance. C<send()> and everything it calls
-must remain as lean and tight as possible.
-
-=item Provide a pre-output hook to alter events
-
-    $stream->munge(sub { my ($stream, $event) = @_; ... })
-
-C<munge()> lets you modify events before they are turned into output. It cannot
-remove the event, nor can it add events. Mungers are additive and proceessed
-in the order they are added.
-
-There is not currently any way to remove a munger.
-
-B<Note:> each munger is called in a loop in the C<send()> method, so keep them
-as fast and small as possible.
-
-=item Forward all events to all listeners (including TAP output)
-
-    $stream->listen(sub { my ($stream, $event) = @_; .... })
-
-C<listen()> adds a listener. All events that come from the stream object will
-be sent to all listeners.
-
-There is not currently any way to remove a listener.
-
-B<Note:> each listener is called in a loop in the C<send()> method, so keep
-them as fast and small as possible.
-
-=item Maintaining the legacy exit behavior from Test::Builder
-
-This is sets C<$?> to the number of tests that failed (up to 255). It also
-provides some other output such as when a test file is missing a plan.
-
-=back
-
-=head3 SEMI-SINGLETON MODEL
-
-L<Test::Stream> has a semi-singleton model. Instead of 1 singleton, it has a
-singleton stack. Anything that wants to send an event to the B<current> acting
-stream should send it to the stream returned by C<Test::Stream-E<gt>shared>.
-Nothing should ever cache this result as the B<current> stream may change.
-
-This mechanism is primarily used for intercepting and hiding all events for a
-limited scope. L<Test::Stream::Tester> uses this to push a stream onto the
-stack so that events can be generated that do not go to the listeners or TAP.
-Once the stack is popped, the previous stream is restored, which allows real
-events to be generated.
-
-You can also create new Test::Stream objects at-will that are not present in
-the stack. This lets you create alternate streams for any purpose you want.
-
-=head1 THE CONTEXT OBJECT
-
-=over 4
-
-=item L<Test::Stream::Context>
-
-=back
-
-This module is responsible for 2 things: knowing where to report errors and
-making it easy to issue events.
-
-=head2 ERROR REPORTING
-
-Use the C<context()> function to get the current context.
-
-    sub ok {
-        my $context = context();
-        ...
-    }
-
-    ok() # Errors are reported here.
-
-If there is a context already in play, that instance will be returned.
-Otherwise, a new context will be returned.
-
-The context assumes that the stack level just above your call is where errors
-should be reported.
-
-You can optionally provide an integer as the only argument, in which case that
-number will be added to the C<caller()> call to find the correct frame for
-reporting.
-
-B<Note:> The integer argument will be completely ignored if there is already
-an active context.
-
-    sub ok {
-        my $context = context();
-        ...
-    }
-
-    sub my_ok {
-        my $context = context();
-        ok(...);
-    }
-
-    my_ok();
-
-In the example above, c<my_ok()> generates a new context and then it calls
-C<ok()>. In this case, both functions will have the same context object (the
-one generated by C<my_ok()>). The result is that C<ok> will report errors to
-the correct place.
-
-=head3 IMPLEMENTATION
-
-There is a lexical variable C<$CURRENT> in C<Test::Stream::Context> that can
-not be directly touched. When the C<context()> function is called, it first
-checks if $CURRENT is set, and if so, returns that. If there is no current
-context, it generates a new one.
-
-When a new context is generated, it is assigned to C<$CURRENT>, but then the
-reference is weakened. This means that once the returned copy falls out of
-scope, or is otherwise removed, C<$CURRENT> will vanish on its own. This means
-that so long as you hold on to your context object, anything you call will find
-it.
-
-B<The caveat> here is that if you decide to hold on to your context beyond
-your scope, you could sabatoge any future test functions. If you need to hold
-on to a context you need to call C<$context-E<gt>snapshot>, and store the
-cloned object it returns. In general you should not need to do this. Event
-objects all store the context but do so using a snapshot.
-
-B<Note> I am open to changing this to remove the weak-reference magic and
-instead require someone to call C<$context-E<gt>release> or similar when they
-are done with a context but that seems more likely to result in rogue
-contexts. This method would also require its own form of reference counting.
-This decision will need to be made before we go stable.
-
-=head2 GENERATING EVENTS
-
-All event subclasses should use L<Test::Stream::Event> to set them up as
-proper event objects. They should also add a method to
-L<Test::Stream::Context> to be used as a shortcut for generating that event
-type. That will let you can fire off an event directly from your context
-object using the lowercase name of the event class.
-
-    my $ctx = context;
-    $ctx->ok(1, "pass");
-    $ctx->ok(0, "fail, ["This test failed, here is some diag ..."]);
-    $ctx->note("I am a teapot");
-
-All events take a context and 2 other arguments as the first 3 arguments of
-their constructor, these shortcut methods handle those first 3 arguments for
-you, making life much easier.
-
-The other arguments are:
-
-=over 4
-
-=item created
-
-an arrayref with caller information for where the event was generated.
-
-=item in_subtest
-
-True if the event belongs in a subtest, false otherwise.
-
-=back
-
-=head1 EVENT OBJECTS
-
-Here are the primary public events. There are other events, but they are used
-internally.
-
-=over 4
-
-=item L<Test::Stream::Event>
-
-This is just a base class. Do not use it directly.
-
-=item L<Test::Stream::Event::Diag>
-
-=item L<Test::Stream::Event::Note>
-
-=item L<Test::Stream::Event::Plan>
-
-=item L<Test::Stream::Event::Bail>
-
-These are fairly simple and obvious event types.
-
-=item L<Test::Stream::Event::Ok>
-
-=item L<Test::Stream::Event::Subtest>
-
-B<Note:> C<Subtest> is a subclass of C<Ok>.
-
-C<Ok> can contain diag objects related to that specific ok. C<Subtest>
-contains all the events that went into the final subtest result.
-
-=back
-
-All events have the context in which they were created, which includes the
-file and line number where errors should be reported. They also have details
-on where and how they were generated. All other details are event-specific.
-
-The subclass event should never be generated on its own. In fact, just use the
-subtest helpers provided by L<Test::More>, or L<Test::Stream::Context>. Under
-the hood, a L<Child> event is started which adds a subtest to a stack in
-Test::Stream, and then all events get intercepted by that subtest. When the
-subtest is done, issue another Child event to close it out. Once closed, a
-Subtest event will be generated for you and sent to the stream.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/ArrayBase.pm b/cpan/Test-Simple/lib/Test/Stream/ArrayBase.pm
deleted file mode 100644 (file)
index 6ac75de..0000000
+++ /dev/null
@@ -1,373 +0,0 @@
-package Test::Stream::ArrayBase;
-use strict;
-use warnings;
-
-use Test::Stream::ArrayBase::Meta;
-use Test::Stream::Carp qw/confess croak/;
-use Scalar::Util qw/blessed reftype/;
-
-use Test::Stream::Exporter();
-
-sub import {
-    my $class = shift;
-    my $caller = caller;
-
-    $class->apply_to($caller, @_);
-}
-
-sub apply_to {
-    my $class = shift;
-    my ($caller, %args) = @_;
-
-    # Make the calling class an exporter.
-    my $exp_meta = Test::Stream::Exporter::Meta->new($caller);
-    Test::Stream::Exporter->export_to($caller, 'import')
-        unless $args{no_import};
-
-    my $ab_meta = Test::Stream::ArrayBase::Meta->new($caller);
-
-    my $ISA = do { no strict 'refs'; \@{"$caller\::ISA"} };
-
-    if ($args{base}) {
-        my ($base) = grep { $_->isa($class) } @$ISA;
-
-        croak "$caller is already a subclass of '$base', cannot subclass $args{base}"
-            if $base;
-
-        my $file = $args{base};
-        $file =~ s{::}{/}g;
-        $file .= ".pm";
-        require $file unless $INC{$file};
-
-        my $pmeta = Test::Stream::ArrayBase::Meta->get($args{base});
-        croak "Base class '$args{base}' is not a subclass of $class!"
-            unless $pmeta;
-
-        push @$ISA => $args{base};
-
-        $ab_meta->subclass($args{base});
-    }
-    elsif( !grep { $_->isa($class) } @$ISA) {
-        push @$ISA => $class;
-        $ab_meta->baseclass();
-    }
-
-    $ab_meta->add_accessors(@{$args{accessors}})
-        if $args{accessors};
-}
-
-sub new {
-    my $class = shift;
-    my $self = bless [@_], $class;
-    $self->init if $self->can('init');
-    return $self;
-}
-
-sub new_from_pairs {
-    my $class = shift;
-    my %params = @_;
-    my $self = bless [], $class;
-
-    while (my ($k, $v) = each %params) {
-        my $const = uc($k);
-        croak "$class has no accessor named '$k'" unless $class->can($const);
-        my $id = $class->$const;
-        $self->[$id] = $v;
-    }
-
-    $self->init if $self->can('init');
-    return $self;
-}
-
-sub to_hash {
-    my $array_obj = shift;
-    my $meta = Test::Stream::ArrayBase::Meta->get(blessed $array_obj);
-    my $fields = $meta->fields;
-    my %out;
-    for my $f (keys %$fields) {
-        my $i = $fields->{$f};
-        my $val = $array_obj->[$i];
-        my $ao = blessed($val) && $val->isa(__PACKAGE__);
-        $out{$f} = $ao ? $val->to_hash : $val;
-    }
-    return \%out;
-};
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::ArrayBase - Base class for classes that use an arrayref instead
-of a hash.
-
-=head1 SYNOPSYS
-
-A class:
-
-    package My::Class;
-    use strict;
-    use warnings;
-
-    use Test::Stream::ArrayBase accessors => [qw/foo bar baz/];
-
-    # Chance to initialize defaults
-    sub init {
-        my $self = shift;    # No other args
-        $self->[FOO] ||= "foo";
-        $self->[BAR] ||= "bar";
-        $self->[BAZ] ||= "baz";
-    }
-
-    sub print {
-        print join ", " => map { $self->[$_] } FOO, BAR, BAZ;
-    }
-
-Subclass it
-
-    package My::Subclass;
-    use strict;
-    use warnings;
-    use Test::Stream::ArrayBase base => 'My::Class',    # subclass
-        accessors                    => ['bat'];
-
-    sub init {
-        my $self = shift;
-
-        # We get the constants from the base class for free.
-        $self->[FOO] ||= 'SubFoo';
-        $self->[BAT] || = 'bat';
-
-        $self->SUPER::init();
-    }
-
-use it:
-
-    package main;
-    use strict;
-    use warnings;
-    use My::Class;
-
-    my $one = My::Class->new('MyFoo', 'MyBar');
-
-    # Accessors!
-    my $foo = $one->foo;    # 'MyFoo'
-    my $bar = $one->bar;    # 'MyBar'
-    my $baz = $one->baz;    # Defaulted to: 'baz'
-
-    # Setters!
-    $one->set_foo('A Foo');
-    $one->set_bar('A Bar');
-    $one->set_baz('A Baz');
-
-    # It is an arrayref, you can do this!
-    my ($foo, $bar, $baz) = @$one;
-
-    # import constants:
-    use My::Class qw/FOO BAR BAZ/;
-
-    $one->[FOO] = 'xxx';
-
-=head1 DESCRIPTION
-
-This package is used to generate classes based on arrays instead of hashes. The
-primary motivation for this is performance (not premature!). Using this class
-will give you a C<new()> method, as well as generating accessors you request.
-Generated accessors will be getters, C<set_ACCESSOR> setters will also be
-generated for you. You also get constants for each accessor (all caps) which
-return the index into the array for that accessor. Single inheritence is also
-supported. For obvious reasons you cannot use multiple inheritence with an
-array based object.
-
-=head1 METHODS
-
-=head2 PROVIDED BY ARRAY BASE
-
-=over 4
-
-=item $it = $class->new(@VALUES)
-
-Create a new instance from a list of ordered values.
-
-=item $it = $class->new_from_pairs(%ACCESSOR_VAL_PAIRS)
-
-Create a new instance using key/value pairs.
-
-=item $hr = $it->to_hash()
-
-Get a hashref dump of the object. This will also dump any ArrayBase objects
-within to a hash, but only surface-depth ones.
-
-=item $it->import()
-
-This import method is actually provided by L<Test::Stream::Exporter> and allows
-you to import the constants generated for you.
-
-=back
-
-=head2 HOOKS
-
-=over 4
-
-=item $self->init()
-
-This gives you the chance to set some default values to your fields. The only
-argument is C<$self> with its indexes already set from the constructor.
-
-=back
-
-=head1 ACCESSORS
-
-To generate accessors you list them when using the module:
-
-    use Test::Stream::ArrayBase accessors => [qw/foo/];
-
-This will generate the following subs in your namespace:
-
-=over 4
-
-=item import()
-
-This will let you import the constants
-
-=item foo()
-
-Getter, used to get the value of the C<foo> field.
-
-=item set_foo()
-
-Setter, used to set the value of the C<foo> field.
-
-=item FOO()
-
-Constant, returs the field C<foo>'s index into the class arrayref. This
-function is also exported, but only when requested. Subclasses will also get
-this function as a constant, not simply a method, that means it is copied into
-the subclass namespace.
-
-=back
-
-=head1 SUBCLASSING
-
-You can subclass an existing ArrayBase class.
-
-    use Test::Stream::ArrayBase
-        base      => 'Another::ArrayBase::Class',
-        accessors => [qw/foo bar baz/],
-
-Once an ArrayBase class is used as a subclass it is locked and no new fields
-can be added. All fields in any subclass will start at the next index after the
-last field of the parent. All constants from base classes are added to
-subclasses automatically.
-
-=head1 WHY?
-
-Switching to an arrayref base has resulted in significant performance boosts.
-
-When Test::Builder was initially refactored to support events, it was slow
-beyond reason. A large part of the slowdown was due to the use of proper
-methods instead of directly accessing elements. We also switched to using a LOT
-more objects that have methods.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/ArrayBase/Meta.pm b/cpan/Test-Simple/lib/Test/Stream/ArrayBase/Meta.pm
deleted file mode 100644 (file)
index 159807c..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-package Test::Stream::ArrayBase::Meta;
-use strict;
-use warnings;
-
-use Test::Stream::Carp qw/confess/;
-
-my %META;
-
-sub package {     shift->{package}   }
-sub parent  {     shift->{parent}    }
-sub locked  {     shift->{locked}    }
-sub fields  {({ %{shift->{fields}} })}
-
-sub new {
-    my $class = shift;
-    my ($pkg) = @_;
-
-    $META{$pkg} ||= bless {
-        package => $pkg,
-        locked  => 0,
-    }, $class;
-
-    return $META{$pkg};
-}
-
-sub get {
-    my $class = shift;
-    my ($pkg) = @_;
-
-    return $META{$pkg};
-}
-
-sub baseclass {
-    my $self = shift;
-    $self->{parent} = 'Test::Stream::ArrayBase';
-    $self->{index}  = 0;
-    $self->{fields} = {};
-}
-
-sub subclass {
-    my $self = shift;
-    my ($parent) = @_;
-    confess "Already a subclass of $self->{parent}! Tried to sublcass $parent" if $self->{parent};
-
-    my $pmeta = $self->get($parent) || die "$parent is not an ArrayBase object!";
-    $pmeta->{locked} = 1;
-
-    $self->{parent} = $parent;
-    $self->{index}  = $pmeta->{index};
-    $self->{fields} = $pmeta->fields; #Makes a copy
-
-    my $ex_meta = Test::Stream::Exporter::Meta->get($self->{package});
-
-    # Put parent constants into the subclass
-    for my $field (keys %{$self->{fields}}) {
-        my $const = uc $field;
-        no strict 'refs';
-        *{"$self->{package}\::$const"} = $parent->can($const) || confess "Could not find constant '$const'!";
-        $ex_meta->add($const);
-    }
-}
-
-my $IDX = -1;
-my (@CONST, @GET, @SET);
-_GROW(20);
-
-sub _GROW {
-    my ($max) = @_;
-    return if $max <= $IDX;
-    for (($IDX + 1) .. $max) {
-        # Var per sub for inlining/constant stuff.
-        my $c  = $_;
-        my $gi = $_;
-        my $si = $_;
-
-        $CONST[$_] = sub() { $c };
-        $GET[$_]   = sub   { $_[0]->[$gi] };
-        $SET[$_]   = sub { $_[0]->[$si] = $_[1] };
-    }
-    $IDX = $max;
-}
-
-*add_accessor = \&add_accessors;
-sub add_accessors {
-    my $self = shift;
-
-    confess "Cannot add accessor, metadata is locked due to a subclass being initialized ($self->{parent}).\n"
-        if $self->{locked};
-
-    my $ex_meta = Test::Stream::Exporter::Meta->get($self->{package});
-
-    for my $name (@_) {
-        confess "field '$name' already defined!"
-            if exists $self->{fields}->{$name};
-
-        my $idx = $self->{index}++;
-        $self->{fields}->{$name} = $idx;
-
-        _GROW($IDX + 10) if $idx > $IDX;
-
-        my $const = uc $name;
-        my $gname = lc $name;
-        my $sname = "set_$gname";
-
-        {
-            no strict 'refs';
-            *{"$self->{package}\::$const"} = $CONST[$idx];
-            *{"$self->{package}\::$gname"} = $GET[$idx];
-            *{"$self->{package}\::$sname"} = $SET[$idx];
-        }
-
-        $ex_meta->{exports}->{$const} = $CONST[$idx];
-        push @{$ex_meta->{polist}} => $const;
-    }
-}
-
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::ArrayBase::Meta - Meta Object for ArrayBase objects.
-
-=head1 SYNOPSYS
-
-B<Note:> You probably do not want to directly use this object.
-
-    my $meta = Test::Stream::ArrayBase::Meta->new('Some::Class');
-    $meta->add_accessor('foo');
-
-=head1 DESCRIPTION
-
-This is the meta-object used by L<Test::Stream::ArrayBase>
-
-=head1 METHODS
-
-=over 4
-
-=item $meta = $class->new($package)
-
-Create a new meta object for the specified class. If one already exists that
-instance is returned.
-
-=item $meta = $class->get($package)
-
-Get the meta object for the specified class. Returns C<undef> if there is none
-initiated.
-
-=item $package = $meta->package
-
-Get the package the meta-object manages.
-
-=item $package = $meta->parent
-
-Get the parent package to the one being managed.
-
-=item $bool = $meta->locked
-
-True if the package has been locked. Locked means no new accessors can be
-added. A package is locked once something else subclasses it.
-
-=item $hr = $meta->fields
-
-Get a hashref defining the fields on the package. This is primarily for
-internal use, it is not very useful outside.
-
-=item $meta->baseclass
-
-Make the package inherit from ArrayBase directly.
-
-=item $meta->subclass($package)
-
-Set C<$package> as the base class of the managed package.
-
-=item $meta->add_accessor($name)
-
-Add an accessor to the package. Also defines the C<"set_$name"> method, and the
-C<uc($name)> constant.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Block.pm b/cpan/Test-Simple/lib/Test/Stream/Block.pm
deleted file mode 100644 (file)
index 7f6bd68..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-package Test::Stream::Block;
-use strict;
-use warnings;
-
-use Scalar::Util qw/blessed reftype/;
-use Test::Stream::Carp qw/confess carp/;
-
-use Test::Stream::ArrayBase(
-    accessors => [qw/name coderef params caller deduced _start_line _end_line/],
-);
-
-our %SUB_MAPS;
-
-sub PACKAGE() { 0 };
-sub FILE()    { 1 };
-sub LINE()    { 2 };
-sub SUBNAME() { 3 };
-
-sub init {
-    my $self = shift;
-
-    confess "coderef is a mandatory field for " . blessed($self) . " instances"
-        unless $self->[CODEREF];
-
-    confess "caller is a mandatory field for " . blessed($self) . " instances"
-        unless $self->[CALLER];
-
-    confess "coderef must be a code reference"
-        unless ref($self->[CODEREF]) && reftype($self->[CODEREF]) eq 'CODE';
-
-    $self->deduce;
-
-    $self->[PARAMS] ||= {};
-}
-
-sub deduce {
-    my $self = shift;
-
-    eval { require B; 1 } || return;
-
-    my $code    = $self->[CODEREF];
-    my $cobj    = B::svref_2object($code);
-    my $pkg     = $cobj->GV->STASH->NAME;
-    my $file    = $cobj->FILE;
-    my $line    = $cobj->START->line;
-    my $subname = $cobj->GV->NAME;
-
-    $SUB_MAPS{$file}->{$line} = $self->[NAME];
-
-    $self->[DEDUCED] = [$pkg, $file, $line, $subname];
-    $self->[NAME] ||= $subname;
-}
-
-sub merge_params {
-    my $self = shift;
-    my ($new) = @_;
-    my $old = $self->[PARAMS];
-
-    # Use existing ref, merge in new ones, but old ones are kept since the
-    # block can override the workflow.
-    %$old = ( %$new, %$old );
-}
-
-sub package { $_[0]->[DEDUCED]->[PACKAGE] }
-sub file    { $_[0]->[DEDUCED]->[FILE]    }
-sub subname { $_[0]->[DEDUCED]->[SUBNAME] }
-
-sub run {
-    my $self = shift;
-    my @args = @_;
-
-    $self->[CODEREF]->(@args);
-}
-
-sub detail {
-    my $self = shift;
-
-    my $name = $self->[NAME];
-    my $file = $self->file;
-
-    my $start = $self->start_line;
-    my $end   = $self->end_line;
-
-    my $lines;
-    if ($end && $end != $start) {
-        $lines = "lines $start -> $end";
-    }
-    elsif ($end) {
-        $lines = "line $start";
-    }
-    else {
-        my ($dpkg, $dfile, $dline) = @{$self->caller};
-        $lines = "line $start (declared in $dfile line $dline)";
-    }
-
-    my $known = "";
-    if ($self->[DEDUCED]->[SUBNAME] ne '__ANON__') {
-        $known = " (" . $self->[DEDUCED]->[SUBNAME] . ")";
-    }
-
-    return "${name}${known} in ${file} ${lines}";
-}
-
-sub start_line {
-    my $self = shift;
-    return $self->[_START_LINE] if $self->[_START_LINE];
-
-    my $start = $self->[DEDUCED]->[LINE];
-    my $end   = $self->end_line || 0;
-
-    if ($start == $end || $start == 1) {
-        $self->[_START_LINE] = $start;
-    }
-    else {
-        $self->[_START_LINE] = $start - 1;
-    }
-
-    return $self->[_START_LINE];
-}
-
-sub end_line {
-    my $self = shift;
-    return $self->[_END_LINE] if $self->[_END_LINE];
-
-    my $call = $self->[CALLER];
-    my $dedu = $self->[DEDUCED];
-
-    _map_package_file($dedu->[PACKAGE], $dedu->[FILE]);
-
-    # Check if caller and deduced seem to be from the same place.
-    my $match = $call->[PACKAGE] eq $dedu->[PACKAGE];
-    $match &&= $call->[FILE] eq $dedu->[FILE];
-    $match &&= $call->[LINE] >= $dedu->[LINE];
-    $match &&= !_check_interrupt($dedu->[FILE], $dedu->[LINE], $call->[LINE]);
-
-    if ($match) {
-        $self->[_END_LINE] = $call->[LINE];
-        return $call->[LINE];
-    }
-
-    # Uhg, see if we can figure it out.
-    my @lines = sort { $a <=> $b } keys %{$SUB_MAPS{$dedu->[FILE]}};
-    for my $line (@lines) {
-        next if $line <= $dedu->[LINE];
-        $self->[_END_LINE] = $line;
-        $self->[_END_LINE] -= 2 unless $SUB_MAPS{$dedu->[FILE]}->{$line} eq '__EOF__';
-        return $self->[_END_LINE];
-    }
-
-    return undef;
-}
-
-sub _check_interrupt {
-    my ($file, $start, $end) = @_;
-    return 0 if $start == $end;
-
-    my @lines = sort { $a <=> $b } keys %{$SUB_MAPS{$file}};
-
-    for my $line (@lines) {
-        next if $line <= $start;
-        return $line <= $end;
-    }
-
-    return 0;
-}
-
-my %MAPPED;
-sub _map_package_file {
-    my ($pkg, $file) = @_;
-
-    return if $MAPPED{$pkg}->{$file}++;
-
-    require B;
-
-    my %seen;
-    my @symbols = do { no strict 'refs'; %{"$pkg\::"} };
-    for my $sym (@symbols) {
-        my $code = $pkg->can($sym) || next;
-        next if $seen{$code}++;
-
-        my $cobj = B::svref_2object($code);
-
-        # Skip imported subs
-        my $pname = $cobj->GV->STASH->NAME;
-        next unless $pname eq $pkg;
-
-        my $f = $cobj->FILE;
-        next unless $f eq $file;
-
-        # Skip XS/C Files
-        next if $file =~ m/\.c$/;
-        next if $file =~ m/\.xs$/;
-
-        my $line = $cobj->START->line;
-        $SUB_MAPS{$file}->{$line} ||= $sym;
-    }
-
-    if (open(my $fh, '<', $file)) {
-        my $length = () = <$fh>;
-        close($fh);
-        $SUB_MAPS{$file}->{$length} = '__EOF__';
-    }
-}
-
-1;
diff --git a/cpan/Test-Simple/lib/Test/Stream/Carp.pm b/cpan/Test-Simple/lib/Test/Stream/Carp.pm
deleted file mode 100644 (file)
index 6ec6a15..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-package Test::Stream::Carp;
-use strict;
-use warnings;
-
-use Test::Stream::Exporter;
-
-export croak   => sub { require Carp; goto &Carp::croak };
-export confess => sub { require Carp; goto &Carp::confess };
-export cluck   => sub { require Carp; goto &Carp::cluck };
-export carp    => sub { require Carp; goto &Carp::carp };
-
-Test::Stream::Exporter->cleanup;
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Carp - Delayed Carp loader.
-
-=head1 DESCRIPTION
-
-Use this package instead of L<Carp> to avoid loading L<Carp> until absolutely
-necessary. This is used instead of Carp in L<Test::Stream> in order to avoid
-loading modules that packages you test may need to load themselves.
-
-=head1 SUPPORTED EXPORTS
-
-See L<Carp> for details on each of these functions.
-
-=over 4
-
-=item croak
-
-=item confess
-
-=item cluck
-
-=item carp
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Context.pm b/cpan/Test-Simple/lib/Test/Stream/Context.pm
deleted file mode 100644 (file)
index b4215db..0000000
+++ /dev/null
@@ -1,731 +0,0 @@
-package Test::Stream::Context;
-use strict;
-use warnings;
-
-use Scalar::Util qw/blessed weaken/;
-
-use Test::Stream::Carp qw/confess/;
-
-use Test::Stream::Threads;
-use Test::Stream::Event();
-use Test::Stream::Util qw/try translate_filename/;
-use Test::Stream::Meta qw/init_tester is_tester/;
-
-use Test::Stream::ArrayBase(
-    accessors => [qw/frame stream encoding in_todo todo modern pid skip diag_todo provider monkeypatch_stash/],
-);
-
-use Test::Stream::Exporter qw/import export_to default_exports exports/;
-default_exports qw/context/;
-exports qw/inspect_todo/;
-Test::Stream::Exporter->cleanup();
-
-{
-    no warnings 'once';
-    $Test::Builder::Level ||= 1;
-}
-
-my @TODO;
-my $CURRENT;
-
-sub from_end_block { 0 };
-
-sub init {
-    $_[0]->[FRAME]    ||= _find_context(1);                # +1 for call to init
-    $_[0]->[STREAM]   ||= Test::Stream->shared;
-    $_[0]->[ENCODING] ||= 'legacy';
-    $_[0]->[PID]      ||= $$;
-}
-
-sub peek  { $CURRENT }
-sub clear { $CURRENT = undef }
-
-sub push_todo { push @TODO => pop @_ }
-sub pop_todo  { pop  @TODO           }
-sub peek_todo { @TODO ? $TODO[-1] : undef }
-
-sub set {
-    $CURRENT = pop;
-    weaken($CURRENT);
-}
-
-my $WARNED;
-sub context {
-    my ($level, $stream) = @_;
-    # If the context has already been initialized we simply return it, we
-    # ignore any additional parameters as they no longer matter. The first
-    # thing to ask for a context wins, anything context aware that is called
-    # later MUST expect that it can get a context found by something down the
-    # stack.
-    if ($CURRENT) {
-        return $CURRENT unless $stream;
-        return $CURRENT if $stream == $CURRENT->[STREAM];
-    }
-
-    my $call = _find_context($level);
-    $call = _find_context_harder() unless $call;
-    my $pkg  = $call->[0];
-
-    my $meta = is_tester($pkg) || _find_tester();
-
-    # Check if $TODO is set in the package, if not check if Test::Builder is
-    # loaded, and if so if it has Todo set. We check the element directly for
-    # performance.
-    my ($todo, $in_todo);
-    {
-        my $todo_pkg = $meta->[Test::Stream::Meta::PACKAGE];
-        no strict 'refs';
-        no warnings 'once';
-        if (@TODO) {
-            $todo = $TODO[-1];
-            $in_todo = 1;
-        }
-        elsif ($todo = $meta->[Test::Stream::Meta::TODO]) {
-            $in_todo = 1;
-        }
-        elsif ($todo = ${"$pkg\::TODO"}) {
-            $in_todo = 1;
-        }
-        elsif ($todo = ${"$todo_pkg\::TODO"}) {
-            $in_todo = 1;
-        }
-        elsif ($Test::Builder::Test && defined $Test::Builder::Test->{Todo}) {
-            $todo    = $Test::Builder::Test->{Todo};
-            $in_todo = 1;
-        }
-        else {
-            $in_todo = 0;
-        }
-    };
-
-    my ($ppkg, $pname);
-    if(my @provider = caller(1)) {
-        ($ppkg, $pname) = ($provider[3] =~ m/^(.*)::([^:]+)$/);
-    }
-
-    # Uh-Oh! someone has replaced the singleton, that means they probably want
-    # everything to go through them... We can't do a whole lot about that, but
-    # we will use the singletons stream which should catch most use-cases.
-    if ($Test::Builder::_ORIG_Test && $Test::Builder::_ORIG_Test != $Test::Builder::Test) {
-        $stream ||= $Test::Builder::Test->{stream};
-
-        my $warn = $meta->[Test::Stream::Meta::MODERN]
-                && !$WARNED++;
-
-        warn <<"        EOT" if $warn;
-
-    *******************************************************************************
-    Something replaced the singleton \$Test::Builder::Test.
-
-    The Test::Builder singleton is no longer the central place for all test
-    events. Please look at Test::Stream, and Test::Stream->intercept() to
-    accomplish the type of thing that was once done with the singleton.
-
-    All attempts have been made to preserve compatability with older modules,
-    but if you experience broken behavior you may need to update your code. If
-    updating your code is not an option you will need to downgrade to a
-    Test::More prior to version 1.301001. Patches that restore compatability
-    without breaking necessary Test::Stream functionality will be gladly
-    accepted.
-    *******************************************************************************
-        EOT
-    }
-
-    $stream ||= $meta->[Test::Stream::Meta::STREAM] || Test::Stream->shared || confess "No Stream!?";
-    if ((USE_THREADS || $stream->_use_fork) && ($stream->pid == $$ && $stream->tid == get_tid())) {
-        $stream->fork_cull();
-    }
-
-    my $encoding = $meta->[Test::Stream::Meta::ENCODING] || 'legacy';
-    $call->[1] = translate_filename($encoding => $call->[1]) if $encoding ne 'legacy';
-
-    my $ctx = bless(
-        [
-            $call,
-            $stream,
-            $encoding,
-            $in_todo,
-            $todo,
-            $meta->[Test::Stream::Meta::MODERN]   || 0,
-            $$,
-            undef,
-            $in_todo,
-            [$ppkg, $pname]
-        ],
-        __PACKAGE__
-    );
-
-    weaken($ctx->[STREAM]);
-
-    return $ctx if $CURRENT;
-
-    $CURRENT = $ctx;
-    weaken($CURRENT);
-    return $ctx;
-}
-
-sub _find_context {
-    my ($add) = @_;
-
-    $add ||= 0;
-    my $tb = $Test::Builder::Level - 1;
-
-    # 0 - call to find_context
-    # 1 - call to context/new
-    # 2 - call to tool
-    my $level = 2 + $add + $tb;
-    my ($package, $file, $line, $subname) = caller($level);
-
-    if ($package) {
-        while ($package eq 'Test::Builder') {
-            ($package, $file, $line, $subname) = caller(++$level);
-        }
-    }
-    else {
-        while (!$package) {
-            ($package, $file, $line, $subname) = caller(--$level);
-        }
-    }
-
-    return unless $package;
-
-    return [$package, $file, $line, $subname];
-}
-
-sub _find_context_harder {
-    my $level = 0;
-    my $fallback;
-    while(1) {
-        my ($pkg, $file, $line, $subname) = caller($level++);
-        $fallback ||= [$pkg, $file, $line, $subname] if $subname =~ m/::END$/;
-        next if $pkg =~ m/^Test::(Stream|Builder|More|Simple)(::.*)?$/;
-        return [$pkg, $file, $line, $subname];
-    }
-
-    return $fallback if $fallback;
-    return [ '<UNKNOWN>', '<UNKNOWN>', 0, '<UNKNOWN>' ];
-}
-
-sub _find_tester {
-    my $level = 2;
-    while(1) {
-        my $pkg = caller($level++);
-        last unless $pkg;
-        my $meta = is_tester($pkg) || next;
-        return $meta;
-    }
-
-    # find a .t file!
-    $level = 0;
-    while(1) {
-        my ($pkg, $file) = caller($level++);
-        last unless $pkg;
-        if ($file eq $0 && $file =~ m/\.t$/) {
-            return init_tester($pkg);
-        }
-    }
-
-    return init_tester('main');
-}
-
-sub alert {
-    my $self = shift;
-    my ($msg) = @_;
-
-    my @call = $self->call;
-
-    warn "$msg at $call[1] line $call[2].\n";
-}
-
-sub throw {
-    my $self = shift;
-    my ($msg) = @_;
-
-    my @call = $self->call;
-
-    $CURRENT = undef if $CURRENT = $self;
-
-    die "$msg at $call[1] line $call[2].\n";
-}
-
-sub call { @{$_[0]->[FRAME]} }
-
-sub package { $_[0]->[FRAME]->[0] }
-sub file    { $_[0]->[FRAME]->[1] }
-sub line    { $_[0]->[FRAME]->[2] }
-sub subname { $_[0]->[FRAME]->[3] }
-
-sub snapshot {
-    return bless [@{$_[0]}], blessed($_[0]);
-}
-
-sub send {
-    my $self = shift;
-    $self->[STREAM]->send(@_);
-}
-
-sub subtest_start {
-    my $self = shift;
-    my ($name, %params) = @_;
-
-    $params{parent_todo} ||= $self->in_todo;
-
-    $self->clear;
-    my $todo = $self->hide_todo;
-
-    my $st = $self->stream->subtest_start($name, todo_stash => $todo, %params);
-    return $st;
-}
-
-sub subtest_stop {
-    my $self = shift;
-    my ($name) = @_;
-
-    my $st = $self->stream->subtest_stop($name);
-
-    $self->set;
-    $self->restore_todo($st->{todo_stash});
-
-    return $st;
-}
-
-# Uhg.. support legacy monkeypatching
-# If this is still here in 2020 I will be a sad panda.
-{
-    sub ok {
-        return _ok(@_) unless $INC{'Test/Builder.pm'} && $Test::Builder::ORIG{ok} != \&Test::Builder::ok;
-        my $self = shift;
-        local $Test::Builder::CTX = $self;
-        my ($bool, $name, @stash) = @_;
-        push @{$self->[MONKEYPATCH_STASH]} => \@stash;
-        my $out = Test::Builder->new->ok($bool, $name);
-        return $out;
-    }
-
-    sub _unwind_ok {
-        my $self = shift;
-        my ($bool, $name) = @_;
-        my $stash = pop @{$self->[MONKEYPATCH_STASH]};
-        return $self->_ok($bool, $name, @$stash);
-    }
-
-    sub note {
-        return _note(@_) unless $INC{'Test/Builder.pm'} && $Test::Builder::ORIG{note} != \&Test::Builder::note;
-        local $Test::Builder::CTX = shift;
-        my $out = Test::Builder->new->note(@_);
-        return $out;
-    }
-
-    sub diag {
-        return _diag(@_) unless $INC{'Test/Builder.pm'} && $Test::Builder::ORIG{diag} != \&Test::Builder::diag;
-        local $Test::Builder::CTX = shift;
-        my $out = Test::Builder->new->diag(@_);
-        return $out;
-    }
-
-    sub plan {
-        return _plan(@_) unless $INC{'Test/Builder.pm'} && $Test::Builder::ORIG{plan} != \&Test::Builder::plan;
-        local $Test::Builder::CTX = shift;
-        my ($num, $dir, $arg) = @_;
-        $dir ||= 'tests';
-        $dir = 'skip_all' if $dir eq 'SKIP';
-        $dir = 'no_plan'  if $dir eq 'NO PLAN';
-        my $out = Test::Builder->new->plan($dir, $num || $arg || ());
-        return $out;
-    }
-
-    sub done_testing {
-        return $_[0]->stream->done_testing(@_)
-            unless $INC{'Test/Builder.pm'} && $Test::Builder::ORIG{done_testing} != \&Test::Builder::done_testing;
-
-        local $Test::Builder::CTX = shift;
-        my $out = Test::Builder->new->done_testing(@_);
-        return $out;
-    }
-}
-
-my %EVENTS;
-sub events { \%EVENTS }
-
-sub register_event {
-    my $class = shift;
-    my ($pkg, $name) = @_;
-
-    my $real_name = lc($pkg);
-    $real_name =~ s/^.*:://g;
-
-    $name ||= $real_name;
-
-    confess "Method '$name' is already defined, event '$pkg' cannot get a context method!"
-        if $class->can($name);
-
-    $EVENTS{$real_name} = $pkg;
-
-    # Use a string eval so that we get a names sub instead of __ANON__
-    local ($@, $!);
-    eval qq|
-        sub $name {
-            my \$self = shift;
-            my \@call = caller(0);
-            my \$encoding = \$self->[ENCODING];
-            \$call[1] = translate_filename(\$encoding => \$call[1]) if \$encoding ne 'legacy';
-            my \$e = '$pkg'->new(\$self->snapshot, [\@call[0 .. 4]], 0, \@_);
-            return \$self->stream->send(\$e);
-        };
-        1;
-    | || die $@;
-}
-
-sub meta { is_tester($_[0]->[FRAME]->[0]) }
-
-sub inspect_todo {
-    my ($pkg) = @_;
-    my $meta = $pkg ? is_tester($pkg) : undef;
-
-    no strict 'refs';
-    return {
-        TODO => [@TODO],
-        $Test::Builder::Test ? (TB   => $Test::Builder::Test->{Todo})      : (),
-        $meta                ? (META => $meta->[Test::Stream::Meta::TODO]) : (),
-        $pkg                 ? (PKG  => ${"$pkg\::TODO"})                  : (),
-    };
-}
-
-sub hide_todo {
-    my $self = shift;
-
-    my $pkg = $self->[FRAME]->[0];
-    my $meta = is_tester($pkg);
-
-    my $found = inspect_todo($pkg);
-
-    @TODO = ();
-    $Test::Builder::Test->{Todo} = undef;
-    $meta->[Test::Stream::Meta::TODO] = undef;
-    {
-        no strict 'refs';
-        no warnings 'once';
-        ${"$pkg\::TODO"} = undef;
-    }
-
-    return $found;
-}
-
-sub restore_todo {
-    my $self = shift;
-    my ($found) = @_;
-
-    my $pkg = $self->[FRAME]->[0];
-    my $meta = is_tester($pkg);
-
-    @TODO = @{$found->{TODO}};
-    $Test::Builder::Test->{Todo} = $found->{TB};
-    $meta->[Test::Stream::Meta::TODO] = $found->{META};
-    {
-        no strict 'refs';
-        no warnings 'once';
-        ${"$pkg\::TODO"} = $found->{PKG};
-    }
-
-    my $found2 = inspect_todo($pkg);
-
-    for my $k (qw/TB META PKG/) {
-        no warnings 'uninitialized';
-        next if "$found->{$k}" eq "$found2->{$k}";
-        die "INTERNAL ERROR: Mismatch! $k:\t$found->{$k}\n\t$found2->{$k}\n"
-    }
-
-    return;
-}
-
-sub DESTROY { 1 }
-
-our $AUTOLOAD;
-sub AUTOLOAD {
-    my $class = blessed($_[0]) || $_[0] || confess $AUTOLOAD;
-
-    my $name = $AUTOLOAD;
-    $name =~ s/^.*:://g;
-
-    my $module = 'Test/Stream/Event/' . ucfirst(lc($name)) . '.pm';
-    try { require $module };
-
-    my $sub = $class->can($name);
-    goto &$sub if $sub;
-
-    my ($pkg, $file, $line) = caller;
-
-    die qq{Can't locate object method "$name" via package "$class" at $file line $line.\n};
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Context - Object to represent a testing context.
-
-=head1 DESCRIPTION
-
-In testing it is important to have context. It is not helpful to simply say a
-test failed, you want to know where it failed. This object is responsible for
-tracking the context of each test that is run. It makes it possible to get the
-file and line number where the failure occured .This object is also responsible
-for generating almost all the events you will encounter.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Context qw/context/;
-
-    sub my_tool {
-        my $ctx = context();
-
-        # Generate an event.
-        $ctx->ok(1, "Pass!");
-    }
-
-    1;
-
-=head1 EXPORTS
-
-=over 4
-
-=item $ctx = context()
-
-This function is used to obtain a context. If there is already a context object
-in scope this will return it, otherwise it will return a new one.
-
-It is important that you never store a context object in a variable from a
-higher scope, a package variable, or an object attribute. The scope of a
-context matters a lot.
-
-If you want to store a context for later reference use the C<snapshot()> method
-to get a clone of it that is safe to store anywhere.
-
-Note, C<context()> assumes you are at the lowest level of your tool, and looks
-at the current caller. If you need it to look further you can call it with a
-numeric argument which is added to the level. To clarify, calling C<context()>
-is the same as calling C<context(0)>.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item $ctx->alert($MESSAGE)
-
-This issues a warning at the calling context (filename and line number where
-errors should be reported).
-
-=item $ctx->throw($MESSAGE)
-
-This throws an exception at the calling context (filename and line number where
-errors should be reported).
-
-=item ($package, $file, $line, $subname) = $ctx->call()
-
-Get the caller details for the context. This is where errors should be
-reported.
-
-=item $pkg = $ctx->package
-
-Get the context package.
-
-=item $file = $ctx->file
-
-Get the context filename.
-
-=item $line = $ctx->line
-
-Get the context line number.
-
-=item $subname = $ctx->subname
-
-Get the context subroutine name.
-
-=item $ctx_copy = $ctx->snapshot
-
-Get a copy of the context object that is safe to store for later reference.
-
-=item $ctx->send($event)
-
-Send an event to the correct L<Test::Stream> object.
-
-=item $ctx = $class->peek
-
-Get the current context object, if there is one.
-
-=back
-
-=head2 DANGEROUS ONES
-
-=over 4
-
-=item $ctx->set
-
-=item $class->set($ctx)
-
-Set the context object as the current one, replacing any that might already be
-current.
-
-=item $class->clear
-
-Unset the current context.
-
-=item $ctx->register_event($package)
-
-=item $ctx->register_event($package, $name)
-
-Register a new event type, creating the shortcut method to generate it. If
-C<$name> is not provided it will be taken from the end of the package name, and
-will be lowercased.
-
-=item $hr = $ctx->events
-
-Get the hashref that holds C<< (name => $package) >> pairs. This is the actual
-ref used by the package, so please do not alter it.
-
-=item $stash = $ctx->hide_todo
-
-=item $ctx->restore_todo($stash)
-
-These are used to temporarily hide the TODO value in ALL places where it might
-be found. The returned C<$stash> must be used to restore it later.
-
-=item $stash = $ctx->subtest_start($name, %params)
-
-=item $stash = $ctx->subtest_stop($name)
-
-Used to start and stop subtests in the test stream. The stash can be used to
-configure and manipulate the subtest information. C<subtest_start> will hide
-the current TODO settings, and unset the current context. C<subtest_stop> will
-restore the TODO and reset the context back to what it was.
-
-B<It is your job> to take the results in the stash and produce a
-L<Test::Stream::Event::Subtest> event from them.
-
-B<Using this directly is not recommended>.
-
-=back
-
-=head2 CLASS METHODS
-
-B<Note:> These can effect all test packages, if that is not what you want do not use them!.
-
-=over 4
-
-=item $msg = Test::Stream::Context->push_todo($msg)
-
-=item $msg = Test::Stream::Context->pop_todo()
-
-=item $msg = Test::Stream::Context->peek_todo()
-
-These manage a global todo stack. Any new context created will check here first
-for a TODO. Changing this will not effect any existing context instances. This
-is a reliable way to set a global todo that effects any/all packages.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Event.pm b/cpan/Test-Simple/lib/Test/Stream/Event.pm
deleted file mode 100644 (file)
index 2080597..0000000
+++ /dev/null
@@ -1,404 +0,0 @@
-package Test::Stream::Event;
-use strict;
-use warnings;
-
-use Scalar::Util qw/blessed/;
-use Test::Stream::Carp qw/confess/;
-
-use Test::Stream::ArrayBase(
-    accessors => [qw/context created in_subtest/],
-    no_import => 1,
-);
-
-sub import {
-    my $class = shift;
-
-    # Import should only when event is imported, subclasses do not use this
-    # import.
-    return if $class ne __PACKAGE__;
-
-    my $caller = caller;
-    my (%args) = @_;
-
-    my $ctx_meth = delete $args{ctx_method};
-
-    require Test::Stream::Context;
-    require Test::Stream;
-
-    # %args may override base
-    Test::Stream::ArrayBase->apply_to($caller, base => $class, %args);
-    Test::Stream::Context->register_event($caller, $ctx_meth);
-    Test::Stream::Exporter::export_to(
-        'Test::Stream',
-        $caller,
-        qw/OUT_STD OUT_ERR OUT_TODO/,
-    );
-}
-
-sub init {
-    confess("No context provided!") unless $_[0]->[CONTEXT];
-}
-
-sub encoding { $_[0]->[CONTEXT]->encoding }
-
-sub extra_details {}
-
-sub summary {
-    my $self = shift;
-    my $type = blessed $self;
-    $type =~ s/^.*:://g;
-
-    my $ctx = $self->context;
-
-    my ($package, $file, $line) = $ctx->call;
-    my ($tool_pkg, $tool_name)  = @{$ctx->provider};
-    $tool_name =~ s/^\Q$tool_pkg\E:://;
-
-    return (
-        type => lc($type),
-
-        $self->extra_details(),
-
-        package => $package || undef,
-        file    => $file,
-        line    => $line,
-
-        tool_package => $tool_pkg,
-        tool_name    => $tool_name,
-
-        encoding => $ctx->encoding || undef,
-        in_todo  => $ctx->in_todo  || 0,
-        todo     => $ctx->todo     || '',
-        pid      => $ctx->pid      || 0,
-        skip     => $ctx->skip     || '',
-    );
-}
-
-sub subevents { }
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Event - Base class for events
-
-=head1 DESCRIPTION
-
-Base class for all event objects that get passed through
-L<Test::Stream>.
-
-=head1 SYNOPSYS
-
-    package Test::Stream::Event::MyEvent;
-    use strict;
-    use warnings;
-
-    # This will make our class an event subclass, add the specified accessors,
-    # inject a helper method into the context objects, and add constants for
-    # all our fields, and fields we inherit.
-    use Test::Stream::Event(
-        accessors  => [qw/foo bar baz/],
-        ctx_method => 'my_event',
-    );
-
-    # Chance to initialize some defaults
-    sub init {
-        my $self = shift;
-        # no other args in @_
-
-        $self->SUPER::init();
-
-        $self->set_foo('xxx') unless defined $self->foo;
-
-        # Events are arrayrefs, all accessors have a constant defined with
-        # their index.
-        $self->[BAR] ||= "";
-
-        ...
-    }
-
-    # If your event produces TAP output it must define this method
-    sub to_tap {
-        my $self = shift;
-        return (
-            # Constants are defined at import, all are optional, and may appear
-            # any number of times.
-            [OUT_STD, $self->foo],
-            [OUT_ERR, $self->bar],
-            [OUT_STD, $self->baz],
-        );
-    }
-
-    # This is your hook to add details to the summary fields.
-    sub extra_details {
-        my $self = shift;
-
-        my @super_details = $self->SUPER::extra_details();
-
-        return (
-            @super_details,
-
-            foo => $self->foo || undef,
-            bar => $self->bar || '',
-            ...
-        );
-    }
-
-    1;
-
-=head1 IMPORTING
-
-=head2 ARGUMENTS
-
-In addition to the arguments listed here, you may pass in any arguments
-accepted by L<Test::Stream::ArrayBase>.
-
-=over 4
-
-=item ctx_method => $NAME
-
-This specifies the name of the helper meth that will be injected into
-L<Test::Stream::Context> to help generate your events. If this is not specified
-it will use the lowercased last section of your package name.
-
-=item base => $BASE_CLASS
-
-This lets you specify an event class to subclass. B<THIS MUST BE AN EVENT
-CLASS>. If you do not specify anything here then C<Test::Stream::Event> will be
-used.
-
-=item accessors => \@FIELDS
-
-This lets you define any fields you wish to be present in your class. This is
-the only way to define storage for your event. Each field specified will get a
-read-only accessor with the same name as the field, as well as a setter
-C<set_FIELD()>. You will also get a constant that returns the index of the
-field in the classes arrayref. The constant is the name of the field in all
-upper-case.
-
-=back
-
-=head2 SUBCLASSING
-
-C<Test::Stream::Event> is added to your @INC for you, unless you specify an
-alternative base class, which must itself subclass C<Test::Stream::Event>.
-
-Events B<CAN NOT> use multiple inheritance in most cases. This is mainly
-because events are arrayrefs and not hashrefs. Each subclass must add fields as
-new indexes after the last index of the parent class.
-
-=head2 CONTEXT HELPER
-
-All events need some initial fields for construction. These fields include a
-context, and some other state from construction time. The context object will
-get helper methods for all events that fill in these fields for you. It is not
-advised to ever construct an event object yourself, you should I<always> use
-the context helper method.
-
-=head1 EVENTS ARE ARRAY REFERENCES
-
-Events are an arrayref. Events use L<Test::Stream::ArrayBase> under the hood to
-generate accessors, constants, and field indexes. The key thing to take away
-from this is that you cannot add attributes on the fly, you B<MUST> use
-L<Test::Stream::Event> and/or L<Test::Stream::ArrayBase> to add fields.
-
-If you need a place to store extar generic, and possibly unpredictable, data,
-you should add a field and assign a hashref to it, then use that hashref to
-store your mixed data.
-
-=head1 METHODS
-
-=over 4
-
-=item $ctx = $e->context
-
-Get a snapshot of the context as it was when this event was generated
-
-=item $call = $e->created
-
-Get the C<caller()> details from when the objects was created. This is usually
-the call to the tool that generated the event such as C<Test::More::ok()>.
-
-=item $bool = $e->in_subtest
-
-Check if the event was generated within a subtest.
-
-=item $encoding = $e->encoding
-
-Get the encoding that was in effect when the event was generated
-
-=item @details = $e->extra_details
-
-Get an ordered key/value pair list of summary fields for the event. Override
-this to add additional fields.
-
-=item @summary = $e->summary
-
-Get an ordered key/value pair list of summary fields for the event, including
-parent class fields. In general you should not override this as it has a useful
-(thought not depended upon) order.
-
-=back
-
-=head1 SUMMARY FIELDS
-
-These are the fields that will be present when calling
-C<< my %sum = $e->summary >>. Please note that the fields are returned as an
-order key+pair list, they can be directly assigned to a hash if desired, or
-they can be assigned to an array to preserver the order. The order is as it
-appears below, B<NOT> alphabetical.
-
-=over 4
-
-=item type
-
-The name of the event type, typically this is the lowercase form of the last
-part of the class name.
-
-=item package
-
-The package that generated this event.
-
-=item file
-
-The file in which the event was generated, and to which errors should be attributed.
-
-=item line
-
-The line number on which the event was generated, and to which errors should be
-attributed.
-
-=item tool_package
-
-The package that provided the tool that generated the event (example:
-Test::More)
-
-=item tool_name
-
-The name of the sub that produced the event (examples: C<ok()>, C<is()>).
-
-=item encoding
-
-The encoding that should be used when printing the TAP output from this event.
-
-=item in_todo
-
-True if the event was generated while TODO was in effect.
-
-=item todo
-
-The todo message if the event was generated with TODO in effect.
-
-=item pid
-
-The PID in which the event was generated.
-
-=item skip
-
-The skip message if the event was generated via skip.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Event/Bail.pm b/cpan/Test-Simple/lib/Test/Stream/Event/Bail.pm
deleted file mode 100644 (file)
index 4b50c63..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-package Test::Stream::Event::Bail;
-use strict;
-use warnings;
-
-use Test::Stream::Event(
-    accessors => [qw/reason quiet/],
-);
-
-sub to_tap {
-    my $self = shift;
-    return if $self->[QUIET];
-    return [
-        OUT_STD,
-        "Bail out!  " . $self->reason . "\n",
-    ];
-}
-
-sub extra_details {
-    my $self = shift;
-    return (
-        $self->reason || '',
-        $self->quiet  || 0,
-    );
-}
-
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Event::Bail - Bailout!
-
-=head1 DESCRIPTION
-
-The bailout event is generated when things go horribly wrong and you need to
-halt all testing in the current file.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Context qw/context/;
-    use Test::Stream::Event::Bail;
-
-    my $ctx = context();
-    my $event = $ctx->bail('Stuff is broken');
-
-=head1 METHODS
-
-Inherits from L<Test::Stream::Event>. Also defines:
-
-=over 4
-
-=item $reason = $e->reason
-
-The reason for the bailout.
-
-=item $bool = quiet
-
-Should the bailout be quiet?
-
-=back
-
-=head1 SUMMARY FIELDS
-
-These are the fields that will be present when calling
-C<< my %sum = $e->summary >>. Please note that the fields are returned as an
-order key+pair list, they can be directly assigned to a hash if desired, or
-they can be assigned to an array to preserver the order. The order is as it
-appears below, B<NOT> alphabetical.
-
-=over 4
-
-=item reason
-
-Reason for the bailout
-
-=item quiet
-
-Boolean, true if the bailout should be quiet.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Event/Child.pm b/cpan/Test-Simple/lib/Test/Stream/Event/Child.pm
deleted file mode 100644 (file)
index d6d3807..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-package Test::Stream::Event::Child;
-use strict;
-use warnings;
-
-use Test::Stream::Carp qw/confess/;
-use Test::Stream::Event(
-    accessors => [qw/action name no_note/],
-);
-
-sub init {
-    confess "did not get an action" unless $_[0]->[ACTION];
-    confess "action must be either 'push' or 'pop', not '$_[0]->[ACTION]'"
-        unless $_[0]->[ACTION] =~ m/^(push|pop)$/;
-
-    $_[0]->[NAME] ||= "";
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Test::Stream::Event::Child - Child event type
-
-=head1 DESCRIPTION
-
-B<YOU PROBABLY DO NOT WANT TO USE THIS YOURSELF>
-
-Child events are used under the hood to start and stop subtests.
-L<Test::Stream::Event::Subtest> events are generated by child events.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Context qw/context/;
-    use Test::Stream::Event::Bail;
-
-    my $ctx = context();
-    $ctx->child( 'push', $NAME );
-
-    ... # Generate events
-
-    # Generates a subtest event
-    $ctx->child( 'pop', $NAME );
-
-=encoding utf8
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Event/Diag.pm b/cpan/Test-Simple/lib/Test/Stream/Event/Diag.pm
deleted file mode 100644 (file)
index 365a986..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-package Test::Stream::Event::Diag;
-use strict;
-use warnings;
-
-use Test::Stream::Event(
-    accessors  => [qw/message linked/],
-    ctx_method => '_diag',
-);
-
-use Test::Stream::Util qw/try/;
-use Scalar::Util qw/weaken/;
-use Test::Stream::Carp qw/confess/;
-
-sub init {
-    $_[0]->SUPER::init();
-    if (defined $_[0]->[MESSAGE]) {
-        $_[0]->[MESSAGE] .= "";
-    }
-    else {
-        $_[0]->[MESSAGE] = 'undef';
-    }
-    weaken($_[0]->[LINKED]) if $_[0]->[LINKED];
-}
-
-sub link {
-    my $self = shift;
-    my ($to) = @_;
-    confess "Already linked!" if $self->[LINKED];
-    $self->[LINKED] = $to;
-    weaken($self->[LINKED]);
-}
-
-sub to_tap {
-    my $self = shift;
-
-    chomp(my $msg = $self->[MESSAGE]);
-
-    $msg = "# $msg" unless $msg =~ m/^\n/;
-    $msg =~ s/\n/\n# /g;
-
-    return [
-        ($self->[CONTEXT]->diag_todo ? OUT_TODO : OUT_ERR),
-        "$msg\n",
-    ];
-}
-
-sub extra_details {
-    my $self = shift;
-    return ( message => $self->message || '' );
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Event::Diag - Diag event type
-
-=head1 DESCRIPTION
-
-Diagnostics messages, typically rendered to STDERR.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Context qw/context/;
-    use Test::Stream::Event::Diag;
-
-    my $ctx = context();
-    my $event = $ctx->diag($message);
-
-=head1 ACCESSORS
-
-=over 4
-
-=item $diag->message
-
-The message for the diag.
-
-=item $diag->linked
-
-The Ok event the diag is linked to, if it is.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item $diag->link($ok);
-
-Link the diag to an OK event.
-
-=back
-
-=head1 SUMMARY FIELDS
-
-=over 4
-
-=item message
-
-The message from the diag.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Event/Finish.pm b/cpan/Test-Simple/lib/Test/Stream/Event/Finish.pm
deleted file mode 100644 (file)
index 0617e5f..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-package Test::Stream::Event::Finish;
-use strict;
-use warnings;
-
-use Test::Stream::Event(
-    accessors => [qw/tests_run tests_failed/],
-);
-
-sub extra_details {
-    my $self = shift;
-    return (
-        tests_run    => $self->tests_run    || 0,
-        tests_failed => $self->tests_failed || 0,
-    );
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Event::Finish - The finish event type
-
-=head1 DESCRIPTION
-
-Sent after testing is finished.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Event/Note.pm b/cpan/Test-Simple/lib/Test/Stream/Event/Note.pm
deleted file mode 100644 (file)
index 6d39548..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-package Test::Stream::Event::Note;
-use strict;
-use warnings;
-
-use Test::Stream::Event(
-    accessors  => [qw/message/],
-    ctx_method => '_note',
-);
-
-use Test::Stream::Carp qw/confess/;
-
-sub init {
-    $_[0]->SUPER::init();
-    if (defined $_[0]->[MESSAGE]) {
-        $_[0]->[MESSAGE] .= "";
-    }
-    else {
-        $_[0]->[MESSAGE] = 'undef';
-    }
-}
-
-sub to_tap {
-    my $self = shift;
-
-    chomp(my $msg = $self->[MESSAGE]);
-    $msg = "# $msg" unless $msg =~ m/^\n/;
-    $msg =~ s/\n/\n# /g;
-
-    return [OUT_STD, "$msg\n"];
-}
-
-sub extra_details {
-    my $self = shift;
-    return ( message => $self->message || '' );
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Event::Note - Note event type
-
-=head1 DESCRIPTION
-
-Notes, typically rendered to STDOUT.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Context qw/context/;
-    use Test::Stream::Event::Note;
-
-    my $ctx = context();
-    my $event = $ctx->Note($message);
-
-=head1 ACCESSORS
-
-=over 4
-
-=item $note->message
-
-The message for the note.
-
-=back
-
-=head1 SUMMARY FIELDS
-
-=over 4
-
-=item message
-
-The message from the note.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Event/Ok.pm b/cpan/Test-Simple/lib/Test/Stream/Event/Ok.pm
deleted file mode 100644 (file)
index e4e9c03..0000000
+++ /dev/null
@@ -1,392 +0,0 @@
-package Test::Stream::Event::Ok;
-use strict;
-use warnings;
-
-use Scalar::Util qw/blessed/;
-use Test::Stream::Util qw/unoverload_str/;
-use Test::Stream::Carp qw/confess/;
-
-use Test::Stream::Event(
-    accessors  => [qw/real_bool name diag bool level/],
-    ctx_method => '_ok',
-);
-
-sub skip { $_[0]->[CONTEXT]->skip }
-sub todo { $_[0]->[CONTEXT]->todo }
-
-sub init {
-    my $self = shift;
-
-    $self->SUPER::init();
-
-    # Do not store objects here, only true/false/undef
-    if ($self->[REAL_BOOL]) {
-        $self->[REAL_BOOL] = 1;
-    }
-    elsif(defined $self->[REAL_BOOL]) {
-        $self->[REAL_BOOL] = 0;
-    }
-    $self->[LEVEL] = $Test::Builder::Level;
-
-    my $ctx  = $self->[CONTEXT];
-    my $rb   = $self->[REAL_BOOL];
-    my $todo = $ctx->in_todo;
-    my $skip = defined $ctx->skip;
-    my $b    = $rb || $todo || $skip || 0;
-    my $diag = delete $self->[DIAG];
-    my $name = $self->[NAME];
-
-    $self->[BOOL] = $b ? 1 : 0;
-
-    unless ($rb || ($todo && $skip)) {
-        my $msg = $todo ? "Failed (TODO)" : "Failed";
-        my $prefix = $ENV{HARNESS_ACTIVE} ? "\n" : "";
-
-        my ($pkg, $file, $line) = $ctx->call;
-
-        if (defined $name) {
-            $msg = qq[$prefix  $msg test '$name'\n  at $file line $line.];
-        }
-        else {
-            $msg = qq[$prefix  $msg test at $file line $line.];
-        }
-
-        $self->add_diag($msg);
-    }
-
-    $self->add_diag("    You named your test '$name'.  You shouldn't use numbers for your test names.\n    Very confusing.")
-        if $name && $name =~ m/^[\d\s]+$/;
-
-    $self->add_diag(@$diag) if $diag && @$diag;
-}
-
-sub to_tap {
-    my $self = shift;
-    my ($num) = @_;
-
-    my $name    = $self->[NAME];
-    my $context = $self->[CONTEXT];
-    my $skip    = $context->skip;
-    my $todo    = $context->todo;
-
-    my @out;
-    push @out => "not" unless $self->[REAL_BOOL];
-    push @out => "ok";
-    push @out => $num if defined $num;
-
-    unoverload_str \$name if defined $name;
-
-    if ($name) {
-        $name =~ s|#|\\#|g; # # in a name can confuse Test::Harness.
-        push @out => ("-", $name);
-    }
-
-    if (defined $skip && defined $todo) {
-        push @out => "# TODO & SKIP";
-        push @out => $todo if length $todo;
-    }
-    elsif ($context->in_todo) {
-        push @out => "# TODO";
-        push @out => $todo if length $todo;
-    }
-    elsif (defined $skip) {
-        push @out => "# skip";
-        push @out => $skip if length $skip;
-    }
-
-    my $out = join " " => @out;
-    $out =~ s/\n/\n# /g;
-
-    return [OUT_STD, "$out\n"] unless $self->[DIAG];
-
-    return (
-        [OUT_STD, "$out\n"],
-        map {$_->to_tap($num)} @{$self->[DIAG]},
-    );
-}
-
-sub add_diag {
-    my $self = shift;
-
-    my $context = $self->[CONTEXT];
-    my $created = $self->[CREATED];
-
-    for my $item (@_) {
-        next unless $item;
-
-        if (ref $item) {
-            confess("Only diag objects can be linked to events.")
-                unless blessed($item) && $item->isa('Test::Stream::Event::Diag');
-
-            $item->link($self);
-        }
-        else {
-            $item = Test::Stream::Event::Diag->new($context, $created, $self->[IN_SUBTEST], $item, $self);
-        }
-
-        push @{$self->[DIAG]} => $item;
-    }
-}
-
-{
-    # Yes, we do want to override the imported one.
-    no warnings 'redefine';
-    sub clear_diag {
-        my $self = shift;
-        return unless $self->[DIAG];
-        my $out = $self->[DIAG];
-        $self->[DIAG] = undef;
-        $_->set_linked(undef) for @$out;
-        return $out;
-    }
-}
-
-sub subevents { @{$_[0]->[DIAG] || []} }
-
-sub to_legacy {
-    my $self = shift;
-
-    my $result = {};
-    $result->{ok}        = $self->bool ? 1 : 0;
-    $result->{actual_ok} = $self->real_bool;
-    $result->{name}      = $self->name;
-
-    my $ctx = $self->context;
-
-    if($self->skip && ($ctx->in_todo || $ctx->todo)) {
-        $result->{type} = 'todo_skip',
-        $result->{reason} = $ctx->skip || $ctx->todo;
-    }
-    elsif($ctx->in_todo || $ctx->todo) {
-        $result->{reason} = $ctx->todo;
-        $result->{type}   = 'todo';
-    }
-    elsif($ctx->skip) {
-        $result->{reason} = $ctx->skip;
-        $result->{type}   = 'skip';
-    }
-    else {
-        $result->{reason} = '';
-        $result->{type}   = '';
-    }
-
-    if ($result->{reason} eq 'incrementing test number') {
-        $result->{type} = 'unknown';
-    }
-
-    return $result;
-}
-
-sub extra_details {
-    my $self = shift;
-
-    require Test::Stream::Tester::Events;
-
-    my $diag = join "\n", map {
-        my $msg = $_->message;
-        chomp($msg);
-        split /[\n\r]+/, $msg;
-    } @{$self->diag || []};
-
-    return (
-        diag      => $diag            || '',
-        bool      => $self->bool      || 0,
-        name      => $self->name      || undef,
-        real_bool => $self->real_bool || 0
-    );
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Event::Ok - Ok event type
-
-=head1 DESCRIPTION
-
-Ok events are generated whenever you run a test that produces a result.
-Examples are C<ok()>, and C<is()>.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Context qw/context/;
-    use Test::Stream::Event::Ok;
-
-    my $ctx = context();
-    my $event = $ctx->ok($bool, $name, \@diag);
-
-=head1 ACCESSORS
-
-=over 4
-
-=item $rb = $e->real_bool
-
-This is the true/false value of the test after TODO, SKIP, and similar
-modifiers are taken into account.
-
-=item $name = $e->name
-
-Name of the test.
-
-=item $diag = $e->diag
-
-An arrayref with all the L<Test::Stream::Event::Diag> events reduced down to
-just the messages. Some coaxing has beeen done to combine all the messages into
-a single string.
-
-=item $b = $e->bool
-
-The original true/false value of whatever was passed into the event (but
-reduced down to 1 or 0).
-
-=item $l = $e->level
-
-For legacy L<Test::Builder> support. Do not use this, it can go away, or change
-behavior at any time.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item $le = $e->to_legacy
-
-Returns a hashref that matches some legacy details about ok's. You should
-probably not use this for anything new.
-
-=item $e->add_diag($diag_event, "diag message" ...)
-
-Add a diag to the event. The diag may be a diag event, or a simple string.
-
-=item $diag = $e->clear_diag
-
-Remove all diag events, then return them in an arrayref.
-
-=back
-
-=head1 SUMMARY FIELDS
-
-=over 4
-
-=item diag
-
-A single string with all the messages from the diags linked to the event.
-
-=item bool
-
-True/False passed into the test.
-
-=item name
-
-Name of the test.
-
-=item real_bool
-
-True/False value accounting for TODO and SKIP.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Event/Plan.pm b/cpan/Test-Simple/lib/Test/Stream/Event/Plan.pm
deleted file mode 100644 (file)
index f3712b2..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-package Test::Stream::Event::Plan;
-use strict;
-use warnings;
-
-use Test::Stream::Event(
-    accessors  => [qw/max directive reason/],
-    ctx_method => '_plan',
-);
-
-use Test::Stream::Carp qw/confess/;
-
-my %ALLOWED = (
-    'SKIP'    => 1,
-    'NO PLAN' => 1,
-);
-
-sub init {
-    $_[0]->SUPER::init();
-
-    if ($_[0]->[DIRECTIVE]) {
-        $_[0]->[DIRECTIVE] = 'SKIP'    if $_[0]->[DIRECTIVE] eq 'skip_all';
-        $_[0]->[DIRECTIVE] = 'NO PLAN' if $_[0]->[DIRECTIVE] eq 'no_plan';
-
-        confess "'" . $_[0]->[DIRECTIVE] . "' is not a valid plan directive"
-            unless $ALLOWED{$_[0]->[DIRECTIVE]};
-    }
-    else {
-        $_[0]->[DIRECTIVE] = '';
-        confess "Cannot have a reason without a directive!"
-            if defined $_[0]->[REASON];
-
-        confess "No number of tests specified"
-            unless defined $_[0]->[MAX];
-    }
-}
-
-sub to_tap {
-    my $self = shift;
-
-    my $max       = $self->[MAX];
-    my $directive = $self->[DIRECTIVE];
-    my $reason    = $self->[REASON];
-
-    return if $directive && $directive eq 'NO PLAN';
-
-    my $plan = "1..$max";
-    if ($directive) {
-        $plan .= " # $directive";
-        $plan .= " $reason" if defined $reason;
-    }
-
-    return [OUT_STD, "$plan\n"];
-}
-
-sub extra_details {
-    my $self = shift;
-    return (
-        max       => $self->max       || 0,
-        directive => $self->directive || undef,
-        reason    => $self->reason    || undef
-    );
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Event::Plan - The event of a plan
-
-=head1 DESCRIPTION
-
-Plan events are fired off whenever a plan is declared, done testing is called,
-or a subtext completes.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Context qw/context/;
-    use Test::Stream::Event::Plan;
-
-    my $ctx = context();
-    my $event = $ctx->plan($max, $directive, $reason);
-
-=head1 ACCESSORS
-
-=over 4
-
-=item $num = $plan->max
-
-Get the number of expected tests
-
-=item $dir = $plan->directive
-
-Get the directive (such as TODO, skip_all, or no_plan).
-
-=item $reason = $plan->reason
-
-Get the reason for the directive.
-
-=back
-
-=head1 SUMMARY FIELDS
-
-=over 4
-
-=item max
-
-Number of expected tests.
-
-=item directive
-
-Directive.
-
-=item reason
-
-Reason for directive.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Event/Subtest.pm b/cpan/Test-Simple/lib/Test/Stream/Event/Subtest.pm
deleted file mode 100644 (file)
index 13ae97e..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-package Test::Stream::Event::Subtest;
-use strict;
-use warnings;
-
-use Scalar::Util qw/blessed/;
-use Test::Stream::Carp qw/confess/;
-use Test::Stream qw/-internal STATE_PASSING STATE_COUNT STATE_FAILED STATE_PLAN/;
-
-use Test::Stream::Event(
-    base      => 'Test::Stream::Event::Ok',
-    accessors => [qw/state events exception early_return delayed instant/],
-);
-
-sub init {
-    my $self = shift;
-    $self->[EVENTS] ||= [];
-
-    $self->[REAL_BOOL] = $self->[STATE]->[STATE_PASSING] && $self->[STATE]->[STATE_COUNT];
-
-    if ($self->[EXCEPTION]) {
-        push @{$self->[DIAG]} => "Exception in subtest '$self->[NAME]': $self->[EXCEPTION]";
-        $self->[STATE]->[STATE_PASSING] = 0;
-        $self->[BOOL] = 0;
-        $self->[REAL_BOOL] = 0;
-    }
-
-    if (my $le = $self->[EARLY_RETURN]) {
-        my $is_skip = $le->isa('Test::Stream::Event::Plan');
-        $is_skip &&= $le->directive;
-        $is_skip &&= $le->directive eq 'SKIP';
-
-        if ($is_skip) {
-            my $skip = $le->reason || "skip all";
-            # Should be a snapshot now:
-            $self->[CONTEXT]->set_skip($skip);
-            $self->[REAL_BOOL] = 1;
-        }
-        else { # BAILOUT
-            $self->[REAL_BOOL] = 0;
-        }
-    }
-
-    push @{$self->[DIAG]} => "  No tests run for subtest."
-        unless $self->[EXCEPTION] || $self->[EARLY_RETURN] || $self->[STATE]->[STATE_COUNT];
-
-    # Have the 'OK' init run
-    $self->SUPER::init();
-}
-
-sub subevents {
-    return (
-        @{$_[0]->[DIAG] || []},
-        map { $_, $_->subevents } @{$_[0]->[EVENTS] || []},
-    );
-}
-
-sub to_tap {
-    my $self = shift;
-    my ($num) = @_;
-
-    my $delayed = $self->[DELAYED];
-
-    unless($delayed) {
-        return if $self->[EXCEPTION]
-               && $self->[EXCEPTION]->isa('Test::Stream::Event::Bail');
-
-        return $self->SUPER::to_tap($num);
-    }
-
-    # Subtest final result first
-    $self->[NAME] =~ s/$/ {/mg;
-    my @out = (
-        $self->SUPER::to_tap($num),
-        $self->_render_events($num),
-        [OUT_STD, "}\n"],
-    );
-    $self->[NAME] =~ s/ \{$//mg;
-    return @out;
-}
-
-sub _render_events {
-    my $self = shift;
-    my ($num) = @_;
-
-    my $delayed = $self->[DELAYED];
-
-    my $idx = 0;
-    my @out;
-    for my $e (@{$self->events}) {
-        next unless $e->can('to_tap');
-        $idx++ if $e->isa('Test::Stream::Event::Ok');
-        push @out => $e->to_tap($idx, $delayed);
-    }
-
-    for my $set (@out) {
-        $set->[1] =~ s/^/    /mg;
-    }
-
-    return @out;
-}
-
-sub extra_details {
-    my $self = shift;
-
-    my @out = $self->SUPER::extra_details();
-    my $plan = $self->[STATE]->[STATE_PLAN];
-    my $exception = $self->exception;
-
-    return (
-        @out,
-
-        events => $self->events || undef,
-
-        exception => $exception || undef,
-        plan      => $plan      || undef,
-
-        passing => $self->[STATE]->[STATE_PASSING],
-        count   => $self->[STATE]->[STATE_COUNT],
-        failed  => $self->[STATE]->[STATE_FAILED],
-    );
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Event::Subtest - Subtest event
-
-=head1 DESCRIPTION
-
-This event is used to encapsulate subtests.
-
-=head1 SYNOPSYS
-
-B<YOU PROBABLY DO NOT WANT TO DIRECTLY GENERATE A SUBTEST EVENT>. See the
-C<subtest()> function from L<Test::More::Tools> instead.
-
-=head1 INHERITENCE
-
-the C<Test::Stream::Event::Subtest> class inherits from
-L<Test::Stream::Event::Ok> and shares all of its methods and fields.
-
-=head1 ACCESSORS
-
-=over 4
-
-=item my $se = $e->events
-
-This returns an arrayref with all events generated during the subtest.
-
-=item my $x = $e->exception
-
-If the subtest was killed by a C<skip_all> or C<BAIL_OUT> the event will be
-returned by this accessor.
-
-=back
-
-=head1 SUMMARY FIELDS
-
-C<Test::Stream::Event::Subtest> inherits all of the summary fields from
-L<Test::Stream::Event::Ok>.
-
-=over 4
-
-=item events => \@subevents
-
-An arrayref containing all the events generated within the subtest, including
-plans.
-
-=item exception => \$plan_or_bail
-
-If the subtest was aborted due to a bail-out or a skip_all, the event that
-caused the abort will be here (in addition to the events arrayref.
-
-=item plan => \$plan
-
-The plan event for the subtest, this may be auto-generated.
-
-=item passing => $bool
-
-True if the subtest was passing, false otherwise. This should not be confused
-with 'bool' inherited from L<Test::Stream::Event::Ok> which takes TODO into
-account.
-
-=item count => $num
-
-Number of tests run inside the subtest.
-
-=item failed => $num
-
-Number of tests that failed inside the subtest.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/ExitMagic.pm b/cpan/Test-Simple/lib/Test/Stream/ExitMagic.pm
deleted file mode 100644 (file)
index 791ba14..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-package Test::Stream::ExitMagic;
-use strict;
-use warnings;
-
-require Test::Stream::ExitMagic::Context;
-
-use Test::Stream::ArrayBase(
-    accessors => [qw/pid done/],
-);
-
-sub init {
-    $_[0]->[PID]  = $$;
-    $_[0]->[DONE] = 0;
-}
-
-sub do_magic {
-    my $self = shift;
-    my ($stream, $context) = @_;
-    return unless $stream;
-    return if $stream->no_ending && !$context;
-
-    # Don't bother with an ending if this is a forked copy.  Only the parent
-    # should do the ending.
-    return unless $self->[PID] == $$;
-
-    # Only run once
-    return if $self->[DONE]++;
-
-    my $real_exit_code = $?;
-
-    $context ||= Test::Stream::ExitMagic::Context->new([caller()], $stream);
-
-    if (!$stream->ended && $stream->follow_ups && @{$stream->follow_ups}) {
-        $context->set;
-        $_->($context) for @{$stream->follow_ups};
-        $context->clear;
-    }
-
-    my $plan  = $stream->plan;
-    my $total = $stream->count;
-    my $fails = $stream->failed;
-
-    $context->finish($total, $fails);
-
-    # Ran tests but never declared a plan or hit done_testing
-    return $self->no_plan_magic($stream, $context, $total, $fails, $real_exit_code)
-        if $total && !$plan;
-
-    # Exit if plan() was never called.  This is so "require Test::Simple"
-    # doesn't puke.
-    return unless $plan;
-
-    # Don't do an ending if we bailed out.
-    if( $stream->bailed_out ) {
-        $stream->is_passing(0);
-        return;
-    }
-
-    # Figure out if we passed or failed and print helpful messages.
-    return $self->be_helpful_magic($stream, $context, $total, $fails, $plan, $real_exit_code)
-        if $total && $plan;
-
-    if ($plan->directive && $plan->directive eq 'SKIP') {
-        $? = 0;
-        return;
-    }
-
-    if($real_exit_code) {
-        $context->diag("Looks like your test exited with $real_exit_code before it could output anything.\n");
-        $stream->is_passing(0);
-        $? = $real_exit_code;
-        return;
-    }
-
-    unless ($total) {
-        $context->diag("No tests run!\n");
-        $stream->is_passing(0);
-        $? = 255;
-        return;
-    }
-
-    $stream->is_passing(0);
-    $? = 255;
-}
-
-sub no_plan_magic {
-    my $self = shift;
-    my ($stream, $context, $total, $fails, $real_exit_code) = @_;
-
-    $stream->is_passing(0);
-    $context->diag("Tests were run but no plan was declared and done_testing() was not seen.");
-
-    if($real_exit_code) {
-        $context->diag("Looks like your test exited with $real_exit_code just after $total.\n");
-        $? = $real_exit_code;
-        return;
-    }
-
-    # But if the tests ran, handle exit code.
-    if ($total && $fails) {
-        my $exit_code = $fails <= 254 ? $fails : 254;
-        $? = $exit_code;
-        return;
-    }
-
-    $? = 254;
-    return;
-}
-
-sub be_helpful_magic {
-    my $self = shift;
-    my ($stream, $context, $total, $fails, $plan, $real_exit_code) = @_;
-
-    my $planned   = $plan->max;
-    my $num_extra = $plan->directive && $plan->directive eq 'NO PLAN' ? 0 : $total - $planned;
-
-    if ($num_extra != 0) {
-        my $s = $planned == 1 ? '' : 's';
-        $context->diag("Looks like you planned $planned test$s but ran $total.\n");
-        $stream->is_passing(0);
-    }
-
-    if($fails) {
-        my $s = $fails == 1 ? '' : 's';
-        my $qualifier = $num_extra == 0 ? '' : ' run';
-        $context->diag("Looks like you failed $fails test$s of ${total}${qualifier}.\n");
-        $stream->is_passing(0);
-    }
-
-    if($real_exit_code) {
-        $context->diag("Looks like your test exited with $real_exit_code just after $total.\n");
-        $stream->is_passing(0);
-        $? = $real_exit_code;
-        return;
-    }
-
-    my $exit_code;
-    if($fails) {
-        $exit_code = $fails <= 254 ? $fails : 254;
-    }
-    elsif($num_extra != 0) {
-        $exit_code = 255;
-    }
-    else {
-        $exit_code = 0;
-    }
-
-    $? = $exit_code;
-    return;
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::ExitMagic - Encapsulate the magic exit logic
-
-=head1 DESCRIPTION
-
-It's magic! well kinda..
-
-=head1 SYNOPSYS
-
-Don't use this yourself, let L<Test::Stream> handle it.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/ExitMagic/Context.pm b/cpan/Test-Simple/lib/Test/Stream/ExitMagic/Context.pm
deleted file mode 100644 (file)
index 9832a68..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-package Test::Stream::ExitMagic::Context;
-use strict;
-use warnings;
-
-use Test::Stream::ArrayBase(
-    base => 'Test::Stream::Context',
-);
-
-sub init {
-    $_[0]->[PID]      = $$;
-    $_[0]->[ENCODING] = 'legacy';
-}
-
-sub snapshot { $_[0] }
-
-sub from_end_block { 1 };
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::ExitMagic::Context - Special context for use in an END block.
-
-=head1 DESCRIPTION
-
-L<Test::Stream> needs to accomplish some magic in an END block. In an END block
-it is not always possible to have a true/complete context object, so this
-trivial one is used instead.
-
-B<DO NOT USE THIS>. If you find yourself thinking that you should use this then
-B<STOP!> because you are very likely to be wrong.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Explanation.pod b/cpan/Test-Simple/lib/Test/Stream/Explanation.pod
deleted file mode 100644 (file)
index 9314bb6..0000000
+++ /dev/null
@@ -1,943 +0,0 @@
-package Test::Stream::Explanation;
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Explanation - Explanation of all things Test::Stream
-
-=head1 Summary of problems the new internals solve
-
-=over 4
-
-=item Monolithic singleton
-
-=item Subtests are a horrible hack
-
-=item No event monitoring/munging
-
-=item Diags and Oks are not linked
-
-=item $Level is fragile, non-obvious, and actively harmful
-
-=item Depth ($Level) is a bad thing to test against
-
-=item There is no good way to validate testing tools, only mediocre ways
-
-=item Cannot reuse Test::More tools without generating TAP
-
-=item TAP is mandatory
-
-=item Setting the encoding requires major hackery
-
-=item No forking support
-
-=item Shared variable hackery in thread support
-
-=back
-
-=head1 Solutions
-
-=head2 Singleton
-
-The biggest problem with Test::Builder is that it does 2 things at once.  The
-first thing it does is synchronization, which is accomplished by making it a
-singleton. The second thing it does is provide a collection of useful tools and
-shortcuts for generating events. This is an issue because the tools are tied to
-the singleton, Subclassing Test::Builder is not an option, and there are few
-hooks. You essentially have to hack the Test::Builder object, and hope nobody
-else does the same.
-
-Test::Stream now houses synchronization code, all events come to Test::Stream,
-which makes sure the state is updated, and then forwards the events to where
-they need to be, including producing the TAP output. This module synchronizes
-state, threads, processes, and events.
-
-Unlike Test::Builder, Test::Stream is not a true singleton. Test::Stream has a
-singleton stack, and code always uses the instance at the top of the stack.
-This allows you to temporarily push an instance to the top in order to
-intercept events.
-
-Anything not essential to synchronization is kept in other modules. This model
-allows you to subclass tools as you see fit. You can create and destroy
-instances as needed. You can create your own toolboxes without accounting for
-the nature of a singleton.
-
-=head2 Subtests
-
-Do not read the subtest implementation in the legacy Test::Builder code, if
-your eyes bleed that much you won't be able to finish reading this document.
-They first copy the singleton, then reset the originals internals, do their
-thing, then restore the original internals. This is not an attack against the
-people that wrote it; they did the best that could be done with the singleton
-they had to work with. The only way to write a better implementation is to move
-away from the monolithic singleton model.
-
-Subtests are now integrated into the design of Test::Stream. Test::Stream
-maintains a state stack. When a subtest starts it pushes a new state to the top
-of the stack, when it is finished it pops the state. Designing the internals
-with subtests in mind from the beginning significantly reduces the hackery
-necessary to make them work.
-
-Note: There is still some other stuff that makes subtests non-trivial, such as
-TODO inheritance. But most of the problems related to subtests are solved in
-much saner ways now.
-
-=head2 Event Handling
-
-In Test::Builder, ok, diag, note, etc. were all simply methods. You call the
-method you get some TAP. There was no easy way to hook into the system and
-modify an event. There is also no easy way to listen for events, or maintain a
-complete list, short of parsing TAP.
-
-All "events" are now proper objects. Tools generate events such as 'ok' and
-'diag', then send them to the Test::Stream instance at the top of the stack.
-Test::Stream provides hooks for you to modify events before the test state is
-updated, as well as hooks for reading/displaying/storing events after the state
-is updated. There is also a hook for the end of the test run (done_testing, or
-test ended).
-
-This is what Test::Stream is named Test::Stream, all events stream from the
-tools into the Test::Stream funnel, which then gets them where they need to go.
-Previously these kinds of actions required monkeypatching.
-
-=head2 Linking ok and diag
-
-Tools would typically call C<< $TB->ok >>, then call C<< $TB->diag >>. Both
-would produce output. There is no easy way to associate the diag and the ok.
-Often the messages can appear out of order, or far apart. Usually a human can
-figure out what goes where, but connecting them programmatically is very hard
-to do after the fact.
-
-Diags and oks can still exist as independent events, but by default all Test::More
-tools link the 'ok' and 'diag' events they produce. This allows code to process
-the ok and attached diagnostics as one unit. This prevents guess work
-previously required to accomplish this. Any downstream tool can also link 'ok'
-and 'diag' objects, but they are not required to do so for compatibility
-reasons.
-
-NOTE: Once the events are turned into TAP they still have the same issue as
-before, TAP itself does not provide any way of linking the diag and the ok.
-
-=head2 $Level
-
-=head3 Whats the problem with $Level?
-
-    local $Test::Builder::Level = $Test::Builder::Level + $x;
-
-At a glance the code above seems reasonable... But there are caveats:
-
-=over 4
-
-=item What if you have multiple Test::Builder instances?
-
-Don't
-
-=item What about subtests?
-
-$Level is zeroed out and restored later.
-
-=item What if my unit tests validate the value of $Level, but Test::Builder adds another layer?
-
-Test::Builder can never break large subs into small ones for this reason. Or
-better yet, don't use Test::Tester since you have to jump through hoops for it
-to skip testing level.
-
-=item This is a non-obvious interface for new perl developers.
-
-This code requires you to know about local, package variables, and scope. In
-some cases you also need to do math, something better left to the computer.
-
-=back
-
-=head3 How is it solved?
-
-L<Test::Stream::Context>
-
-Instead of bumping $Level, you ask for a $context instance. You normally ask
-for the $context at the shallowest level of your tools code. The context
-figures out what file+line errors should be reported to, as well as recording
-other critical per-test state such as TODO.
-
-Once you obtain a context, anything else that asks for the context will find
-the one you already have. Once nothing is holding a reference to the context, a
-new one can be generated. Essentially this lets the first tool in the stack
-lock in a context, and all deeper tools find it. When your tool is finished the
-Context is destroyed allowing the next tool to repeat the process. This lets
-you stack tools arbitrarily without concerning yourself with depth value.
-
-Note: You can pass a level/depth value when obtaining a context if for some
-reason you cannot obtain it at the shallowest level.
-
-Note: Context takes the value of $Level into account for compatibility reasons.
-Backcompat like this adds an unfortunate level of complexity to Context.
-
-=head2 Validating test tools
-
-Test::Builder::Tester simply captures all output from Test::Builder. Your job
-is to compare the strings it intercepts with the strings you expect. There are
-a few helpers to reduce the tedious nature of these string compares, but
-ultimately they are not very flexible. Changing the indentation of a comment
-intended for human consumption can break any and all modules that use
-Test::Builder::Tester.
-
-Test::Tester is a huge improvement, but lacks support for numerous features.
-Test::Tester also works (worked) by replacing the singleton and monkeypatching
-a lot of methods. Testing tools that also need to monkeypatch is not possible.
-In addition it made too many assumptions about what you wanted to do with the
-results it found.
-
-The solution here is Test::Stream::Tester. Test::Stream::Tester leverages the
-stack nature of Test::Stream to intercept events generated over a specific
-scope. These event objects can then be verified using well known tools from
-Test::More, or the tools Test::Stream::Tester itself provides to make
-validating events super easy.
-
-Another validation problem solved here is that you can filter, or be selective
-about what events you care about. This allows you to test only the parts that
-your module generates. This is helpful in ensuring changes upstream do not
-break your tests unless they actually break your modules behavior.
-
-=head2 Resusable Test::More tools.
-
-Often people would write test subs that make use of tools such as C<like>,
-C<is_deeply>, and others in a sequence to validate a single result. This
-produces an 'ok' and/or diag for each tool used. In many cases people would
-prefer to produce only a single final event, and a combined diagnostic message.
-This is now possible.
-
-L<Test::More::Tools> and L<Test::More::DeepCheck> solve this problem. Nearly
-all the internals of Test::More have been moved into these 2 modules. The subs
-in these modules return a boolean and diagnostics messages, but do not fire off
-events. These are then wrapped in Test::More to actually produce the events.
-Using these tools you can create composite tools that produce a single event.
-
-L<Test::More::DeepCheck> is the base for is_deeply. This is useful because it
-gives you a chance to create tools like is_deeply with similar diagnostics (for
-better or worse). An example of this is L<Test::MostlyLike>.
-
-=head2 Mandatory TAP.
-
-99% of the time you want TAP. With the old internals turning TAP off was hard,
-and usually resulted in a useless Test::Builder.
-
-There is now a single switch you can use to turn TAP on and off. The listener
-feature of Test::Stream gives you the ability to produce whatever output you
-desire for any event that comes along. All the test state is still kept
-properly.
-
-=head2 Setting the encoding
-
-Legacy Test::Builder would clone the standard filehandles, reset them, and
-modify them in various ways as soon as it loaded. Changes made to STDERR and
-STDOUT after this action would have no effect on Test::Builder. You could
-modify/set/reset Test::Builders filehandles, but this was not obvious. Setting
-the encoding of the handles in Test::Builder could also be dangerous as other
-modules might have changes the handles.
-
-For compatibility reasons Test::Stream still has to do all the filehandle
-manipulation Test::Builder did. However it encapsulates it better and makes it
-significantly easier to modify. Every class that produces events gets a
-meta-object. The meta-object has an option for encoding. You can ask for a
-specific encoding when you load Test::More, or you can change it at any point
-in the test.
-
-Encodings are managed by <Test::Stream::IOSets>. Each Test::Stream instance has
-an instance of L<Test::Stream::IOSets>. The default encoding is called 'legacy'
-and it does what Test::Builder has always done. You can ask for a specific
-encoding, such as utf8, and IOSets will create a new clone of STDERR and STDOUT
-and handle setting the encoding for you. IOSets can manage several encodings
-all at once, so you can switch as necessary in your tests, or have multiple
-tests under the same process that use different encodings.
-
-=head2 Threads and Forking
-
-Legacy Test::Builder does not support producing results from multiple threads
-without serious hacking or questionable third party modules (Of which I own
-one, and help maintain another).
-
-Legacy Test::Builder does support threading, but only if threads are loaded
-first. It uses shared variables and locking to maintain the test state and
-ensure test numbers are consistent.
-
-Test::Stream has forking support baked in (though you have to ask for it).
-Thread support has been changed to use the same mechanism as forking support.
-There are no shared variables. Test::Stream implements checks to ensure that
-all events generated get funneled to the parent process/thread where they can
-then be properly processed.
-
-=head1 Module justifications
-
-All code is a liability. Any module which is included in the dist requires
-some justification. If there is no justification for including the module the
-sensible thing to do would be to purge it.
-
-=head2 Test::Builder
-
-Required for legacy support and backwards compatibility.
-
-=head2 Test::Builder::Module
-
-Required for legacy support and backwards compatibility. In the past people
-were urged to use this as a base class for all testing tools. To my knowledge
-adoption was very low.
-
-=head2 Test::Builder::Tester
-
-Has been included for many years. Tightly coupled with the rest of the testing
-tools. Wide adoption.
-
-=head3 Additional components
-
-=over 4
-
-=item Test::Builder::Tester::Color
-
-=back
-
-=head2 Test::CanFork
-
-Encapsulation of some logic that used to be duplicated in several Test-Simple
-tests. Now usable by anyone.
-
-This module lets you make a test conditional upon support for forking.
-
-=head2 Test::CanThread
-
-Encapsulation of some logic that used to be duplicated in several Test-Simple
-tests. Now usable by anyone.
-
-This module lets you make a test conditional upon support for threads.
-
-=head2 Test::More
-
-This requires no justification.
-
-=head3 Additional components
-
-=over 4
-
-=item Test::More::DeepCheck
-
-This is a base class for tools that resemble is_deeply. A lot of this is
-valuable logic that is now reusable.
-
-=item Test::More::DeepCheck::Strict
-
-This is the subclass that implements is_Deeply itself. I will not that this was
-a refactor, not a re-implementation, there should be zero net-change to how
-is_deeply behaves.
-
-=item Test::More::Tools
-
-This is where the guts of Test::More tools live. This is here so that they can
-be reused in composite tests without any hacking. This was a refactor, not
-redesign from the ground up.
-
-=back
-
-=head2 Test::MostlyLike
-
-This implements a new tool similar to is_deeply called mostly_like. This is
-included in the dist because I wrote it specifically to test the Test-Simple
-internals. It is also useful enough to publish publicly.
-
-=head3 Additional components
-
-=over 4
-
-=item Test::More::DeepCheck::Tolerant
-
-This is the subclass that implements mostly_like.
-
-=back
-
-=head2 Test::Simple
-
-This requires no justification. This is also the module the dist is named after.
-
-=head2 Test::Stream
-
-This is the new crux of Test-Simple.
-
-Test::Stream is the hub to which all events flow. It is also responsible for
-ensuring all events get to the correct place. This is where all synchronization
-happens.
-
-=head3 Additional components
-
-=over 4
-
-=item Test::Stream::API
-
-This is sugar-coating. This is the go-to place when people wish to know the
-easiest way to accomplish something fancy.
-
-=item Test::Stream::Meta
-
-Metadata assigned to test files/packages
-
-=item Test::Stream::PackageUtil
-
-Utilities for inspecting package internals
-
-=item Test::Stream::Subtest
-
-Encapsulation of subtest logic
-
-=item Test::Stream::Threads
-
-Encapsulation of threading tools
-
-=item Test::Stream::Util
-
-Misc Utilities used all over Test-Simple
-
-=back
-
-=head2 Test::Stream::ArrayBase
-
-All objects in Test::Stream use this to generate methods and constructors. This
-is done here, and the way it is, for performance. Before implementing this ans
-switching to it, performance was bad enough to keep the new internals out of
-core.
-
-=head3 Additional components
-
-=over 4
-
-=item Test::Stream::ArrayBase::Meta
-
-=back
-
-=head2 Test::Stream::Block
-
-Subtests are typically codeblocks. This is an object to represent them. There
-is some development in this module that will provide profoundly useful
-debugging for subtests, though it has not yet been enabled. This module is in
-the dist mainly to give it a shakedown and prove it before turning on the extra
-debugging.
-
-=head2 Test::Stream::Carp
-
-We cannot load Carp until we actually need it, if we do it can cause unexpected
-test passes downstream. This is one of few core modules I am willing to do this
-for, mainly because legacy had the same policy.
-
-This module provides the same tools as Carp, they simple load Carp and call the
-correct sub from there.
-
-=head2 Test::Stream::Context
-
-This module is responsible for gathering details about events that are to be
-generated. It is responsible for figuring out where errors should be reported,
-if we are in a TODO, and various other meta-data.
-
-This module is an essential module.
-
-It also handles backwards compatibility with $Level, $TODO, and
-C<< Test::Builder->todo_start >>.
-
-=head2 Test::Stream::Event
-
-All 'events' are now proper objects, this is the base class for all events.
-
-=head3 Additional components
-
-=over 4
-
-=item Test::Stream::Event::Bail
-
-Event for bailing out.
-
-=item Test::Stream::Event::Diag
-
-Event for diagnostics
-
-=item Test::Stream::Event::Finish
-
-Event for the end of the test.
-
-=item Test::Stream::Event::Note
-
-Event for notes.
-
-=item Test::Stream::Event::Ok
-
-The 'ok' event is the most well known. This is an essential event.
-
-=item Test::Stream::Event::Plan
-
-This event is triggered whenever a plan is declared.
-
-=item Test::Stream::Event::Subtest
-
-Subtests are their own event, it is a subclass of the
-L<Test::Stream::Event::Ok> event.
-
-=back
-
-=head2 Test::Stream::ExitMagic
-
-This is where the magic that happens when a test process exists is
-encapsulated. Some of this is pretty grody or questionable, nearly all of it is
-here for legacy reasons.
-
-=head3 Additional components
-
-=over 4
-
-=item Test::Stream::ExitMagic::Context
-
-Special Context object to use from ExitMagic. This is because a lot of Context
-logic is a bad idea when run from an END block.
-
-=back
-
-=head2 Test::Stream::Exporter
-
-Test-Simple has to do a lot of exporting. Some of the exporting is not easy to
-achieve using L<Exporter>. I can't use an export tool from cpan, so I had to
-implement the bare minimum I needed here.
-
-=head3 Additional components
-
-=over 4
-
-=item Test::Stream::Exporter::Meta
-
-=back
-
-=head2 Test::Stream::ForceExit
-
-This module is used to ensure that code exits by the end of a scope. This is
-mainly for cases where you fork down stack from an eval and your code throws
-and exception before it can exit.
-
-(A quick grep of the code tells me this is not in use anymore/yet. It can
-probably be purged)
-
-=head2 Test::Stream::IOSets
-
-This is where filehandles and encodings are managed. This is here both to
-implement legacy filehandle support, and to enable support for encodings.
-
-=head2 Test::Stream::Tester
-
-This module is intended to be the new and proper way to validate testing tools.
-It supports all features of Test::Stream, and provides tools and helpers that
-make the job easier.
-
-=head3 Additional components
-
-=over 4
-
-=item Test::Stream::Tester::Checks
-
-=item Test::Stream::Tester::Checks::Event
-
-=item Test::Stream::Tester::Events
-
-=item Test::Stream::Tester::Events::Event
-
-=item Test::Stream::Tester::Grab
-
-=back
-
-=head2 Test::Stream::Toolset
-
-This module provides the minimum set of tools most test tools need to work.
-
-=head2 Test::Tester
-
-This is an important part of the ecosystem. It makes no sense to ship this
-independently. Changes to Test-Simple can break this in any number of ways,
-integration is the only sane option.
-
-=head3 Additional components
-
-Most of these remain for legacy support.
-
-=over 4
-
-=item Test::Tester::Capture
-
-=item Test::Tester::CaptureRunner
-
-=item Test::Tester::Delegate
-
-=back
-
-=head2 Test::use::ok
-
-This module implements the sane companion to C<use_ok> which is C<use ok>.
-There has been a desire to combine this into Test-Simple for years, I finally
-did it.
-
-=head3 Additional components
-
-=over 4
-
-=item ok
-
-This is where the actual implementation lives.
-
-=back
-
-=head1 Compatability Shims
-
-Some modules need to jump through extra hoops in order to support legacy code.
-This section describes these instances.
-
-=head2 Test::Builder
-
-Nearly everything in this module is here purely for legacy and compatibility.
-But there are some extra-notable items:
-
-=over 4
-
-=item $_ORIG_Test
-
-=item %ORIG
-
-=item %WARNED
-
-These 3 variables are used to track and warn about changes to the singleton or
-method monkeypatching that could cause problems.
-
-=item ctx()
-
-A special context method that does extra C<$Level> accounting.
-
-=item %TB15_METHODS
-
-=item AUTOLOAD
-
-Used to warn people when they appear to be using Test::Builder 1.5 methods that
-never actually made it into production anywhere.
-
-=item underscore methods
-
-There are several private methods (underscore prefix) that were never intended
-for external use. Despite underscores, warnings, and other such things people
-used them externally anyway. Most were purged, but these were left because an
-unbelievable amount of downstream things appear to depend on them.
-
-=back
-
-=head2 Test::Stream
-
-The state array has an extra field identified by the constant C<STATE_LEGACY>.
-This is an array of all events of some types. Test::Builder used to maintain an
-array of hashes representing events for inspection later. Code which relied on
-this capability now depends on this and some translation logic in
-Test::Builder.
-
-Unlike in old Test::Builder this feature can be turned off for performance and
-memory improvement.
-
-=head2 Test::Stream::Util
-
-=over 4
-
-=item is_dualvar
-
-Test::More has its own is_dualvar. This differs from Scalar::Utils dualvar
-checker, enough to break cmp_ok. Because of the breakage I have not switched.
-
-=item is_regex
-
-Test::More tools check if things are regexes in many places. The way it does
-this, and the things it considers to be regexes are suprising. Much of this is
-due to VERY old code that might predate quick regexes. Switching away from this
-would break a lot of things.
-
-=item unoverload
-
-Test::More has its own ideas of unoverloading things and when it is necessary.
-Not safe to migrate away from this.
-
-=back
-
-=head2 Test::Stream::Context
-
-=over 4
-
-=item TODO
-
-Has to look for todo in 4 places. $TODO in the test package, $TODO in
-Test::More, the todo value of the Test::Builder singleton, and the todo in test
-package meta-data. The main issue here is no good TODO system has ever been
-found, so we use and support 4 mediocre or even bad ones.
-
-=item $Level
-
-Test::Builder has historically been very forgiving and clever when it comes to
-$Level. Context takes $Level into account when finding the proper file + line
-number for reporting errors. If $Level is wrong it attempts to be as forgiving
-as Test::Builder was. Requiring $Level to be correct breaks an unfortunate
-number of downstream tools, so we have to stay forgiving for now.
-
-=item Test::Builder monkeypatching
-
-When Test::Builder gets monkeypatched, we need to detect it here and try to
-incorporate the monkeypatching. This is a horrible hack that works surprisingly
-well.
-
-=item hide_todo + restore_todo
-
-Subtests need to hide the TODO state, they have always done this historically.
-These methods accomplish this... for all 4 ways you can set TODO.
-
-=back
-
-=head2 Test::Stream::ExitMagic
-
-Test::Builder does a lot of stuff at exit. I would argue that a lot of this
-should be harness logic. However compatibility and people relying on it means
-we cannot just remove it all at once.
-
-This magic is called though either an END block, or done_testing. Sometimes
-both.
-
-=head2 Test::Stream::IOSets
-
-Test::Builder clones STDERR and STDOUT and resets them to what it thinks they
-should be. This encapsulates that logic and calls it 'legacy'. It then provides
-mechanisms for actually supporting custom filehandles and encodings.
-
-=head2 Test::Tester
-
-This makes use of the STATE_LEGACY key mentioned in the Test::Stream section.
-This also needs to do some gymnastics and monkeypatching for $Level support.
-
-=head1 Design Decisions
-
-=head2 Test::Builder
-
-Decided to turn this into a legacy wrapper. It is no longer essential for
-anything new.
-
-=head2 Test::More
-
-Decided to refactor the logic out into reusable parts. No net change except for
-some bug fixes.
-
-At one point some redesign was started, but it was abandoned, this mainly had
-to do with use_ok and require_ok, which are horrible.
-
-=head3 Additional components
-
-Most logic was moved into these 3 modules
-
-=over 4
-
-=item Test::More::DeepCheck
-
-is_deeply stack and diagnostics
-
-=item Test::More::DeepCheck::Strict
-
-is_deeply inner check functions
-
-=item Test::More::Tools
-
-Everything else.
-
-=back
-
-=head2 Test::Stream
-
-=over 4
-
-=item Instead of a singleton, we have a stack of singletons
-
-We can't avoid using a singleton-like pattern when we are dealing with a shared
-state. However there are times where we need to work around the singleton
-model. The main example is writing tests for testing tools. The singleton stack
-allows us to put new instances in place that will steal focus.
-
-Anything that produces events should send them to the topmost instance of
-Test::Stream. Using tools like Test::Stream::Context and Test::Builder handle
-this for you.
-
-In the old system you were expected to cache a copy of the Test::Builder
-singleton, this caused problems when code needed to replace the singleton.
-Subtests had to implement and ugly hack around this problem. In the new system
-test state is also a stack, subtests work by pushing a new state, they do not
-need to replace the entire singleton.
-
-=item Only state and synchronization is handled here
-
-Since this module is somewhat singleton in nature, we keep it as small as
-possible. Anything that is put into a singleton-like object is hard to expand.
-If it is not related to synchronization or common state, I tried to put it
-somewhere else.
-
-=item Events are proper objects
-
-In the old design events were just methods that produced TAP.  Now they are
-proper objects that can be constructed, altered, passed around, etc.
-
-=item This module is a hub through which events stream
-
-Events are built by testing tools, once ready the events are given to
-Test::Stream to ensure they get to the right place.
-
-=back
-
-=head2 Test::Stream::Meta
-
-Attaching meta-data to tests was a design decision adopted for settings that
-people want, but might be different from test file to test file. Being able to
-use different settings in different files is necessary for advanced testing
-tools that might load multiple files at a time. Examples include Fennec,
-Test::Class, etc.
-
-Currently TODO and tap_encoding are the only significant settings here.
-
-=head2 Test::Stream::ArrayBase
-
-This is the OO implementation used all over Test::Stream. The initial upgrade
-to OO from a single object where hash elements were directly accessed resulted
-in a significant slowdown.
-
-To avoid the slowdown a couple design decision were made:
-
-=over 4
-
-=item Objects would be array based
-
-=item Constants would be used to access elements
-
-=item Single inheritance only for simplicity
-
-=item Seperate reader+writer methods
-
-=item generate methods for each attribute that use $_[xxx] and constants
-
-=back
-
-Together these designs resulted in huge performance gains.
-
-=head2 Test::Stream::Context
-
-The context object is created when a testing tool is called. Any testing tools
-called within will find the existing context. This context stores important
-things like test file, line number, etc.
-
-This is implemented as a weak singleton. When a tool gets a context is is
-crated. When a tool returns the context is garbage collected and destroyed.
-This allows the next tool to obtain a new context.
-
-=head2 Test::Stream::Event::Subtest
-
-The subtest event is a subclass of the ok event. This is done because a subtest
-ultimately boils down to an 'ok'.
-
-=head2 Test::Stream::Exporter
-
-Test::Stream has to do some fancy exporting, specially due to
-Test::Stream::ArrayBase and the attribute constants. This exporter is a very
-light implementation modeled on Exporter::Declare. It uses a meta-object to
-track exports.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Exporter.pm b/cpan/Test-Simple/lib/Test/Stream/Exporter.pm
deleted file mode 100644 (file)
index 237560a..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-package Test::Stream::Exporter;
-use strict;
-use warnings;
-
-use Test::Stream::PackageUtil;
-use Test::Stream::Exporter::Meta;
-
-sub export;
-sub exports;
-sub default_export;
-sub default_exports;
-
-# Test::Stream::Carp uses this module.
-sub croak   { require Carp; goto &Carp::croak }
-sub confess { require Carp; goto &Carp::confess }
-
-BEGIN { Test::Stream::Exporter::Meta->new(__PACKAGE__) };
-
-sub import {
-    my $class = shift;
-    my $caller = caller;
-
-    Test::Stream::Exporter::Meta->new($caller);
-
-    export_to($class, $caller, @_);
-}
-
-default_exports qw/export exports default_export default_exports/;
-exports         qw/export_to export_meta export_to_level/;
-
-default_export import => sub {
-    my $class = shift;
-    my $caller = caller;
-    my @args = @_;
-
-    my $stash = $class->before_import($caller, \@args) if $class->can('before_import');
-    export_to($class, $caller, @args);
-    $class->after_import($caller, $stash, @args) if $class->can('after_import');
-};
-
-sub export_meta {
-    my $pkg = shift || caller;
-    return Test::Stream::Exporter::Meta->get($pkg);
-}
-
-sub export_to {
-    my $class = shift;
-    my ($dest, @imports) = @_;
-
-    my $meta = Test::Stream::Exporter::Meta->new($class);
-
-    my (@include, %exclude);
-    for my $import (@imports) {
-        if (substr($import, 0, 1) eq '!') {
-            $import =~ s/^!//g;
-            $exclude{$import}++;
-        }
-        else {
-            push @include => $import;
-        }
-    }
-
-    @include = $meta->default unless @include;
-
-    my $exports = $meta->exports;
-    for my $name (@include) {
-        next if $exclude{$name};
-
-        my $ref = $exports->{$name}
-            || croak qq{"$name" is not exported by the $class module};
-
-        no strict 'refs';
-        $name =~ s/^[\$\@\%\&]//;
-        *{"$dest\::$name"} = $ref;
-    }
-}
-
-sub export_to_level {
-    my $class = shift;
-    my ($level, undef, @want) = @_;
-
-    my $dest = caller($level);
-    my $export_to = $class->can('export_to') || \&export_to;
-
-    $class->$export_to($dest, @want);
-}
-
-sub cleanup {
-    my $pkg = caller;
-    package_purge_sym($pkg, map {(CODE => $_)} qw/export exports default_export default_exports/);
-}
-
-sub export {
-    my ($name, $ref) = @_;
-    my $caller = caller;
-
-    my $meta = export_meta($caller) ||
-        confess "$caller is not an exporter!?";
-
-    $meta->add($name, $ref);
-}
-
-sub exports {
-    my $caller = caller;
-
-    my $meta = export_meta($caller) ||
-        confess "$caller is not an exporter!?";
-
-    $meta->add_bulk(@_);
-}
-
-sub default_export {
-    my ($name, $ref) = @_;
-    my $caller = caller;
-
-    my $meta = export_meta($caller) ||
-        confess "$caller is not an exporter!?";
-
-    $meta->add_default($name, $ref);
-}
-
-sub default_exports {
-    my $caller = caller;
-
-    my $meta = export_meta($caller) ||
-        confess "$caller is not an exporter!?";
-
-    $meta->add_default_bulk(@_);
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Exporter - Declarative exporter for Test::Stream and friends.
-
-=head1 DESCRIPTION
-
-Test::Stream::Exporter is an internal implementation of some key features from
-L<Exporter::Declare>. This is a much more powerful exporting tool than
-L<Exporter>. This package is used to easily manage complicated EXPORT logic
-across L<Test::Stream> and friends.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Exporter;
-
-    # Export some named subs from the package
-    default_exports qw/foo bar baz/;
-    exports qw/fluxx buxx suxx/;
-
-    # Export some anonymous subs under specific names.
-    export         some_tool    => sub { ... };
-    default_export another_tool => sub { ... };
-
-    # Call this when you are done providing exports in order to cleanup your
-    # namespace.
-    Test::Stream::Exporter->cleanup;
-
-    # Hooks for import()
-
-    # Called before importing symbols listed in $args_ref. This gives you a
-    # chance to munge the arguments.
-    sub before_import {
-        my $class = shift;
-        my ($caller, $args_ref) = @_;
-        ...
-
-        return $stash; # For use in after_import, can be anything
-    }
-
-    # Chance to do something after import() is done
-    sub after_import {
-        my $class = shift;
-        my ($caller, $stash, @args) = @_;
-        ...
-    }
-
-=head1 EXPORTS
-
-=head2 DEFAULT
-
-=over 4
-
-=item import
-
-Your class needs this to function as an exporter.
-
-=item export NAME => sub { ... }
-
-=item default_export NAME => sub { ... }
-
-These are used to define exports that may not actually be subs in the current
-package.
-
-=item exports qw/foo bar baz/
-
-=item default_exports qw/foo bar baz/
-
-These let you export package subs en mass.
-
-=back
-
-=head2 AVAILABLE
-
-=over 4
-
-=item export_to($from, $dest, @symbols)
-
-=item $from->export_to($dest, @symbols)
-
-Export from the C<$from> package into the C<$dest> package. The class-method
-form only works if the method has been imported into the C<$from> package.
-
-=item $meta = export_meta($package)
-
-=item $meta = $package->export_meta()
-
-Get the export meta object from the package. The class method form only works
-if the package has imported it.
-
-=back
-
-=head1 HOOKS
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Exporter/Meta.pm b/cpan/Test-Simple/lib/Test/Stream/Exporter/Meta.pm
deleted file mode 100644 (file)
index 0bdf935..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-package Test::Stream::Exporter::Meta;
-use strict;
-use warnings;
-
-use Test::Stream::PackageUtil;
-
-# Test::Stream::Carp uses this module.
-sub croak   { require Carp; goto &Carp::croak }
-sub confess { require Carp; goto &Carp::confess }
-
-sub exports { $_[0]->{exports} }
-sub default { @{$_[0]->{pdlist}} }
-sub all     { @{$_[0]->{polist}} }
-
-sub add {
-    my $self = shift;
-    my ($name, $ref) = @_;
-
-    confess "Name is mandatory" unless $name;
-
-    confess "$name is already exported"
-        if $self->exports->{$name};
-
-    $ref ||= package_sym($self->{package}, $name);
-
-    confess "No reference or package sub found for '$name' in '$self->{package}'"
-        unless $ref && ref $ref;
-
-    $self->exports->{$name} = $ref;
-    push @{$self->{polist}} => $name;
-}
-
-sub add_default {
-    my $self = shift;
-    my ($name, $ref) = @_;
-
-    $self->add($name, $ref);
-    push @{$self->{pdlist}} => $name;
-
-    $self->{default}->{$name} = 1;
-}
-
-sub add_bulk {
-    my $self = shift;
-    for my $name (@_) {
-        confess "$name is already exported"
-            if $self->exports->{$name};
-
-        my $ref = package_sym($self->{package}, $name)
-            || confess "No reference or package sub found for '$name' in '$self->{package}'";
-
-        $self->{exports}->{$name} = $ref;
-    }
-
-    push @{$self->{polist}} => @_;
-}
-
-sub add_default_bulk {
-    my $self = shift;
-
-    for my $name (@_) {
-        confess "$name is already exported by $self->{package}"
-            if $self->exports->{$name};
-
-        my $ref = package_sym($self->{package}, $name)
-            || confess "No reference or package sub found for '$name' in '$self->{package}'";
-
-        $self->{exports}->{$name} = $ref;
-        $self->{default}->{$name} = 1;
-    }
-
-    push @{$self->{polist}} => @_;
-    push @{$self->{pdlist}} => @_;
-}
-
-my %EXPORT_META;
-
-sub new {
-    my $class = shift;
-    my ($pkg) = @_;
-
-    confess "Package is required!"
-        unless $pkg;
-
-    unless($EXPORT_META{$pkg}) {
-        # Grab anything set in @EXPORT or @EXPORT_OK
-        my (@pdlist, @polist);
-        {
-            no strict 'refs';
-            @pdlist = @{"$pkg\::EXPORT"};
-            @polist = @{"$pkg\::EXPORT_OK"};
-
-            @{"$pkg\::EXPORT"}    = ();
-            @{"$pkg\::EXPORT_OK"} = ();
-        }
-
-        my $meta = bless({
-            exports => {},
-            default => {},
-            pdlist  => do { no strict 'refs'; no warnings 'once'; \@{"$pkg\::EXPORT"} },
-            polist  => do { no strict 'refs'; no warnings 'once'; \@{"$pkg\::EXPORT_OK"} },
-            package => $pkg,
-        }, $class);
-
-        $meta->add_default_bulk(@pdlist);
-        my %seen = map {$_ => 1} @pdlist;
-        $meta->add_bulk(grep {!$seen{$_}++} @polist);
-
-        $EXPORT_META{$pkg} = $meta;
-    }
-
-    return $EXPORT_META{$pkg};
-}
-
-sub get {
-    my $class = shift;
-    my ($pkg) = @_;
-
-    confess "Package is required!"
-        unless $pkg;
-
-    return $EXPORT_META{$pkg};
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Exporter::Meta - Meta object for exporters.
-
-=head1 DESCRIPTION
-
-L<Test::Stream::Exporter> uses this package to manage exports.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/ForceExit.pm b/cpan/Test-Simple/lib/Test/Stream/ForceExit.pm
deleted file mode 100644 (file)
index 32efb58..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-package Test::Stream::ForceExit;
-use strict;
-use warnings;
-
-sub new {
-    my $class = shift;
-
-    my $done = 0;
-    my $self = \$done;
-
-    return bless $self, $class;
-}
-
-sub done {
-    my $self = shift;
-    ($$self) = @_ if @_;
-    return $$self;
-}
-
-sub DESTROY {
-    my $self = shift;
-    return if $self->done;
-
-    warn "Something prevented child process $$ from exiting when it should have, Forcing exit now!\n";
-    $self->done(1); # Prevent duplicate message during global destruction
-    exit 255;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Test::ForceExit - Ensure C<exit()> is called by the end of a scope, force the issue.
-
-=head1 DESCRIPTION
-
-Sometimes you need to fork. Sometimes the forked process can throw an exception
-to exit. If you forked below an eval the exception will be cought and you
-suddenly have an unexpected process running amok. This module can be used to
-protect you from such issues.
-
-=head1 SYNOPSYS
-
-    eval {
-        ...
-
-        my $pid = fork;
-
-        unless($pid) {
-            require Test::Stream::ForceExit;
-            my $force_exit = Test::Stream::ForceExit->new;
-
-            thing_that_can_die();
-
-            # We did not die, turn off the forced exit.
-            $force_exit->done(1);
-
-            # Do the exit we intend.
-            exit 0;
-        }
-
-        ...
-    }
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 COPYRIGHT
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
diff --git a/cpan/Test-Simple/lib/Test/Stream/IOSets.pm b/cpan/Test-Simple/lib/Test/Stream/IOSets.pm
deleted file mode 100644 (file)
index c76b675..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-package Test::Stream::IOSets;
-use strict;
-use warnings;
-
-use Test::Stream::Util qw/protect/;
-
-init_legacy();
-
-sub new {
-    my $class = shift;
-    my $self = bless {}, $class;
-
-    $self->reset_legacy;
-
-    return $self;
-}
-
-sub init_encoding {
-    my $self = shift;
-    my ($name, @handles) = @_;
-
-    unless($self->{$name}) {
-        my ($out, $fail, $todo);
-
-        if (@handles) {
-            ($out, $fail, $todo) = @handles;
-        }
-        else {
-            ($out, $fail) = $self->open_handles();
-        }
-
-        binmode($out,  ":encoding($name)");
-        binmode($fail, ":encoding($name)");
-
-        $self->{$name} = [$out, $fail, $todo || $out];
-    }
-
-    return $self->{$name};
-}
-
-my $LEGACY;
-sub hard_reset { $LEGACY = undef }
-sub init_legacy {
-    return if $LEGACY;
-
-    my ($out, $err) = open_handles();
-
-    _copy_io_layers(\*STDOUT, $out);
-    _copy_io_layers(\*STDERR, $err);
-
-    _autoflush($out);
-    _autoflush($err);
-
-    # LEGACY, BAH!
-    # This is necessary to avoid out of sequence writes to the handles
-    _autoflush(\*STDOUT);
-    _autoflush(\*STDERR);
-
-    $LEGACY = [$out, $err, $out];
-}
-
-sub reset_legacy {
-    my $self = shift;
-    init_legacy() unless $LEGACY;
-    my ($out, $fail, $todo) = @$LEGACY;
-    $self->{legacy} = [$out, $fail, $todo];
-}
-
-sub _copy_io_layers {
-    my($src, $dst) = @_;
-
-    protect {
-        require PerlIO;
-        my @src_layers = PerlIO::get_layers($src);
-        _apply_layers($dst, @src_layers) if @src_layers;
-    };
-
-    return;
-}
-
-sub _autoflush {
-    my($fh) = pop;
-    my $old_fh = select $fh;
-    $| = 1;
-    select $old_fh;
-
-    return;
-}
-
-sub open_handles {
-    open( my $out, ">&STDOUT" ) or die "Can't dup STDOUT:  $!";
-    open( my $err, ">&STDERR" ) or die "Can't dup STDERR:  $!";
-
-    _autoflush($out);
-    _autoflush($err);
-
-    return ($out, $err);
-}
-
-sub _apply_layers {
-    my ($fh, @layers) = @_;
-    my %seen;
-    my @unique = grep { $_ !~ /^(unix|perlio)$/ && !$seen{$_}++ } @layers;
-    binmode($fh, join(":", "", "raw", @unique));
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::IOSets - Manage sets of IO Handles in specific encodings.
-
-=head1 DESCRIPTION
-
-The module does 2 things, first it emulates the old behavior of
-L<Test::Builder> which clones and modifies the STDOUT and STDERR handles. This
-legacy behavior can be referenced as C<'legacy'> in place of an encoding. It
-also manages multiple clones of the standard file handles which are set to
-specific encodings.
-
-=head1 METHODS
-
-In general you should not use this module yourself. If you must use it directly
-then there is really only 1 method you should use:
-
-=over 4
-
-=item $ar = $ioset->init_encoding($ENCODING)
-
-=item $ar = $ioset->init_encoding('legacy')
-
-=item $ar = $ioset->init_encoding($NAME, $STDOUT, $STDERR)
-
-C<init_encoding()> will return an arrayref of 3 filehandles, STDOUT, STDERR,
-and TODO. TODO is typically just STDOUT again. If the encoding specified has
-not yet been initialized it will initialize it. If you provide filehandles they
-will be used, but only during initializatin. Typically a filehandle set is
-created by cloning STDER and STDOUT and modifying them to use the correct
-encoding.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Meta.pm b/cpan/Test-Simple/lib/Test/Stream/Meta.pm
deleted file mode 100644 (file)
index 68e6641..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-package Test::Stream::Meta;
-use strict;
-use warnings;
-
-use Scalar::Util();
-use Test::Stream::Util qw/protect/;
-
-use Test::Stream::ArrayBase(
-    accessors => [qw/package encoding modern todo stream/],
-);
-
-use Test::Stream::PackageUtil;
-
-use Test::Stream::Exporter qw/import export_to default_exports/;
-default_exports qw{ is_tester init_tester };
-Test::Stream::Exporter->cleanup();
-
-my %META;
-
-sub snapshot {
-    my $self = shift;
-    my $class = Scalar::Util::blessed($self);
-    return bless [@$self], $class;
-}
-
-sub is_tester {
-    my $pkg = shift;
-    return $META{$pkg};
-}
-
-sub init_tester {
-    my $pkg = shift;
-    $META{$pkg} ||= bless [$pkg, 'legacy', 0, undef], __PACKAGE__;
-    return $META{$pkg};
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Meta - Meta object for unit test packages.
-
-=head1 DESCRIPTION
-
-This object is used to track metadata for unit tests packages.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Meta qw/init_tester is_tester/;
-
-    sub import {
-        my $class = shift;
-        my $caller = caller;
-
-        my $meta = init_tester($caller);
-    }
-
-    sub check_stuff {
-        my $caller = caller;
-        my $meta = is_tester($caller) || return;
-
-        ...
-    }
-
-=head1 EXPORTS
-
-=over 4
-
-=item $meta = is_tester($package)
-
-Get the meta object for a specific package, if it has one.
-
-=item $meta = init_tester($package)
-
-Get the meta object for a specific package, or create one.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item $meta_copy = $meta->snapshot
-
-Get a snapshot copy of the metadata. This snapshot will not change when the
-original does.
-
-=item $val = $meta->package
-
-=item $val = $meta->encoding
-
-=item $val = $meta->modern
-
-=item $val = $meta->todo
-
-=item $val = $meta->stream
-
-These are various attributes stored on the meta object.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/PackageUtil.pm b/cpan/Test-Simple/lib/Test/Stream/PackageUtil.pm
deleted file mode 100644 (file)
index 03a8248..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-package Test::Stream::PackageUtil;
-use strict;
-use warnings;
-
-sub confess { require Carp; goto &Carp::confess }
-
-my @SLOTS = qw/HASH SCALAR ARRAY IO FORMAT CODE/;
-my %SLOTS = map {($_ => 1)} @SLOTS;
-
-my %SIGMAP = (
-    '&' => 'CODE',
-    '%' => 'HASH',
-    '$' => 'SCALAR',
-    '*' => 'IO',
-);
-
-sub import {
-    my $caller = caller;
-    no strict 'refs';
-    *{"$caller\::package_sym"}       = \&package_sym;
-    *{"$caller\::package_purge_sym"} = \&package_purge_sym;
-    1;
-}
-
-sub package_sym {
-    my ($pkg, @parts) = @_;
-    confess "you must specify a package" unless $pkg;
-
-    my ($slot, $name);
-
-    if (@parts > 1) {
-        ($slot, $name) = @parts;
-    }
-    elsif (@parts) {
-        my $sig;
-        ($sig, $name) = $parts[0] =~ m/^(\W)?(\w+)$/;
-        $slot = $SIGMAP{$sig || '&'};
-    }
-
-    confess "you must specify a symbol type" unless $slot;
-    confess "you must specify a symbol name" unless $name;
-
-    confess "'$slot' is not a valid symbol type! Valid: " . join(", ", @SLOTS)
-        unless $SLOTS{$slot};
-
-    no warnings 'once';
-    no strict 'refs';
-    return *{"$pkg\::$name"}{$slot};
-}
-
-sub package_purge_sym {
-    my ($pkg, @pairs) = @_;
-
-    for(my $i = 0; $i < @pairs; $i += 2) {
-        my $purge = $pairs[$i];
-        my $name  = $pairs[$i + 1];
-
-        confess "'$purge' is not a valid symbol type! Valid: " . join(", ", @SLOTS)
-            unless $SLOTS{$purge};
-
-        no strict 'refs';
-        local *GLOBCLONE = *{"$pkg\::$name"};
-        my $stash = \%{"${pkg}\::"};
-        delete $stash->{$name};
-        for my $slot (@SLOTS) {
-            next if $slot eq $purge;
-            *{"$pkg\::$name"} = *GLOBCLONE{$slot} if defined *GLOBCLONE{$slot};
-        }
-    }
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::PackageUtil - Utils for manipulating package symbol tables.
-
-=head1 DESCRIPTION
-
-Collection of utilities L<Test::Stream> and friends use to manipulate package
-symbol tables. This is primarily useful when trackign things like C<$TODO>
-vars. It is also used for exporting and meta-construction of object methods.
-
-=head1 EXPORTS
-
-Both exports are exported by default, you cannot pick and choose. These work
-equally well as functions and class-methods. These will not work as object
-methods.
-
-=over 4
-
-=item $ref = package_sym($PACKAGE, $SLOT => $NAME)
-
-Get the reference to a symbol in the package. C<$PACKAGE> should be the package
-name. C<$SLOT> should be a valid typeglob slot (Supported slots: HASH SCALAR ARRAY
-IO FORMAT CODE). C<$NAME> should be the name of the symbol.
-
-=item package_purge_sym($PACKAGE, $SLOT => $NAME, $SLOT2 => $NAME2, ...)
-
-This is used to remove symbols from a package. The first argument, C<$PACKAGE>,
-should be the name of the package. The remaining arguments should be key/value
-pairs. The key in each pair should be the typeglob slot to clear (Supported
-slots: HASH SCALAR ARRAY IO FORMAT CODE). The value in the pair should be the
-name of the symbol to remove.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Subtest.pm b/cpan/Test-Simple/lib/Test/Stream/Subtest.pm
deleted file mode 100644 (file)
index 97e274e..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-package Test::Stream::Subtest;
-use strict;
-use warnings;
-
-use Test::Stream::Exporter;
-default_exports qw/subtest/;
-Test::Stream::Exporter->cleanup;
-
-use Test::Stream::Context qw/context/;
-use Scalar::Util qw/reftype blessed/;
-use Test::Stream::Util qw/try/;
-use Test::Stream::Carp qw/confess/;
-
-use Test::Stream::Block;
-
-sub subtest {
-    my ($name, $code, @args) = @_;
-
-    my $ctx = context();
-
-    $ctx->throw("subtest()'s second argument must be a code ref")
-        unless $code && 'CODE' eq reftype($code);
-
-    my $block = Test::Stream::Block->new(
-        $name, $code, undef, [caller(0)],
-    );
-
-    $ctx->note("Subtest: $name")
-        if $ctx->stream->subtest_tap_instant;
-
-    my $st = $ctx->subtest_start($name);
-
-    my $pid = $$;
-    my ($succ, $err) = try {
-        TEST_STREAM_SUBTEST: {
-            no warnings 'once';
-            local $Test::Builder::Level = 1;
-            $block->run(@args);
-        }
-
-        return if $st->{early_return};
-
-        $ctx->set;
-        my $stream = $ctx->stream;
-        $ctx->done_testing unless $stream->plan || $stream->ended;
-
-        require Test::Stream::ExitMagic;
-        {
-            local $? = 0;
-            Test::Stream::ExitMagic->new->do_magic($stream, $ctx->snapshot);
-        }
-    };
-
-    my $er = $st->{early_return};
-    if (!$succ) {
-        # Early return is not a *real* exception.
-        if ($er && $er == $err) {
-            $succ = 1;
-            $err = undef;
-        }
-        else {
-            $st->{exception} = $err;
-        }
-    }
-
-    if ($$ != $pid) {
-        warn <<"        EOT" unless $ctx->stream->_use_fork;
-Subtest finished with a new PID ($$ vs $pid) while forking support was turned off!
-This is almost certainly not what you wanted. Did you fork and forget to exit?
-        EOT
-
-        # Did the forked process try to exit via die?
-        # If a subtest forked, then threw an exception, we need to propogate that right away.
-        die $err unless $succ;
-    }
-
-    my $st_check = $ctx->subtest_stop($name);
-    confess "Subtest mismatch!" unless $st == $st_check;
-
-    $ctx->bail($st->{early_return}->reason) if $er && $er->isa('Test::Stream::Event::Bail');
-
-    my $e = $ctx->subtest(
-        # Stuff from ok (most of this gets initialized inside)
-        undef, # real_bool, gets set properly by initializer
-        $st->{name}, # name
-        undef, # diag
-        undef, # bool
-        undef, # level
-
-        # Subtest specific stuff
-        $st->{state},
-        $st->{events},
-        $st->{exception},
-        $st->{early_return},
-        $st->{delayed},
-        $st->{instant},
-    );
-
-    die $err unless $succ;
-
-    return $e->bool;
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 Name
-
-Test::Stream::Subtest - Encapsulate subtest start, run, and finish.
-
-=head1 Synopsys
-
-    use Test::Stream::Subtest;
-
-    subtest $name => sub { ... };
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester.pm b/cpan/Test-Simple/lib/Test/Stream/Tester.pm
deleted file mode 100644 (file)
index 111dc73..0000000
+++ /dev/null
@@ -1,727 +0,0 @@
-package Test::Stream::Tester;
-use strict;
-use warnings;
-
-use Test::Builder 1.301001;
-use Test::Stream;
-use Test::Stream::Util qw/try/;
-
-use B;
-
-use Scalar::Util qw/blessed reftype/;
-use Test::Stream::Carp qw/croak carp/;
-
-use Test::Stream::Tester::Checks;
-use Test::Stream::Tester::Checks::Event;
-use Test::Stream::Tester::Events;
-use Test::Stream::Tester::Events::Event;
-
-use Test::Stream::Toolset;
-use Test::Stream::Exporter;
-default_exports qw{
-    intercept grab
-
-    events_are
-    check event directive
-};
-
-default_export dir => \&directive;
-Test::Stream::Exporter->cleanup;
-
-sub grab {
-    require Test::Stream::Tester::Grab;
-    return Test::Stream::Tester::Grab->new;
-}
-
-our $EVENTS;
-sub check(&) {
-    my ($code) = @_;
-
-    my $o    = B::svref_2object($code);
-    my $st   = $o->START;
-    my $file = $st->file;
-    my $line = $st->line;
-
-    local $EVENTS = Test::Stream::Tester::Checks->new($file, $line);
-
-    my @out = $code->($EVENTS);
-
-    if (@out) {
-        if ($EVENTS->populated) {
-            carp "sub used in check(&) returned values, did you forget to prefix an event with 'event'?"
-        }
-        else {
-            croak "No events were produced by sub in check(&), but the sub returned some values, did you forget to prefix an event with 'event'?";
-        }
-    }
-
-    return $EVENTS;
-}
-
-sub event($$) {
-    my ($type, $data) = @_;
-
-    croak "event() cannot be used outside of a check { ... } block"
-        unless $EVENTS;
-
-    my $etypes = Test::Stream::Context->events;
-    croak "'$type' is not a valid event type!"
-        unless $etypes->{$type};
-
-    my $props;
-
-    croak "event() takes a type, followed by a hashref"
-        unless ref $data && reftype $data eq 'HASH';
-
-    # Make a copy
-    $props = { %{$data} };
-
-    my @call = caller(0);
-    $props->{debug_package} = $call[0];
-    $props->{debug_file}    = $call[1];
-    $props->{debug_line}    = $call[2];
-
-    $EVENTS->add_event($type, $props);
-    return ();
-}
-
-sub directive($;$) {
-    my ($directive, @args) = @_;
-
-    croak "directive() cannot be used outside of a check { ... } block"
-        unless $EVENTS;
-
-    croak "No directive specified"
-        unless $directive;
-
-    if (!ref $directive) {
-        croak "Directive '$directive' requires exactly 1 argument"
-            unless (@args && @args == 1) || $directive eq 'end';
-    }
-    else {
-        croak "directives must be a predefined name, or a sub ref"
-            unless reftype($directive) eq 'CODE';
-    }
-
-    $EVENTS->add_directive(@_);
-    return ();
-}
-
-sub intercept(&) {
-    my ($code) = @_;
-
-    my @events;
-
-    my ($ok, $error) = try {
-        Test::Stream->intercept(
-            sub {
-                my $stream = shift;
-                $stream->listen(
-                    sub {
-                        shift; # Stream
-                        push @events => @_;
-                    }
-                );
-                $code->();
-            }
-        );
-    };
-
-    die $error unless $ok || (blessed($error) && $error->isa('Test::Stream::Event'));
-
-    return \@events;
-}
-
-sub events_are {
-    my ($events, $checks, $name) = @_;
-
-    croak "Did not get any events"
-        unless $events;
-
-    croak "Did not get any checks"
-        unless $checks;
-
-    croak "checks must be an instance of Test::Stream::Tester::Checks"
-        unless blessed($checks)
-            && $checks->isa('Test::Stream::Tester::Checks');
-
-    my $ctx = context();
-
-    # use $_[0] directly so that the variable used in the method call can be undef'd
-    $events = $_[0]->finish
-        if blessed($events)
-            && $events->isa('Test::Stream::Tester::Grab');
-
-    $events = Test::Stream::Tester::Events->new(@$events)
-        if ref($events)
-            && reftype($events) eq 'ARRAY';
-
-    croak "'$events' is not a valid set of events."
-        unless $events
-            && blessed($events)
-            && $events->isa('Test::Stream::Tester::Events');
-
-    my ($ok, @diag) = $checks->run($events);
-
-    $ctx->ok($ok, $name, \@diag);
-    return $ok;
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester - Tools for validating the events produced by your testing
-tools.
-
-=head1 DESCRIPTION
-
-There are tools to validate your code. This library provides tools to validate
-your tools!
-
-=head1 SYNOPSIS
-
-    use Test::More;
-    use Test::Stream::Tester;
-
-    events_are(
-        # Capture all the events within the block
-        intercept {
-            ok(1, "pass");
-            ok(0, "fail");
-            diag("xxx");
-        },
-
-        # Describe what we expect to see
-        check {
-            event ok => {bool => 1, name => 'pass'};
-            event ok => {
-                bool => 0,
-                name => 'fail',
-
-                # Ignores any fields in the result we don't list
-                # real_bool, line, file, tool_package, tool_name, etc...
-
-                # Diagnostics generated by a test are typically linked to those
-                # results (new and updated tools only) They can be validated.
-                diag => qr/^Failed test /,
-            };
-            event diag => {message => 'xxx'};
-            directive 'end'; # enforce that there are no more results
-        },
-
-        "This is the name of our test"
-    );
-
-    done_testing;
-
-=head2 GRAB WITH NO ADDED STACK
-
-    use Test::More;
-    use Test::Stream::Tester;
-
-    # Start capturing events. We use grab() instead of intercept {} to avoid
-    # adding stack frames.
-    my $grab = grab();
-
-    # Generate some events.
-    ok(1, "pass");
-    ok(0, "fail");
-    diag("xxx");
-
-    # Stop capturing events, and validate the ones recieved.
-    events_are(
-        $grab,
-        check {
-            event ok => { bool => 1, name => 'pass' };
-            event ok => { bool => 0, name => 'fail' };
-            event diag => { message => 'xxx' };
-            directive 'end';
-        },
-        'Validate our Grab results';
-    );
-
-    # $grab is now undef, it no longer exists.
-    is($grab, undef, '$grab was destroyed for us.');
-
-    ok(!$success, "Eval did not succeed, BAIL_OUT killed the test");
-
-    # Make sure we got the event as an exception
-    isa_ok($error, 'Test::Stream::Event::Bail');
-
-    done_testing
-
-=head1 EXPORTS
-
-=over 4
-
-=item $events = intercept { ... }
-
-=item $events = intercept(sub { ... })
-
-Capture the L<Test::Stream::Event> objects generated by tests inside the block.
-
-=item events_are(\@events, $check)
-
-=item events_are(\@events, $check, $name)
-
-=item events_are($events, $check)
-
-=item events_are($events, $check, $name)
-
-=item events_are($grab, $check)
-
-=item events_are($grab, $check, $name)
-
-The first argument may be either an arrayref of L<Test::Stream::Event> objects,
-an L<Test::Stream::Tester::Grab> object, or an L<Test::Stream::Tester::Events>
-object. C<intercept { ... }> can be used to capture events within a block of
-code, including plans such as C<skip_all>, and things that normally kill the
-test like C<BAIL_OUT()>.
-
-The second argument must be an L<Test::Stream::Tester::Checks> object.
-Typically these are generated using C<check { ... }>.
-
-The third argument is the name of the test, it is optional, but highly
-recommended.
-
-=item $checks = check { ... };
-
-Produce an array of expected events for use in events_are.
-
-    my $check = check {
-        event ok   => { ... };
-        event diag => { ... };
-        directive 'end';
-    };
-
-If the block passed to check returns anything at all it will warn you as this
-usually means you forgot to use the C<event> and/or C<diag> functions. If it
-returns something AND has no events it will be fatal.
-
-C<event()> and C<directive()> both return nothing, this means that if you use
-them alone your codeblock will return nothing.
-
-=item event TYPE => { ... };
-
-Define an event and push it onto the list that will be returned by the
-enclosing C<check { ... }> block. Will fail if run outside a check block. This
-will fail if you give it an invalid event type.
-
-If you wish to acknowledge the event, but not check anything you may simply
-give it an empty hashref.
-
-The line number where the event was generated is recorded for helpful debugging
-in event of a failure.
-
-B<CAVEAT> The line number is inexact because of the way perl records it. The
-line number is taken from C<caller>.
-
-=item dir 'DIRECTIVE';
-
-=item dir DIRECTIVE => 'ARG';
-
-=item dir sub { ... };
-
-=item dir sub { ... }, $arg;
-
-=item directive 'DIRECTIVE';
-
-=item directive DIRECTIVE => 'ARG';
-
-=item directive sub { ... };
-
-=item directive sub { ... }, $arg;
-
-Define a directive and push it onto the list that will be returned by the
-enclosing C<check { ... }> block. This will fail if run outside of a check
-block.
-
-The first argument must be either a codeblock, or one of the name of a
-predefined directive I<See the directives section>.
-
-Coderefs will be given 3 arguments:
-
-    sub {
-        my ($checks, $events, $arg) = @_;
-        ...
-    }
-
-C<$checks> is the L<Test::Stream::Tester::Checks> object. C<$events> is the
-L<Test::Stream::Tester::Events> object. C<$arg> is whatever argument you passed
-via the C<directive()> call.
-
-Most directives will act on the C<$events> object to remove or alter events.
-
-=back
-
-=head1 INTERCEPTING EVENTS
-
-    my $events = intercept {
-        ok(1, "pass");
-        ok(0, "fail");
-        diag("xxx");
-    };
-
-Any events generated within the block will be intercepted and placed inside
-the C<$events> array reference.
-
-=head2 EVENT TYPES
-
-All events will be subclasses of L<Test::Stream::Event>
-
-=over 4
-
-=item L<Test::Stream::Event::Ok>
-
-=item L<Test::Stream::Event::Note>
-
-=item L<Test::Stream::Event::Diag>
-
-=item L<Test::Stream::Event::Plan>
-
-=item L<Test::Stream::Event::Finish>
-
-=item L<Test::Stream::Event::Bail>
-
-=item L<Test::Stream::Event::Subtest>
-
-=back
-
-=head1 VALIDATING EVENTS
-
-You can validate events by hand using traditional test tools such as
-C<is_deeply()> against the $events array returned from C<intercept()>. However
-it is easier to use C<events_are()> paried with C<checks> objects build using
-C<checks { ... }>.
-
-    events_are(
-        intercept {
-            ok(1, "pass");
-            ok(0, "fail");
-            diag("xxx");
-        },
-
-        check {
-            event ok => { bool => 1, name => 'pass' };
-            event ok => { bool => 0, name => 'fail' };
-            event diag => {message => 'xxx'};
-            directive 'end';
-        },
-
-        "This is the name of our test"
-    );
-
-=head2 WHAT DOES THIS BUY ME?
-
-C<checks { ... }>, C<event()>, and C<directive()>, work together to produce a
-nested set of objects to represent what you want to see. This was chosen over a
-hash/list system for 2 reasons:
-
-=over 4
-
-=item Better Diagnostics
-
-Whenever you use C<checks { ... }>, C<events()>, and C<directive()> it records
-the filename and line number where they are called. When a test fails the
-diagnostics will include this information so that you know where the error
-occured. In a hash/list based system this information is not available.
-
-A hash based system is not practical as you may generate several events of the
-same type, and in a hash duplicated keys are squashed (last one wins).
-
-A list based system works, but then a failure reports the index of the failure,
-this requires you to manually count events to find the correct one. Originally
-I tried letting you specify an ID for the events, but this proved annoying.
-
-Ultimately I am very happy with the diagnostics this allows. It is very nice to
-see what is essentially a simple trace showing where the event and check were
-generated. It also shows you the items leading to the failure in the event of
-nested checks.
-
-=item Loops and other constructs
-
-In a list based system you are limited in what you can produce. You can
-generate the list in advance, then pass it in, but this is hard to debug.
-Alternatively you can use C<map> to produce repeated events, but this is
-equally hard to debug.
-
-This system lets you call C<event()> and C<directive()> in loops directly. It
-also lets you write functions that produce them based on input for reusable
-test code.
-
-=back
-
-=head2 VALIDATING FIELDS
-
-The hashref against which events are checked is composed of keys, and values.
-The values may be regular values, which are checked for equality with the
-corresponding property of the event object. Alternatively you can provide a
-regex to match against, or an arrayref of regexes (each one must match).
-
-=over 4
-
-=item field => 'exact_value',
-
-The specified field must exactly match the given value, be it number or string.
-
-=item field => qr/.../,
-
-The specified field must match the regular expression.
-
-=item field => [qr/.../, qr/.../, ...],
-
-The value of the field must match ALL the regexes.
-
-=item field => sub { ... }
-
-Specify a sub that will validate the value of the field.
-
-    foo => sub {
-        my ($key, $val) = @_;
-
-        ...
-
-        # Return true (valid) or false, and any desired diagnostics messages.
-        return($bool, @diag);
-    },
-
-=back
-
-=head2 WHAT FIELDS ARE AVAILABLE?
-
-This is specific to the event type. All events inherit from
-L<Test::Stream::Event> which provides a C<summary()> method. The C<summary()>
-method returns a list of key/value pairs I<(not a reference!)> with all fields
-that are for public consumption.
-
-For each of the following modules see the B<SUMMARY FIELDS> section for a list
-of fields made available. These fields are inherited when events are
-subclassed, and all events have the summary fields present in
-L<Test::Stream::Event>.
-
-=over 4
-
-=item L<Test::Stream::Event/"SUMMARY FIELDS">
-
-=item L<Test::Stream::Event::Ok/"SUMMARY FIELDS">
-
-=item L<Test::Stream::Event::Note/"SUMMARY FIELDS">
-
-=item L<Test::Stream::Event::Diag/"SUMMARY FIELDS">
-
-=item L<Test::Stream::Event::Plan/"SUMMARY FIELDS">
-
-=item L<Test::Stream::Event::Finish/"SUMMARY FIELDS">
-
-=item L<Test::Stream::Event::Bail/"SUMMARY FIELDS">
-
-=item L<Test::Stream::Event::Subtest/"SUMMARY FIELDS">
-
-=back
-
-=head2 DIRECTIVES
-
-Directives give you a chance to alter the list of events part-way through the
-check, or to make the check skip/ignore events based on conditions.
-
-=head3 skip
-
-Skip will skip a specific number of events at that point in the check.
-
-=over 4
-
-=item directive skip => $num;
-
-    my $events = intercept {
-        ok(1, "foo");
-        diag("XXX");
-
-        ok(1, "bar");
-        diag("YYY");
-
-        ok(1, "baz");
-        diag("ZZZ");
-    };
-
-    events_are(
-        $events,
-        ok => { name => "foo" },
-
-        skip => 1, # Skips the diag 'XXX'
-
-        ok => { name => "bar" },
-
-        skip => 2, # Skips the diag 'YYY' and the ok 'baz'
-
-        diag => { message => 'ZZZ' },
-    );
-
-=back
-
-=head3 seek
-
-When turned on (true), any unexpected events will be skipped. You can turn
-this on and off any time by using it again with a false argument.
-
-=over 4
-
-=item directive seek => $BOOL;
-
-    my $events = intercept {
-        ok(1, "foo");
-
-        diag("XXX");
-        diag("YYY");
-
-        ok(1, "bar");
-        diag("ZZZ");
-
-        ok(1, "baz");
-    };
-
-    events_are(
-        $events,
-
-        seek => 1,
-        ok => { name => "foo" },
-        # The diags are ignored, it will seek to the next 'ok'
-        ok => { name => "bar" },
-
-        seek => 0,
-
-        # This will fail because the diag is not ignored anymore.
-        ok => { name => "baz" },
-    );
-
-=back
-
-=head3 end
-
-Used to say that there should not be any more events. Without this any events
-after your last check are simply ignored. This will generate a failure if any
-unchecked events remain.
-
-=over 4
-
-=item directive 'end';
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item L<Test::Tester> *Deprecated*
-
-A nice, but very limited tool for testing 'ok' results.
-
-=item L<Test::Builder::Tester> *Deprecated*
-
-The original test tester, checks TAP output as giant strings.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm
deleted file mode 100644 (file)
index d032807..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-package Test::Stream::Tester::Checks;
-use strict;
-use warnings;
-
-use Test::Stream::Carp qw/croak confess/;
-use Test::Stream::Util qw/is_regex/;
-
-use Scalar::Util qw/blessed reftype/;
-
-my %DIRECTIVES = (
-    map { $_ => __PACKAGE__->can($_) }
-        qw(filter_providers filter_types skip seek end)
-);
-
-sub new {
-    my $class = shift;
-    my ($file, $line) = @_;
-    my $self = bless {
-        seek  => 0,
-        items => [],
-        file  => $file,
-        line  => $line,
-    }, $class;
-    return $self;
-}
-
-sub debug {
-    my $self = shift;
-    return "Checks from $self->{file} around line $self->{line}.";
-}
-
-sub populated { scalar @{shift->{items}} }
-
-sub add_directive {
-    my $self = shift;
-    my ($dir, @args) = @_;
-
-    confess "No directive provided!"
-        unless $dir;
-
-    if (ref($dir)) {
-        confess "add_directive takes a coderef, or name, and optional args. (got $dir)"
-            unless reftype($dir) eq 'CODE';
-    }
-    else {
-        confess "$dir is not a valid directive."
-            unless $DIRECTIVES{$dir};
-        $dir = $DIRECTIVES{$dir};
-    }
-
-    push @{$self->{items}} => [$dir, @args];
-}
-
-sub add_event {
-    my $self = shift;
-    my ($type, $spec) = @_;
-
-    confess "add_event takes a type name and a hashref"
-        unless $type && $spec && ref $spec && reftype($spec) eq 'HASH';
-
-    my $e = Test::Stream::Tester::Checks::Event->new(%$spec, type => $type);
-    push @{$self->{items}} => $e;
-}
-
-sub include {
-    my $self = shift;
-    my ($other) = @_;
-
-    confess "Invalid argument to include()"
-        unless $other && blessed($other) && $other->isa(__PACKAGE__);
-
-    push @{$self->{items}} => @{$other->{items}};
-}
-
-sub run {
-    my $self = shift;
-    my ($events) = @_;
-    $events = $events->clone;
-
-    for (my $i = 0; $i < @{$self->{items}}; $i++) {
-        my $item = $self->{items}->[$i];
-
-        # Directive
-        if (reftype $item eq 'ARRAY') {
-            my ($code, @args) = @$item;
-            my @out = $self->$code($events, @args);
-            next unless @out;
-            return @out;
-        }
-
-        # Event!
-        my $meth = $self->{seek} ? 'seek' : 'next';
-        my $event = $events->$meth($item->get('type'));
-
-        my ($ret, @debug) = $self->check_event($item, $event);
-        return ($ret, @debug) unless $ret;
-    }
-
-    return (1);
-}
-
-sub vtype {
-    my ($v) = @_;
-
-    if (blessed($v)) {
-        return 'checks' if $v->isa('Test::Stream::Tester::Checks');
-        return 'events' if $v->isa('Test::Stream::Tester::Events');
-        return 'check'  if $v->isa('Test::Stream::Tester::Checks::Event');
-        return 'event'  if $v->isa('Test::Stream::Tester::Events::Event');
-    }
-
-    return 'regexp' if defined is_regex($v);
-    return 'noref' unless ref $v;
-    return 'array'  if reftype($v) eq 'ARRAY';
-    return 'code'   if reftype($v) eq 'CODE';
-
-    confess "Invalid field check: '$v'";
-}
-
-sub check_event {
-    my $self = shift;
-    my ($want, $got) = @_;
-
-    my @debug = ("  Check: " . $want->debug);
-    my $wtype = $want->get('type');
-
-    return (0, @debug, "  Expected event of type '$wtype', but did not find one.")
-        unless defined($got);
-
-    unshift @debug => "  Event: " . $got->debug;
-    my $gtype = $got->get('type');
-
-    return (0, @debug, "  Expected event of type '$wtype', but got '$gtype'.")
-        unless $wtype eq $gtype;
-
-    for my $key ($want->keys) {
-        my $wval = $want->get($key);
-        my $gval = $got->get($key);
-
-        my ($ret, @err) = $self->check_key($key, $wval, $gval);
-        return ($ret, @debug, @err) unless $ret;
-    }
-
-    return (1);
-}
-
-sub check_key {
-    my $self = shift;
-    my ($key, $wval, $gval) = @_;
-
-    if ((defined $wval) xor(defined $gval)) {
-        $wval = defined $wval ? "'$wval'" : 'undef';
-        $gval = defined $gval ? "'$gval'" : 'undef';
-        return (0, "  \$got->{$key} = $gval", "  \$exp->{$key} = $wval",);
-    }
-
-    my $wtype = vtype($wval);
-
-    my $meth = "_check_field_$wtype";
-    return $self->$meth($key, $wval, $gval);
-}
-
-sub _check_field_checks {
-    my $self = shift;
-    my ($key, $wval, $gval) = @_;
-
-    my $debug = $wval->debug;
-
-    return (0, "  \$got->{$key} = '$gval'", "  \$exp->{$key} = <$debug>")
-        unless vtype($gval) eq 'events';
-
-    my ($ret, @diag) = $wval->run($gval);
-    return $ret if $ret;
-    return ($ret, map { s/^/    /mg; $_ } @diag);
-}
-
-sub _check_field_check {
-    my $self = shift;
-    my ($key, $wval, $gval) = @_;
-
-    my $debug = $wval->debug;
-
-    return (0, "Event: INVALID EVENT ($gval)", "  Check: $debug")
-        unless vtype($gval) eq 'event';
-
-    my ($ret, @diag) = check_event($wval, $gval);
-    return $ret if $ret;
-
-    return ($ret, map { s/^/    /mg; $_ } @diag);
-}
-
-sub _check_field_noref {
-    my $self = shift;
-    my ($key, $wval, $gval) = @_;
-
-    return (1) if !defined($wval) && !defined($gval);
-    return (1) if defined($wval) && defined($gval) && "$wval" eq "$gval";
-    $wval = "'$wval'" if defined $wval;
-    $wval ||= 'undef';
-    $gval = "'$gval'" if defined $gval;
-    $gval ||= 'undef';
-    return (0, "  \$got->{$key} = $gval", "  \$exp->{$key} = $wval");
-}
-
-sub _check_field_regexp {
-    my $self = shift;
-    my ($key, $wval, $gval) = @_;
-
-    return (1) if $gval =~ /$wval/;
-    return (0, "  \$got->{$key} = '$gval'", "  Does not match $wval");
-}
-
-sub _check_field_array {
-    my $self = shift;
-    my ($key, $wval, $gval) = @_;
-    for my $p (@$wval) {
-        my ($ret, @diag) = $self->_check_field_regexp($key, $p, $gval);
-        return ($ret, @diag) unless $ret;
-    }
-
-    return (1);
-}
-
-sub _check_field_code {
-    my $self = shift;
-    my ($key, $wval, $gval) = @_;
-    $wval->($key, $gval);
-}
-
-sub seek {
-    my $self = shift;
-    my ($events, $flag) = @_;
-
-    $self->{seek} = $flag ? 1 : 0;
-
-    return (); # Cannot fail
-}
-
-sub skip {
-    my $self = shift;
-    my ($events, $num) = @_;
-    $events->next while $num--;
-    return ();
-}
-
-sub end {
-    my $self = shift;
-    my ($events) = @_;
-    my $event = $events->next;
-    return () unless $event;
-    return (0, "  Expected end of events, got " . $event->debug);
-}
-
-sub filter_providers {
-    my $self = shift;
-    my ($events, $arg) = @_;
-
-    my ($neg, $val) = $arg =~ m/^(!?)(.*)$/;
-    if ($neg) {
-        @$events = grep { $_->get('tool_package') ne $val } @$events;
-    }
-    else {
-        @$events = grep { $_->get('tool_package') eq $val } @$events;
-    }
-
-    return ();
-}
-
-sub filter_types {
-    my $self = shift;
-    my ($events, $arg) = @_;
-
-    my ($neg, $val) = $arg =~ m/^(!?)(.*)$/;
-    if ($neg) {
-        @$events = grep { $_->get('type') ne $val } @$events;
-    }
-    else {
-        @$events = grep { $_->get('type') eq $val } @$events;
-    }
-
-    return ();
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Checks - Representation of a L<Test::Stream::Tester>
-event check.
-
-=head1 DESCRIPTION
-
-L<Test::Stream::Tester> produces this object whenever you use C<check { ... }>.
-In general you will not interact with this object directly beyond pasing it
-into C<events_are>.
-
-B<Note:> The API for this object is not published and is subject to change. No backwords
-compatability can be guarenteed if you use this object directly. Please only
-use this object in the published way specified in L<Test::Stream::Tester>.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm
deleted file mode 100644 (file)
index 649b3e7..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-package Test::Stream::Tester::Checks::Event;
-use strict;
-use warnings;
-
-use Test::Stream::Util qw/is_regex/;
-use Test::Stream::Carp qw/confess croak/;
-
-use Scalar::Util qw/blessed reftype/;
-
-sub new {
-    my $class = shift;
-    my $fields = {@_};
-    my $self = bless {fields => $fields}, $class;
-
-    $self->{$_} = delete $fields->{$_}
-        for qw/debug_line debug_file debug_package/;
-
-    map { $self->validate_check($_) } values %$fields;
-
-    my $type = $self->get('type') || confess "No type specified!";
-
-    my $etypes = Test::Stream::Context->events;
-    confess "'$type' is not a valid event type"
-        unless $etypes->{$type};
-
-    return $self;
-}
-
-sub debug_line    { shift->{debug_line}    }
-sub debug_file    { shift->{debug_file}    }
-sub debug_package { shift->{debug_package} }
-
-sub debug {
-    my $self = shift;
-
-    my $type = $self->get('type');
-    my $file = $self->debug_file;
-    my $line = $self->debug_line;
-
-    return "'$type' from $file line $line.";
-}
-
-sub keys { sort keys %{shift->{fields}} }
-
-sub exists {
-    my $self = shift;
-    my ($field) = @_;
-    return exists $self->{fields}->{$field};
-}
-
-sub get {
-    my $self = shift;
-    my ($field) = @_;
-    return $self->{fields}->{$field};
-}
-
-sub validate_check {
-    my $self = shift;
-    my ($val) = @_;
-
-    return unless defined $val;
-    return unless ref $val;
-    return if defined is_regex($val);
-
-    if (blessed($val)) {
-        return if $val->isa('Test::Stream::Tester::Checks');
-        return if $val->isa('Test::Stream::Tester::Events');
-        return if $val->isa('Test::Stream::Tester::Checks::Event');
-        return if $val->isa('Test::Stream::Tester::Events::Event');
-    }
-
-    my $type = reftype($val);
-    return if $type eq 'CODE';
-
-    croak "'$val' is not a valid field check"
-        unless reftype($val) eq 'ARRAY';
-
-    croak "Arrayrefs given as field checks may only contain regexes"
-        if grep { ! defined is_regex($_) } @$val;
-
-    return;
-}
-
-1;
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Checks::Event - Representation of an event validation
-specification.
-
-=head1 DESCRIPTION
-
-Used internally by L<Test::Stream::Tester>. Please do not use directly. No
-backwords compatability will be provided if the API for this module changes.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm
deleted file mode 100644 (file)
index 529fdee..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-package Test::Stream::Tester::Events;
-use strict;
-use warnings;
-
-use Scalar::Util qw/blessed/;
-
-use Test::Stream::Tester::Events::Event;
-
-sub new {
-    my $class = shift;
-    my $self = bless [map { Test::Stream::Tester::Events::Event->new($_->summary) } @_], $class;
-    return $self;
-}
-
-sub next { shift @{$_[0]} };
-
-sub seek {
-    my $self = shift;
-    my ($type) = @_;
-
-    while (my $e = shift @$self) {
-        return $e if $e->{type} eq $type;
-    }
-
-    return undef;
-}
-
-sub clone {
-    my $self = shift;
-    my $class = blessed($self);
-    return bless [@$self], $class;
-}
-
-1;
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Events - Event list used by L<Test::Stream::Tester>.
-
-=head1 DESCRIPTION
-
-L<Test::Stream::Tester> converts lists of events into instances of this object
-for use in various tools. You will probably never need to directly use this
-class.
-
-=head1 METHODS
-
-=over 4
-
-=item $events = $class->new(@EVENTS);
-
-Create a new instance from a list of events.
-
-=item $event = $events->next
-
-Get the next event.
-
-=item $event = $events->seek($type)
-
-Get the next event of the specific type (not a package name).
-
-=item $copy = $events->clone()
-
-Clone the events list object in its current state.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm
deleted file mode 100644 (file)
index 0c3e206..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-package Test::Stream::Tester::Events::Event;
-use strict;
-use warnings;
-
-use Test::Stream::Carp qw/confess/;
-use Scalar::Util qw/reftype blessed/;
-
-sub new {
-    my $class = shift;
-    my $self = bless {}, $class;
-
-    my @orig = @_;
-
-    while (@_) {
-        my $field = shift;
-        my $val   = shift;
-
-        if (exists $self->{$field}) {
-            use Data::Dumper;
-            print Dumper(@orig);
-            confess "'$field' specified more than once!";
-        }
-
-        if (my $type = reftype $val) {
-            if ($type eq 'ARRAY') {
-                $val = Test::Stream::Tester::Events->new(@$val)
-                    unless grep { !blessed($_) || !$_->isa('Test::Stream::Event') } @$val;
-            }
-            elsif (blessed($val) && $val->isa('Test::Stream::Event')) {
-                $val = $class->new($val->summary);
-            }
-        }
-
-        $self->{$field} = $val;
-    }
-
-    return $self;
-}
-
-sub get {
-    my $self = shift;
-    my ($field) = @_;
-    return $self->{$field};
-}
-
-sub debug {
-    my $self = shift;
-
-    my $type = $self->get('type');
-    my $file = $self->get('file');
-    my $line = $self->get('line');
-
-    return "'$type' from $file line $line.";
-}
-
-1;
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Events::Event - L<Test::Stream::Tester> representation of
-an event.
-
-=head1 DESCRIPTION
-
-L<Test::Stream::Tester> often uses this clas to represent events in a way that
-is easier to validate.
-
-=head1 SYNOPSYS
-
-    use Test::Stream::Tester::Events::Event;
-
-    my $event = Test::Stream::Tester::Events::Event->new($e->summary);
-
-    # Print the file and line number where the event was generated
-    print "Debug: " . $event->debug . "\n";
-
-    # Get an event field value
-    my $val = $event->get($field);
-
-=head1 METHODS
-
-=over 4
-
-=item $event->get($field)
-
-Get the value of a specific event field. Fields are specific to event types.
-The fields are usually the result of calling C<< $e->summary >> on the original
-event.
-
-=item $event->debug
-
-Returns a string like this:
-
-    'ok' from my_test.t line 42.
-
-Which lists the type of event, the file that generated, and the line number on
-which it was generated.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm
deleted file mode 100644 (file)
index 8022011..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-package Test::Stream::Tester::Grab;
-use strict;
-use warnings;
-
-sub new {
-    my $class = shift;
-
-    my $self = bless {
-        events  => [],
-        streams => [ Test::Stream->intercept_start ],
-    }, $class;
-
-    $self->{streams}->[0]->listen(
-        sub {
-            shift;    # Stream
-            push @{$self->{events}} => @_;
-        }
-    );
-
-    return $self;
-}
-
-sub flush {
-    my $self = shift;
-    my $out = delete $self->{events};
-    $self->{events} = [];
-    return $out;
-}
-
-sub events {
-    my $self = shift;
-    # Copy
-    return [@{$self->{events}}];
-}
-
-sub finish {
-    my ($self) = @_; # Do not shift;
-    $_[0] = undef;
-
-    $self->{finished} = 1;
-    my ($remove) = $self->{streams}->[0];
-    Test::Stream->intercept_stop($remove);
-
-    return $self->flush;
-}
-
-sub DESTROY {
-    my $self = shift;
-    return if $self->{finished};
-    my ($remove) = $self->{streams}->[0];
-    Test::Stream->intercept_stop($remove);
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Grab - Object used to temporarily steal all events.
-
-=head1 DESCRIPTION
-
-Once created this object will intercept and stash all events sent to the shared
-L<Test::Stream> object. Once the object is destroyed events will once again be
-sent to the shared stream.
-
-=head1 SYNOPSYS
-
-    use Test::More;
-    use Test::Stream::Tester::Grab;
-
-    my $grab = Test::Stream::Tester::Grab->new();
-
-    # Generate some events, they are intercepted.
-    ok(1, "pass");
-    ok(0, "fail");
-
-    my $events_a = $grab->flush;
-
-    # Generate some more events, they are intercepted.
-    ok(1, "pass");
-    ok(0, "fail");
-
-    # Same as flush, except it destroys the grab object.
-    my $events_b = $grab->finish;
-
-After calling C<finish()> the grab object is destroyed and C<$grab> is set to
-undef. C<$events_a> is an arrayref with the first 2 events. C<$events_b> is an
-arrayref with the second 2 events.
-
-=head1 METHODS
-
-=over 4
-
-=item $grab = $class->new()
-
-Create a new grab object, immediately starts intercepting events.
-
-=item $ar = $grab->flush()
-
-Get an arrayref of all the events so far, clearing the grab objects internal
-list.
-
-=item $ar = $grab->events()
-
-Get an arrayref of all events so far, does not clear the internal list.
-
-=item $ar = $grab->finish()
-
-Get an arrayref of all the events, then destroy the grab object.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Threads.pm b/cpan/Test-Simple/lib/Test/Stream/Threads.pm
deleted file mode 100644 (file)
index 2a90c6b..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-package Test::Stream::Threads;
-use strict;
-use warnings;
-
-BEGIN {
-    use Config;
-    if( $Config{useithreads} && $INC{'threads.pm'} ) {
-        eval q|
-            sub get_tid { threads->tid() }
-            sub USE_THREADS() { 1 }
-            1;
-        | || die $@;
-    }
-    else {
-        eval q|
-            sub get_tid() { 0 }
-            sub USE_THREADS() { 0 }
-            1;
-        | || die $@;
-    }
-}
-
-use Test::Stream::Exporter;
-default_exports qw/get_tid USE_THREADS/;
-Test::Stream::Exporter->cleanup;
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Threads - Tools for using threads with Test::Stream.
-
-=head1 DESCRIPTION
-
-This module provides some helpers for Test::Stream and Toolsets to use to
-determine if threading is in place. In most cases you will not need to use this
-module yourself.
-
-=head1 SYNOPSYS
-
-    use threads;
-    use Test::Stream::Threads;
-
-    if (USE_THREADS) {
-        my $tid = get_tid();
-    }
-
-=head1 EXPORTS
-
-=over 4
-
-=item USE_THREADS
-
-This is a constant, it is set to true when Test::Stream is aware of, and using, threads.
-
-=item get_tid
-
-This will return the id of the current thread when threads are enabled,
-otherwise it returns 0.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Toolset.pm b/cpan/Test-Simple/lib/Test/Stream/Toolset.pm
deleted file mode 100644 (file)
index c13086a..0000000
+++ /dev/null
@@ -1,419 +0,0 @@
-package Test::Stream::Toolset;
-use strict;
-use warnings;
-
-use Test::Stream::Context qw/context/;
-use Test::Stream::Meta    qw/is_tester init_tester/;
-use Test::Stream::Carp    qw/carp/;
-
-# Preload these so the autoload is not necessary
-use Test::Stream::Event::Bail;
-use Test::Stream::Event::Diag;
-use Test::Stream::Event::Finish;
-use Test::Stream::Event::Note;
-use Test::Stream::Event::Ok;
-use Test::Stream::Event::Plan;
-use Test::Stream::Event::Subtest;
-
-use Test::Stream::Exporter qw/import export_to default_exports export/;
-default_exports qw/is_tester init_tester context/;
-
-export before_import => sub {
-    my $class = shift;
-    my ($importer, $list) = @_;
-
-    my $meta = init_tester($importer);
-
-    my $context = context(1);
-    my $other   = [];
-    my $idx     = 0;
-
-    while ($idx <= $#{$list}) {
-        my $item = $list->[$idx++];
-        next unless $item;
-
-        if (defined $item and $item eq 'no_diag') {
-            Test::Stream->shared->set_no_diag(1);
-        }
-        elsif ($item eq 'tests') {
-            $context->plan($list->[$idx++]);
-        }
-        elsif ($item eq 'skip_all') {
-            $context->plan(0, 'SKIP', $list->[$idx++]);
-        }
-        elsif ($item eq 'no_plan') {
-            $context->plan(0, 'NO PLAN');
-        }
-        elsif ($item eq 'import') {
-            push @$other => @{$list->[$idx++]};
-        }
-        else {
-            carp("Unknown option: $item");
-        }
-    }
-
-    @$list = @$other;
-
-    return;
-};
-
-Test::Stream::Exporter->cleanup();
-
-
-1;
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Toolset - Helper for writing testing tools
-
-=head1 DESCRIPTION
-
-This package provides you with tools to write testing tools. It makes your job
-of integrating with L<Test::Builder> and other testing tools much easier.
-
-=head1 SYNOPSYS
-
-    package My::Tester;
-    use strict;
-    use warnings;
-    use Test::Stream::Toolset;
-
-    # Optional, you can just use Exporter if you would like
-    use Test::Stream::Exporter;
-
-    # These can come from Test::More, so do not export them by default
-    # exports is the Test::Stream::Exporter equivilent to @EXPORT_OK
-    exports qw/context done_testing/;
-
-    # These are the API we want to provide, export them by default
-    # default_exports is the Test::Stream::Exporter equivilent to @EXPORT
-    default_exports qw/my_ok my_note/;
-
-    sub my_ok {
-        my ($test, $name) = @_;
-        my $ctx = context();
-
-        my @diag;
-        push @diag => "'$test' is not true!" unless $test;
-
-        $ctx->ok($test, $name, \@diag);
-
-        return $test ? 1 : 0; # Reduce to a boolean
-    }
-
-    sub my_note {
-        my ($msg) = @_;
-        my $ctx = context();
-
-        $ctx->note($msg);
-
-        return $msg;
-    }
-
-    sub done_testing {
-        my ($expected) = @_;
-        my $ctx = context();
-        $ctx->done_testing($expected);
-    }
-
-    1;
-
-=head2 TEST-MORE STYLE IMPORT
-
-If you want to be able to pass Test-More arguments such as 'tests', 'skip_all',
-and 'no_plan', then use the following:
-
-    package My::Tester;
-    use Test::Stream::Exporter;               # Gives us 'import()'
-    use Test::Stream::Toolset;                # default exports
-    use Test::Stream::Toolset 'before_import' # Test-More style argument support
-
-2 'use' statements were used above for clarity, you can get all the desired
-imports at once:
-
-    use Test::Stream::Toolset qw/context init_tester is_tester before_import/;
-
-Then in the test:
-
-    use My::Tester tests => 5;
-
-=head1 EXPORTS
-
-=over 4
-
-=item $ctx = context()
-
-The context() method is used to get the current context, generating one if
-necessary. The context object is an instance of L<Test::Stream::Context>, and
-is used to generate events suck as C<ok> and C<plan>. The context also knows
-what file+line errors should be reported at.
-
-B<WARNING:> Do not directly store the context in anything other than a lexical
-variable scoped to your function! As long as there are references to a context
-object, C<context()> will return that object. You want the object to be
-destroyed at the end of the current scope so that the next function you call
-can create a new one. If you need a copy of the context use
-C<< $ctx = $ctx->snapshot >>.
-
-=item $meta = init_tester($CLASS)
-
-This method can be used to initialize a class as a test class. In most cases
-you do not actually need to use this. If the class is already a tester this
-will return the existing meta object.
-
-=item $meta = is_tester($CLASS)
-
-This method can be used to check if an object is a tester. If the object is a
-tester it will return the meta object for the tester.
-
-=item before_import
-
-This method is used by C<import()> to parse Test-More style import arguments.
-You should never need to run this yourself, it works just by being imported.
-
-B<NOTE:> This will only work if you use Test::Stream::Exporter for your
-'import' method.
-
-=back
-
-=head1 GENERATING EVENTS
-
-Events are always generated via a context object. Whenever you load an
-L<Test::Stream::Event> class it will add a method to L<Test::Stream::Context>
-which can be used to fire off that type of event.
-
-The following event types are all loaded automatically by
-L<Test::Stream::Toolset>
-
-=over 4
-
-=item L<Test::Stream::Event::Ok>
-
-    $ctx->ok($bool, $name, \@diag)
-
-Ok events are your actual assertions. You assert that a condition is what you
-expect. It is recommended that you name your assertions. You can include an
-array of diag objects and/or diagniostics strings that will be printed to
-STDERR as comments in the event of a failure.
-
-=item L<Test::Stream::Event::Diag>
-
-    $ctx->diag($MESSAGE)
-
-Produce an independant diagnostics message.
-
-=item L<Test::Stream::Event::Note>
-
-    $ctx->note($MESSAGE)
-
-Produce a note, that is a message that is printed to STDOUT as a comment.
-
-=item L<Test::Stream::Event::Plan>
-
-    $ctx->plan($MAX, $DIRECTIVE, $REASON)
-
-This will set the plan. C<$MAX> should be the number of tests you expect to
-run. You may set this to 0 for some plan directives. Examples of directives are
-C<'skip_all'> and C<'no_plan'>. Some directives have an additional argument
-called C<$REASON> which is aptly named as the reason for the directive.
-
-=item L<Test::Stream::Event::Bail>
-
-    $ctx->bail($MESSAGE)
-
-In the event of a catostrophic failure that should terminate the test file, use
-this event to stop everything and print the reason.
-
-=item L<Test::Stream::Event::Finish>
-
-=item L<Test::Stream::Event::Subtest>
-
-These are not intended for public use, but are documented for completeness.
-
-=back
-
-=head1 MODIFYING EVENTS
-
-If you want to make changes to event objects before they are processed, you can
-add a munger. The return from a munger is ignored, you must make your changes
-directly to the event object.
-
-    Test::Stream->shared->munge(sub {
-        my ($stream, $event) = @_;
-        ...
-    });
-
-B<Note:> every munger is called for every event of every type. There is also no
-way to remove a munger. For performance reasons it is best to only ever add one
-munger per toolset which dispatches according to events and state.
-
-=head1 LISTENING FOR EVENTS
-
-If you wish to know when an event has occured so that you can do something
-after it has been processed, you can add a listener. Your listener will be
-called for every single event that occurs, after it has been processed. The
-return from a listener is ignored.
-
-    Test::Stream->shared->listen(sub {
-        my ($stream, $event) = @_;
-        ...
-    });
-
-B<Note:> every listener is called for every event of every type. There is also no
-way to remove a listener. For performance reasons it is best to only ever add one
-listener per toolset which dispatches according to events and state.
-
-=head1 I WANT TO EMBED FUNCTIONALITY FROM TEST::MORE
-
-Take a look at L<Test::More::Tools> which provides an interfaces to the code in
-Test::More. You can use that library to produce booleans and diagnostics
-without actually triggering events, giving you the opportunity to generate your
-own.
-
-=head1 FROM TEST::BUILDER TO TEST::STREAM
-
-This is a list of things people used to override in Test::Builder, and the new
-API that should be used instead of overrides.
-
-=over 4
-
-=item ok
-
-=item note
-
-=item diag
-
-=item plan
-
-In the past people would override these methods on L<Test::Builder>.
-L<Test::Stream> now provides a proper API for handling all event types.
-
-Anything that used to be done via overrides can now be done using
-c<Test::Stream->shared->listen(sub { ... })> and
-C<Test::Stream->shared->munge(sub { ... })>, which are documented above.
-
-=item done_testing
-
-In the past people have overriden C<done_testing()> to insert some code between
-the last test and the final plan. The proper way to do this now is with a
-follow_up hook.
-
-    Test::Stream->shared->follow_up(sub {
-        my ($context) = @_;
-        ...
-    });
-
-There are multiple ways that follow_ups will be triggered, but they are
-guarenteed to only be called once, at the end of testing. This will either be
-the start of C<done_testing()>, or an END block called after your tests are
-complete.
-
-=back
-
-=head1 HOW DO I TEST MY TEST TOOLS?
-
-See L<Test::Stream::Tester>. This library gives you all the tools you need to
-test your testing tools.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Util.pm b/cpan/Test-Simple/lib/Test/Stream/Util.pm
deleted file mode 100644 (file)
index 79b8087..0000000
+++ /dev/null
@@ -1,380 +0,0 @@
-package Test::Stream::Util;
-use strict;
-use warnings;
-
-use Scalar::Util qw/reftype blessed/;
-use Test::Stream::Exporter qw/import export_to exports/;
-use Test::Stream::Carp qw/croak/;
-
-exports qw{
-    try protect spoof is_regex is_dualvar
-    unoverload unoverload_str unoverload_num
-    translate_filename
-};
-
-Test::Stream::Exporter->cleanup();
-
-sub _manual_protect(&) {
-    my $code = shift;
-
-    my ($ok, $error);
-    {
-        my ($msg, $no) = ($@, $!);
-        $ok = eval { $code->(); 1 } || 0;
-        $error = $@ || "Error was squashed!\n";
-        ($@, $!) = ($msg, $no);
-    }
-    die $error unless $ok;
-    return $ok;
-}
-
-sub _local_protect(&) {
-    my $code = shift;
-
-    my ($ok, $error);
-    {
-        local ($@, $!);
-        $ok = eval { $code->(); 1 } || 0;
-        $error = $@ || "Error was squashed!\n";
-    }
-    die $error unless $ok;
-    return $ok;
-}
-
-sub _manual_try(&) {
-    my $code = shift;
-    my $error;
-    my $ok;
-
-    {
-        my ($msg, $no) = ($@, $!);
-        my $die = delete $SIG{__DIE__};
-
-        $ok = eval { $code->(); 1 } || 0;
-        unless($ok) {
-            $error = $@ || "Error was squashed!\n";
-        }
-
-        ($@, $!) = ($msg, $no);
-        $SIG{__DIE__} = $die;
-    }
-
-    return wantarray ? ($ok, $error) : $ok;
-}
-
-sub _local_try(&) {
-    my $code = shift;
-    my $error;
-    my $ok;
-
-    {
-        local ($@, $!, $SIG{__DIE__});
-        $ok = eval { $code->(); 1 } || 0;
-        unless($ok) {
-            $error = $@ || "Error was squashed!\n";
-        }
-    }
-
-    return wantarray ? ($ok, $error) : $ok;
-}
-
-BEGIN {
-    if ($^O eq 'MSWin32' && $] < 5.020002) {
-        *protect = \&_manual_protect;
-        *try     = \&_manual_try;
-    }
-    else {
-        *protect = \&_local_protect;
-        *try     = \&_local_try;
-    }
-}
-
-
-sub spoof {
-    my ($call, $code, @args) = @_;
-
-    croak "The first argument to spoof must be an arrayref with package, filename, and line."
-        unless $call && @$call == 3;
-
-    croak "The second argument must be a string to run."
-        if ref $code;
-
-    my $error;
-    my $ok;
-
-    protect {
-        $ok = eval <<"        EOT" || 0;
-package $call->[0];
-#line $call->[2] "$call->[1]"
-$code;
-1;
-        EOT
-        unless($ok) {
-            $error = $@ || "Error was squashed!\n";
-        }
-    };
-
-    return wantarray ? ($ok, $error) : $ok;
-}
-
-sub is_regex {
-    my ($pattern) = @_;
-
-    return undef unless defined $pattern;
-
-    return $pattern if defined &re::is_regexp
-                    && re::is_regexp($pattern);
-
-    my $type = reftype($pattern) || '';
-
-    return $pattern if $type =~ m/^regexp?$/i;
-    return $pattern if $type eq 'SCALAR' && $pattern =~ m/^\(\?.+:.*\)$/s;
-    return $pattern if !$type && $pattern =~ m/^\(\?.+:.*\)$/s;
-
-    my ($re, $opts);
-
-    if ($pattern =~ m{^ /(.*)/ (\w*) $ }sx) {
-        protect { ($re, $opts) = ($1, $2) };
-    }
-    elsif ($pattern =~ m,^ m([^\w\s]) (.+) \1 (\w*) $,sx) {
-        protect { ($re, $opts) = ($2, $3) };
-    }
-    else {
-        return;
-    }
-
-    return length $opts ? "(?$opts)$re" : $re;
-}
-
-sub unoverload_str { unoverload(q[""], @_) }
-
-sub unoverload_num {
-    unoverload('0+', @_);
-
-    for my $val (@_) {
-        next unless is_dualvar($$val);
-        $$val = $$val + 0;
-    }
-
-    return;
-}
-
-# This is a hack to detect a dualvar such as $!
-sub is_dualvar($) {
-    my($val) = @_;
-
-    # Objects are not dualvars.
-    return 0 if ref $val;
-    return 0 unless defined $val;
-
-    no warnings 'numeric';
-    my $numval = $val + 0;
-    return ($numval != 0 and $numval ne $val ? 1 : 0);
-}
-
-## If Scalar::Util is new enough use it
-# This breaks cmp_ok diagnostics
-#if (my $sub = Scalar::Util->can('isdual')) {
-#    no warnings 'redefine';
-#    *is_dualvar = $sub;
-#}
-
-sub unoverload {
-    my $type = shift;
-
-    protect { require overload };
-
-    for my $thing (@_) {
-        if (blessed $$thing) {
-            if (my $string_meth = overload::Method($$thing, $type)) {
-                $$thing = $$thing->$string_meth();
-            }
-        }
-    }
-}
-
-my $NORMALIZE = undef;
-sub translate_filename {
-    my ($encoding, $orig) = @_;
-
-    return $orig if $encoding eq 'legacy';
-
-    my $decoded;
-    require Encode;
-    try { $decoded = Encode::decode($encoding, "$orig", Encode::FB_CROAK()) };
-    return $orig unless $decoded;
-
-    unless (defined $NORMALIZE) {
-        $NORMALIZE = try { require Unicode::Normalize; 1 };
-        $NORMALIZE ||= 0;
-    }
-    $decoded = Unicode::Normalize::NFKC($decoded) if $NORMALIZE;
-    return $decoded || $orig;
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Util - Tools used by Test::Stream and friends.
-
-=head1 DESCRIPTION
-
-Collection of tools used by L<Test::Stream> and friends.
-
-=head1 EXPORTS
-
-=over 4
-
-=item $success = try { ... }
-
-=item ($success, $error) = try { ... }
-
-Eval the codeblock, return success or failure, and optionally the error
-message. This code protects $@ and $!, they will be restored by the end of the
-run. This code also temporarily blocks $SIG{DIE} handlers.
-
-=item protect { ... }
-
-Similar to try, except that it does not catch exceptions. The idea here is to
-protect $@ and $! from changes. $@ and $! will be restored to whatever they
-were before the run so long as it is successful. If the run fails $! will still
-be restored, but $@ will contain the exception being thrown.
-
-=item spoof([$package, $file, $line], "Code String", @args)
-
-Eval the string provided as the second argument pretending to be the specified
-package, file, and line number. The main purpose of this is to have warnings
-and exceptions be thrown from the desired context.
-
-Additional arguments will be added to an C<@args> variable that is available to
-you inside your code string.
-
-=item $usable_pattern = is_regex($PATTERN)
-
-Check of the specified argument is a regex. This is mainly important in older
-perls where C<qr//> did not work the way it does now.
-
-=item is_dualvar
-
-Do not use this, use Scalar::Util::isdual instead. This is kept around for
-legacy support.
-
-=item unoverload
-
-=item unoverload_str
-
-=item unoverload_num
-
-Legacy tools for unoverloading things.
-
-=item $proper = translate_filename($encoding, $raw)
-
-Translate filenames from whatever perl has them stored as into the proper,
-specified, encoding.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
index 5ac4b58..a5f1ccf 100644 (file)
@@ -2,335 +2,297 @@ use strict;
 
 package Test::Tester;
 
-# Turn this back on later
-#warn "Test::Tester is deprecated, see Test::Stream::Tester\n";
+BEGIN
+{
+       if (*Test::Builder::new{CODE})
+       {
+               warn "You should load Test::Tester before Test::Builder (or anything that loads Test::Builder)" 
+       }
+}
 
-use Test::Stream 1.301001 '-internal';
-use Test::Builder 1.301001;
-use Test::Stream::Toolset;
-use Test::More::Tools;
-use Test::Stream qw/-internal STATE_LEGACY/;
-use Test::Tester::Capture;
+use Test::Builder;
+use Test::Tester::CaptureRunner;
+use Test::Tester::Delegate;
 
 require Exporter;
 
 use vars qw( @ISA @EXPORT $VERSION );
 
-our $VERSION = '1.301001_098';
-$VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
+$VERSION = "0.114";
+@EXPORT = qw( run_tests check_tests check_test cmp_results show_space );
+@ISA = qw( Exporter );
+
+my $Test = Test::Builder->new;
+my $Capture = Test::Tester::Capture->new;
+my $Delegator = Test::Tester::Delegate->new;
+$Delegator->{Object} = $Test;
 
-@EXPORT  = qw( run_tests check_tests check_test cmp_results show_space );
-@ISA     = qw( Exporter );
+my $runner = Test::Tester::CaptureRunner->new;
 
 my $want_space = $ENV{TESTTESTERSPACE};
 
-sub show_space {
-    $want_space = 1;
+sub show_space
+{
+       $want_space = 1;
 }
 
 my $colour = '';
-my $reset  = '';
+my $reset = '';
 
-if (my $want_colour = $ENV{TESTTESTERCOLOUR} || $ENV{TESTTESTERCOLOUR}) {
-    if (eval "require Term::ANSIColor") {
-        my ($f, $b) = split(",", $want_colour);
-        $colour = Term::ANSIColor::color($f) . Term::ANSIColor::color("on_$b");
-        $reset  = Term::ANSIColor::color("reset");
-    }
+if (my $want_colour = $ENV{TESTTESTERCOLOUR} || $ENV{TESTTESTERCOLOUR})
+{
+       if (eval "require Term::ANSIColor")
+       {
+               my ($f, $b) = split(",", $want_colour);
+               $colour = Term::ANSIColor::color($f).Term::ANSIColor::color("on_$b");
+               $reset = Term::ANSIColor::color("reset");
+       }
 
 }
 
-my $capture = Test::Tester::Capture->new;
-sub capture { $capture }
-
-sub find_depth {
-    my ($start, $end);
-    my $l = 1;
-    while (my @call = caller($l++)) {
-        $start = $l if $call[3] =~ m/^Test::Builder::(ok|skip|todo_skip)$/;
-        next unless $start;
-        next unless $call[3] eq 'Test::Tester::run_tests';
-        $end = $l;
-        last;
-    }
-
-    return $Test::Builder::Level + 1 unless defined $start && defined $end;
-    # 2 the eval and the anon sub
-    return $end - $start - 2;
+sub new_new
+{
+       return $Delegator;
 }
 
-require Test::Stream::Event::Ok;
-my $META = Test::Stream::ArrayBase::Meta->get('Test::Stream::Event::Ok');
-my $idx = $META->{index} + 1;
-
-sub run_tests {
-    my $test = shift;
-
-    my $cstream;
-    if ($capture) {
-        $cstream = $capture->{stream};
-    }
-
-    my ($stream, $old) = Test::Stream->intercept_start($cstream);
-    $stream->set_use_legacy(1);
-    $stream->state->[-1] = [0, 0, undef, 1];
-    $stream->munge(sub {
-        my ($stream, $e) = @_;
-        $e->[$idx] = find_depth() - $Test::Builder::Level;
-        $e->[$idx+1] = $Test::Builder::Level;
-        require Carp;
-        $e->[$idx + 2] = Carp::longmess();
-    });
-
-    my $level = $Test::Builder::Level;
-
-    my @out;
-    my $prem = "";
-
-    my $ok = eval {
-        $test->();
-
-        for my $e (@{$stream->state->[-1]->[STATE_LEGACY]}) {
-            if ($e->isa('Test::Stream::Event::Ok')) {
-                push @out => $e->to_legacy;
-                $out[-1]->{name} = '' unless defined $out[-1]->{name};
-                $out[-1]->{diag} ||= "";
-                $out[-1]->{depth} = $e->[$idx];
-                for my $d (@{$e->diag || []}) {
-                    next if $d->message =~ m{Failed (\(TODO\) )?test (.*\n\s*)?at .* line \d+\.};
-                    next if $d->message =~ m{You named your test '.*'\.  You shouldn't use numbers for your test names};
-                    chomp(my $msg = $d->message);
-                    $msg .= "\n";
-                    $out[-1]->{diag} .= $msg;
-                }
-            }
-            elsif ($e->isa('Test::Stream::Event::Diag')) {
-                chomp(my $msg = $e->message);
-                $msg .= "\n";
-                if (!@out) {
-                    $prem .= $msg;
-                    next;
-                }
-                next if $msg =~ m{Failed test .*\n\s*at .* line \d+\.};
-                $out[-1]->{diag} .= $msg;
-            }
-        }
-
-        1;
-    };
-    my $err = $@;
-
-    $stream->state->[-1] = [0, 0, undef, 1];
-
-    Test::Stream->intercept_stop($stream);
-
-    die $err unless $ok;
-
-    return ($prem, @out);
+sub capture
+{
+       return Test::Tester::Capture->new;
 }
 
-sub check_test {
-    my $test   = shift;
-    my $expect = shift;
-    my $name   = shift;
-    $name = "" unless defined($name);
+sub fh
+{
+       # experiment with capturing output, I don't like it
+       $runner = Test::Tester::FHRunner->new;
 
-    @_ = ($test, [$expect], $name);
-    goto &check_tests;
+       return $Test;
 }
 
-sub check_tests {
-    my $test    = shift;
-    my $expects = shift;
-    my $name    = shift;
-    $name = "" unless defined($name);
-
-    my ($prem, @results) = eval { run_tests($test, $name) };
-
-    my $ctx = context();
+sub find_run_tests
+{
+       my $d = 1;
+       my $found = 0;
+       while ((not $found) and (my ($sub) = (caller($d))[3]) )
+       {
+#              print "$d: $sub\n";
+               $found = ($sub eq "Test::Tester::run_tests");
+               $d++;
+       }
+
+#      die "Didn't find 'run_tests' in caller stack" unless $found;
+       return $d;
+}
 
-    my $ok = !$@;
-    $ctx->ok($ok, "Test '$name' completed");
-    $ctx->diag($@) unless $ok;
+sub run_tests
+{
+       local($Delegator->{Object}) = $Capture;
 
-    $ok = !length($prem);
-    $ctx->ok($ok, "Test '$name' no premature diagnostication");
-    $ctx->diag("Before any testing anything, your tests said\n$prem") unless $ok;
+       $runner->run_tests(@_);
 
-    cmp_results(\@results, $expects, $name);
-    return ($prem, @results);
+       return ($runner->get_premature, $runner->get_results);
 }
 
-sub cmp_field {
-    my ($result, $expect, $field, $desc) = @_;
+sub check_test
+{
+       my $test = shift;
+       my $expect = shift;
+       my $name = shift;
+       $name = "" unless defined($name);
 
-    my $ctx = context();
-    if (defined $expect->{$field}) {
-        my ($ok, @diag) = Test::More::Tools->is_eq(
-            $result->{$field},
-            $expect->{$field},
-        );
-        $ctx->ok($ok, "$desc compare $field");
-    }
+       @_ = ($test, [$expect], $name);
+       goto &check_tests;
 }
 
-sub cmp_result {
-    my ($result, $expect, $name) = @_;
-
-    my $ctx = context();
+sub check_tests
+{
+       my $test = shift;
+       my $expects = shift;
+       my $name = shift;
+       $name = "" unless defined($name);
 
-    my $sub_name = $result->{name};
-    $sub_name = "" unless defined($name);
-
-    my $desc = "subtest '$sub_name' of '$name'";
-
-    {
-        cmp_field($result, $expect, "ok", $desc);
+       my ($prem, @results) = eval { run_tests($test, $name) };
 
-        cmp_field($result, $expect, "actual_ok", $desc);
+       $Test->ok(! $@, "Test '$name' completed") || $Test->diag($@);
+       $Test->ok(! length($prem), "Test '$name' no premature diagnostication") ||
+               $Test->diag("Before any testing anything, your tests said\n$prem");
 
-        cmp_field($result, $expect, "type", $desc);
-
-        cmp_field($result, $expect, "reason", $desc);
-
-        cmp_field($result, $expect, "name", $desc);
-    }
+       local $Test::Builder::Level = $Test::Builder::Level + 1;
+       cmp_results(\@results, $expects, $name);
+       return ($prem, @results);
+}
 
-    # if we got no depth then default to 1
-    my $depth = 1;
-    if (exists $expect->{depth}) {
-        $depth = $expect->{depth};
-    }
+sub cmp_field
+{
+       my ($result, $expect, $field, $desc) = @_;
 
-    # if depth was explicitly undef then don't test it
-    if (defined $depth) {
-        $ctx->ok(1, "depth checking is deprecated, dummy pass result...");
-    }
+       if (defined $expect->{$field})
+       {
+               $Test->is_eq($result->{$field}, $expect->{$field},
+                       "$desc compare $field");
+       }
+}
 
-    if (defined(my $exp = $expect->{diag})) {
-        # if there actually is some diag then put a \n on the end if it's not
-        # there already
-
-        $exp .= "\n" if (length($exp) and $exp !~ /\n$/);
-        my $ok = $result->{diag} eq $exp;
-        $ctx->ok(
-            $ok,
-            "subtest '$sub_name' of '$name' compare diag"
-        );
-        unless($ok) {
-            my $got  = $result->{diag};
-            my $glen = length($got);
-            my $elen = length($exp);
-            for ($got, $exp) {
-                my @lines = split("\n", $_);
-                $_ = join(
-                    "\n",
-                    map {
-                        if ($want_space) {
-                            $_ = $colour . escape($_) . $reset;
-                        }
-                        else {
-                            "'$colour$_$reset'";
-                        }
-                    } @lines
-                );
-            }
-
-            $ctx->diag(<<EOM);
+sub cmp_result
+{
+       my ($result, $expect, $name) = @_;
+
+       my $sub_name = $result->{name};
+       $sub_name = "" unless defined($name);
+
+       my $desc = "subtest '$sub_name' of '$name'";
+
+       {
+               local $Test::Builder::Level = $Test::Builder::Level + 1;
+
+               cmp_field($result, $expect, "ok", $desc);
+
+               cmp_field($result, $expect, "actual_ok", $desc);
+
+               cmp_field($result, $expect, "type", $desc);
+
+               cmp_field($result, $expect, "reason", $desc);
+
+               cmp_field($result, $expect, "name", $desc);
+       }
+
+       # if we got no depth then default to 1
+       my $depth = 1;
+       if (exists $expect->{depth})
+       {
+               $depth = $expect->{depth};
+       }
+
+       # if depth was explicitly undef then don't test it
+       if (defined $depth)
+       {
+               $Test->is_eq($result->{depth}, $depth, "checking depth") ||
+                       $Test->diag('You need to change $Test::Builder::Level');
+       }
+
+       if (defined(my $exp = $expect->{diag}))
+       {
+               # if there actually is some diag then put a \n on the end if it's not
+               # there already
+
+               $exp .= "\n" if (length($exp) and $exp !~ /\n$/);
+               if (not $Test->ok($result->{diag} eq $exp,
+                       "subtest '$sub_name' of '$name' compare diag")
+               )
+               {
+                       my $got = $result->{diag};
+                       my $glen = length($got);
+                       my $elen = length($exp);
+                       for ($got, $exp)
+                       {
+                               my @lines = split("\n", $_);
+                               $_ = join("\n", map {
+                                       if ($want_space)
+                                       {
+                                               $_ = $colour.escape($_).$reset;
+                                       }
+                                       else
+                                       {
+                                               "'$colour$_$reset'"
+                                       }
+                               } @lines);
+                       }
+
+                       $Test->diag(<<EOM);
 Got diag ($glen bytes):
 $got
 Expected diag ($elen bytes):
 $exp
 EOM
 
-        }
-    }
+               }
+       }
 }
 
-sub escape {
-    my $str = shift;
-    my $res = '';
-    for my $char (split("", $str)) {
-        my $c = ord($char);
-        if (($c > 32 and $c < 125) or $c == 10) {
-            $res .= $char;
-        }
-        else {
-            $res .= sprintf('\x{%x}', $c);
-        }
-    }
-    return $res;
+sub escape
+{
+       my $str = shift;
+       my $res = '';
+       for my $char (split("", $str))
+       {
+               my $c = ord($char);
+               if(($c>32 and $c<125) or $c == 10)
+               {
+                       $res .= $char;
+               }
+               else
+               {
+                       $res .= sprintf('\x{%x}', $c)
+               }
+       }
+       return $res;
 }
 
-sub cmp_results {
-    my ($results, $expects, $name) = @_;
-
-    my $ctx = context();
+sub cmp_results
+{
+       my ($results, $expects, $name) = @_;
 
-    my ($ok, @diag) = Test::More::Tools->is_num(scalar @$results, scalar @$expects, "Test '$name' result count");
-    $ctx->ok($ok, @diag);
+       $Test->is_num(scalar @$results, scalar @$expects, "Test '$name' result count");
 
-    for (my $i = 0; $i < @$expects; $i++) {
-        my $expect = $expects->[$i];
-        my $result = $results->[$i];
+       for (my $i = 0; $i < @$expects; $i++)
+       {
+               my $expect = $expects->[$i];
+               my $result = $results->[$i];
 
-        cmp_result($result, $expect, $name);
-    }
+               local $Test::Builder::Level = $Test::Builder::Level + 1;
+               cmp_result($result, $expect, $name);
+       }
 }
 
 ######## nicked from Test::More
-sub import {
-    my $class = shift;
-    my @plan = @_;
-
-    my $caller = caller;
-    my $ctx = context();
-
-    my @imports = ();
-    foreach my $idx (0 .. $#plan) {
-        if ($plan[$idx] eq 'import') {
-            my ($tag, $imports) = splice @plan, $idx, 2;
-            @imports = @$imports;
-            last;
-        }
-    }
+sub plan {
+       my(@plan) = @_;
 
-    my ($directive, $arg) = @plan;
-    if ($directive eq 'tests') {
-        $ctx->plan($arg);
-    }
-    elsif ($directive) {
-        $ctx->plan(0, $directive, $arg);
-    }
+       my $caller = caller;
+
+       $Test->exported_to($caller);
 
-    $class->_export_to_level(1, __PACKAGE__, @imports);
+       my @imports = ();
+       foreach my $idx (0..$#plan) {
+               if( $plan[$idx] eq 'import' ) {
+                       my($tag, $imports) = splice @plan, $idx, 2;
+                       @imports = @$imports;
+                       last;
+               }
+       }
+
+       $Test->plan(@plan);
+
+       __PACKAGE__->_export_to_level(1, __PACKAGE__, @imports);
+}
+
+sub import {
+       my($class) = shift;
+               {
+                       no warnings 'redefine';
+                       *Test::Builder::new = \&new_new;
+               }
+       goto &plan;
 }
 
-sub _export_to_level {
-    my $pkg   = shift;
-    my $level = shift;
-    (undef) = shift;    # redundant arg
-    my $callpkg = caller($level);
-    $pkg->export($callpkg, @_);
+sub _export_to_level
+{
+        my $pkg = shift;
+       my $level = shift;
+       (undef) = shift;        # redundant arg
+       my $callpkg = caller($level);
+       $pkg->export($callpkg, @_);
 }
 
+
 ############
 
 1;
 
 __END__
 
-=pod
-
-=encoding UTF-8
-
 =head1 NAME
 
-Test::Tester - *DEPRECATED* Ease testing test modules built with Test::Builder
-
-=head1 DEPRECATED
-
-See L<Test::Stream::Tester> for a modern and maintained alternative.
+Test::Tester - Ease testing test modules built with Test::Builder
 
 =head1 SYNOPSIS
 
@@ -439,7 +401,7 @@ should allow your test scripts to do
 
 and after that any tests inside your module will captured.
 
-=head1 TEST EVENTS
+=head1 TEST RESULTS
 
 The result of each test is captured in a hash. These hashes are the same as
 the hashes returned by Test::Builder->details but with a couple of extra
@@ -491,10 +453,6 @@ hard to find space and tab related problems.
 
 =item depth
 
-B<Note:> Depth checking is disabled on newer versions of Test::Builder which no
-longer uses $Test::Builder::Level. In these versions this will simple produce a
-dummy true result.
-
 This allows you to check that your test module is setting the correct value
 for $Test::Builder::Level and thus giving the correct file and line number
 when a test fails. It is calculated by looking at caller() and
@@ -577,7 +535,7 @@ variable also works (if both are set then the British spelling wins out).
 
 =head1 EXPORTED FUNCTIONS
 
-=head2 ($premature, @results) = run_tests(\&test_sub)
+=head3 ($premature, @results) = run_tests(\&test_sub)
 
 \&test_sub is a reference to a subroutine.
 
@@ -590,7 +548,7 @@ the first test.
 
 @results is an array of test result hashes.
 
-=head2 cmp_result(\%result, \%expect, $name)
+=head3 cmp_result(\%result, \%expect, $name)
 
 \%result is a ref to a test result hash.
 
@@ -600,7 +558,7 @@ cmp_result compares the result with the expected values. If any differences
 are found it outputs diagnostics. You may leave out any field from the
 expected result and cmp_result will not do the comparison of that field.
 
-=head2 cmp_results(\@results, \@expects, $name)
+=head3 cmp_results(\@results, \@expects, $name)
 
 \@results is a ref to an array of test results.
 
@@ -612,7 +570,7 @@ number of elements in \@results and \@expects is the same. Then it goes
 through each result checking it against the expected result as in
 cmp_result() above.
 
-=head2 ($premature, @results) = check_tests(\&test_sub, \@expects, $name)
+=head3 ($premature, @results) = check_tests(\&test_sub, \@expects, $name)
 
 \&test_sub is a reference to a subroutine.
 
@@ -624,7 +582,7 @@ checks if the tests died at any stage.
 It returns the same values as run_tests, so you can further examine the test
 results if you need to.
 
-=head2 ($premature, @results) = check_test(\&test_sub, \%expect, $name)
+=head3 ($premature, @results) = check_test(\&test_sub, \%expect, $name)
 
 \&test_sub is a reference to a subroutine.
 
@@ -638,7 +596,7 @@ make sure this is true.
 It returns the same values as run_tests, so you can further examine the test
 results if you need to.
 
-=head2 show_space()
+=head3 show_space()
 
 Turn on the escaping of characters as described in the SPACES AND TABS
 section.
@@ -673,100 +631,22 @@ captures the strings output by Test::Builder. This means you cannot get
 separate access to the individual pieces of information and you must predict
 B<exactly> what your test will output.
 
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
+=head1 AUTHOR
 
 This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
 are based on other people's work.
 
-Under the same license as Perl itself
+Plan handling lifted from Test::More. written by Michael G Schwern
+<schwern@pobox.com>.
 
-See http://www.perl.com/perl/misc/Artistic.html
+Test::Tester::Capture is a cut down and hacked up version of Test::Builder.
+Test::Builder was written by chromatic <chromatic@wgz.org> and Michael G
+Schwern <schwern@pobox.com>.
 
-=item Test::Builder::Tester
+=head1 LICENSE
 
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
+Under the same license as Perl itself
 
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
+See http://www.perl.com/perl/misc/Artistic.html
 
-=back
+=cut
index 0fd9f90..00e12e6 100644 (file)
-package Test::Tester::Capture;
 use strict;
-use warnings;
 
-use base 'Test::Builder';
-use Test::Stream qw/-internal STATE_LEGACY/;
+package Test::Tester::Capture;
 
-sub new {
-    my $class = shift;
-    my $self = $class->SUPER::create(@_);
-    $self->{stream}->set_use_tap(0);
-    $self->{stream}->set_use_legacy(1);
-    return $self;
+use Test::Builder;
+
+use vars qw( @ISA );
+@ISA = qw( Test::Builder );
+
+# Make Test::Tester::Capture thread-safe for ithreads.
+BEGIN {
+       use Config;
+       if( $] >= 5.008 && $Config{useithreads} ) {
+               require threads::shared;
+               threads::shared->import;
+       }
+       else {
+               *share = sub { 0 };
+               *lock  = sub { 0 };
+       }
 }
 
-sub details {
-    my $self = shift;
-
-    my $prem;
-    my @out;
-    for my $e (@{$self->{stream}->state->[-1]->[STATE_LEGACY]}) {
-        if ($e->isa('Test::Stream::Event::Ok')) {
-            push @out => $e->to_legacy;
-            $out[-1]->{diag} ||= "";
-            $out[-1]->{depth} = $e->level;
-            for my $d (@{$e->diag || []}) {
-                next if $d->message =~ m{Failed test .*\n\s*at .* line \d+\.};
-                chomp(my $msg = $d->message);
-                $msg .= "\n";
-                $out[-1]->{diag} .= $msg;
-            }
-        }
-        elsif ($e->isa('Test::Stream::Event::Diag')) {
-            chomp(my $msg = $e->message);
-            $msg .= "\n";
-            if (!@out) {
-                $prem .= $msg;
-                next;
-            }
-            next if $msg =~ m{Failed test .*\n\s*at .* line \d+\.};
-            $out[-1]->{diag} .= $msg;
-        }
-    }
-
-    return ($prem, @out) if $prem;
-    return @out;
+my $Curr_Test = 0;      share($Curr_Test);
+my @Test_Results = ();  share(@Test_Results);
+my $Prem_Diag = {diag => ""};   share($Curr_Test);
+
+sub new
+{
+  # Test::Tester::Capgture::new used to just return __PACKAGE__
+  # because Test::Builder::new enforced it's singleton nature by
+  # return __PACKAGE__. That has since changed, Test::Builder::new now
+  # returns a blessed has and around version 0.78, Test::Builder::todo
+  # started wanting to modify $self. To cope with this, we now return
+  # a blessed hash. This is a short-term hack, the correct thing to do
+  # is to detect which style of Test::Builder we're dealing with and
+  # act appropriately.
+
+  my $class = shift;
+  return bless {}, $class;
 }
 
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
+sub ok {
+       my($self, $test, $name) = @_;
 
-=head1 NAME
-
-Test::Tester::Capture - Capture module for TesT::Tester
-
-=head1 DESCRIPTION
+       # $test might contain an object which we don't want to accidentally
+       # store, so we turn it into a boolean.
+       $test = $test ? 1 : 0;
 
-Legacy support for Test::Tester.
+       lock $Curr_Test;
+       $Curr_Test++;
 
-=head1 SOURCE
+       my($pack, $file, $line) = $self->caller;
 
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
+       my $todo = $self->todo($pack);
 
-=head1 MAINTAINER
+       my $result = {};
+       share($result);
 
-=over 4
+       unless( $test ) {
+               @$result{ 'ok', 'actual_ok' } = ( ( $todo ? 1 : 0 ), 0 );
+       }
+       else {
+               @$result{ 'ok', 'actual_ok' } = ( 1, $test );
+       }
 
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+       if( defined $name ) {
+               $name =~ s|#|\\#|g;      # # in a name can confuse Test::Harness.
+               $result->{name} = $name;
+       }
+       else {
+               $result->{name} = '';
+       }
 
-=back
+       if( $todo ) {
+               my $what_todo = $todo;
+               $result->{reason} = $what_todo;
+               $result->{type}   = 'todo';
+       }
+       else {
+               $result->{reason} = '';
+               $result->{type}   = '';
+       }
 
-=head1 AUTHORS
+       $Test_Results[$Curr_Test-1] = $result;
 
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
+       unless( $test ) {
+               my $msg = $todo ? "Failed (TODO)" : "Failed";
+               $result->{fail_diag} = ("       $msg test ($file at line $line)\n");
+       } 
 
-=over 4
+       $result->{diag} = "";
+       $result->{_level} = $Test::Builder::Level;
+       $result->{_depth} = Test::Tester::find_run_tests();
 
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
+       return $test ? 1 : 0;
+}
 
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
+sub skip {
+       my($self, $why) = @_;
+       $why ||= '';
+
+       lock($Curr_Test);
+       $Curr_Test++;
+
+       my %result;
+       share(%result);
+       %result = (
+               'ok'      => 1,
+               actual_ok => 1,
+               name      => '',
+               type      => 'skip',
+               reason  => $why,
+               diag    => "",
+               _level   => $Test::Builder::Level,
+               _depth => Test::Tester::find_run_tests(),
+       );
+       $Test_Results[$Curr_Test-1] = \%result;
+
+       return 1;
+}
 
-=item 唐鳳
+sub todo_skip {
+       my($self, $why) = @_;
+       $why ||= '';
+
+       lock($Curr_Test);
+       $Curr_Test++;
+
+       my %result;
+       share(%result);
+       %result = (
+               'ok'      => 1,
+               actual_ok => 0,
+               name      => '',
+               type      => 'todo_skip',
+               reason  => $why,
+               diag    => "",
+               _level   => $Test::Builder::Level,
+               _depth => Test::Tester::find_run_tests(),
+       );
+
+       $Test_Results[$Curr_Test-1] = \%result;
+
+       return 1;
+}
 
-=back
+sub diag {
+       my($self, @msgs) = @_;
+       return unless @msgs;
 
-=head1 COPYRIGHT
+       # Prevent printing headers when compiling (i.e. -c)
+       return if $^C;
 
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
+       # Escape each line with a #.
+       foreach (@msgs) {
+               $_ = 'undef' unless defined;
+       }
 
-=over 4
+       push @msgs, "\n" unless $msgs[-1] =~ /\n\Z/;
 
-=item Test::Stream
+       my $result = $Curr_Test ? $Test_Results[$Curr_Test - 1] : $Prem_Diag;
 
-=item Test::Stream::Tester
+       $result->{diag} .= join("", @msgs);
 
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
+       return 0;
+}
 
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+sub details {
+       return @Test_Results;
+}
 
-See F<http://www.perl.com/perl/misc/Artistic.html>
 
-=item Test::Simple
+# Stub. Feel free to send me a patch to implement this.
+sub note {
+}
 
-=item Test::More
+sub explain {
+       return Test::Builder::explain(@_);
+}
 
-=item Test::Builder
+sub premature
+{
+       return $Prem_Diag->{diag};
+}
 
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
+sub current_test
+{
+       if (@_ > 1)
+       {
+               die "Don't try to change the test number!";
+       }
+       else
+       {
+               return $Curr_Test;
+       }
+}
 
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
+sub reset
+{
+       $Curr_Test = 0;
+       @Test_Results = ();
+       $Prem_Diag = {diag => ""};
+}
 
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
+1;
 
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+__END__
 
-See F<http://www.perl.com/perl/misc/Artistic.html>
+=head1 NAME
 
-=item Test::use::ok
+Test::Tester::Capture - Help testing test modules built with Test::Builder
 
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
+=head1 DESCRIPTION
 
-This work is published from Taiwan.
+This is a subclass of Test::Builder that overrides many of the methods so
+that they don't output anything. It also keeps track of it's own set of test
+results so that you can use Test::Builder based modules to perform tests on
+other Test::Builder based modules.
 
-L<http://creativecommons.org/publicdomain/zero/1.0>
+=head1 AUTHOR
 
-=item Test::Tester
+Most of the code here was lifted straight from Test::Builder and then had
+chunks removed by Fergal Daly <fergal@esatclear.ie>.
 
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
+=head1 LICENSE
 
 Under the same license as Perl itself
 
 See http://www.perl.com/perl/misc/Artistic.html
 
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
+=cut
index a981532..f14a4c1 100644 (file)
@@ -1,19 +1,76 @@
+# $Header: /home/fergal/my/cvs/Test-Tester/lib/Test/Tester/CaptureRunner.pm,v 1.3 2003/03/05 01:07:55 fergal Exp $
 use strict;
-use warnings;
+
 package Test::Tester::CaptureRunner;
 
-warn "Test::Tester::CaptureRunner is deprecated";
+use Test::Tester::Capture;
+require Exporter;
+
+sub new
+{
+       my $pkg = shift;
+       my $self = bless {}, $pkg;
+       return $self;
+}
+
+sub run_tests
+{
+       my $self = shift;
+
+       my $test = shift;
+
+       capture()->reset;
+
+       $self->{StartLevel} = $Test::Builder::Level;
+       &$test();
+}
+
+sub get_results
+{
+       my $self = shift;
+       my @results = capture()->details;
+
+       my $start = $self->{StartLevel};
+       foreach my $res (@results)
+       {
+               next if defined $res->{depth};
+               my $depth = $res->{_depth} - $res->{_level} - $start - 3;
+#              print "my $depth = $res->{_depth} - $res->{_level} - $start - 1\n";
+               $res->{depth} = $depth;
+       }
 
-1;
+       return @results;
+}
+
+sub get_premature
+{
+       return capture()->premature;
+}
+
+sub capture
+{
+       return Test::Tester::Capture->new;
+}
 
 __END__
 
 =head1 NAME
 
-Test::Tester::CaptureRunner - Deprecated
+Test::Tester::CaptureRunner - Help testing test modules built with Test::Builder
 
 =head1 DESCRIPTION
 
-DEPRECATED. This package is now just a stub.
+This stuff if needed to allow me to play with other ways of monitoring the
+test results.
+
+=head1 AUTHOR
+
+Copyright 2003 by Fergal Daly <fergal@esatclear.ie>.
+
+=head1 LICENSE
+
+Under the same license as Perl itself
+
+See http://www.perl.com/perl/misc/Artistic.html
 
 =cut
index f25070e..7ddb921 100644 (file)
@@ -1,19 +1,32 @@
 use strict;
 use warnings;
+
 package Test::Tester::Delegate;
 
-warn "Test::Tester::Delegate is deprecated";
+use vars '$AUTOLOAD';
 
-1;
+sub new
+{
+       my $pkg = shift;
 
-__END__
+       my $obj = shift;
+       my $self = bless {}, $pkg;
 
-=head1 NAME
+       return $self;
+}
 
-Test::Tester::Delegate - Deprecated
+sub AUTOLOAD
+{
+       my ($sub) = $AUTOLOAD =~ /.*::(.*?)$/;
 
-=head1 DESCRIPTION
+       return if $sub eq "DESTROY";
 
-DEPRECATED. This package is now just a stub.
+       my $obj = $_[0]->{Object};
 
-=cut
+       my $ref = $obj->can($sub);
+       shift(@_);
+       unshift(@_, $obj);
+       goto &$ref;
+}
+
+1;
diff --git a/cpan/Test-Simple/lib/Test/Tutorial/WritingTests.pod b/cpan/Test-Simple/lib/Test/Tutorial/WritingTests.pod
deleted file mode 100644 (file)
index 9f367c0..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Tutorial::WritingTests - A Complete Introduction to writing tests
-
-=head1 What are tests?
-
-Tests are code that verifies other code produces the expected output for a
-given input. An example may help:
-
-    # This code will die if math doesbn't work.
-    die "Math is broken" unless 1 + 1 == 2;
-
-However it is better to use a framework intended for testing:
-
-    ok( 1 + 1 == 2, "Math Works" );
-
-This will tell you if the test passes or fails, and will give you extra
-information like the name of the test, and what line it was written on if it
-fails.
-
-=head1 Simple example.
-
-    use Test::More;
-
-    ok( 1, "1 is true, this test will pass" );
-    ok( 0, "0 is false, this test will fail" );
-
-    is( 1 + 1, 2, "1 + 1 == 2" );
-
-    my @array = first_3_numbers();
-
-    is_deeply(
-        \@array,
-        [ 1, 2, 3 ],
-        "function returned an array of 3 numbers"
-    );
-
-    # When you are done, call this to satisfy the plan
-    done_testing
-
-See L<Test::More> for C<ok()>, C<is()>, C<is_deeply()>, and several other
-useful tools.
-
-=head1 What is a plan?
-
-You need to declare how many tests should be seen, this is to ensure your test
-does not die partway through. There are 2 ways to declare a plan, 1 way to
-decline to make a plan, and a way to skip everything.
-
-=over 4
-
-=item done_testing
-
-    use Test::More;
-
-    ok(1, "pass");
-
-    done_testing;
-
-Using done_testing means you do not need to update the plan every time you
-change your test script.
-
-=item Test count
-
-At import:
-
-    use Test::More tests => 1;
-    ok(1, "pass");
-
-Plan on its own:
-
-    use Test::More;
-    plan tests => 1;
-    ok(1, "pass");
-
-=item No Plan
-
-    use Test::More 'no_plan';
-
-No plan, no way to verify everything ran.
-
-=item skip_all
-
-    use Test::More skip_all => "We won't run these now";
-
-Just don't do anything.
-
-=back
-
-=head1 See Also
-
-L<Test::More>
-
-=head1 Writing tools.
-
-See L<Test::Tutorial::WritingTools>
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Tutorial/WritingTools.pod b/cpan/Test-Simple/lib/Test/Tutorial/WritingTools.pod
deleted file mode 100644 (file)
index 97c14d1..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Tutorial::WritingTools - How to write testing tools.
-
-=head1 Examples
-
-=over 4
-
-=item Complete Example
-
-    package My::Tool;
-    use strict;
-    use warnings;
-
-    use Test::Stream::Toolset;
-    use Test::Stream::Exporter;
-
-    # Export 'validate_widget' by default.
-    default_exports qw/validate_widget/;
-
-    sub validate_widget {
-        my ($widget, $produces, $name) = @_;
-        my $ctx = context(); # Do this early as possible
-
-        my $value = $widget->produce;
-        my $ok = $value eq $produces;
-
-        if ($ok) {
-            # On success generate an ok event
-            $ctx->ok($ok, $name);
-        }
-        else {
-            # On failure generate an OK event with some diagnostics
-            $ctx->ok($ok, $name, ["Widget produced '$value'\n Wanted '$produces'"]);
-        }
-
-        # It is usually polite to return a true/false value.
-        return $ok ? 1 : 0;
-    }
-
-    1;
-
-=item Alternate using Exporter.pm
-
-    package My::Tool;
-    use strict;
-    use warnings;
-
-    use Test::Stream::Toolset;
-
-    # Export 'validate_widget' by default.
-    use base 'Exporter';
-    our @EXPORT = qw/validate_widget/;
-
-    sub validate_widget {
-        my ($widget, $produces, $name) = @_;
-        my $ctx = context(); # Do this early as possible
-
-        my $value = $widget->produce;
-        my $ok = $value eq $produces;
-
-        if ($ok) {
-            # On success generate an ok event
-            $ctx->ok($ok, $name);
-        }
-        else {
-            # On failure generate an OK event with some diagnostics
-            $ctx->ok($ok, $name, ["Widget produced '$value'\n Wanted '$produces'"]);
-        }
-
-        # It is usually polite to return a true/false value.
-        return $ok ? 1 : 0;
-    }
-
-    1;
-
-=back
-
-=head2 Explanation
-
-L<Test::Stream> is event based. Whenever you want to produce a result you will
-generate an event for it. The most common event is L<Test::Stream::Event::Ok>.
-Events require some extra information such as where and how they were produced.
-In general you do not need to worry about these extra details, they can be
-filled in by C<Test::Stream::Context>.
-
-To get a context object you call C<context()> which can be imported from
-L<Test::Stream::Context> itself, or from L<Test::Stream::Toolset>. Once you
-have a context object you can ask it to issue events for you. All event types
-C<Test::Stream::Event::*> get helper methods on the context object.
-
-=head2 IMPORTANT NOTE ON CONTEXTS
-
-The context object has some magic to it. Essentially it is a semi-singleton.
-That is if you generate a context object in one place, then try to generate
-another one in another place, you will just get the first one again so long as
-it still has a reference. If however the first one has fallen out of scope or
-been undefined, a new context is generated.
-
-The idea here is that if you nest functions that use contexts, all levels of
-depth will get the same initial context. On the other hand 2 functions run in
-sequence will get independant context objects. What this means is that you
-should NEVER store a context object in a package variable or object attribute.
-You should also never assign it to a variable in a higher scope.
-
-C<context()> assumes you are at the lowest level of your tool, and looks at the
-current caller. If you need it to look further you can call it with a numeric
-argument which is added to the level. To clarify, calling C<context()> is the
-same as calling C<context(0)>.
-
-=head1 Nesting calls to other tools
-
-    use Test::More;
-    use Test::Stream::Toolset;
-
-    sub compound_check {
-        my ($object, $name) = @_;
-
-        # Grab the context now for nested tools to find
-        my $ctx = context;
-
-        my $ok = $object ? 1 : 0;
-        $ok &&= isa_ok($object, 'Some::Class');
-        $ok &&= can_ok($object, qw/foo bar baz/);
-        $ok &&= is($object->foo, 'my foo', $name);
-
-        $ctx->ok($ok, $name, $ok ? () : ['Not all object checks passed!']);
-
-        return $ok;
-    }
-
-    1;
-
-Nesting tools just works as expected so long as you grab the context BEFORE you
-call them. Errors will be reported to the correct file and line number.
-
-=head1 Useful toolsets to look at
-
-=over 4
-
-=item L<Test::More::Tools>
-
-This is the collection of tools used by L<Test::More> under the hood. You can
-use these instead of L<Test::More> exports to duplicate functionality without
-generating extra events.
-
-=back
-
-=head1 Available Events
-
-Anyone can add an event by shoving it in the C<Test::Stream::Event::*>
-namespace. It will autoload if C<< $context->event_name >> is called. But here
-is the list of events that come with L<Test::Stream>.
-
-=over 4
-
-=item L<Test::Stream::Event::Ok>
-
-    $ctx->ok($bool, $name);
-    $ctx->ok($bool, $name, \@diag);
-
-Generate an Ok event.
-
-=item L<Test::Stream::Event::Diag>
-
-    $ctx->diag("Diag Message");
-
-Generate a diagniostics (stderr) message
-
-=item L<Test::Stream::Event::Note>
-
-    $ctx->note("Note Message");
-
-Generate a note (stdout) message
-
-=item L<Test::Stream::Event::Bail>
-
-    $ctx->bail("Reason we are bailing");
-
-Stop the entire test file, something is very wrong!
-
-=item L<Test::Stream::Event::Plan>
-
-    $ctx->plan($max);
-    $ctx->plan(0, $directive, $reason);
-
-Set the plan.
-
-=back
-
-=head1 Testing your tools
-
-See L<Test::Stream::Tester>, which lets you intercept and validate events.
-
-B<DO NOT SEE> C<Test::Tester> and C<Test::Builder::Tester> which are both
-deprecated. They were once the way everyone tested their testers, but they do
-not allow you to test all events, and they are very fragile when upstream libs
-change.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
index c9e19ed..87d7cc5 100644 (file)
@@ -1,20 +1,9 @@
 package Test::use::ok;
-use strict;
-use warnings;
 use 5.005;
+$Test::use::ok::VERSION = '0.16';
 
-our $VERSION = '1.301001_098';
-$VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
-
-use Test::Stream 1.301001 '-internal';
-
-1;
 __END__
 
-=pod
-
-=encoding UTF-8
-
 =head1 NAME
 
 Test::use::ok - Alternative to Test::More::use_ok
@@ -25,9 +14,9 @@ Test::use::ok - Alternative to Test::More::use_ok
 
 =head1 DESCRIPTION
 
-According to the B<Test::More> documentation, it used to be recommended to run
-C<use_ok()> inside a C<BEGIN> block, so functions are exported at compile-time
-and prototypes are properly honored.
+According to the B<Test::More> documentation, it is recommended to run
+C<use_ok()> inside a C<BEGIN> block, so functions are exported at
+compile-time and prototypes are properly honored.
 
 That is, instead of writing this:
 
@@ -51,11 +40,6 @@ makes it clear that this is a single compile-time action.
 
 L<Test::More>
 
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
 =head1 MAINTAINER
 
 =over 4
@@ -64,65 +48,9 @@ F<http://github.com/Test-More/test-more/>.
 
 =back
 
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
+=encoding utf8
 
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
+=head1 CC0 1.0 Universal
 
 To the extent possible under law, 唐鳳 has waived all copyright and related
 or neighboring rights to L<Test-use-ok>.
@@ -131,22 +59,4 @@ This work is published from Taiwan.
 
 L<http://creativecommons.org/publicdomain/zero/1.0>
 
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
-
 =cut
index 653eb49..02726ac 100644 (file)
@@ -1,34 +1,25 @@
 package ok;
-use strict;
-use warnings;
-
-use Test::Stream 1.301001 '-internal';
-use Test::More 1.301001 ();
-use Test::Stream::Carp qw/croak/;
+$ok::VERSION = '0.16';
 
-our $VERSION = '1.301001_098';
-$VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
+use strict;
+use Test::More ();
 
 sub import {
     shift;
 
     if (@_) {
-        croak "'use ok' called with an empty argument, did you try to use a package name from an uninitialized variable?"
-            unless defined $_[0];
-
         goto &Test::More::pass if $_[0] eq 'ok';
         goto &Test::More::use_ok;
     }
+
+    # No argument list - croak as if we are prototyped like use_ok()
+    my (undef, $file, $line) = caller();
+    ($file =~ /^\(eval/) or die "Not enough arguments for 'use ok' at $file line $line\n";
 }
 
-1;
 
 __END__
 
-=pod
-
-=encoding UTF-8
-
 =head1 NAME
 
 ok - Alternative to Test::More::use_ok
@@ -44,78 +35,7 @@ and they will be executed at C<BEGIN> time.
 
 Please see L<Test::use::ok> for the full description.
 
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration 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.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
+=head1 CC0 1.0 Universal
 
 To the extent possible under law, 唐鳳 has waived all copyright and related
 or neighboring rights to L<Test-use-ok>.
@@ -124,20 +44,4 @@ This work is published from Taiwan.
 
 L<http://creativecommons.org/publicdomain/zero/1.0>
 
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
+=cut
diff --git a/cpan/Test-Simple/t/00test_harness_check.t b/cpan/Test-Simple/t/00test_harness_check.t
new file mode 100644 (file)
index 0000000..3ff4a13
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/perl -w
+
+# A test to make sure the new Test::Harness was installed properly.
+
+use Test::More;
+plan tests => 1;
+
+my $TH_Version = 2.03;
+
+require Test::Harness;
+unless( cmp_ok( eval $Test::Harness::VERSION, '>=', $TH_Version, "T::H version" ) ) {
+    diag <<INSTRUCTIONS;
+
+Test::Simple/More/Builder has features which depend on a version of
+Test::Harness greater than $TH_Version.  You have $Test::Harness::VERSION.
+Please install a new version from CPAN.
+
+If you've already tried to upgrade Test::Harness and still get this
+message, the new version may be "shadowed" by the old.  Check the
+output of Test::Harness's "make install" for "## Differing version"
+messages.  You can delete the old version by running 
+"make install UNINST=1".
+
+INSTRUCTIONS
+}
+
diff --git a/cpan/Test-Simple/t/01-basic.t b/cpan/Test-Simple/t/01-basic.t
new file mode 100644 (file)
index 0000000..12997d5
--- /dev/null
@@ -0,0 +1,5 @@
+use strict;
+use Test::More tests => 3;
+use ok 'strict';
+use ok 'Test::More';
+use ok 'ok';
diff --git a/cpan/Test-Simple/t/478-cmp_ok_hash.t b/cpan/Test-Simple/t/478-cmp_ok_hash.t
new file mode 100644 (file)
index 0000000..811835b
--- /dev/null
@@ -0,0 +1,41 @@
+use strict;
+use warnings;
+use Test::More;
+
+
+my $want = 0;
+my $got  = 0;
+
+cmp_ok($got, 'eq', $want, "Passes on correct comparison");
+
+my ($res, @ok, @diag, @warn);
+{
+    no warnings 'redefine';
+    local *Test::Builder::ok = sub {
+        my ($tb, $ok, $name) = @_;
+        push @ok => $ok;
+        return $ok;
+    };
+    local *Test::Builder::diag = sub {
+        my ($tb, @d) = @_;
+        push @diag => @d;
+    };
+    local $SIG{__WARN__} = sub {
+        push @warn => @_;
+    };
+    $res = cmp_ok($got, '#eq', $want, "You shall not pass!");
+}
+
+ok(!$res, "Did not pass");
+
+is(@ok, 1, "1 result");
+ok(!$ok[0], "result is false");
+
+# We only care that it mentions a syntax error.
+like(join("\n" => @diag), qr/syntax error at \(eval in cmp_ok\)/, "Syntax error");
+
+# We are not going to inspect the warning because it is not super predictable,
+# and changes with eval specifics.
+ok(@warn, "We got warnings");
+
+done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/388-threadedsubtest.load b/cpan/Test-Simple/t/Behavior/388-threadedsubtest.load
deleted file mode 100644 (file)
index ee34125..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-use Test::More;
-ok(1,"name");
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/388-threadedsubtest.t b/cpan/Test-Simple/t/Behavior/388-threadedsubtest.t
deleted file mode 100644 (file)
index fae3783..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use warnings;
-
-use Test::CanThread qw/AUTHOR_TESTING/;
-use Test::More;
-
-subtest my_subtest => sub {
-    my $file = __FILE__;
-    $file =~ s/\.t$/.load/;
-    do $file || die $@;
-};
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/478-cmp_ok_hash.t b/cpan/Test-Simple/t/Behavior/478-cmp_ok_hash.t
deleted file mode 100644 (file)
index ae82249..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-use Test::Stream::Tester;
-
-my $want = 0;
-my $got  = 0;
-
-cmp_ok($got, 'eq', $want, "Passes on correct comparison");
-
-my @warn;
-my $events = intercept {
-    no warnings 'redefine';
-    local $SIG{__WARN__} = sub {
-        push @warn => @_;
-    };
-    cmp_ok($got, '#eq', $want, "You shall not pass!");
-};
-
-# We are not going to inspect the warning because it is not super predictable,
-# and changes with eval specifics.
-ok(@warn, "We got warnings");
-
-events_are(
-    $events,
-    check {
-        event ok => {
-            bool => 0,
-            diag => qr/syntax error at \(eval in cmp_ok\)/,
-        };
-    },
-    "Events meet expectations"
-);
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/490-inherit_exporter.t b/cpan/Test-Simple/t/Behavior/490-inherit_exporter.t
deleted file mode 100644 (file)
index b899bfe..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-use strict;
-use warnings;
-
-
-BEGIN {
-    $INC{'My/Tester.pm'} = __FILE__;
-    package My::Tester;
-    use Test::More;
-    use base 'Test::More';
-
-    our @EXPORT    = (@Test::More::EXPORT, qw/foo/);
-    our @EXPORT_OK = (@Test::More::EXPORT_OK);
-
-    sub foo { goto &Test::More::ok }
-
-    1;
-}
-
-use My::Tester;
-
-can_ok(__PACKAGE__, qw/ok done_testing foo/);
-
-foo(1, "This is just an ok");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/CustomOutput.t b/cpan/Test-Simple/t/Behavior/CustomOutput.t
deleted file mode 100644 (file)
index e4d7185..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-use Scalar::Util qw/blessed/;
-
-# This will replace the main Test::Stream object for the scope of the coderef.
-# We apply our output changes only in that scope so that this test itself can
-# verify things with regular TAP output. The things done inside thise sub would
-# work just fine when used by any module to alter the output.
-
-my @OUTPUT;
-Test::Stream->intercept(sub {
-    # Turn off normal TAP output
-    Test::Stream->shared->set_use_tap(0);
-
-    # Turn off legacy storage of results.
-    Test::Stream->shared->set_use_legacy(0);
-
-    Test::Stream->shared->listen(sub {
-        my ($stream, $event) = @_;
-
-        push @OUTPUT => "We got an event of type " . blessed($event);
-    });
-
-    # Now we run some tests, no TAP will be produced, instead all events will
-    # be added to @OUTPUT.
-
-    ok(1, "pass");
-    ok(0, "fail");
-
-    subtest foo => sub {
-        ok(1, "pass");
-        ok(0, "fail");
-    };
-
-    diag "Hello";
-});
-
-is_deeply(
-    \@OUTPUT,
-    [
-        'We got an event of type Test::Stream::Event::Ok',
-        'We got an event of type Test::Stream::Event::Ok',
-        'We got an event of type Test::Stream::Event::Note',
-        'We got an event of type Test::Stream::Event::Subtest',
-        'We got an event of type Test::Stream::Event::Diag',
-    ],
-    "Got all events"
-);
-
-# Now for something more complicated, lets have everything be normal TAP,
-# except subtests
-
-my (@STDOUT, @STDERR, @TODO);
-my @IO = (\@STDOUT, \@STDERR, \@TODO);
-
-Test::Stream->intercept(sub {
-    # Turn off normal TAP output
-    Test::Stream->shared->set_use_tap(0);
-
-    # Turn off legacy storage of results.
-    Test::Stream->shared->set_use_legacy(0);
-
-    my $number = 1;
-    Test::Stream->shared->listen(sub {
-        my ($stream, $e) = @_;
-
-        # Do not output results inside subtests
-        return if $e->in_subtest;
-
-        return unless $e->can('to_tap');
-
-        my $num = $stream->use_numbers ? $number++ : undef;
-
-        # Get the TAP for the event
-        my @sets;
-        if ($e->isa('Test::Stream::Event::Subtest')) {
-            # Subtest is a subclass of Ok, use Ok's to_tap method:
-            @sets = Test::Stream::Event::Ok::to_tap($e, $num);
-            # Here you can also add whatever output you want.
-        }
-        else {
-            @sets = $e->to_tap($num);
-        }
-
-        for my $set (@sets) {
-            my ($hid, $msg) = @$set;
-            next unless $msg;
-            my $enc = $e->encoding || die "Could not find encoding!";
-
-            # This is how you get the proper handle to use (STDERR, STDOUT, ETC).
-            my $io = $stream->io_sets->{$enc}->[$hid] || die "Could not find IO $hid for $enc";
-            $io = $IO[$hid];
-
-            # Make sure we don't alter these vars.
-            local($\, $", $,) = (undef, ' ', '');
-
-            # Normally you print to the IO, but here we are pushing to arrays
-            chomp($msg);
-            push @$io => $msg;
-        }
-    });
-
-    # Now we run some tests, no TAP will be produced, instead all events will
-    # be added to our ourputs
-
-    ok(1, "pass");
-    ok(0, "fail");
-
-    subtest foo => sub {
-        ok(1, "pass");
-        ok(0, "fail");
-    };
-
-    diag "Hello";
-});
-
-is(@TODO, 0, "No TODO output");
-
-is_deeply(
-    \@STDOUT,
-    [
-        'ok 1 - pass',
-        'not ok 2 - fail',
-        '# Subtest: foo',
-        # As planned, none of the events inside the subtest got rendered.
-        'not ok 4 - foo'
-    ],
-    "Got expected TAP"
-);
-
-is(pop(@STDERR), "# Hello", "Got the hello diag");
-is(@STDERR, 2, "got diag for 2 failed tests");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/MonkeyPatching_diag.t b/cpan/Test-Simple/t/Behavior/MonkeyPatching_diag.t
deleted file mode 100644 (file)
index e89f02c..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-use strict;
-use warnings;
-use B;
-
-use Test::Stream;
-use Test::MostlyLike;
-use Test::More tests => 3;
-use Test::Builder; # Not loaded by default in modern mode
-my $orig = Test::Builder->can('diag');
-
-{
-    package MyModernTester;
-    use Test::More;
-    use Test::Stream;
-    use Test::MostlyLike;
-    use Test::Stream::Tester qw/intercept/;
-
-    no warnings 'redefine';
-    local *Test::Builder::diag = sub {
-        my $self = shift;
-        return $self->$orig(__PACKAGE__ . ": ", @_);
-    };
-    use warnings;
-
-    my $file = __FILE__;
-    # Line number is tricky, just use what B says The sub may not actually think it
-    # is on the line it is may be off by 1.
-    my $line = B::svref_2object(\&Test::Builder::diag)->START->line;
-
-    my @warnings;
-    {
-        local $SIG{__WARN__} = sub { push @warnings => @_ };
-        intercept {
-            diag('first');
-            diag('seconds');
-        };
-    }
-    mostly_like(
-        \@warnings,
-        [
-            qr{The new sub is 'MyModernTester::__ANON__' defined in \Q$file\E around line $line},
-            undef, #Only 1 warning
-        ],
-        "Found expected warning, just the one"
-    );
-}
-
-{
-    package MyModernTester2;
-    use Test::More;
-    use Test::Stream;
-    use Test::MostlyLike;
-    use Test::Stream::Tester qw/intercept/;
-
-    no warnings 'redefine';
-    local *Test::Builder::diag = sub {
-        my $self = shift;
-        return $self->$orig(__PACKAGE__ . ": ", @_);
-    };
-    use warnings;
-
-    my $file = __FILE__;
-    # Line number is tricky, just use what B says The sub may not actually think it
-    # is on the line it is may be off by 1.
-    my $line = B::svref_2object(\&Test::Builder::diag)->START->line;
-
-    my @warnings;
-    {
-        local $SIG{__WARN__} = sub { push @warnings => @_ };
-        intercept {
-            diag('first');
-            diag('seconds');
-        };
-    }
-    mostly_like(
-        \@warnings,
-        [
-            qr{The new sub is 'MyModernTester2::__ANON__' defined in \Q$file\E around line $line},
-            undef, #Only 1 warning
-        ],
-        "new override, new warning"
-    );
-}
-
-{
-    package MyLegacyTester;
-    use Test::More;
-    use Test::Stream::Tester qw/intercept/;
-
-    no warnings 'redefine';
-    local *Test::Builder::diag = sub {
-        my $self = shift;
-        return $self->$orig(__PACKAGE__ . ": ", @_);
-    };
-    use warnings;
-
-    my @warnings;
-    {
-        local $SIG{__WARN__} = sub { push @warnings => @_ };
-        intercept {
-            diag('first');
-            diag('seconds');
-        };
-    }
-    is(@warnings, 0, "no warnings for a legacy tester");
-}
diff --git a/cpan/Test-Simple/t/Behavior/MonkeyPatching_done_testing.t b/cpan/Test-Simple/t/Behavior/MonkeyPatching_done_testing.t
deleted file mode 100644 (file)
index 8c62100..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-use strict;
-use warnings;
-use B;
-
-use Test::Stream;
-use Test::MostlyLike;
-use Test::More tests => 4;
-use Test::Builder; # Not loaded by default in modern mode
-my $orig = Test::Builder->can('done_testing');
-
-use Test::Stream::Tester;
-
-my $ran = 0;
-no warnings 'redefine';
-my $file = __FILE__;
-my $line = __LINE__ + 1;
-*Test::Builder::done_testing = sub { my $self = shift; $ran++; $self->$orig(@_) };
-use warnings;
-
-my @warnings;
-$SIG{__WARN__} = sub { push @warnings => @_ };
-
-events_are(
-    intercept {
-        ok(1, "pass");
-        ok(0, "fail");
-
-        done_testing;
-    },
-    check {
-        event ok => { bool => 1 };
-        event ok => { bool => 0 };
-        event plan => { max => 2 };
-        directive 'end';
-    },
-);
-
-events_are(
-    intercept {
-        ok(1, "pass");
-        ok(0, "fail");
-
-        done_testing;
-    },
-    check {
-        event ok => { bool => 1 };
-        event ok => { bool => 0 };
-        event plan => { max => 2 };
-        directive 'end';
-    },
-);
-
-is($ran, 2, "We ran our override both times");
-mostly_like(
-    \@warnings,
-    [
-        qr{The new sub is 'main::__ANON__' defined in \Q$file\E around line $line},
-        undef,
-    ],
-    "Got the warning once"
-);
diff --git a/cpan/Test-Simple/t/Behavior/MonkeyPatching_note.t b/cpan/Test-Simple/t/Behavior/MonkeyPatching_note.t
deleted file mode 100644 (file)
index 7c8e765..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-use strict;
-use warnings;
-use B;
-
-use Test::Stream;
-use Test::MostlyLike;
-use Test::More tests => 3;
-use Test::Builder; # Not loaded by default in modern mode
-my $orig = Test::Builder->can('note');
-
-{
-    package MyModernTester;
-    use Test::More;
-    use Test::Stream;
-    use Test::MostlyLike;
-
-    no warnings 'redefine';
-    local *Test::Builder::note = sub {
-        my $self = shift;
-        return $self->$orig(__PACKAGE__ . ": ", @_);
-    };
-    use warnings;
-
-    my $file = __FILE__;
-    # Line number is tricky, just use what B says The sub may not actually think it
-    # is on the line it is may be off by 1.
-    my $line = B::svref_2object(\&Test::Builder::note)->START->line;
-
-    my @warnings;
-    {
-        local $SIG{__WARN__} = sub { push @warnings => @_ };
-        note('first');
-        note('seconds');
-    }
-    mostly_like(
-        \@warnings,
-        [
-            qr{The new sub is 'MyModernTester::__ANON__' defined in \Q$file\E around line $line},
-            undef, #Only 1 warning
-        ],
-        "Found expected warning, just the one"
-    );
-}
-
-{
-    package MyModernTester2;
-    use Test::More;
-    use Test::Stream;
-    use Test::MostlyLike;
-
-    no warnings 'redefine';
-    local *Test::Builder::note = sub {
-        my $self = shift;
-        return $self->$orig(__PACKAGE__ . ": ", @_);
-    };
-    use warnings;
-
-    my $file = __FILE__;
-    # Line number is tricky, just use what B says The sub may not actually think it
-    # is on the line it is may be off by 1.
-    my $line = B::svref_2object(\&Test::Builder::note)->START->line;
-
-    my @warnings;
-    {
-        local $SIG{__WARN__} = sub { push @warnings => @_ };
-        note('first');
-        note('seconds');
-    }
-    mostly_like(
-        \@warnings,
-        [
-            qr{The new sub is 'MyModernTester2::__ANON__' defined in \Q$file\E around line $line},
-            undef, #Only 1 warning
-        ],
-        "new override, new warning"
-    );
-}
-
-{
-    package MyLegacyTester;
-    use Test::More;
-
-    no warnings 'redefine';
-    local *Test::Builder::note = sub {
-        my $self = shift;
-        return $self->$orig(__PACKAGE__ . ": ", @_);
-    };
-    use warnings;
-
-    my @warnings;
-    {
-        local $SIG{__WARN__} = sub { push @warnings => @_ };
-        note('first');
-        note('seconds');
-    }
-    is(@warnings, 0, "no warnings for a legacy tester");
-}
diff --git a/cpan/Test-Simple/t/Behavior/MonkeyPatching_ok.t b/cpan/Test-Simple/t/Behavior/MonkeyPatching_ok.t
deleted file mode 100644 (file)
index faf92bf..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-use strict;
-use warnings;
-use B;
-
-use Test::Stream;
-use Test::MostlyLike;
-use Test::More tests => 9;
-use Test::Builder; # Not loaded by default in modern mode
-my $orig = Test::Builder->can('ok');
-
-{
-    package MyModernTester;
-    use Test::Stream;
-    use Test::MostlyLike;
-    use Test::More;
-
-    no warnings 'redefine';
-    local *Test::Builder::ok = sub {
-        my $self = shift;
-        my ($bool, $name) = @_;
-        $name = __PACKAGE__ . ":  $name";
-        return $self->$orig($bool, $name);
-    };
-    use warnings;
-
-    my $file = __FILE__;
-    # Line number is tricky, just use what B says The sub may not actually think it
-    # is on the line it is may be off by 1.
-    my $line = B::svref_2object(\&Test::Builder::ok)->START->line;
-
-    my @warnings;
-    {
-        local $SIG{__WARN__} = sub { push @warnings => @_ };
-        ok(1, "fred");
-        ok(2, "barney");
-    }
-    mostly_like(
-        \@warnings,
-        [
-            qr{The new sub is 'MyModernTester::__ANON__' defined in \Q$file\E around line $line},
-            undef, #Only 1 warning
-        ],
-        "Found expected warning, just the one"
-    );
-}
-
-{
-    package MyModernTester2;
-    use Test::Stream;
-    use Test::MostlyLike;
-    use Test::More;
-
-    no warnings 'redefine';
-    local *Test::Builder::ok = sub {
-        my $self = shift;
-        my ($bool, $name) = @_;
-        $name = __PACKAGE__ . ": $name";
-        return $self->$orig($bool, $name);
-    };
-    use warnings;
-
-    my $file = __FILE__;
-    # Line number is tricky, just use what B says The sub may not actually think it
-    # is on the line it is may be off by 1.
-    my $line = B::svref_2object(\&Test::Builder::ok)->START->line;
-
-    my @warnings;
-    {
-        local $SIG{__WARN__} = sub { push @warnings => @_ };
-        ok(1, "fred");
-        ok(2, "barney");
-    }
-    mostly_like(
-        \@warnings,
-        [
-            qr{The new sub is 'MyModernTester2::__ANON__' defined in \Q$file\E around line $line},
-            undef, #Only 1 warning
-        ],
-        "new override, new warning"
-    );
-}
-
-{
-    package MyLegacyTester;
-    use Test::More;
-
-    no warnings 'redefine';
-    local *Test::Builder::ok = sub {
-        my $self = shift;
-        my ($bool, $name) = @_;
-        $name = __PACKAGE__ . ":  $name";
-        return $self->$orig($bool, $name);
-    };
-    use warnings;
-
-    my $file = __FILE__;
-    # Line number is tricky, just use what B says The sub may not actually think it
-    # is on the line it is may be off by 1.
-    my $line = B::svref_2object(\&Test::Builder::ok)->START->line;
-
-    my @warnings;
-    {
-        local $SIG{__WARN__} = sub { push @warnings => @_ };
-        ok(1, "fred");
-        ok(2, "barney");
-    }
-    is(@warnings, 0, "no warnings for a legacy tester");
-}
diff --git a/cpan/Test-Simple/t/Behavior/MonkeyPatching_plan.t b/cpan/Test-Simple/t/Behavior/MonkeyPatching_plan.t
deleted file mode 100644 (file)
index 236a083..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-use strict;
-use warnings;
-use B;
-
-use Test::Stream;
-use Test::MostlyLike;
-use Test::More tests => 8;
-use Test::Builder; # Not loaded by default in modern mode
-my $orig = Test::Builder->can('plan');
-
-use Test::Stream::Tester;
-
-my $ran = 0;
-no warnings 'redefine';
-my $file = __FILE__;
-my $line = __LINE__ + 1;
-*Test::Builder::plan = sub { my $self = shift; $ran++; $self->$orig(@_) };
-use warnings;
-
-my @warnings;
-$SIG{__WARN__} = sub { push @warnings => @_ };
-
-events_are(
-    intercept {
-        plan tests => 2;
-        ok(1, "pass");
-        ok(0, "fail");
-    },
-    check {
-        event plan => { max => 2 };
-        event ok => { bool => 1 };
-        event ok => { bool => 0 };
-        directive 'end';
-    },
-);
-
-events_are(
-    intercept {
-        Test::More->import('tests' => 2);
-        ok(1, "pass");
-        ok(0, "fail");
-    },
-    check {
-        event plan => { max => 2 };
-        event ok => { bool => 1 };
-        event ok => { bool => 0 };
-        directive 'end';
-    },
-);
-
-events_are(
-    intercept {
-        Test::More->import(skip_all => 'damn');
-        ok(1, "pass");
-        ok(0, "fail");
-    },
-    check {
-        event plan => { max => 0, directive => 'SKIP', reason => 'damn' };
-        directive 'end';
-    },
-);
-
-events_are(
-    intercept {
-        Test::More->import('no_plan');
-        ok(1, "pass");
-        ok(0, "fail");
-    },
-    check {
-        event plan => { directive => 'NO PLAN' };
-        event ok => { bool => 1 };
-        event ok => { bool => 0 };
-        directive 'end';
-    },
-);
-
-is($ran, 4, "We ran our override each time");
-mostly_like(
-    \@warnings,
-    [
-        qr{The new sub is 'main::__ANON__' defined in \Q$file\E around line $line},
-        undef,
-    ],
-    "Got the warning once"
-);
-
-
-
-no warnings 'redefine';
-*Test::Builder::plan = sub { };
-use warnings;
-my $ok;
-events_are(
-    intercept {
-        $ok = eval {
-            plan(tests => 1);
-            plan(tests => 2);
-            ok(1);
-            ok(1);
-            ok(1);
-            done_testing;
-            1;
-        };
-    },
-    check {
-        event ok => { bool => 1 };
-        event ok => { bool => 1 };
-        event ok => { bool => 1 };
-        event plan => { max => 3 };
-        directive 'end';
-    },
-    "Make sure plan monkeypatching does not effect done_testing"
-);
-
-ok($ok, "Did not die");
diff --git a/cpan/Test-Simple/t/Behavior/Munge.t b/cpan/Test-Simple/t/Behavior/Munge.t
deleted file mode 100644 (file)
index be9aa98..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-use strict;
-use warnings;
-use Test::Stream;
-use Test::More;
-use Test::Stream::Tester;
-
-events_are(
-    intercept {
-        my $id = 0;
-        Test::Stream->shared->munge(sub {
-            my ($stream, $e) = @_;
-            return unless $e->isa('Test::Stream::Event::Ok');
-            return if defined $e->name;
-            $e->set_name( 'flubber: ' . $id++ );
-        });
-
-        ok( 1, "Keep the name" );
-        ok( 1 );
-        ok( 1, "Already named" );
-        ok( 1 );
-    },
-    check {
-        event ok => { bool => 1, name => "Keep the name" };
-        event ok => { bool => 1, name => "flubber: 0" };
-        event ok => { bool => 1, name => "Already named" };
-        event ok => { bool => 1, name => "flubber: 1" };
-    }
-);
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/NotTB15.t b/cpan/Test-Simple/t/Behavior/NotTB15.t
deleted file mode 100644 (file)
index a709925..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use warnings;
-
-use Test::More;
-use Test::Builder;
-
-# This is just a list of method Test::Builder current does not have that Test::Builder 1.5 does.
-my @TB15_METHODS = qw{
-    _file_and_line _join_message _make_default _my_exit _reset_todo_state
-    _result_to_hash _results _todo_state formatter history in_test
-    no_change_exit_code post_event post_result set_formatter set_plan test_end
-    test_exit_code test_start test_state
-};
-
-for my $method (qw/foo bar baz/) {
-    my $success = !eval { Test::Builder->$method; 1 }; my $line = __LINE__;
-    my $error = $@;
-    ok($success, "Threw an exception ($method)");
-    is(
-        $error,
-        qq{Can't locate object method "$method" via package "Test::Builder" at } . __FILE__ . " line $line.\n",
-        "Did not auto-create random sub ($method)"
-    );
-}
-
-my $file = __FILE__;
-for my $method (@TB15_METHODS) {
-    my $success = !eval { Test::Builder->$method; 1 }; my $line = __LINE__;
-    my $error = $@;
-
-    ok($success, "Threw an exception ($method)");
-
-    is($error, <<"    EOT", "Got expected error ($method)");
-Can't locate object method "$method" via package "Test::Builder" at $file line $line.
-
-    *************************************************************************
-    '$method' is a Test::Builder 1.5 method. Test::Builder 1.5 is a dead branch.
-    You need to update your code so that it no longer treats Test::Builders
-    over a specific version number as anything special.
-
-    See: http://blogs.perl.org/users/chad_exodist_granum/2014/03/testmore---new-maintainer-also-stop-version-checking.html
-    *************************************************************************
-    EOT
-}
-
-done_testing;
-
diff --git a/cpan/Test-Simple/t/Behavior/Tester2_subtest.t b/cpan/Test-Simple/t/Behavior/Tester2_subtest.t
deleted file mode 100644 (file)
index 6101fbb..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-use strict;
-use warnings;
-use utf8;
-
-use Test::Stream;
-use Test::More;
-use Test::Stream::Tester;
-
-my $events = intercept {
-    ok(0, "test failure" );
-    ok(1, "test success" );
-
-    subtest 'subtest' => sub {
-        ok(0, "subtest failure" );
-        ok(1, "subtest success" );
-
-        subtest 'subtest_deeper' => sub {
-            ok(1, "deeper subtest success" );
-        };
-    };
-
-    ok(0, "another test failure" );
-    ok(1, "another test success" );
-};
-
-events_are(
-    $events,
-
-    check {
-        event ok   => {bool => 0, diag => qr/Fail/};
-        event ok   => {bool => 1};
-
-        event note => {message => 'Subtest: subtest'};
-        event subtest => {
-            name => 'subtest',
-            bool => 0,
-            diag => qr/Failed test 'subtest'/,
-
-            events => check {
-                event ok => {bool => 0};
-                event ok => {bool => 1};
-
-                event note => {message => 'Subtest: subtest_deeper'};
-                event subtest => {
-                    bool => 1,
-                    name => 'subtest_deeper',
-                    events => check {
-                        event ok => { bool => 1 };
-                    },
-                };
-
-                event plan   => { max => 3 };
-                event finish => { tests_run => 3, tests_failed => 1 };
-                event diag   => { message => qr/Looks like you failed 1 test of 3/ };
-
-                dir end => 'End of subtests events';
-            },
-        };
-
-        event ok => {bool => 0};
-        event ok => {bool => 1};
-
-        dir end => "subtest events as expected";
-    },
-
-    "Subtest events"
-);
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/cmp_ok_undef.t b/cpan/Test-Simple/t/Behavior/cmp_ok_undef.t
deleted file mode 100644 (file)
index 1e317c5..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-use Test::More;
-use strict;
-use warnings;
-
-use Test::Stream::Tester;
-
-my @warnings;
-local $SIG{__WARN__} = sub { push @warnings => @_ };
-my @events = intercept { cmp_ok( undef, '==', 6 ) };
-
-is(@warnings, 1, "1 warning");
-
-like(
-    $warnings[0],
-    qr/Use of uninitialized value .* at \(eval in cmp_ok\)/,
-    "Got the expected warning"
-);
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/cmp_ok_xor.t b/cpan/Test-Simple/t/Behavior/cmp_ok_xor.t
deleted file mode 100644 (file)
index 292f716..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-
-my @warnings;
-$SIG{__WARN__} = sub { push @warnings => @_ };
-my $ok = cmp_ok( 1, 'xor', 0, 'use xor in cmp_ok' );
-ok(!@warnings, "no warnings");
-ok($ok, "returned true");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/encoding_test.t b/cpan/Test-Simple/t/Behavior/encoding_test.t
deleted file mode 100644 (file)
index 57242e0..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-use strict;
-use warnings;
-no utf8;
-
-# line 5 "encoding_tést.t"
-
-use Test::Stream;
-use Test::More;
-use Test::Stream::Tester;
-
-BEGIN {
-    my $norm = eval { require Unicode::Normalize; require Encode; 1 };
-    plan skip_all => 'Unicode::Normalize is required for this test' unless $norm;
-}
-
-my $filename = __FILE__;
-ok(!utf8::is_utf8($filename), "filename is not in utf8 yet");
-my $utf8name = Unicode::Normalize::NFKC(Encode::decode('utf8', "$filename", Encode::FB_CROAK));
-ok( $filename ne $utf8name, "sanity check" );
-
-my $scoper = sub { context()->snapshot };
-
-tap_encoding 'utf8';
-my $ctx_utf8 = $scoper->();
-
-tap_encoding 'legacy';
-my $ctx_legacy = $scoper->();
-
-is($ctx_utf8->encoding,   'utf8',   "got a utf8 context");
-is($ctx_legacy->encoding, 'legacy', "got a legacy context");
-
-is($ctx_utf8->file, $utf8name, "Got utf8 name");
-is($ctx_legacy->file, $filename, "Got legacy name");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/event_clone_args.t b/cpan/Test-Simple/t/Behavior/event_clone_args.t
deleted file mode 100644 (file)
index 7d4824d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-use Test::More;
-use strict;
-use warnings;
-
-use B;
-use Test::Stream::Tester qw/intercept/;
-
-my @events;
-
-my $x1 = \(my $y1);
-push @events => intercept { note $x1 };
-is(B::svref_2object($x1)->REFCNT, 2, "Note does not store a ref");
-
-my $x2 = \(my $y2);
-push @events => intercept { diag $x2 };
-is(B::svref_2object($x2)->REFCNT, 2, "diag does not store a ref");
-
-my $x3 = \(my $y3);
-push @events => intercept { ok($x3, "Generating") };
-is(B::svref_2object($x3)->REFCNT, 2, "ok does not store a ref");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/fork_new_end.t b/cpan/Test-Simple/t/Behavior/fork_new_end.t
deleted file mode 100644 (file)
index 7e7c2d7..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-use strict;
-use warnings;
-
-BEGIN {
-    if( $ENV{PERL_CORE} ) {
-        chdir 't';
-        @INC = '../lib';
-    }
-}
-
-use Test::CanThread qw/AUTHOR_TESTING/;
-use Test::More tests => 4;
-
-ok(1, "outside before");
-
-my $run = sub {
-    ok(1, 'in thread1');
-    ok(1, 'in thread2');
-};
-
-
-my $t = threads->create($run);
-
-ok(1, "outside after");
-
-$t->join;
-
-END {
-    print "XXX: " . Test::Builder->new->is_passing . "\n";
-}
diff --git a/cpan/Test-Simple/t/Behavior/skip_all_in_subtest.t b/cpan/Test-Simple/t/Behavior/skip_all_in_subtest.t
deleted file mode 100644 (file)
index 5f8abea..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use Test::More;
-
-my @warnings;
-local $SIG{__WARN__} = sub { push @warnings, $_[0] };
-
-subtest my_subtest1 => sub {
-    my $file = __FILE__;
-    $file =~ s/\.t$/1.load/;
-    do $file;
-};
-
-is(scalar(@warnings), 1, "one warning");
-like(
-    $warnings[0],
-    qr/^SKIP_ALL in subtest via 'BEGIN' or 'use'/,
-    "the warning"
-);
-
-
-subtest my_subtest2 => sub {
-    my $file = __FILE__;
-    $file =~ s/\.t$/2.load/;
-    do $file;
-};
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/skip_all_in_subtest1.load b/cpan/Test-Simple/t/Behavior/skip_all_in_subtest1.load
deleted file mode 100644 (file)
index 241ce14..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use Carp qw/confess/;
-
-use Test::More skip_all => "Cause I feel like it";
-
-confess "Should not see this!";
diff --git a/cpan/Test-Simple/t/Behavior/skip_all_in_subtest2.load b/cpan/Test-Simple/t/Behavior/skip_all_in_subtest2.load
deleted file mode 100644 (file)
index 6ce306a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use Carp qw/confess/;
-
-use Test::More;
-
-plan skip_all => "Cause I feel like it";
-
-confess "Should not see this!";
diff --git a/cpan/Test-Simple/t/Behavior/subtest_die.t b/cpan/Test-Simple/t/Behavior/subtest_die.t
deleted file mode 100644 (file)
index 49f8f88..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-use Test::Stream::Tester;
-
-my ($ok, $err);
-events_are(
-    intercept {
-        $ok = eval {
-            subtest foo => sub {
-                ok(1, "Pass");
-                die "Ooops";
-            };
-            1;
-        };
-        $err = $@;
-    },
-    check {
-        directive seek => 1;
-        event subtest => {
-            bool => 0,
-            real_bool => 0,
-            name => 'foo',
-            exception => qr/^Ooops/,
-        };
-        directive 'end';
-    },
-    "Subtest fails if it throws an exception"
-);
-
-ok(!$ok, "subtest died");
-like($err, qr/^Ooops/, "Got expected exception");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/threads_with_taint_mode.t b/cpan/Test-Simple/t/Behavior/threads_with_taint_mode.t
deleted file mode 100644 (file)
index 71a80e9..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/perl -w -T
-use strict;
-use warnings;
-
-BEGIN {
-    if ($ENV{PERL_CORE}) {
-        chdir 't';
-        @INC = '../lib';
-    }
-}
-
-use Test::CanThread qw/AUTHOR_TESTING/;
-
-use Test::Builder;
-
-my $Test = Test::Builder->new;
-$Test->exported_to('main');
-$Test->plan(tests => 6);
-
-for (1 .. 5) {
-    'threads'->create(
-        sub {
-            $Test->ok(1, "Each of these should app the test number");
-        }
-    )->join;
-}
-
-$Test->is_num($Test->current_test(), 5, "Should be five");
diff --git a/cpan/Test-Simple/t/Behavior/todo.t b/cpan/Test-Simple/t/Behavior/todo.t
deleted file mode 100644 (file)
index cb5a6e3..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-use Test::Stream::Tester;
-
-my $events = intercept {
-    local $TODO = "";
-    ok(0, "Should not be in todo 1");
-
-    local $TODO = 0;
-    ok(0, "Should not be in todo 2");
-
-    local $TODO = undef;
-    ok(0, "Should not be in todo 3");
-
-    local $TODO = "foo";
-    ok(0, "Should be in todo");
-};
-
-events_are(
-    $events,
-    check {
-        event ok => { in_todo => 0 };
-        event ok => { in_todo => 0 };
-        event ok => { in_todo => 0 };
-        event ok => { in_todo => 1 };
-        directive 'end';
-    },
-    "Verify TODO state"
-);
-
-my $i = 0;
-for my $e (@$events) {
-    next if $e->context->in_todo;
-
-    my @tap = $e->to_tap(++$i);
-    my $ok_line = $tap[0];
-    chomp(my $text = $ok_line->[1]);
-    is($text, "not ok $i - Should not be in todo $i", "No TODO directive $i");
-}
-
-done_testing;
similarity index 65%
rename from cpan/Test-Simple/t/Legacy/Builder/carp.t
rename to cpan/Test-Simple/t/Builder/carp.t
index b363438..e89eeeb 100644 (file)
@@ -1,6 +1,4 @@
 #!/usr/bin/perl
-use strict;
-use warnings;
 
 BEGIN {
     if( $ENV{PERL_CORE} ) {
@@ -12,15 +10,15 @@ BEGIN {
 
 use Test::More tests => 3;
 use Test::Builder;
-use Test::Stream::Context qw/context/;
 
-sub foo { my $ctx = context(); Test::Builder->new->croak("foo") }
-sub bar { my $ctx = context(); Test::Builder->new->carp("bar")  }
+my $tb = Test::Builder->create;
+sub foo { $tb->croak("foo") }
+sub bar { $tb->carp("bar")  }
 
 eval { foo() };
 is $@, sprintf "foo at %s line %s.\n", $0, __LINE__ - 1;
 
-eval { Test::Builder->new->croak("this") };
+eval { $tb->croak("this") };
 is $@, sprintf "this at %s line %s.\n", $0, __LINE__ - 1;
 
 {
@@ -5,7 +5,7 @@ use strict;
 use Test::Builder;
 
 my $tb = Test::Builder->new;
-$tb->plan(tests => 2);
+$tb->plan( tests => 2 );
 $tb->ok(1);
 $tb->ok(1);
 $tb->done_testing(2);
diff --git a/cpan/Test-Simple/t/Builder/fork_with_new_stdout.t b/cpan/Test-Simple/t/Builder/fork_with_new_stdout.t
new file mode 100644 (file)
index 0000000..e38c1d0
--- /dev/null
@@ -0,0 +1,54 @@
+#!perl -w
+use strict;
+use warnings;
+use IO::Pipe;
+use Test::Builder;
+use Config;
+
+my $b = Test::Builder->new;
+$b->reset;
+
+my $Can_Fork = $Config{d_fork} ||
+               (($^O eq 'MSWin32' || $^O eq 'NetWare') and
+                $Config{useithreads} and
+                $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
+               );
+
+if( !$Can_Fork ) {
+    $b->plan('skip_all' => "This system cannot fork");
+}
+else {
+    $b->plan('tests' => 2);
+}
+
+my $pipe = IO::Pipe->new;
+if ( my $pid = fork ) {
+  $pipe->reader;
+  $b->ok((<$pipe> =~ /FROM CHILD: ok 1/), "ok 1 from child");
+  $b->ok((<$pipe> =~ /FROM CHILD: 1\.\.1/), "1..1 from child");
+  waitpid($pid, 0);
+}
+else {
+  $pipe->writer;
+  my $pipe_fd = $pipe->fileno;
+  close STDOUT;
+  open(STDOUT, ">&$pipe_fd");
+  my $b = Test::Builder->new;
+  $b->reset;
+  $b->no_plan;
+  $b->ok(1);
+} 
+
+
+=pod
+#actual
+1..2
+ok 1
+1..1
+ok 1
+ok 2
+#expected
+1..2
+ok 1
+ok 2
+=cut
similarity index 99%
rename from cpan/Test-Simple/t/Legacy/Builder/is_fh.t
rename to cpan/Test-Simple/t/Builder/is_fh.t
index f7a5f1a..0eb3ec0 100644 (file)
@@ -41,7 +41,7 @@ package Lying::isa;
 sub isa {
     my $self = shift;
     my $parent = shift;
-
+    
     return 1 if $parent eq 'IO::Handle';
 }
 
similarity index 99%
rename from cpan/Test-Simple/t/Legacy/Builder/maybe_regex.t
rename to cpan/Test-Simple/t/Builder/maybe_regex.t
index fd8b8d0..d1927a5 100644 (file)
@@ -23,7 +23,7 @@ ok(('bar' !~ /$r/), 'qr// bad match');
 
 SKIP: {
     skip "blessed regex checker added in 5.10", 3 if $] < 5.010;
-
+    
     my $obj = bless qr/foo/, 'Wibble';
     my $re = $Test->maybe_regex($obj);
     ok( defined $re, "blessed regex detected" );
similarity index 97%
rename from cpan/Test-Simple/t/Legacy/Builder/reset.t
rename to cpan/Test-Simple/t/Builder/reset.t
index fd11db7..3bc4445 100644 (file)
@@ -13,6 +13,7 @@ BEGIN {
 }
 chdir 't';
 
+
 use Test::Builder;
 my $Test = Test::Builder->new;
 my $tb = Test::Builder->create;
@@ -55,6 +56,7 @@ $Test->is_eq( $tb->expected_tests, 0, 'expected_tests' );
 $Test->is_eq( $tb->level,          1, 'level' );
 $Test->is_eq( $tb->use_numbers,    1, 'use_numbers' );
 $Test->is_eq( $tb->no_header,      0, 'no_header' );
+$Test->is_eq( $tb->no_ending,      0, 'no_ending' );
 $Test->is_eq( $tb->current_test,   0, 'current_test' );
 $Test->is_eq( scalar $tb->summary, 0, 'summary' );
 $Test->is_eq( scalar $tb->details, 0, 'details' );
@@ -68,6 +70,7 @@ $Test->is_eq( fileno $tb->todo_output,
 # The reset Test::Builder will take over from here.
 $Test->no_ending(1);
 
+
 $tb->current_test($Test->current_test);
 $tb->level(0);
 $tb->ok(1, 'final test to make sure output was reset');
diff --git a/cpan/Test-Simple/t/Builder/try.t b/cpan/Test-Simple/t/Builder/try.t
new file mode 100644 (file)
index 0000000..eeb3bcb
--- /dev/null
@@ -0,0 +1,42 @@
+#!perl -w
+
+BEGIN {
+    if( $ENV{PERL_CORE} ) {
+        chdir 't';
+        @INC = ('../lib', 'lib');
+    }
+    else {
+        unshift @INC, 't/lib';
+    }
+}
+
+use strict;
+
+use Test::More 'no_plan';
+
+require Test::Builder;
+my $tb = Test::Builder->new;
+
+
+# Test that _try() has no effect on $@ and $! and is not effected by
+# __DIE__
+{
+    local $SIG{__DIE__} = sub { fail("DIE handler called: @_") };
+    local $@ = 42;
+    local $! = 23;
+
+    is $tb->_try(sub { 2 }), 2;
+    is $tb->_try(sub { return '' }), '';
+
+    is $tb->_try(sub { die; }), undef;
+
+    is_deeply [$tb->_try(sub { die "Foo\n" })], [undef, "Foo\n"];
+
+    is $@, 42;
+    cmp_ok $!, '==', 23;
+}
+
+ok !eval {
+    $tb->_try(sub { die "Died\n" }, die_on_fail => 1);
+};
+is $@, "Died\n";
diff --git a/cpan/Test-Simple/t/Legacy/Builder/fork_with_new_stdout.t b/cpan/Test-Simple/t/Legacy/Builder/fork_with_new_stdout.t
deleted file mode 100644 (file)
index 5adb739..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#!perl -w
-use strict;
-use warnings;
-
-use Test::CanFork;
-
-use IO::Pipe;
-use Test::Builder;
-
-my $b = Test::Builder->new;
-$b->reset;
-$b->plan('tests' => 2);
-
-my $pipe = IO::Pipe->new;
-if (my $pid = fork) {
-    $pipe->reader;
-    my @output = <$pipe>;
-    $b->like($output[0], qr/ok 1/,   "ok 1 from child");
-    $b->like($output[1], qr/1\.\.1/, "got 1..1 from child");
-    waitpid($pid, 0);
-}
-else {
-    Test::Stream::IOSets->hard_reset;
-    Test::Stream->clear;
-    $pipe->writer;
-    my $pipe_fd = $pipe->fileno;
-    close STDOUT;
-    open(STDOUT, ">&$pipe_fd");
-    my $b = Test::Builder->create(shared_stream => 1);
-    $b->reset;
-    $b->no_plan;
-    $b->ok(1);
-
-    exit 0;
-}
-
-=pod
-#actual
-1..2
-ok 1
-1..1
-ok 1
-ok 2
-#expected
-1..2
-ok 1
-ok 2
-=cut
diff --git a/cpan/Test-Simple/t/Legacy/PerlIO.t b/cpan/Test-Simple/t/Legacy/PerlIO.t
deleted file mode 100644 (file)
index 84ba649..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-use Test::More;
-require PerlIO;
-
-my $ok = 1;
-my %counts;
-for my $layer (PerlIO::get_layers(Test::Stream->shared->io_sets->{legacy}->[0])) {
-    my $dup = $counts{$layer}++;
-    ok(!$dup, "No IO layer duplication '$layer'");
-}
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Legacy/TestTester/auto.t b/cpan/Test-Simple/t/Legacy/TestTester/auto.t
deleted file mode 100644 (file)
index 45510f3..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-use strict;
-use warnings;
-
-BEGIN {
-    if ($ENV{PERL_CORE}) {
-        chdir 't';
-        @INC = ('../lib', 'lib');
-    }
-    else {
-        unshift @INC, 't/lib';
-    }
-}
-
-use Test::Tester tests => 4;
-
-use SmallTest;
-
-use MyTest;
-
-{
-    my ($prem, @results) = run_tests(sub { MyTest::ok(1, "run pass") });
-
-    is_eq($results[0]->{name}, "run pass");
-    is_num($results[0]->{ok}, 1);
-}
-
-{
-    my ($prem, @results) = run_tests(sub { MyTest::ok(0, "run fail") });
-
-    is_eq($results[0]->{name}, "run fail");
-    is_num($results[0]->{ok}, 0);
-}
diff --git a/cpan/Test-Simple/t/Legacy/TestTester/check_tests.t b/cpan/Test-Simple/t/Legacy/TestTester/check_tests.t
deleted file mode 100644 (file)
index 96b8470..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-use strict;
-
-use Test::Tester;
-
-use Data::Dumper qw(Dumper);
-
-my $test = Test::Builder->new;
-$test->plan(tests => 105);
-
-my $cap;
-
-$cap = $test;
-
-my @tests = (
-    [
-        'pass',
-        '$cap->ok(1, "pass");',
-        {
-            name      => "pass",
-            ok        => 1,
-            actual_ok => 1,
-            reason    => "",
-            type      => "",
-            diag      => "",
-            depth     => 0,
-        },
-    ],
-    [
-        'pass diag',
-        '$cap->ok(1, "pass diag");
-        $cap->diag("pass diag1");
-        $cap->diag("pass diag2");',
-        {
-            name      => "pass diag",
-            ok        => 1,
-            actual_ok => 1,
-            reason    => "",
-            type      => "",
-            diag      => "pass diag1\npass diag2\n",
-            depth     => 0,
-        },
-    ],
-    [
-        'pass diag no \\n',
-        '$cap->ok(1, "pass diag");
-        $cap->diag("pass diag1");
-        $cap->diag("pass diag2");',
-        {
-            name      => "pass diag",
-            ok        => 1,
-            actual_ok => 1,
-            reason    => "",
-            type      => "",
-            diag      => "pass diag1\npass diag2",
-            depth     => 0,
-        },
-    ],
-    [
-        'fail',
-        '$cap->ok(0, "fail");
-        $cap->diag("fail diag");',
-        {
-            name      => "fail",
-            ok        => 0,
-            actual_ok => 0,
-            reason    => "",
-            type      => "",
-            diag      => "fail diag\n",
-            depth     => 0,
-        },
-    ],
-    [
-        'skip',
-        '$cap->skip("just because");',
-        {
-            name      => "",
-            ok        => 1,
-            actual_ok => 1,
-            reason    => "just because",
-            type      => "skip",
-            diag      => "",
-            depth     => 0,
-        },
-    ],
-    [
-        'todo_skip',
-        '$cap->todo_skip("why not");',
-        {
-            name      => "",
-            ok        => 1,
-            actual_ok => 0,
-            reason    => "why not",
-            type      => "todo_skip",
-            diag      => "",
-            depth     => 0,
-        },
-    ],
-);
-
-my $big_code = "";
-my @big_expect;
-
-foreach my $test (@tests) {
-    my ($name, $code, $expect) = @$test;
-
-    $big_code .= "$code\n";
-    push(@big_expect, $expect);
-
-    my $test_sub = eval "sub {$code}";
-
-    check_test($test_sub, $expect, $name);
-}
-
-my $big_test_sub = eval "sub {$big_code}";
-
-check_tests($big_test_sub, \@big_expect, "run all");
diff --git a/cpan/Test-Simple/t/Legacy/TestTester/is_bug.t b/cpan/Test-Simple/t/Legacy/TestTester/is_bug.t
deleted file mode 100644 (file)
index 64642fc..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-use strict;
-use warnings;
-use Test::Tester;
-use Test::More;
-
-check_test(
-    sub { is "Foo", "Foo" },
-    {ok => 1},
-);
-
-check_test(
-    sub { is "Bar", "Bar" },
-    {ok => 1},
-);
-
-check_test(
-    sub { is "Baz", "Quux" },
-    {ok => 0},
-);
-
-check_test(
-    sub { like "Baz", qr/uhg/ },
-    {ok => 0},
-);
-
-check_test(
-    sub { like "Baz", qr/a/ },
-    {ok => 1},
-);
-
-done_testing();
diff --git a/cpan/Test-Simple/t/Legacy/fork.t b/cpan/Test-Simple/t/Legacy/fork.t
deleted file mode 100644 (file)
index da7d464..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
-    if( $ENV{PERL_CORE} ) {
-        chdir 't';
-        @INC = '../lib';
-    }
-}
-
-use Test::CanFork;
-
-use Test::More tests => 1;
-
-my $pid = fork;
-if( $pid ) { # parent
-    pass("Only the parent should process the ending, not the child");
-    waitpid($pid, 0);
-}
-else {
-    exit;   # child
-}
-
diff --git a/cpan/Test-Simple/t/Legacy/fork_die.t b/cpan/Test-Simple/t/Legacy/fork_die.t
deleted file mode 100644 (file)
index 31fb9b6..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-use strict;
-use warnings;
-
-use Test::CanFork;
-
-# The failure case for this test is producing 2 results, 1 pass and 1 fail,
-# both with the same test number. If this test file does anything other than 1
-# (non-indented) result that passes, it has failed in one way or another.
-use Test::More tests => 1;
-use Test::Stream qw/context/;
-
-my $line;
-
-subtest do_it => sub {
-    ok(1, "Pass!");
-
-    my ($read, $write);
-    pipe($read, $write) || die "Could not open pipe";
-
-    my $pid = fork();
-    die "Forking failed!" unless defined $pid;
-
-    unless($pid) {
-        close($read);
-        Test::Stream::IOSets->_autoflush($write);
-        my $ctx = context();
-        my $handles = $ctx->stream->io_sets->init_encoding('legacy');
-        $handles->[0] = $write;
-        $handles->[1] = $write;
-        $handles->[2] = $write;
-        *STDERR = $write;
-        *STDOUT = $write;
-
-        die "This process did something wrong!"; BEGIN { $line = __LINE__ };
-    }
-    close($write);
-
-    waitpid($pid, 0);
-    ok($?, "Process exited with failure");
-
-    my $file = __FILE__;
-    {
-        local $SIG{ALRM} = sub { die "Read Timeout\n" };
-        alarm 2;
-        my @output = map {chomp($_); $_} <$read>;
-        alarm 0;
-        is_deeply(
-            \@output,
-            [
-                "Subtest finished with a new PID ($pid vs $$) while forking support was turned off!",
-                'This is almost certainly not what you wanted. Did you fork and forget to exit?',
-                "This process did something wrong! at $file line $line.",
-            ],
-            "Got warning and exception, nothing else"
-       );
-    }
-
-    ok(1, "Pass After!");
-};
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Legacy/fork_in_subtest.t b/cpan/Test-Simple/t/Legacy/fork_in_subtest.t
deleted file mode 100644 (file)
index 1a8dc16..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-use strict;
-use warnings;
-
-use Test::CanFork;
-
-use Test::Stream 'enable_fork';
-use Test::More;
-# This just goes to show how silly forking inside a subtest would actually
-# be....
-
-ok(1, "fine $$");
-
-my $pid;
-subtest my_subtest => sub {
-    ok(1, "inside 1 | $$");
-    $pid = fork();
-    ok(1, "inside 2 | $$");
-};
-
-if($pid) {
-    waitpid($pid, 0);
-
-    ok(1, "after $$");
-
-    done_testing;
-}
diff --git a/cpan/Test-Simple/t/Legacy/pod.t b/cpan/Test-Simple/t/Legacy/pod.t
deleted file mode 100644 (file)
index ac55c16..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/perl -w
-
-use Test::More;
-plan skip_all => "POD tests skipped unless AUTHOR_TESTING is set" unless $ENV{AUTHOR_TESTING};
-my $test_pod = eval "use Test::Pod 1.00; 1";
-plan skip_all => "Test::Pod 1.00 required for testing POD" unless $test_pod;
-all_pod_files_ok();
diff --git a/cpan/Test-Simple/t/Legacy/ribasushi_threads.t b/cpan/Test-Simple/t/Legacy/ribasushi_threads.t
deleted file mode 100644 (file)
index bbf3b67..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-use Test::CanThread qw/AUTHOR_TESTING/;
-use Test::More;
-
-# basic tests
-{
-    pass('Test starts');
-    my $ct_num = Test::More->builder->current_test;
-
-    my $newthread = async {
-        my $out = '';
-
-        #simulate a  subtest to not confuse the parent TAP emission
-        my $tb = Test::More->builder;
-        $tb->reset;
-
-        Test::More->builder->current_test(0);
-        for (qw/output failure_output todo_output/) {
-            close $tb->$_;
-            open($tb->$_, '>', \$out);
-        }
-
-        pass("In-thread ok") for (1, 2, 3);
-
-        done_testing;
-
-        close $tb->$_ for (qw/output failure_output todo_output/);
-        sleep(1);    # tasty crashes without this
-
-        $out;
-    };
-    die "Thread creation failed: $! $@" if !defined $newthread;
-
-    my $out = $newthread->join;
-    $out =~ s/^/   /gm;
-
-    print $out;
-
-    # workaround for older Test::More confusing the plan under threads
-    Test::More->builder->current_test($ct_num);
-
-    pass("Made it to the end");
-}
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Legacy/ribasushi_threads2.t b/cpan/Test-Simple/t/Legacy/ribasushi_threads2.t
deleted file mode 100644 (file)
index 411a463..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-use strict;
-use warnings;
-
-use Test::CanThread qw/AUTHOR_TESTING/;
-use Test::More;
-
-{
-    my $todo = sub {
-        my $out;
-        ok(1);
-        42;
-    };
-
-    is(
-        threads->create($todo)->join,
-        42,
-        "Correct result after do-er",
-    );
-}
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Legacy/strays.t b/cpan/Test-Simple/t/Legacy/strays.t
deleted file mode 100644 (file)
index 02a99ab..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl -w
-
-# Check that stray newlines in test output are properly handed.
-
-BEGIN {
-    print "1..0 # Skip not completed\n";
-    exit 0;
-}
-
-BEGIN {
-    if( $ENV{PERL_CORE} ) {
-        chdir 't';
-        @INC = ('../lib', 'lib');
-    }
-    else {
-        unshift @INC, 't/lib';
-    }
-}
-chdir 't';
-
-use Test::Builder::NoOutput;
-my $tb = Test::Builder::NoOutput->create;
-
-$tb->ok(1, "name\n");
-$tb->ok(0, "foo\nbar\nbaz");
-$tb->skip("\nmoofer");
-$tb->todo_skip("foo\n\n");
diff --git a/cpan/Test-Simple/t/Legacy/subtest/fork.t b/cpan/Test-Simple/t/Legacy/subtest/fork.t
deleted file mode 100644 (file)
index ae1b038..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-use warnings;
-
-use Test::CanFork;
-
-use IO::Pipe;
-use Test::Builder;
-use Test::More;
-
-subtest 'fork within subtest' => sub {
-    my $pipe = IO::Pipe->new;
-
-    my $pid = fork();
-    plan skip_all => "Fork not working"
-        unless defined $pid;
-
-    if ($pid) {
-        $pipe->reader;
-        my $child_output = do { local $/ ; <$pipe> };
-        waitpid $pid, 0;
-
-        is $?, 0, 'child exit status';
-        like $child_output, qr/^[\s#]+Child Done\s*\z/, 'child output';
-    }
-    else {
-        $pipe->writer;
-
-        # Force all T::B output into the pipe, for the parent
-        # builder as well as the current subtest builder.
-        my $builder = Test::Builder->new;
-        $builder->output($pipe);
-        $builder->failure_output($pipe);
-        $builder->todo_output($pipe);
-
-        diag 'Child Done';
-        exit 0;
-    }
-};
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Legacy/test_use_ok.t b/cpan/Test-Simple/t/Legacy/test_use_ok.t
deleted file mode 100644 (file)
index 0b4b9a7..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-use strict;
-use Test::More;
-use ok;
-use ok 'strict';
-use ok 'Test::More';
-use ok 'ok';
-
-my $class = 'Test::Builder';
-BEGIN {
-    ok(!$class, '$class is declared, but not yet set');
-
-
-    my $success = eval 'use ok $class';
-    my $error = $@;
-
-    ok(!$success, "Threw an exception");
-    like(
-        $error,
-        qr/^'use ok' called with an empty argument, did you try to use a package name from an uninitialized variable\?/,
-        "Threw expected exception"
-    );
-
-
-
-    $success = eval 'use ok $class, "xxx"';
-    $error = $@;
-
-    ok(!$success, "Threw an exception");
-    like(
-        $error,
-        qr/^'use ok' called with an empty argument, did you try to use a package name from an uninitialized variable\?/,
-        "Threw expected exception when arguments are added"
-    );
-}
-
-my $class2;
-BEGIN {$class2 = 'Test::Builder'};
-use ok $class2;
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Legacy/versions.t b/cpan/Test-Simple/t/Legacy/versions.t
deleted file mode 100644 (file)
index 49e146a..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/perl -w
-
-# Make sure all the modules have the same version
-#
-# TBT has its own version system.
-
-use strict;
-use Test::More;
-
-{
-    local $SIG{__WARN__} = sub { 1 };
-    require Test::Builder::Module;
-    require Test::Builder::Tester::Color;
-    require Test::Builder::Tester;
-    require Test::Builder;
-    require Test::More;
-    require Test::Simple;
-    require Test::Stream;
-    require Test::Stream::Tester;
-    require Test::Tester;
-    require Test::use::ok;
-    require ok;
-}
-
-my $dist_version = Test::More->VERSION;
-
-like( $dist_version, qr/^ \d+ \. \d+ $/x, "Version number is sane" );
-
-my @modules = qw(
-    Test::Builder::Module
-    Test::Builder::Tester::Color
-    Test::Builder::Tester
-    Test::Builder
-    Test::More
-    Test::Simple
-    Test::Stream
-    Test::Stream::Tester
-    Test::Tester
-    Test::use::ok
-    ok
-);
-
-for my $module (@modules) {
-    my $file = $module;
-    $file =~ s{(::|')}{/}g;
-    $file .= ".pm";
-    is( $module->VERSION, $module->VERSION, sprintf("%-22s %s", $module, $INC{$file}) );
-}
-
-done_testing();
similarity index 98%
rename from cpan/Test-Simple/t/Legacy/More.t
rename to cpan/Test-Simple/t/More.t
index b4f680b..ce535e2 100644 (file)
@@ -9,7 +9,6 @@ BEGIN {
 
 use lib 't/lib';
 use Test::More tests => 54;
-use Test::Builder;
 
 # Make sure we don't mess with $@ or $!.  Test at bottom.
 my $Err   = "this should not be touched";
@@ -41,7 +40,7 @@ unlike(@foo, '/foo/');
 
 can_ok('Test::More', qw(require_ok use_ok ok is isnt like skip can_ok
                         pass fail eq_array eq_hash eq_set));
-can_ok(bless({}, "Test::More"), qw(require_ok use_ok ok is isnt like skip
+can_ok(bless({}, "Test::More"), qw(require_ok use_ok ok is isnt like skip 
                                    can_ok pass fail eq_array eq_hash eq_set));
 
 
@@ -55,7 +54,7 @@ isa_ok(\42, 'SCALAR');
 }
 
 
-# can_ok() & isa_ok should call can() & isa() on the given object, not
+# can_ok() & isa_ok should call can() & isa() on the given object, not 
 # just class, in case of custom can()
 {
        local *Foo::can;
@@ -144,7 +143,7 @@ ok( !eq_hash(\%hash1, \%hash2),
     'eq_hash with slightly different complicated hashes' );
 is @Test::More::Data_Stack, 0;
 
-is( Test::Builder->new, Test::More->builder, 'builder()' );
+is( Test::Builder->new, Test::More->builder,    'builder()' );
 
 
 cmp_ok(42, '==', 42,        'cmp_ok ==');
diff --git a/cpan/Test-Simple/t/Test-Builder.t b/cpan/Test-Simple/t/Test-Builder.t
deleted file mode 100644 (file)
index 80d1946..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-use ok 'Test::Builder';
-
-# Test::Builder is tested by the stuff in t/Legacy
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-More-DeepCheck.t b/cpan/Test-Simple/t/Test-More-DeepCheck.t
deleted file mode 100644 (file)
index 9b5bbf8..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-use ok 'Test::More::DeepCheck';
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-More.t b/cpan/Test-Simple/t/Test-More.t
deleted file mode 100644 (file)
index 1522f6f..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-use strict;
-use warnings;
-
-use ok 'Test::More';
-
-{
-    package Foo;
-    use Test::More import => ['!explain'];
-}
-
-{
-    package Bar;
-    BEGIN { main::use_ok('Scalar::Util', 'blessed') }
-    BEGIN { main::can_ok('Bar', qw/blessed/) }
-    blessed('x');
-}
-
-{
-    package Baz;
-    use Test::More;
-    use_ok( 'Data::Dumper' );
-    can_ok( __PACKAGE__, 'Dumper' );
-    Dumper({foo => 'bar'});
-}
-
-can_ok('Foo', qw/ok is plan/);
-ok(!Foo->can('explain'), "explain was not imported");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-MostlyLike.t b/cpan/Test-Simple/t/Test-MostlyLike.t
deleted file mode 100644 (file)
index b73a410..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::MostlyLike;
-use Test::More;
-use Test::Stream::Tester;
-
-use ok 'Test::MostlyLike';
-
-{
-    package XXX;
-
-    sub new { bless {ref => ['a']}, shift };
-
-    sub numbers { 1 .. 10 };
-    sub letters { 'a' .. 'e' };
-    sub ref { [ 1 .. 10 ] };
-}
-
-events_are (
-    intercept {
-        mostly_like( 'a', 'a', "match" );
-        mostly_like( 'a', 'b', "no match" );
-
-        mostly_like(
-            [ qw/a b c/ ],
-            [ qw/a b c/ ],
-            "all match",
-        );
-
-        mostly_like(
-            [qw/a b c/],
-            { 1 => 'b' },
-            "Only check one index (match)",
-        );
-        mostly_like(
-            [qw/a b c/],
-            { 1 => 'x' },
-            "Only check one index (no match)",
-        );
-
-        mostly_like(
-            { a => 1, b => 2, c => 3 },
-            { a => 1, b => 2, c => 3 },
-            "all match"
-        );
-
-        mostly_like(
-            { a => 1, b => 2, c => 3 },
-            { b => 2, d => undef },
-            "A match and an expected empty"
-        );
-
-        mostly_like(
-            { a => 1, b => 2, c => 3 },
-            { b => undef },
-            "Expect empty (fail)"
-        );
-
-        mostly_like(
-            { a => 'foo', b => 'bar' },
-            { a => qr/o/, b => qr/a/ },
-            "Regex check"
-        );
-
-        mostly_like(
-            { a => 'foo', b => 'bar' },
-            { a => qr/o/, b => qr/o/ },
-            "Regex check fail"
-        );
-
-        mostly_like(
-            { a => { b => { c => { d => 1 }}}},
-            { a => { b => { c => { d => 1 }}}},
-            "Deep match"
-        );
-
-        mostly_like(
-            { a => { b => { c => { d => 1 }}}},
-            { a => { b => { c => { d => 2 }}}},
-            "Deep mismatch"
-        );
-
-        mostly_like(
-            XXX->new,
-            {
-                ':ref' => ['a'],
-                ref => [ 1 .. 10 ],
-                '[numbers]' => [ 1 .. 10 ],
-                '[letters]' => [ 'a' .. 'e' ],
-            },
-            "Object check"
-        );
-
-        mostly_like(
-            XXX->new,
-            {
-                ':ref' => ['a'],
-                ref => [ 1 .. 10 ],
-                '[numbers]' => [ 1 .. 10 ],
-                '[letters]' => [ 'a' .. 'e' ],
-                '[invalid]' => [ 'x' ],
-            },
-            "Object check"
-        );
-
-    },
-    check {
-        event ok => { bool => 1 };
-        event ok => {
-            bool => 0,
-            diag => qr/got: 'a'.*\n.*expected: 'b'/,
-        };
-
-        event ok => { bool => 1 };
-        event ok => { bool => 1 };
-
-        event ok => {
-            bool => 0,
-            diag => qr/\$got->\[1\] = 'b'\n\s*\$expected->\[1\] = 'x'/,
-        };
-
-        event ok => { bool => 1 };
-        event ok => { bool => 1 };
-
-        event ok => {
-            bool => 0,
-            diag => qr/\$got->\{b\} = '2'\n\s*\$expected->\{b\} = undef/,
-        };
-
-        event ok => { bool => 1 };
-        event ok => {
-            bool => 0,
-            diag => qr/\$got->\{b\} = 'bar'\n\s+\$expected->\{b\} = .*o/,
-        };
-
-        event ok => { bool => 1 };
-        event ok => {
-            bool => 0,
-            diag => qr/\$got->\Q{a}{b}{c}{d}\E = '1'\n\s+\$expected->\Q{a}{b}{c}{d}\E = '2'/,
-        };
-
-        event ok => { bool => 1 };
-        event ok => {
-            bool => 0,
-            diag => [
-                qr/\[\s+\$got->invalid\(\)\] = '\(EXCEPTION\)'/,
-                qr/\[\$expected->\{invalid\}\] = ARRAY/,
-                qr/Can't locate object method "invalid" via package "XXX"/,
-            ],
-        };
-
-        directive 'end';
-    },
-    "Tolerant"
-);
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Simple.t b/cpan/Test-Simple/t/Test-Simple.t
deleted file mode 100644 (file)
index 8e1fe7d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Simple tests => 1;
-use Test::Stream::Tester;
-
-events_are (
-    intercept {
-        ok(1, "Pass");
-        ok(0, "Fail");
-    },
-    check {
-        event ok => {
-            bool => 1,
-            name => 'Pass',
-            diag => '',
-        };
-        event ok => {
-            bool => 0,
-            name => 'Fail',
-            diag => qr/Failed test 'Fail'/,
-        };
-    },
-);
diff --git a/cpan/Test-Simple/t/Test-Stream-API.t b/cpan/Test-Simple/t/Test-Stream-API.t
deleted file mode 100644 (file)
index 318af7e..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-use Test::Stream::Tester qw/events_are event directive check/;
-use Test::MostlyLike;
-
-require Test::Builder;
-require Test::CanFork;
-
-use Test::Stream::API qw{
-    listen munge follow_up
-    enable_forking cull
-    peek_todo push_todo pop_todo set_todo inspect_todo
-    is_tester init_tester
-    is_modern set_modern
-    context peek_context clear_context set_context
-    intercept
-    state_count state_failed state_plan state_ended is_passing
-    current_stream
-
-    disable_tap enable_tap subtest_tap_instant subtest_tap_delayed tap_encoding
-    enable_numbers disable_numbers set_tap_outputs get_tap_outputs
-};
-
-can_ok(__PACKAGE__, qw{
-    listen munge follow_up
-    enable_forking cull
-    peek_todo push_todo pop_todo set_todo inspect_todo
-    is_tester init_tester
-    is_modern set_modern
-    context peek_context clear_context set_context
-    intercept
-    state_count state_failed state_plan state_ended is_passing
-    current_stream
-
-    disable_tap enable_tap subtest_tap_instant subtest_tap_delayed tap_encoding
-    enable_numbers disable_numbers set_tap_outputs get_tap_outputs
-});
-
-ok(!is_tester('My::Tester'), "Not a tester");
-isa_ok(init_tester('My::Tester'), 'Test::Stream::Meta');
-isa_ok(is_tester('My::Tester'), 'Test::Stream::Meta');
-
-ok(!is_modern('My::Tester'), "Not a modern tester");
-set_modern('My::Tester', 1);
-ok(is_modern('My::Tester'), "a modern tester");
-set_modern('My::Tester', 0);
-ok(!is_modern('My::Tester'), "Not a modern tester");
-
-ok(my $ctx = context(), "Got context");
-isa_ok($ctx, 'Test::Stream::Context');
-is(context(), $ctx, "Got the same instance again");
-is(peek_context(), $ctx, "peek");
-my $ref = "$ctx";
-
-clear_context();
-my $ne = context() . "" ne $ref;
-ok($ne, "cleared");
-
-set_context($ctx);
-is(context(), $ctx, "Got the same instance again");
-
-$ctx = undef;
-$ne = context() . "" ne $ref;
-ok($ne, "New instance");
-
-isa_ok(current_stream(), 'Test::Stream');
-
-my @munge;
-my @listen;
-my @follow;
-intercept {
-    munge  { push @munge  => $_[1] };
-    listen { push @listen => $_[1] };
-
-    follow_up { push @follow => $_[0]->snapshot };
-
-    ok(1, "pass");
-    diag "foo";
-
-    done_testing;
-};
-
-is(@listen, 3, "listen got 3 events");
-is(@munge,  3, "munge got 3 events");
-is(@follow, 1, "Follow was triggered");
-
-my $want = check {
-    event ok => { bool => 1 };
-    event diag => { message => 'foo' };
-    event plan => { max => 1 };
-    directive 'end';
-};
-events_are( \@listen, $want, "Listen events" );
-events_are( \@munge, $want, "Munge events" );
-isa_ok($follow[0], 'Test::Stream::Context');
-
-my $events = intercept {
-    Test::CanFork->import;
-
-    enable_forking;
-
-    my $pid = fork();
-    if ($pid) { # Parent
-        waitpid($pid, 0);
-        cull;
-        ok(1, "From Parent");
-    }
-    else { # child
-        ok(1, "From Child");
-        exit 0;
-    }
-};
-
-if (@$events == 1) {
-    events_are (
-        $events,
-        check {
-            event plan => {};
-        },
-        "Not testing forking"
-    );
-}
-else {
-    events_are (
-        $events,
-        check {
-            event ok => { name => 'From Child' };
-            event ok => { name => 'From Parent' };
-        },
-        "Got forked events"
-    );
-}
-
-events_are(
-    intercept {
-        ok(0, "fail");
-        push_todo('foo');
-        ok(0, "fail");
-        push_todo('bar');
-        ok(0, "fail");
-        is(peek_todo(), 'bar', "peek works");
-        pop_todo();
-        ok(0, "fail");
-        pop_todo();
-        ok(0, "fail");
-    },
-    check {
-        event ok => {todo => '',    in_todo   => 0};
-        event ok => {todo => 'foo', in_todo   => 1};
-        event ok => {todo => 'bar', in_todo   => 1};
-        event ok => {bool => 1,     real_bool => 1}; # Verify peek
-        event ok => {todo => 'foo', in_todo   => 1};
-        event ok => {todo => '',    in_todo   => 0};
-    },
-    "Verified TODO stack"
-);
-
-my $meta = init_tester('My::Tester');
-ok(!$meta->todo, "Package is not in todo");
-set_todo('My::Tester', 'foo');
-is($meta->todo, 'foo', "Package is in todo");
-
-my @todos = (
-    inspect_todo,
-    inspect_todo('My::Tester'),
-);
-push_todo('foo');
-push_todo('bar');
-Test::Builder->new->todo_start('tb todo');
-$My::Tester::TODO = 'pkg todo';
-push @todos => inspect_todo, inspect_todo('My::Tester');
-$My::Tester::TODO = undef;
-Test::Builder->new->todo_end();
-pop_todo;
-pop_todo;
-set_todo('My::Tester', undef);
-push @todos => inspect_todo, inspect_todo('My::Tester');
-
-is_deeply(
-    \@todos,
-    [
-        {
-            TB   => undef,
-            TODO => [],
-        },
-        {
-            META => 'foo',
-            PKG  => undef,
-            TB   => undef,
-            TODO => [],
-        },
-        {
-            TB   => 'tb todo',
-            TODO => [qw/foo bar/],
-        },
-        {
-            META => 'foo',
-            PKG  => 'pkg todo',
-            TB   => 'tb todo',
-            TODO => [qw/foo bar/],
-        },
-        {
-            TB   => undef,
-            TODO => [],
-        },
-        {
-            META => undef,
-            PKG  => undef,
-            TB   => undef,
-            TODO => [],
-        }
-    ],
-    "Todo state from inspect todo"
-);
-
-my @state;
-intercept {
-    plan tests => 3;
-    ok(1, "pass");
-    ok(2, "pass");
-
-    push @state => {
-        count   => state_count()  || 0,
-        failed  => state_failed() || 0,
-        plan    => state_plan()   || undef,
-        ended   => state_ended()  || undef,
-        passing => is_passing(),
-    };
-
-    ok(0, "fail");
-    done_testing;
-
-    push @state => {
-        count   => state_count()  || 0,
-        failed  => state_failed() || 0,
-        plan    => state_plan()   || undef,
-        ended   => state_ended()  || undef,
-        passing => is_passing(),
-    };
-};
-
-mostly_like(
-    \@state,
-    [
-        { count => 2, failed => 0, passing => 1, ended => undef },
-        { count => 3, failed => 1, passing => 0 },
-    ],
-    "Verified Test state"
-);
-
-events_are(
-    [ $state[0]->{plan}, $state[1]->{plan} ],
-    check {
-        event plan => { max => 3 };
-        event plan => { max => 3 };
-    },
-    "Parts of state that are events check out."
-);
-
-isa_ok( $state[1]->{ended}, 'Test::Stream::Context' );
-
-my $got;
-my $results = "";
-my $utf8 = "";
-open( my $fh, ">>", \$results ) || die "Could not open handle to scalar!";
-open( my $fh_utf8, ">>", \$utf8 ) || die "Could not open handle to scalar!";
-
-intercept {
-    enable_tap(); # Disabled by default in intercept()
-    set_tap_outputs( std => $fh, err => $fh, todo => $fh );
-    $got = get_tap_outputs();
-
-    ok(1, "pass");
-
-    disable_tap();
-    ok(0, "fail");
-
-    enable_tap();
-    tap_encoding('utf8');
-    set_tap_outputs( encoding => 'utf8', std => $fh_utf8, err => $fh_utf8, todo => $fh_utf8 );
-    ok(1, "pass");
-    tap_encoding('legacy');
-
-    disable_numbers();
-    ok(1, "pass");
-    enable_numbers();
-    ok(1, "pass");
-
-    subtest_tap_instant();
-    subtest foo => sub { ok(1, 'pass') };
-
-    subtest_tap_delayed();
-    subtest foo => sub { ok(1, 'pass') };
-};
-
-is_deeply(
-    $got,
-    { encoding => 'legacy', std => $fh, err => $fh, todo => $fh },
-    "Got outputs"
-);
-
-is( $results, <<EOT, "got TAP output");
-ok 1 - pass
-ok - pass
-ok 5 - pass
-# Subtest: foo
-    ok 1 - pass
-    1..1
-ok 6 - foo
-ok 7 - foo {
-    ok 1 - pass
-    1..1
-}
-EOT
-
-is( $utf8, <<EOT, "got utf8 TAP output");
-ok 3 - pass
-EOT
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-ArrayBase-Meta.t b/cpan/Test-Simple/t/Test-Stream-ArrayBase-Meta.t
deleted file mode 100644 (file)
index 7658dbb..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-use ok 'Test::Stream::ArrayBase::Meta';
-
-# This class is tested in the Test::Stream::ArrayBase tests
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-ArrayBase.t b/cpan/Test-Simple/t/Test-Stream-ArrayBase.t
deleted file mode 100644 (file)
index f81f29f..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-use lib 'lib';
-
-BEGIN {
-    $INC{'My/ABase.pm'} = __FILE__;
-
-    package My::ABase;
-    use Test::Stream::ArrayBase(
-        accessors => [qw/foo bar baz/],
-    );
-
-    use Test::More;
-    is(FOO, 0, "FOO CONSTANT");
-    is(BAR, 1, "BAR CONSTANT");
-    is(BAZ, 2, "BAZ CONSTANT");
-
-    my $bad = eval { Test::Stream::ArrayBase->import( accessors => [qw/foo/] ); 1 };
-    my $error = $@;
-    ok(!$bad, "Threw exception");
-    like($error, qr/field 'foo' already defined/, "Expected error");
-}
-
-BEGIN {
-    package My::ABaseSub;
-    use Test::Stream::ArrayBase(
-        accessors => [qw/apple pear/],
-        base      => 'My::ABase',
-    );
-
-    use Test::More;
-    is(FOO,   0, "FOO CONSTANT");
-    is(BAR,   1, "BAR CONSTANT");
-    is(BAZ,   2, "BAZ CONSTANT");
-    is(APPLE, 3, "APPLE CONSTANT");
-    is(PEAR,  4, "PEAR CONSTANT");
-
-    my $bad = eval { Test::Stream::ArrayBase->import( base => 'foobarbaz' ); 1 };
-    my $error = $@;
-    ok(!$bad, "Threw exception");
-    like($error, qr/My::ABaseSub is already a subclass of 'My::ABase'/, "Expected error");
-}
-
-{
-    package My::ABase;
-    my $bad = eval { Test::Stream::ArrayBase->import( accessors => [qw/xerxes/] ); 1 };
-    my $error = $@;
-    ok(!$bad, "Threw exception");
-    like($error, qr/Cannot add accessor, metadata is locked due to a subclass being initialized/, "Expected error");
-}
-
-{
-    package Consumer;
-    use My::ABase qw/BAR/;
-    use Test::More;
-
-    is(BAR, 1, "Can import contants");
-
-    my $bad = eval { Test::Stream::ArrayBase->import( base => 'Test::More' ); 1 };
-    my $error = $@;
-    ok(!$bad, "Threw exception");
-    like($error, qr/Base class 'Test::More' is not a subclass of Test::Stream::ArrayBase/, "Expected error");
-}
-
-isa_ok('My::ABase', 'Test::Stream::ArrayBase');
-isa_ok('My::ABaseSub', 'Test::Stream::ArrayBase');
-isa_ok('My::ABaseSub', 'My::ABase');
-
-my $one = My::ABase->new(qw/a b c/);
-is($one->foo, 'a', "Accessor");
-is($one->bar, 'b', "Accessor");
-is($one->baz, 'c', "Accessor");
-$one->set_foo('x');
-is($one->foo, 'x', "Accessor set");
-$one->set_foo(undef);
-
-is_deeply(
-    $one->to_hash,
-    {
-        foo => undef,
-        bar => 'b',
-        baz => 'c',
-    },
-    'to_hash'
-);
-
-my $two = My::ABase->new_from_pairs(
-    foo => 'foo',
-    bar => 'bar',
-);
-
-is($two->foo, 'foo', "set by pair");
-is($two->bar, 'bar', "set by pair");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Block.t b/cpan/Test-Simple/t/Test-Stream-Block.t
deleted file mode 100644 (file)
index e181024..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-use ok 'Test::Stream::Block';
-
-our %BLOCKS;
-our %STARTS;
-our %ENDS;
-
-is(keys %BLOCKS, 6, "created 6 blocks");
-
-isa_ok($_, 'Test::Stream::Block') for values %BLOCKS;
-
-is($BLOCKS{one}->start_line, $STARTS{one},     "got start line for block one");
-is($BLOCKS{one}->end_line,   $STARTS{two} - 1, "got end line for block one");
-
-is($BLOCKS{two}->start_line, $STARTS{two}, "got start line for block two");
-is($BLOCKS{two}->end_line,   $ENDS{two},   "got end line for block two");
-
-ok($BLOCKS{three}->start_line > $ENDS{two},  "got start line for block three");
-ok($BLOCKS{three}->end_line < $STARTS{four}, "got end line for block three");
-
-is($BLOCKS{four}->start_line, $STARTS{four}, "got start line for block four");
-is($BLOCKS{four}->end_line,   $STARTS{four}, "got end line for block four");
-
-is($BLOCKS{five}->start_line, $STARTS{five}, "got start line for block five");
-is($BLOCKS{five}->end_line,   $ENDS{EOF},    "got end line for block five");
-
-is(
-    $BLOCKS{one}->detail,
-    'one (block_one) in ' . __FILE__ . " lines $STARTS{one} -> " . ($STARTS{two} - 1),
-    "Got expected detail for multiline"
-);
-
-is(
-    $BLOCKS{four}->detail,
-    'four in ' . __FILE__ . " line $STARTS{four}",
-    "Got expected detail for single line"
-);
-
-like(
-    $BLOCKS{foo}->detail,
-    qr/foo \(foo\) in \(eval \d+\) line 2 \(declared in \(eval \d+\) line 1\)/,
-    "Got expected detail for endless sub"
-);
-
-done_testing;
-
-BEGIN {
-    package TheTestPackage;
-
-    sub build_block {
-        my $name = shift;
-        my $code = pop;
-        my %params = @_;
-        my @caller = caller;
-
-        $main::BLOCKS{$name} = Test::Stream::Block->new_from_pairs(
-            name    => $name,
-            params  => \%params,
-            coderef => $code,
-            caller  => \@caller,
-        );
-    }
-
-    build_block five => \&block_five;
-
-    BEGIN {$main::STARTS{one} = __LINE__ + 1}
-    sub block_one {
-        my $x = 1;
-        my $y = 1;
-        return "one: " . $x + $y;
-    }
-
-    build_block two => sub {
-        my $x = 1; BEGIN {$main::STARTS{two} = __LINE__ - 1}
-        my $y = 1;
-        return "three: " . $x + $y;
-    };
-    BEGIN {$main::ENDS{two} = __LINE__ - 1}
-
-    sub block_three { return "three: 2" } BEGIN {$main::STARTS{three} = __LINE__}
-
-    BEGIN {$main::STARTS{four} = __LINE__ + 1}
-    build_block four => sub { return "four: 2" };
-
-    BEGIN {$main::STARTS{five} = __LINE__ + 1}
-    sub block_five {
-        my $x = 1;
-        my $y = 1;
-        return "five: " . $x + $y;
-    }
-
-    build_block one   => \&block_one;
-    build_block three => (this_is => 3, \&block_three);
-
-    package Foo;
-    eval <<'    EOT' || die $@;
-        TheTestPackage::build_block foo => \&foo;
-        sub foo {
-            'foo'
-        };
-        1
-    EOT
-}
-BEGIN {$main::ENDS{EOF} = __LINE__}
diff --git a/cpan/Test-Simple/t/Test-Stream-Carp.t b/cpan/Test-Simple/t/Test-Stream-Carp.t
deleted file mode 100644 (file)
index 037d23f..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-use strict;
-use warnings;
-
-# On some threaded systems this test cannot be run.
-BEGIN {
-    require Test::Stream::Threads;
-    if ($INC{'Carp.pm'}) {
-        print "1..0 # SKIP: Carp is already loaded before we even begin.\n";
-        exit 0;
-    }
-}
-
-my @stack;
-BEGIN {
-    unshift @INC => sub {
-        my ($ref, $filename) = @_;
-        return if @stack;
-        return unless $filename eq 'Carp.pm';
-        my %seen;
-        my $level = 1;
-        while (my @call = caller($level++)) {
-            my ($pkg, $file, $line) = @call;
-            next if $seen{"$file $line"}++;
-            push @stack => \@call;
-        }
-        return;
-    };
-}
-
-use Test::More;
-
-BEGIN {
-    my $r = ok(!$INC{'Carp.pm'}, "Carp is not loaded when we start");
-}
-
-use ok 'Test::Stream::Carp', 'croak';
-
-ok(!$INC{'Carp.pm'}, "Carp is not loaded");
-
-if (@stack) {
-    my $msg = "Carp load trace:\n";
-    $msg .= "  $_->[1] line $_->[2]\n" for @stack;
-    diag $msg;
-}
-
-my $out = eval { croak "xxx"; 1 };
-my $err = $@;
-ok(!$out, "died");
-like($err, qr/xxx/, "Got carp exception");
-
-ok($INC{'Carp.pm'}, "Carp is loaded now");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Event-Diag.t b/cpan/Test-Simple/t/Test-Stream-Event-Diag.t
deleted file mode 100644 (file)
index d5297d2..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-use Test::Stream::Tester qw/intercept/;
-
-use ok 'Test::Stream::Event::Diag';
-
-my $ctx = context(-1); my $line = __LINE__;
-$ctx = $ctx->snapshot;
-is($ctx->line, $line, "usable context");
-
-my $diag;
-intercept { $diag = context()->diag('hello') };
-ok($diag, "build diag");
-isa_ok($diag, 'Test::Stream::Event::Diag');
-is($diag->message, 'hello', "message");
-
-is_deeply(
-    [$diag->to_tap],
-    [[Test::Stream::Event::Diag::OUT_ERR, "# hello\n"]],
-    "Got tap"
-);
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Event-Finish.t b/cpan/Test-Simple/t/Test-Stream-Event-Finish.t
deleted file mode 100644 (file)
index db396bb..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-use ok 'Test::Stream::Event::Finish';
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Event-Note.t b/cpan/Test-Simple/t/Test-Stream-Event-Note.t
deleted file mode 100644 (file)
index b3bd2ef..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-
-use ok 'Test::Stream::Event::Note';
-
-my $note = Test::Stream::Event::Note->new('fake', 'fake', 0, "hello");
-
-is($note->message, 'hello', "got message");
-
-is_deeply(
-    [$note->to_tap],
-    [[Test::Stream::Event::Note::OUT_STD, "# hello\n"]],
-    "Got handle id and message in tap",
-);
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Event.t b/cpan/Test-Simple/t/Test-Stream-Event.t
deleted file mode 100644 (file)
index 1351059..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-
-use ok 'Test::Stream::Event';
-
-can_ok('Test::Stream::Event', qw/context created in_subtest/);
-
-my $ok = eval { Test::Stream::Event->new(); 1 };
-my $err = $@;
-ok(!$ok, "Died");
-like($err, qr/No context provided/, "Need context");
-
-{
-    package My::MockEvent;
-    use Test::Stream::Event(
-        accessors => [qw/foo bar baz/],
-    );
-}
-
-can_ok('My::MockEvent', qw/foo bar baz/);
-isa_ok('My::MockEvent', 'Test::Stream::Event');
-
-my $one = My::MockEvent->new('fake');
-
-can_ok('Test::Stream::Context', 'mockevent');
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-ExitMagic-Context.t b/cpan/Test-Simple/t/Test-Stream-ExitMagic-Context.t
deleted file mode 100644 (file)
index 42e0020..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-use ok 'Test::Stream::ExitMagic::Context';
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Exporter-Meta.t b/cpan/Test-Simple/t/Test-Stream-Exporter-Meta.t
deleted file mode 100644 (file)
index 124fedd..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-use ok 'Test::Stream::Exporter::Meta';
-
-# This is tested by the Test::Stream::Exporter tests.
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Exporter.t b/cpan/Test-Simple/t/Test-Stream-Exporter.t
deleted file mode 100644 (file)
index 6d9097c..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-{
-    package My::Exporter;
-    use Test::Stream::Exporter;
-    use Test::More;
-
-    export         a => sub { 'a' };
-    default_export b => sub { 'b' };
-
-    export 'c';
-    sub c { 'c' }
-
-    default_export x => sub { 'x' };
-
-    our $export = "here";
-    $main::export::xxx = 'here';
-
-    export '$export' => \$export;
-
-    Test::Stream::Exporter->cleanup;
-
-    is($export,            'here', "still have an \$export var");
-    is($main::export::xxx, 'here', "still have an \$export::* var");
-
-    ok(!__PACKAGE__->can($_), "removed $_\()") for qw/export default_export exports default_exports/;
-}
-
-My::Exporter->import( '!x' );
-
-can_ok(__PACKAGE__, qw/b/);
-ok(!__PACKAGE__->can($_), "did not import $_\()") for qw/a c x/;
-
-My::Exporter->import(qw/a c/);
-can_ok(__PACKAGE__, qw/a b c/);
-
-ok(!__PACKAGE__->can($_), "did not import $_\()") for qw/x/;
-
-My::Exporter->import();
-can_ok(__PACKAGE__, qw/a b c x/);
-
-is(__PACKAGE__->$_(), $_, "$_() eq '$_', Function is as expected") for qw/a b c x/;
-
-ok(! defined $::export, "no export scalar");
-My::Exporter->import('$export');
-is($::export, 'here', "imported export scalar");
-
-use Test::Stream::Exporter qw/export_meta/;
-my $meta = export_meta('My::Exporter');
-isa_ok($meta, 'Test::Stream::Exporter::Meta');
-is_deeply(
-    [sort $meta->default],
-    [sort qw/b x/],
-    "Got default list"
-);
-
-is_deeply(
-    [sort $meta->all],
-    [sort qw/a b c x $export/],
-    "Got all list"
-);
-
-is_deeply(
-    $meta->exports,
-    {
-        a => __PACKAGE__->can('a') || undef,
-        b => __PACKAGE__->can('b') || undef,
-        c => __PACKAGE__->can('c') || undef,
-        x => __PACKAGE__->can('x') || undef,
-
-        '$export' => \$My::Exporter::export,
-    },
-    "Exports are what we expect"
-);
-
-# Make sure export_to_level us supported
-
-BEGIN {
-    package A;
-
-    use Test::Stream::Exporter qw/import export_to_level exports/;
-    exports qw/foo/;
-
-    sub foo { 'foo' }
-
-    ###############
-    package B;
-
-    sub do_it {
-        my $class = shift;
-        my ($num) = @_;
-        $num ||= 1;
-        A->export_to_level($num, $class, 'foo');
-    }
-
-    ##############
-    package C;
-
-    sub do_it {
-        B->do_it(2);
-    }
-}
-
-{
-    package m1;
-
-    BEGIN { B->do_it }
-}
-
-{
-    package m2;
-
-    BEGIN{ C->do_it };
-}
-
-can_ok('m1', 'foo');
-can_ok('m2', 'foo');
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-ForceExit.t b/cpan/Test-Simple/t/Test-Stream-ForceExit.t
deleted file mode 100644 (file)
index 8596494..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-use Test::Stream::ForceExit;
-use strict;
-use warnings;
-
-use Test::CanFork;
-
-use Test::Stream qw/enable_fork/;
-use Test::More;
-use Test::Stream::ForceExit;
-
-my ($read, $write);
-pipe($read, $write) || die "Failed to create a pipe.";
-
-my $pid = fork();
-unless ($pid) {
-    die "Failed to fork" unless defined $pid;
-    close($read);
-    $SIG{__WARN__} = sub { print $write @_ };
-
-    {
-        my $force_exit = Test::Stream::ForceExit->new;
-        note "In Child";
-    }
-
-    print $write "Did not exit!";
-
-    ok(0, "Failed to exit");
-    exit 0;
-}
-
-close($write);
-waitpid($pid, 0);
-my $error = $?;
-ok($error, "Got an error");
-my $msg = join("", <$read>);
-is($msg, <<EOT, "Got warning");
-Something prevented child process $pid from exiting when it should have, Forcing exit now!
-EOT
-
-close($read);
-pipe($read, $write) || die "Failed to create a pipe.";
-
-$pid = fork();
-unless ($pid) {
-    die "Failed to fork" unless defined $pid;
-    close($read);
-    $SIG{__WARN__} = sub { print $write @_ };
-
-    {
-        my $force_exit = Test::Stream::ForceExit->new;
-        note "In Child $$";
-        $force_exit->done(1);
-    }
-
-    print $write "Did not exit!\n";
-
-    exit 0;
-}
-
-close($write);
-waitpid($pid, 0);
-$error = $?;
-ok(!$error, "no error");
-$msg = join("", <$read>);
-is($msg, <<EOT, "Did not exit early");
-Did not exit!
-EOT
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-IOSets.t b/cpan/Test-Simple/t/Test-Stream-IOSets.t
deleted file mode 100644 (file)
index c2da17e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::MostlyLike;
-use Test::More;
-
-use ok 'Test::Stream::IOSets';
-
-my ($out, $err) = Test::Stream::IOSets->open_handles;
-ok($out && $err, "got 2 handles");
-ok(close($out), "Close stdout");
-ok(close($err), "Close stderr");
-
-my $one = Test::Stream::IOSets->new;
-isa_ok($one, 'Test::Stream::IOSets');
-mostly_like(
-    $one,
-    { ':legacy' => [], ':utf8' => undef },
-    "Legacy encoding is set",
-);
-
-ok($one->init_encoding('utf8'), "init utf8");
-
-mostly_like(
-    $one,
-    { ':legacy' => [], ':utf8' => [] },
-    "utf8 encoding is set",
-);
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Meta.t b/cpan/Test-Simple/t/Test-Stream-Meta.t
deleted file mode 100644 (file)
index 8417b13..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-
-use ok 'Test::Stream::Meta';
-
-my $meta = init_tester('Some::Package');
-ok($meta, "got meta");
-isa_ok($meta, 'Test::Stream::Meta');
-can_ok($meta, qw/package encoding modern todo stream/);
-
-is(is_tester('Some::Package'), $meta, "remember the meta");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-PackageUtil.t b/cpan/Test-Simple/t/Test-Stream-PackageUtil.t
deleted file mode 100644 (file)
index 76d80d8..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-
-use ok 'Test::Stream::PackageUtil';
-
-can_ok(__PACKAGE__, qw/package_sym package_purge_sym/);
-
-my $ok = package_sym(__PACKAGE__, CODE => 'ok');
-is($ok, \&ok, "package sym gave us the code symbol");
-
-my $todo = package_sym(__PACKAGE__, SCALAR => 'TODO');
-is($todo, \$TODO, "got the TODO scalar");
-
-our $foo = 'foo';
-our @foo = ('f', 'o', 'o');
-our %foo = (f => 'oo');
-sub foo { 'foo' };
-
-is(foo(), 'foo', "foo() is defined");
-is($foo, 'foo', '$foo is defined');
-is_deeply(\@foo, [ 'f', 'o', 'o' ], '@foo is defined');
-is_deeply(\%foo, { f => 'oo' }, '%foo is defined');
-
-package_purge_sym(__PACKAGE__, CODE => 'foo');
-
-is($foo, 'foo', '$foo is still defined');
-is_deeply(\@foo, [ 'f', 'o', 'o' ], '@foo is still defined');
-is_deeply(\%foo, { f => 'oo' }, '%foo is still defined');
-my $r = eval { __PACKAGE__->foo() };
-my $e = $@;
-ok(!$r, "Failed to call foo()");
-like($e, qr/Can't locate object method "foo" via package "main"/, "foo() is not defined anymore");
-ok(!__PACKAGE__->can('foo'), "can() no longer thinks we can do foo()");
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Tester-Grab.t b/cpan/Test-Simple/t/Test-Stream-Tester-Grab.t
deleted file mode 100644 (file)
index 5059807..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-use ok 'Test::Stream::Tester::Grab';
-
-# The tests for this can be found in t/Test-Tester2.t which is the only context
-# that makes sense.
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Tester.t b/cpan/Test-Simple/t/Test-Stream-Tester.t
deleted file mode 100644 (file)
index 2c4f11b..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-
-use ok 'Test::Stream::Tester';
-
-can_ok( __PACKAGE__, 'intercept', 'events_are' );
-
-my $events = intercept {
-    ok(1, "Woo!");
-    ok(0, "Boo!");
-};
-
-isa_ok($events->[0], 'Test::Stream::Event::Ok');
-is($events->[0]->bool, 1, "Got one success");
-is($events->[0]->name, "Woo!", "Got test name");
-
-isa_ok($events->[1], 'Test::Stream::Event::Ok');
-is($events->[1]->bool, 0, "Got one fail");
-is($events->[1]->name, "Boo!", "Got test name");
-
-$events = undef;
-my $grab = grab();
-my $got = $grab ? 1 : 0;
-ok(1, "Intercepted!");
-ok(0, "Also Intercepted!");
-$events = $grab->finish;
-ok($got, "Delayed test that we did in fact get a grab object");
-is($grab, undef, "Poof! vanished!");
-is(@$events, 2, "got 2 events (2 ok)");
-events_are(
-    $events,
-    check {
-        event ok => { bool => 1 };
-        event ok => {
-            bool => 0,
-            diag => qr/Failed/,
-        };
-        dir 'end';
-    },
-    'intercepted via grab 1'
-);
-
-$events = undef;
-$grab = grab();
-ok(1, "Intercepted!");
-ok(0, "Also Intercepted!");
-events_are(
-    $grab,
-    check {
-        event ok => { bool => 1 };
-        event ok => { bool => 0, diag => qr/Failed/ };
-        dir 'end';
-    },
-    'intercepted via grab 2'
-);
-ok(!$grab, "Maybe it never existed?");
-
-$events = intercept {
-    ok(1, "Woo!");
-    BAIL_OUT("Ooops");
-    ok(0, "Should not see this");
-};
-is(@$events, 2, "Only got 2");
-isa_ok($events->[0], 'Test::Stream::Event::Ok');
-isa_ok($events->[1], 'Test::Stream::Event::Bail');
-
-$events = intercept {
-    plan skip_all => 'All tests are skipped';
-
-    ok(1, "Woo!");
-    BAIL_OUT("Ooops");
-    ok(0, "Should not see this");
-};
-is(@$events, 1, "Only got 1");
-isa_ok($events->[0], 'Test::Stream::Event::Plan');
-
-my $file = __FILE__;
-my $line1;
-my $line2;
-events_are(
-    intercept {
-        events_are(
-            intercept { ok(1, "foo"); $line1 = __LINE__ },
-            check {
-                $line2 = __LINE__ + 1;
-                event ok => {bool => 0};
-                dir 'end';
-            },
-            'Lets name this test!',
-        );
-    },
-
-    check {
-        event ok => {
-            bool => 0,
-            diag => [
-                qr{Failed test 'Lets name this test!'.*at (\./)?\Q$0\E line}s,
-                qr{  Event: 'ok' from \Q$0\E line $line1}s,
-                qr{  Check: 'ok' from \Q$0\E line $line2}s,
-                qr{  \$got->\{bool\} = '1'},
-                qr{  \$exp->\{bool\} = '0'},
-            ],
-        };
-
-        dir 'end';
-    },
-    'Failure diag checking',
-);
-
-my $line3;
-events_are(
-    intercept {
-        events_are(
-            intercept { ok(1, "foo"); ok(1, "bar"); $line3 = __LINE__ },
-            check {
-                event ok => {bool => 1};
-                dir 'end'
-            },
-            "Should Fail"
-        );
-    },
-
-    check {
-        event ok => {
-            bool => 0,
-            diag => [
-                qr/Failed test 'Should Fail'/,
-                qr/Expected end of events, got 'ok' from \Q$0\E line $line3/,
-            ],
-        };
-    },
-
-    end => 'skipping a diag',
-);
-
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Toolset.t b/cpan/Test-Simple/t/Test-Stream-Toolset.t
deleted file mode 100644 (file)
index 432af90..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-
-use ok 'Test::Stream::Toolset';
-
-can_ok(__PACKAGE__, qw/is_tester init_tester context/);
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Stream-Util.t b/cpan/Test-Simple/t/Test-Stream-Util.t
deleted file mode 100644 (file)
index fa9ff54..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-use Scalar::Util qw/dualvar/;
-
-use ok 'Test::Stream::Util', qw{
-    try protect spoof is_regex is_dualvar
-};
-
-can_ok(__PACKAGE__, qw{
-    try protect spoof is_regex is_dualvar
-});
-
-my $x = dualvar( 100, 'one-hundred' );
-ok(is_dualvar($x), "Got dual var");
-$x = 1;
-ok(!is_dualvar($x), "Not dual var");
-
-$! = 100;
-
-my $ok = eval { protect { die "xxx" }; 1 };
-ok(!$ok, "protect did not capture exception");
-like($@, qr/xxx/, "expected exception");
-
-cmp_ok($!, '==', 100, "\$! did not change");
-$@ = 'foo';
-
-($ok, my $err) = try { die "xxx" };
-ok(!$ok, "cought exception");
-like( $err, qr/xxx/, "expected exception");
-is($@, 'foo', '$@ is saved');
-cmp_ok($!, '==', 100, "\$! did not change");
-
-ok(is_regex(qr/foo bar baz/), 'qr regex');
-ok(is_regex('/xxx/'), 'slash regex');
-ok(!is_regex('xxx'), 'not a regex');
-
-my ($ret, $e) = spoof ["The::Moon", "Moon.pm", 11] => "die 'xxx' . __PACKAGE__";
-ok(!$ret, "Failed eval");
-like( $e, qr/^xxxThe::Moon at Moon\.pm line 11\.?/, "Used correct package, file, and line");
-
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Tester-Capture.t b/cpan/Test-Simple/t/Test-Tester-Capture.t
deleted file mode 100644 (file)
index c4a61ba..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-use ok 'Test::Tester::Capture';
-
-# This is tested in t/Legacy/TestTester
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-Tester.t b/cpan/Test-Simple/t/Test-Tester.t
deleted file mode 100644 (file)
index 260b228..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-use ok 'Test::Tester';
-
-# The tests for this can be found in t/Legacy/TestTester
-
-done_testing;
diff --git a/cpan/Test-Simple/t/Test-use-ok.t b/cpan/Test-Simple/t/Test-use-ok.t
deleted file mode 100644 (file)
index b84b4a1..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-use strict;
-use warnings;
-
-use Test::Stream;
-use Test::More;
-
-use ok 'ok';
-
-use Test::Stream::Tester;
-
-events_are (
-    intercept {
-        eval "use ok 'Something::Fake'; 1" || die $@;
-    },
-    check {
-        event ok => {
-            bool => 0,
-            name => 'use Something::Fake;',
-            diag => qr/^\s*Failed test 'use Something::Fake;'/,
-        };
-    },
-    "Basic test"
-);
-
-done_testing;
similarity index 99%
rename from cpan/Test-Simple/t/Legacy/Tester/tbt_01basic.t
rename to cpan/Test-Simple/t/Tester/tbt_01basic.t
index 1b4b556..6282074 100644 (file)
@@ -51,7 +51,7 @@ test_test("testing failing on the same line with the same name");
 
 test_out("not ok 1 - name # TODO Something");
 test_out("#     Failed (TODO) test ($0 at line 56)");
-TODO: {
+TODO: { 
     local $TODO = "Something";
     fail("name");
 }
@@ -7,9 +7,9 @@ use Symbol;
 # create temporary file handles that still point indirectly
 # to the right place
 
-my $orig_o = gensym;
+my $orig_o = gensym; 
 my $orig_t = gensym;
-my $orig_f = gensym;
+my $orig_f = gensym; 
 
 tie *$orig_o, "My::Passthru", \*STDOUT;
 tie *$orig_t, "My::Passthru", \*STDERR;
@@ -64,7 +64,7 @@ sub my_test_test
   my $text = shift;
   local $^W = 0;
 
-  # reset the outputs
+  # reset the outputs 
   $t->output($original_output_handle);
   $t->failure_output($original_failure_handle);
   $t->todo_output($original_todo_handle);
similarity index 99%
rename from cpan/Test-Simple/t/Legacy/Tester/tbt_07args.t
rename to cpan/Test-Simple/t/Tester/tbt_07args.t
index 0e32212..9542d75 100644 (file)
@@ -64,7 +64,7 @@ sub my_test_test
   my $text = shift;
   local $^W = 0;
 
-  # reset the outputs
+  # reset the outputs 
   $t->output($original_output_handle);
   $t->failure_output($original_failure_handle);
   $t->todo_output($original_todo_handle);
diff --git a/cpan/Test-Simple/t/auto.t b/cpan/Test-Simple/t/auto.t
new file mode 100644 (file)
index 0000000..0010342
--- /dev/null
@@ -0,0 +1,30 @@
+use strict;
+use warnings;
+
+use lib 't';
+
+use Test::Tester tests => 5;
+
+use SmallTest;
+
+use MyTest;
+
+{
+       my ($prem, @results) = run_tests(
+               sub { MyTest::ok(1, "run pass")}
+       );
+
+       is_eq($results[0]->{name}, "run pass");
+       is_num($results[0]->{ok}, 1);
+}
+
+{
+       my ($prem, @results) = run_tests(
+               sub { MyTest::ok(0, "run fail")}
+       );
+
+       is_eq($results[0]->{name}, "run fail");
+       is_num($results[0]->{ok}, 0);
+}
+
+is_eq(ref(SmallTest::getTest()), "Test::Tester::Delegate");
diff --git a/cpan/Test-Simple/t/capture.t b/cpan/Test-Simple/t/capture.t
new file mode 100644 (file)
index 0000000..f9103bd
--- /dev/null
@@ -0,0 +1,32 @@
+use strict;
+
+use Test::Tester;
+
+my $Test = Test::Builder->new;
+$Test->plan(tests => 3);
+
+my $cap;
+
+$cap = Test::Tester->capture;
+
+{
+       no warnings 'redefine';
+       sub Test::Tester::find_run_tests { return 0};
+}
+
+local $Test::Builder::Level = 0;
+{
+       my $cur = $cap->current_test;
+       $Test->is_num($cur, 0, "current test");
+
+       eval {$cap->current_test(2)};
+       $Test->ok($@, "can't set test_num");
+}
+
+{
+       $cap->ok(1, "a test");
+
+       my @res = $cap->details;
+
+       $Test->is_num(scalar @res, 1, "res count");
+}
diff --git a/cpan/Test-Simple/t/check_tests.t b/cpan/Test-Simple/t/check_tests.t
new file mode 100644 (file)
index 0000000..ec88e2d
--- /dev/null
@@ -0,0 +1,117 @@
+use strict;
+
+use Test::Tester;
+
+use Data::Dumper qw(Dumper);
+
+my $test = Test::Builder->new;
+$test->plan(tests => 105);
+
+my $cap;
+
+$cap = Test::Tester->capture;
+
+my @tests = (
+       [
+               'pass',
+               '$cap->ok(1, "pass");',
+               {
+                       name => "pass",
+                       ok => 1,
+                       actual_ok => 1,
+                       reason => "",
+                       type => "",
+                       diag => "",
+                       depth => 0,
+               },
+       ],
+       [
+               'pass diag',
+               '$cap->ok(1, "pass diag");
+               $cap->diag("pass diag1");
+               $cap->diag("pass diag2");',
+               {
+                       name => "pass diag",
+                       ok => 1,
+                       actual_ok => 1,
+                       reason => "",
+                       type => "",
+                       diag => "pass diag1\npass diag2\n",
+                       depth => 0,
+               },
+       ],
+       [
+               'pass diag no \\n',
+               '$cap->ok(1, "pass diag");
+               $cap->diag("pass diag1");
+               $cap->diag("pass diag2");',
+               {
+                       name => "pass diag",
+                       ok => 1,
+                       actual_ok => 1,
+                       reason => "",
+                       type => "",
+                       diag => "pass diag1\npass diag2",
+                       depth => 0,
+               },
+       ],
+       [
+               'fail',
+               '$cap->ok(0, "fail");
+               $cap->diag("fail diag");',
+               {
+                       name => "fail",
+                       ok => 0,
+                       actual_ok => 0,
+                       reason => "",
+                       type => "",
+                       diag => "fail diag\n",
+                       depth => 0,
+               },
+       ],
+       [
+               'skip',
+               '$cap->skip("just because");',
+               {
+                       name => "",
+                       ok => 1,
+                       actual_ok => 1,
+                       reason => "just because",
+                       type => "skip",
+                       diag => "",
+                       depth => 0,
+               },
+       ],
+       [
+               'todo_skip',
+               '$cap->todo_skip("why not");',
+               {
+                       name => "",
+                       ok => 1,
+                       actual_ok => 0,
+                       reason => "why not",
+                       type => "todo_skip",
+                       diag => "",
+                       depth => 0,
+               },
+       ],
+);
+
+my $big_code = "";
+my @big_expect;
+
+foreach my $test (@tests)
+{
+       my ($name, $code, $expect) = @$test;
+
+       $big_code .= "$code\n";
+       push(@big_expect, $expect);
+
+       my $test_sub = eval "sub {$code}";
+
+       check_test($test_sub, $expect, $name);
+}
+
+my $big_test_sub = eval "sub {$big_code}";
+
+check_tests($big_test_sub, \@big_expect, "run all");
similarity index 99%
rename from cpan/Test-Simple/t/Legacy/circular_data.t
rename to cpan/Test-Simple/t/circular_data.t
index 15eb6d4..2fd819e 100644 (file)
@@ -59,7 +59,7 @@ ok( eq_array ([$s], [$r]) );
 
 {
     # rt.cpan.org 11623
-    # Make sure the circular ref checks don't get confused by a reference
+    # Make sure the circular ref checks don't get confused by a reference 
     # which is simply repeating.
     my $a = {};
     my $b = {};
similarity index 99%
rename from cpan/Test-Simple/t/Legacy/cmp_ok.t
rename to cpan/Test-Simple/t/cmp_ok.t
index 07ed1a9..c9b9f1b 100644 (file)
@@ -15,7 +15,7 @@ $TB->level(0);
 
 sub try_cmp_ok {
     my($left, $cmp, $right, $error) = @_;
-
+    
     my %expect;
     if( $error ) {
         $expect{ok} = 0;
@@ -33,7 +33,7 @@ sub try_cmp_ok {
     eval { $ok = cmp_ok($left, $cmp, $right, "cmp_ok"); };
 
     $TB->is_num(!!$ok, !!$expect{ok}, "  right return");
-
+    
     my $diag = $err->read;
 
     if ($@) {
similarity index 71%
rename from cpan/Test-Simple/t/Legacy/TestTester/depth.t
rename to cpan/Test-Simple/t/depth.t
index 53ba7e0..acbf07f 100644 (file)
@@ -1,15 +1,7 @@
 use strict;
 use warnings;
 
-BEGIN {
-    if ($ENV{PERL_CORE}) {
-        chdir 't';
-        @INC = ('../lib', 'lib');
-    }
-    else {
-        unshift @INC, 't/lib';
-    }
-}
+use lib 't';
 
 use Test::Tester;
 
@@ -16,6 +16,5 @@ BEGIN {
 
 use Test::More tests => 2;
 
-$handler_called = 0;
 ok !eval { die };
 is $handler_called, 1, 'existing DIE handler not overridden';
similarity index 92%
rename from cpan/Test-Simple/t/Legacy/eq_set.t
rename to cpan/Test-Simple/t/eq_set.t
index 202f3d3..fbdc52d 100644 (file)
@@ -23,7 +23,7 @@ ok( eq_set([1,2,[3]], [1,[3],2]) );
 # bugs.perl.org 36354
 my $ref = \2;
 ok( eq_set( [$ref, "$ref", "$ref", $ref],
-            ["$ref", $ref, $ref, "$ref"]
+            ["$ref", $ref, $ref, "$ref"] 
           ) );
 
 TODO: {
similarity index 84%
rename from cpan/Test-Simple/t/Legacy/exit.t
rename to cpan/Test-Simple/t/exit.t
index 69b8e1c..e32e986 100644 (file)
@@ -23,6 +23,16 @@ use File::Spec;
 my $Orig_Dir = cwd;
 
 my $Perl = File::Spec->rel2abs($^X);
+if( $^O eq 'VMS' ) {
+    # VMS can't use its own $^X in a system call until almost 5.8
+    $Perl = "MCR $^X" if $] < 5.007003;
+
+    # Quiet noisy 'SYS$ABORT'
+    $Perl .= q{ -"I../lib"} if $ENV{PERL_CORE};
+    $Perl .= q{ -"Mvmsish=hushed"};
+} else {
+    $Perl = qq("$Perl"); # protect from shell if spaces
+}
 
 eval { require POSIX; &POSIX::WEXITSTATUS(0) };
 if( $@ ) {
@@ -55,7 +65,7 @@ END { 1 while unlink "exit_map_test" }
 
 for my $exit (0..255) {
     # This correctly emulates Test::Builder's behavior.
-    my $out = qx["$Perl" exit_map_test $exit];
+    my $out = qx[$Perl exit_map_test $exit];
     $TB->like( $out, qr/^exit $exit\n/, "exit map test for $exit" );
     $Exit_Map{$exit} = exitstatus($?);
 }
@@ -86,7 +96,7 @@ chdir 't';
 my $lib = File::Spec->catdir(qw(lib Test Simple sample_tests));
 while( my($test_name, $exit_code) = each %Tests ) {
     my $file = File::Spec->catfile($lib, $test_name);
-    my $wait_stat = system(qq{"$Perl" -"I../blib/lib" -"I../lib" -"I../t/lib" $file});
+    my $wait_stat = system(qq{$Perl -"I../blib/lib" -"I../lib" -"I../t/lib" $file});
     my $actual_exit = exitstatus($wait_stat);
 
     if( $exit_code eq 'not zero' ) {
@@ -95,7 +105,7 @@ while( my($test_name, $exit_code) = each %Tests ) {
                       "(expected non-zero)");
     }
     else {
-        $TB->is_num( $actual_exit, $Exit_Map{$exit_code},
+        $TB->is_num( $actual_exit, $Exit_Map{$exit_code}, 
                       "$test_name exited with $actual_exit ".
                       "(expected $Exit_Map{$exit_code})");
     }
similarity index 86%
rename from cpan/Test-Simple/t/Legacy/extra.t
rename to cpan/Test-Simple/t/extra.t
index 28febc3..55a0007 100644 (file)
@@ -14,7 +14,7 @@ use strict;
 
 use Test::Builder;
 use Test::Builder::NoOutput;
-use Test::More;
+use Test::Simple;
 
 my $TB   = Test::Builder->new;
 my $test = Test::Builder::NoOutput->create;
@@ -51,13 +51,10 @@ not ok 5 - Sar
 #   at $0 line 45.
 END
 
-SKIP: {
-    skip 'Broken with new stuff' => 1;
-    $test->_ending();
-    $TB->is_eq($test->read(), <<'    END');
+$test->_ending();
+$TB->is_eq($test->read(), <<END);
 # Looks like you planned 3 tests but ran 5.
 # Looks like you failed 2 tests of 5 run.
-    END
-}
+END
 
 $TB->done_testing(5);
similarity index 91%
rename from cpan/Test-Simple/t/Legacy/fail-like.t
rename to cpan/Test-Simple/t/fail-like.t
index 19e748f..0383094 100644 (file)
@@ -22,7 +22,7 @@ package My::Test;
 # This has to be a require or else the END block below runs before
 # Test::Builder's own and the ending diagnostics don't come out right.
 require Test::Builder;
-my $TB = Test::Builder->create();
+my $TB = Test::Builder->create;
 $TB->plan(tests => 4);
 
 
@@ -71,5 +71,7 @@ OUT
 
 }
 
-# Test::More thinks it failed.  Override that.
-Test::Builder->new->no_ending(1);
+END {
+    # Test::More thinks it failed.  Override that.
+    exit(scalar grep { !$_ } $TB->summary);
+}
similarity index 95%
rename from cpan/Test-Simple/t/Legacy/fail-more.t
rename to cpan/Test-Simple/t/fail-more.t
index aab2d83..5c35d49 100644 (file)
@@ -27,23 +27,19 @@ my $TB = Test::Builder->create;
 $TB->plan(tests => 80);
 
 sub like ($$;$) {
-    my $c = Test::Stream::Context::context();
     $TB->like(@_);
 }
 
 sub is ($$;$) {
-    my $c = Test::Stream::Context::context();
     $TB->is_eq(@_);
 }
 
 sub main::out_ok ($$) {
-    my $c = Test::Stream::Context::context();
     $TB->is_eq( $out->read, shift );
     $TB->is_eq( $err->read, shift );
 }
 
 sub main::out_like ($$) {
-    my $c = Test::Stream::Context::context();
     my($output, $failure) = @_;
 
     $TB->like( $out->read, qr/$output/ );
@@ -237,8 +233,7 @@ not ok - ARRAY->can('foo')
 OUT
 #   Failed test 'ARRAY->can('foo')'
 #   at $0 line 228.
-#     ARRAY->can('foo') failed with an exception:
-#     Can't call method "can" on unblessed reference.
+#     ARRAY->can('foo') failed
 ERR
 
 #line 238
@@ -248,7 +243,7 @@ not ok - An object of class 'Foo' isa 'Wibble'
 OUT
 #   Failed test 'An object of class 'Foo' isa 'Wibble''
 #   at $0 line 238.
-#     An object of class 'Foo' isn't a 'Wibble'
+#     The object of class 'Foo' isn't a 'Wibble'
 ERR
 
 #line 248
@@ -288,7 +283,7 @@ not ok - A reference of type 'ARRAY' isa 'HASH'
 OUT
 #   Failed test 'A reference of type 'ARRAY' isa 'HASH''
 #   at $0 line 268.
-#     A reference of type 'ARRAY' isn't a 'HASH'
+#     The reference of type 'ARRAY' isn't a 'HASH'
 ERR
 
 #line 278
@@ -333,7 +328,7 @@ not ok - A reference of type 'HASH' isa 'Bar'
 OUT
 #   Failed test 'A reference of type 'HASH' isa 'Bar''
 #   at $0 line 313.
-#     A reference of type 'HASH' isn't a 'Bar'
+#     The reference of type 'HASH' isn't a 'Bar'
 ERR
 
 #line 323
@@ -343,7 +338,7 @@ not ok - An object of class 'Wibble' isa 'Baz'
 OUT
 #   Failed test 'An object of class 'Wibble' isa 'Baz''
 #   at $0 line 323.
-#     An object of class 'Wibble' isn't a 'Baz'
+#     The object of class 'Wibble' isn't a 'Baz'
 ERR
 
 #line 333
diff --git a/cpan/Test-Simple/t/fork.t b/cpan/Test-Simple/t/fork.t
new file mode 100644 (file)
index 0000000..55d7aec
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/perl -w
+
+BEGIN {
+    if( $ENV{PERL_CORE} ) {
+        chdir 't';
+        @INC = '../lib';
+    }
+}
+
+use Test::More;
+use Config;
+
+my $Can_Fork = $Config{d_fork} ||
+               (($^O eq 'MSWin32' || $^O eq 'NetWare') and
+                $Config{useithreads} and 
+                $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
+               );
+
+if( !$Can_Fork ) {
+    plan skip_all => "This system cannot fork";
+}
+else {
+    plan tests => 1;
+}
+
+if( fork ) { # parent
+    pass("Only the parent should process the ending, not the child");
+}
+else {
+    exit;   # child
+}
+
similarity index 98%
rename from cpan/Test-Simple/t/Legacy/harness_active.t
rename to cpan/Test-Simple/t/harness_active.t
index bda5dae..7b027a7 100644 (file)
@@ -66,7 +66,7 @@ ERR
 
 {
     local $ENV{HARNESS_ACTIVE} = 1;
-
+                   
 #line 71
     fail( "this fails" );
     err_ok( <<ERR );
similarity index 99%
rename from cpan/Test-Simple/t/Legacy/is_deeply_fail.t
rename to cpan/Test-Simple/t/is_deeply_fail.t
index b955d29..26036fb 100644 (file)
@@ -83,7 +83,7 @@ ERR
 
 #line 88
 ok !is_deeply({ this => 42 }, { this => 43 }, 'hashes with different values');
-is( $out, "not ok 3 - hashes with different values\n",
+is( $out, "not ok 3 - hashes with different values\n", 
                                         'hashes with different values' );
 is( $err, <<ERR,                        '   right diagnostic' );
 #   Failed test 'hashes with different values'
@@ -223,7 +223,7 @@ foreach my $test (@tests) {
     local $SIG{__WARN__} = sub { $warning .= join '', @_; };
     ok !is_deeply(@$test);
 
-    like \$warning,
+    like \$warning, 
          "/^is_deeply\\(\\) takes two or three args, you gave $num_args\.\n/";
 }
 
@@ -13,9 +13,21 @@ BEGIN {
 }
 
 use strict;
+use Config;
 
-use Test::CanThread qw/AUTHOR_TESTING/;
-
+BEGIN {
+    unless ( $] >= 5.008001 && $Config{'useithreads'} && 
+             eval { require threads; 'threads'->import; 1; }) 
+    {
+        print "1..0 # Skip no working threads\n";
+        exit 0;
+    }
+    
+    unless ( $ENV{AUTHOR_TESTING} ) {
+        print "1..0 # Skip many perls have broken threads.  Enable with AUTHOR_TESTING.\n";
+        exit 0;
+    }
+}
 use Test::More;
 
 my $Num_Threads = 5;
index 7c6bb69..bbdf732 100644 (file)
@@ -26,7 +26,7 @@ Test::Builder::NoOutput - A subclass of Test::Builder which prints nothing
 This is a subclass of Test::Builder which traps all its output.
 It is mostly useful for testing Test::Builder.
 
-=head2 read
+=head3 read
 
     my $all_output = $tb->read;
     my $output     = $tb->read($stream);
similarity index 81%
rename from cpan/Test-Simple/t/Legacy/new_ok.t
rename to cpan/Test-Simple/t/new_ok.t
index 2579e67..d53f535 100644 (file)
@@ -39,6 +39,4 @@ use Test::More tests => 13;
 eval {
     new_ok();
 };
-my $error = $@;
-$error =~ s/\.?\n.*$//gsm;
-is $error, sprintf "new_ok() must be given at least a class at %s line %d", $0, __LINE__ - 4;
+is $@, sprintf "new_ok() must be given at least a class at %s line %d.\n", $0, __LINE__ - 2;
similarity index 97%
rename from cpan/Test-Simple/t/Legacy/overload.t
rename to cpan/Test-Simple/t/overload.t
index fe9bc46..a861037 100644 (file)
@@ -69,7 +69,7 @@ Test::More->builder->is_eq ($obj, "foo");
 
     package Foo;
     ::is_deeply(['TestPackage'], ['TestPackage']);
-    ::is_deeply({'TestPackage' => 'TestPackage'},
+    ::is_deeply({'TestPackage' => 'TestPackage'}, 
                 {'TestPackage' => 'TestPackage'});
     ::is_deeply('TestPackage', 'TestPackage');
 }
similarity index 58%
rename from cpan/Test-Simple/t/Legacy/plan.t
rename to cpan/Test-Simple/t/plan.t
index 2b6b2fd..0d3ce89 100644 (file)
@@ -11,10 +11,10 @@ use Test::More;
 
 plan tests => 4;
 eval { plan tests => 4 };
-is( $@, sprintf("Tried to plan twice!\n    %s line %d\n    %s line %d\n", $0, __LINE__ - 2, $0, __LINE__ - 1),
+is( $@, sprintf("You tried to plan twice at %s line %d.\n", $0, __LINE__ - 1),
     'disallow double plan' );
 eval { plan 'no_plan'  };
-is( $@, sprintf("Tried to plan twice!\n    %s line %d\n    %s line %d\n", $0, __LINE__ - 5, $0, __LINE__ - 1),
+is( $@, sprintf("You tried to plan twice at %s line %d.\n", $0, __LINE__ -1),
     'disallow changing plan' );
 
 pass('Just testing plan()');
similarity index 84%
rename from cpan/Test-Simple/t/Legacy/plan_no_plan.t
rename to cpan/Test-Simple/t/plan_no_plan.t
index 59fab4d..3111592 100644 (file)
@@ -8,10 +8,6 @@ BEGIN {
 use Test::More;
 
 BEGIN {
-    require warnings;
-    if( eval "warnings->can('carp')" ) {
-        plan skip_all => 'Modern::Open is installed, which breaks this test';
-    }
     if( !$ENV{HARNESS_ACTIVE} && $ENV{PERL_CORE} ) {
         plan skip_all => "Won't work with t/TEST";
     }
similarity index 56%
rename from cpan/Test-Simple/t/Legacy/require_ok.t
rename to cpan/Test-Simple/t/require_ok.t
index 56d01bc..463a007 100644 (file)
@@ -11,7 +11,7 @@ BEGIN {
 }
 
 use strict;
-use Test::More tests => 4;
+use Test::More tests => 8;
 
 # Symbol and Class::Struct are both non-XS core modules back to 5.004.
 # So they'll always be there.
@@ -20,3 +20,10 @@ ok( $INC{'Symbol.pm'},          "require_ok MODULE" );
 
 require_ok("Class/Struct.pm");
 ok( $INC{'Class/Struct.pm'},    "require_ok FILE" );
+
+# Its more trouble than its worth to try to create these filepaths to test
+# through require_ok() so we cheat and use the internal logic.
+ok !Test::More::_is_module_name('foo:bar');
+ok !Test::More::_is_module_name('foo/bar.thing');
+ok !Test::More::_is_module_name('Foo::Bar::');
+ok Test::More::_is_module_name('V');
similarity index 99%
rename from cpan/Test-Simple/t/Legacy/TestTester/run_test.t
rename to cpan/Test-Simple/t/run_test.t
index 6b1464c..8288f19 100644 (file)
@@ -10,7 +10,7 @@ $test->plan(tests => 54);
 my $cap;
 
 {
-       $cap = $test;
+       $cap = Test::Tester->capture;
        my ($prem, @results) = run_tests(
                sub {$cap->ok(1, "run pass")}
        );
similarity index 86%
rename from cpan/Test-Simple/t/Legacy/skip.t
rename to cpan/Test-Simple/t/skip.t
index 18d5541..f2ea9fb 100644 (file)
@@ -7,22 +7,14 @@ BEGIN {
     }
 }
 
-BEGIN {
-    require warnings;
-    if( eval "warnings->can('carp')" ) {
-        require Test::More;
-        Test::More::plan( skip_all => 'Modern::Open is installed, which breaks this test' );
-    }
-}
-
-use Test::More tests => 16;
+use Test::More tests => 17;
 
 # If we skip with the same name, Test::Harness will report it back and
 # we won't get lots of false bug reports.
 my $Why = "Just testing the skip interface.";
 
 SKIP: {
-    skip $Why, 2
+    skip $Why, 2 
       unless Pigs->can('fly');
 
     my $pig = Pigs->new;
@@ -72,7 +64,7 @@ SKIP: {
         fail("So very failed");
     }
     is( $warning, "skip() needs to know \$how_many tests are in the ".
-                  "block at $0 line 56.\n",
+                  "block at $0 line 56\n",
         'skip without $how_many warning' );
 }
 
similarity index 98%
rename from cpan/Test-Simple/t/Legacy/skipall.t
rename to cpan/Test-Simple/t/skipall.t
index 08c8543..5491be1 100644 (file)
@@ -8,7 +8,7 @@ BEGIN {
     else {
         unshift @INC, 't/lib';
     }
-}
+}   
 
 use strict;
 
similarity index 96%
rename from cpan/Test-Simple/t/Legacy/subtest/args.t
rename to cpan/Test-Simple/t/subtest/args.t
index d43ac52..8ae26ba 100644 (file)
@@ -22,7 +22,6 @@ $tb->like( $@, qr/^\Qsubtest()'s second argument must be a code ref/ );
 $tb->ok( !eval { $tb->subtest("foo") } );
 $tb->like( $@, qr/^\Qsubtest()'s second argument must be a code ref/ );
 
-use Carp qw/confess/;
 $tb->subtest('Arg passing', sub {
     my $foo = shift;
     my $child = Test::Builder->new;
similarity index 55%
rename from cpan/Test-Simple/t/Legacy/subtest/bail_out.t
rename to cpan/Test-Simple/t/subtest/bail_out.t
index d6b074c..70dc9ac 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 
 my $Exit_Code;
 BEGIN {
-    *CORE::GLOBAL::exit = sub { $Exit_Code = shift; die };
+    *CORE::GLOBAL::exit = sub { $Exit_Code = shift; };
 }
 
 use Test::Builder;
@@ -30,34 +30,29 @@ $Test->plan(tests => 2);
 plan tests => 4;
 
 ok 'foo';
-my $ok = eval {
-    subtest 'bar' => sub {
+subtest 'bar' => sub {
+    plan tests => 3;
+    ok 'sub_foo';
+    subtest 'sub_bar' => sub {
         plan tests => 3;
-        ok 'sub_foo';
-        subtest 'sub_bar' => sub {
-            plan tests => 3;
-            ok 'sub_sub_foo';
-            ok 'sub_sub_bar';
-            BAIL_OUT("ROCKS FALL! EVERYONE DIES!");
-            ok 'sub_sub_baz';
-        };
-        ok 'sub_baz';
+        ok 'sub_sub_foo';
+        ok 'sub_sub_bar';
+        BAIL_OUT("ROCKS FALL! EVERYONE DIES!");
+        ok 'sub_sub_baz';
     };
-    1;
+    ok 'sub_baz';
 };
 
 $Test->is_eq( $output, <<'OUT' );
 1..4
 ok 1
-# Subtest: bar
+    # Subtest: bar
     1..3
     ok 1
-    # Subtest: sub_bar
+        # Subtest: sub_bar
         1..3
         ok 1
         ok 2
-        Bail out!  ROCKS FALL! EVERYONE DIES!
-    Bail out!  ROCKS FALL! EVERYONE DIES!
 Bail out!  ROCKS FALL! EVERYONE DIES!
 OUT
 
similarity index 90%
rename from cpan/Test-Simple/t/Legacy/subtest/basic.t
rename to cpan/Test-Simple/t/subtest/basic.t
index 92af4dc..93780a9 100644 (file)
@@ -15,7 +15,7 @@ use warnings;
 
 use Test::Builder::NoOutput;
 
-use Test::More tests => 18;
+use Test::More tests => 19;
 
 # Formatting may change if we're running under Test::Harness.
 $ENV{HARNESS_ACTIVE} = 0;
@@ -166,23 +166,17 @@ END
     my $tb = Test::Builder::NoOutput->create;
 
     {
-        my @warnings;
-        local $SIG{__WARN__} = sub { push @warnings, $_[0] };
-
         my $child = $tb->child('skippy says he loves you');
-        eval { $child->plan(skip_all => 'cuz I said so') };
-
-        is(scalar(@warnings), 1, "one warning");
-        like(
-            $warnings[0],
-            qr/^SKIP_ALL in subtest could not find flow-control label,/,
-            "the warning"
-        );
+        eval { $child->plan( skip_all => 'cuz I said so' ) };
+        ok my $error = $@, 'A child which does a "skip_all" should throw an exception';
+        isa_ok $error, 'Test::Builder::Exception', '... and the exception it throws';
     }
     subtest 'skip all', sub {
         plan skip_all => 'subtest with skip_all';
         ok 0, 'This should never be run';
     };
+    is +Test::Builder->new->{Test_Results}[-1]{type}, 'skip',
+        'Subtests which "skip_all" are reported as skipped tests';
 }
 
 # to do tests
@@ -213,10 +207,7 @@ END
     $tb->_ending;
     my $expected = <<"END";
 1..1
-not ok 1 - Child of $0
-#   Failed test 'Child of $0'
-#   at $0 line 225.
-#   No tests run for subtest.
+not ok 1 - No tests run for subtest "Child of $0"
 END
     like $tb->read, qr/\Q$expected/,
         'Not running subtests should make the parent test fail';
similarity index 83%
rename from cpan/Test-Simple/t/Legacy/subtest/do.t
rename to cpan/Test-Simple/t/subtest/do.t
index b034893..40b9501 100644 (file)
@@ -7,7 +7,7 @@ use Test::More;
 
 pass("First");
 
-my $file = "t/Legacy/subtest/for_do_t.test";
+my $file = "t/subtest/for_do_t.test";
 ok -e $file, "subtest test file exists";
 
 subtest $file => sub { do $file };
similarity index 88%
rename from cpan/Test-Simple/t/Legacy/subtest/exceptions.t
rename to cpan/Test-Simple/t/subtest/exceptions.t
index c4e57a9..92d65b6 100644 (file)
@@ -17,12 +17,11 @@ use Test::More tests => 7;
 
 {
     my $tb = Test::Builder::NoOutput->create;
-    my $child = $tb->child('one');
+    $tb->child('one');
     eval { $tb->child('two') };
     my $error = $@;
     like $error, qr/\QYou already have a child named (one) running/,
       'Trying to create a child with another one active should fail';
-    $child->finalize;
 }
 {
     my $tb    = Test::Builder::NoOutput->create;
@@ -32,17 +31,14 @@ use Test::More tests => 7;
     my $error = $@;
     like $error, qr/\QCan't call finalize() with child (two) active/,
       '... but trying to finalize() a child with open children should fail';
-    $child2->finalize;
-    $child->finalize;
 }
 {
     my $tb    = Test::Builder::NoOutput->create;
     my $child = $tb->child('one');
-    eval { $child->DESTROY };
-    like $@, qr/\QChild (one) exited without calling finalize()/,
+    undef $child;
+    like $tb->read, qr/\QChild (one) exited without calling finalize()/,
       'Failing to call finalize should issue an appropriate diagnostic';
     ok !$tb->is_passing, '... and should cause the test suite to fail';
-    $child->finalize;
 }
 {
     my $tb = Test::Builder::NoOutput->create;
diff --git a/cpan/Test-Simple/t/subtest/fork.t b/cpan/Test-Simple/t/subtest/fork.t
new file mode 100644 (file)
index 0000000..e072a48
--- /dev/null
@@ -0,0 +1,51 @@
+#!/usr/bin/perl -w
+use strict;
+use warnings;
+use Config;
+use IO::Pipe;
+use Test::Builder;
+use Test::More;
+
+my $Can_Fork = $Config{d_fork} ||
+               (($^O eq 'MSWin32' || $^O eq 'NetWare') and
+                $Config{useithreads} and
+                $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
+               );
+
+if( !$Can_Fork ) {
+    plan 'skip_all' => "This system cannot fork";
+}
+else {
+    plan 'tests' => 1;
+}
+
+subtest 'fork within subtest' => sub {
+    plan tests => 2;
+
+    my $pipe = IO::Pipe->new;
+    my $pid = fork;
+    defined $pid or plan skip_all => "Fork not working";
+
+    if ($pid) {
+        $pipe->reader;
+        my $child_output = do { local $/ ; <$pipe> };
+        waitpid $pid, 0;
+
+        is $?, 0, 'child exit status';
+        like $child_output, qr/^[\s#]+Child Done\s*\z/, 'child output';
+    } 
+    else {
+        $pipe->writer;
+
+        # Force all T::B output into the pipe, for the parent
+        # builder as well as the current subtest builder.
+        no warnings 'redefine';
+        *Test::Builder::output         = sub { $pipe };
+        *Test::Builder::failure_output = sub { $pipe };
+        *Test::Builder::todo_output    = sub { $pipe };
+        
+        diag 'Child Done';
+        exit 0;
+    }
+};
+
similarity index 90%
rename from cpan/Test-Simple/t/Legacy/subtest/line_numbers.t
rename to cpan/Test-Simple/t/subtest/line_numbers.t
index cc9c10d..7a20a60 100644 (file)
@@ -26,7 +26,7 @@ $ENV{HARNESS_ACTIVE} = 0;
 our %line;
 
 {
-    test_out("# Subtest: namehere");
+    test_out("    # Subtest: namehere");
     test_out("    1..3");
     test_out("    ok 1");
     test_out("    not ok 2");
@@ -43,11 +43,11 @@ our %line;
         ok 0; BEGIN{ $line{innerfail1} = __LINE__ }
         ok 1;
     }; BEGIN{ $line{outerfail1} = __LINE__ }
-
+    
     test_test("un-named inner tests");
 }
 {
-    test_out("# Subtest: namehere");
+    test_out("    # Subtest: namehere");
     test_out("    1..3");
     test_out("    ok 1 - first is good");
     test_out("    not ok 2 - second is bad");
@@ -65,7 +65,7 @@ our %line;
         ok 0, "second is bad"; BEGIN{ $line{innerfail2} = __LINE__ }
         ok 1, "third is good";
     }; BEGIN{ $line{outerfail2} = __LINE__ }
-
+    
     test_test("named inner tests");
 }
 
@@ -78,7 +78,7 @@ sub run_the_subtest {
     }; BEGIN{ $line{outerfail3} = __LINE__ }
 }
 {
-    test_out("# Subtest: namehere");
+    test_out("    # Subtest: namehere");
     test_out("    1..3");
     test_out("    ok 1 - first is good");
     test_out("    not ok 2 - second is bad");
@@ -91,17 +91,16 @@ sub run_the_subtest {
     test_err("#   at $0 line $line{outerfail3}.");
 
     run_the_subtest();
-
+    
     test_test("subtest() called from a sub");
 }
 {
-    test_out( "# Subtest: namehere");
+    test_out( "    # Subtest: namehere");
     test_out( "    1..0");
     test_err( "    # No tests run!");
-    test_out( 'not ok 1 - namehere');
-    test_err(q{#   Failed test 'namehere'});
+    test_out( 'not ok 1 - No tests run for subtest "namehere"');
+    test_err(q{#   Failed test 'No tests run for subtest "namehere"'});
     test_err( "#   at $0 line $line{outerfail4}.");
-    test_err( "#   No tests run for subtest.");
 
     subtest namehere => sub {
         done_testing;
@@ -110,7 +109,7 @@ sub run_the_subtest {
     test_test("lineno in 'No tests run' diagnostic");
 }
 {
-    test_out("# Subtest: namehere");
+    test_out("    # Subtest: namehere");
     test_out("    1..1");
     test_out("    not ok 1 - foo is bar");
     test_err("    #   Failed test 'foo is bar'");
similarity index 95%
rename from cpan/Test-Simple/t/Legacy/subtest/predicate.t
rename to cpan/Test-Simple/t/subtest/predicate.t
index 73b9c81..4e29a42 100644 (file)
@@ -40,7 +40,7 @@ sub foobar_ok ($;$) {
     };
 }
 {
-    test_out("# Subtest: namehere");
+    test_out("    # Subtest: namehere");
     test_out("    1..2");
     test_out("    ok 1 - foo");
     test_out("    not ok 2 - bar");
@@ -65,7 +65,7 @@ sub foobar_ok_2 ($;$) {
     foobar_ok($value, $name);
 }
 {
-    test_out("# Subtest: namehere");
+    test_out("    # Subtest: namehere");
     test_out("    1..2");
     test_out("    ok 1 - foo");
     test_out("    not ok 2 - bar");
@@ -95,7 +95,7 @@ sub barfoo_ok ($;$) {
     });
 }
 {
-    test_out("# Subtest: namehere");
+    test_out("    # Subtest: namehere");
     test_out("    1..2");
     test_out("    ok 1 - foo");
     test_out("    not ok 2 - bar");
@@ -120,7 +120,7 @@ sub barfoo_ok_2 ($;$) {
     barfoo_ok($value, $name);
 }
 {
-    test_out("# Subtest: namehere");
+    test_out("    # Subtest: namehere");
     test_out("    1..2");
     test_out("    ok 1 - foo");
     test_out("    not ok 2 - bar");
@@ -138,10 +138,10 @@ sub barfoo_ok_2 ($;$) {
 
 # A subtest-based predicate called from within a subtest
 {
-    test_out("# Subtest: outergroup");
+    test_out("    # Subtest: outergroup");
     test_out("    1..2");
     test_out("    ok 1 - this passes");
-    test_out("    # Subtest: namehere");
+    test_out("        # Subtest: namehere");
     test_out("        1..2");
     test_out("        ok 1 - foo");
     test_out("        not ok 2 - bar");
similarity index 52%
rename from cpan/Test-Simple/t/Legacy/subtest/threads.t
rename to cpan/Test-Simple/t/subtest/threads.t
index df00f40..0d70b1e 100644 (file)
@@ -3,7 +3,15 @@
 use strict;
 use warnings;
 
-use Test::CanThread;
+use Config;
+BEGIN {
+    unless ( $] >= 5.008001 && $Config{'useithreads'} && 
+             eval { require threads; 'threads'->import; 1; }) 
+    {
+        print "1..0 # Skip: no working threads\n";
+        exit 0;
+    }
+}
 
 use Test::More;
 
similarity index 87%
rename from cpan/Test-Simple/t/Legacy/subtest/todo.t
rename to cpan/Test-Simple/t/subtest/todo.t
index 82de40e..7269da9 100644 (file)
@@ -43,8 +43,7 @@ plan tests => 8 * @test_combos;
 sub test_subtest_in_todo {
     my ($name, $code, $want_out, $no_tests_run) = @_;
 
-    #my $xxx = $no_tests_run ? 'No tests run for subtest "xxx"' : 'xxx';
-    my @no_test_err = $no_tests_run ? ('#   No tests run for subtest.') : ();
+    my $xxx = $no_tests_run ? 'No tests run for subtest "xxx"' : 'xxx';
 
     chomp $want_out;
     my @outlines = split /\n/, $want_out;
@@ -53,17 +52,14 @@ sub test_subtest_in_todo {
         my ($set_via, $todo_reason, $level) = @$combo;
 
         test_out(
-            "# Subtest: xxx",
+            "    # Subtest: xxx",
             @outlines,
-            map { my $x = $_; $x =~ s/\s+$//; $x } (
-                "not ok 1 - xxx # TODO $todo_reason",
-                "#   Failed (TODO) test 'xxx'",
-                "#   at $0 line $line{xxx}.",
-                @no_test_err,
-                "not ok 2 - regular todo test # TODO $todo_reason",
-                "#   Failed (TODO) test 'regular todo test'",
-                "#   at $0 line $line{reg}.",
-            )
+            "not ok 1 - $xxx # TODO $todo_reason",
+            "#   Failed (TODO) test '$xxx'",
+            "#   at $0 line $line{xxx}.",
+            "not ok 2 - regular todo test # TODO $todo_reason",
+            "#   Failed (TODO) test 'regular todo test'",
+            "#   at $0 line $line{reg}.",
         );
 
         {
@@ -81,14 +77,14 @@ sub test_subtest_in_todo {
             }
         }
 
-        last unless test_test("$name ($level), todo [$todo_reason] set via $set_via");
+        test_test("$name ($level), todo [$todo_reason] set via $set_via");
     }
 }
 
 package Foo; # If several stack frames are in package 'main' then $Level
              # could be wrong and $main::TODO might still be found.  Using
              # another package makes the tests more sensitive.
-
+             
 sub main::subtest_at_level {
     my ($name, $code, $level) = @_;
 
@@ -10,7 +10,7 @@ BEGIN {
 use strict;
 use warnings;
 
-# Can't use Test::More that would set exported_to()
+# Can't use Test::More, that would set exported_to()
 use Test::Builder;
 use Test::Builder::Module;
 
similarity index 60%
rename from cpan/Test-Simple/t/Legacy/threads.t
rename to cpan/Test-Simple/t/threads.t
index 28b0bd1..42ba8c2 100644 (file)
@@ -7,7 +7,15 @@ BEGIN {
     }
 }
 
-use Test::CanThread qw/AUTHOR_TESTING/;
+use Config;
+BEGIN {
+    unless ( $] >= 5.008001 && $Config{'useithreads'} && 
+             eval { require threads; 'threads'->import; 1; }) 
+    {
+        print "1..0 # Skip: no working threads\n";
+        exit 0;
+    }
+}
 
 use strict;
 use Test::Builder;
@@ -17,8 +25,8 @@ $Test->exported_to('main');
 $Test->plan(tests => 6);
 
 for(1..5) {
-       'threads'->create(sub {
-          $Test->ok(1,"Each of these should app the test number")
+       'threads'->create(sub { 
+          $Test->ok(1,"Each of these should app the test number") 
     })->join;
 }
 
similarity index 93%
rename from cpan/Test-Simple/t/Legacy/todo.t
rename to cpan/Test-Simple/t/todo.t
index 9b5aa75..91861be 100644 (file)
@@ -9,13 +9,6 @@ BEGIN {
 
 use Test::More;
 
-BEGIN {
-    require warnings;
-    if( eval "warnings->can('carp')" ) {
-        plan skip_all => 'Modern::Open is installed, which breaks this test';
-    }
-}
-
 plan tests => 36;
 
 
@@ -81,7 +74,7 @@ TODO: {
         fail("So very failed");
     }
     is( $warning, "todo_skip() needs to know \$how_many tests are in the ".
-                  "block at $0 line 74.\n",
+                  "block at $0 line 74\n",
         'todo_skip without $how_many warning' );
 }
 
@@ -89,9 +82,9 @@ my $builder = Test::More->builder;
 my $exported_to = $builder->exported_to;
 TODO: {
     $builder->exported_to("Wibble");
-
+    
     local $TODO = "testing \$TODO with an incorrect exported_to()";
-
+    
     fail("Just testing todo");
 }
 
@@ -144,7 +137,6 @@ is $is_todo, 'Nesting TODO',
     ok $in_todo,    "  but we're in_todo()";
 }
 
-# line 200
 eval {
     $builder->todo_end;
 };
similarity index 90%
rename from cpan/Test-Simple/t/Legacy/undef.t
rename to cpan/Test-Simple/t/undef.t
index d560f82..2c8cace 100644 (file)
@@ -11,14 +11,7 @@ BEGIN {
 }
 
 use strict;
-use Test::More;
-
-BEGIN {
-    require warnings;
-    if( eval "warnings->can('carp')" ) {
-        plan skip_all => 'Modern::Open is installed, which breaks this test';
-    }
-}
+use Test::More tests => 21;
 
 BEGIN { $^W = 1; }
 
@@ -43,7 +36,7 @@ sub warnings_like {
 
 
 my $Filename = quotemeta $0;
-
+   
 
 is( undef, undef,           'undef is undef');
 no_warnings;
@@ -103,5 +96,3 @@ no_warnings;
     is_deeply([ undef ], [ undef ]);
     no_warnings;
 }
-
-done_testing;
similarity index 98%
rename from cpan/Test-Simple/t/Legacy/utf8.t
rename to cpan/Test-Simple/t/utf8.t
index 2930226..f68b2a7 100644 (file)
@@ -43,9 +43,9 @@ SKIP: {
 
     for my $method (keys %handles) {
         my $src = $handles{$method};
-
+        
         my $dest = Test::More->builder->$method;
-
+        
         is_deeply { map { $_ => 1 } PerlIO::get_layers($dest) },
                   { map { $_ => 1 } PerlIO::get_layers($src)  },
                   "layers copied to $method";
@@ -56,7 +56,7 @@ SKIP: {
 # Test utf8 is ok.
 {
     my $uni = "\x{11e}";
-
+    
     my @warnings;
     local $SIG{__WARN__} = sub {
         push @warnings, @_;
diff --git a/cpan/Test-Simple/t/versions.t b/cpan/Test-Simple/t/versions.t
new file mode 100644 (file)
index 0000000..cb83599
--- /dev/null
@@ -0,0 +1,28 @@
+#!/usr/bin/perl -w
+
+# Make sure all the modules have the same version
+#
+# TBT has its own version system.
+
+use strict;
+use Test::More;
+
+require Test::Builder;
+require Test::Builder::Module;
+require Test::Simple;
+
+my $dist_version = Test::More->VERSION;
+
+like( $dist_version, qr/^ \d+ \. \d+ $/x );
+
+my @modules = qw(
+    Test::Simple
+    Test::Builder
+    Test::Builder::Module
+);
+
+for my $module (@modules) {
+    is( $dist_version, $module->VERSION, $module );
+}
+
+done_testing(4);
diff --git a/cpan/Test-Simple/t/xt/dependents.t b/cpan/Test-Simple/t/xt/dependents.t
deleted file mode 100644 (file)
index 04b9a76..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/perl
-
-# Test important dependant modules so we don't accidentally half of CPAN.
-
-use strict;
-use warnings;
-
-use Test::More;
-
-BEGIN {
-    plan skip_all => "Dependents only tested when releasing" unless $ENV{PERL_RELEASING};
-}
-
-require File::Spec;
-use CPAN;
-
-CPAN::HandleConfig->load;
-$CPAN::Config->{test_report} = 0;
-
-# Module which depend on Test::More to test
-my @Modules = qw(
-    Test::Tester
-    Test::Most
-    Test::Warn
-    Test::Exception
-    Test::Class
-    Test::Deep
-    Test::Differences
-    Test::NoWarnings
-);
-
-# Modules which are known to be broken
-my %Broken = map { $_ => 1 } (
-    'Test::Most',
-    'Test::Differences'
-);
-
-# Have to do it here because CPAN chdirs.
-my $perl5lib = join ":", File::Spec->rel2abs("blib/lib"), File::Spec->rel2abs("lib");
-
-TODO: for my $name (@ARGV ? @ARGV : @Modules) {
-    local $TODO = "$name known to be broken" if $Broken{$name};
-    local $ENV{PERL5LIB} = $perl5lib;
-
-    my $module = CPAN::Shell->expand("Module", $name);
-    $module->make;
-    $module->test;
-    my $test_result = $module->distribution->{make_test};
-    ok( $test_result && !$test_result->failed, $name );
-}
-done_testing();
index 07d9567..f1a5780 100644 (file)
@@ -10,7 +10,7 @@ use SelfLoader;
 
 use vars qw { $VERSION @ISA %EXPORT_TAGS };
 BEGIN {
-       $VERSION     = '2.02';
+       $VERSION     = '2.03';
        @ISA         = 'Exporter';
        %EXPORT_TAGS = (
                ALL => [ qw{
index 8771d43..87f9c70 100644 (file)
@@ -2,7 +2,7 @@ package Text::ParseWords;
 
 use strict;
 require 5.006;
-our $VERSION = "3.29";
+our $VERSION = "3.30";
 
 
 use Exporter;
@@ -202,8 +202,8 @@ one line you can call &parse_line() directly and save a function
 call.
 
 The $keep argument is a boolean flag.  If true, then the tokens are
-split on the specified delimiter, but all other characters (quotes,
-backslashes, etc.) are kept in the tokens.  If $keep is false then the
+split on the specified delimiter, but all other characters (including
+quotes and backslashes) are kept in the tokens.  If $keep is false then the
 &*quotewords() functions remove all quotes and backslashes that are
 not themselves backslash-escaped or inside of single quotes (i.e.,
 &quotewords() tries to interpret these characters just like the Bourne
@@ -243,27 +243,27 @@ demonstrating:
 
 =over 4
 
-=item 0
+=item 0Z<>
 
 a simple word
 
-=item 1
+=item 1Z<>
 
 multiple spaces are skipped because of our $delim
 
-=item 2
+=item 2Z<>
 
 use of quotes to include a space in a word
 
-=item 3
+=item 3Z<>
 
 use of a backslash to include a space in a word
 
-=item 4
+=item 4Z<>
 
 use of a backslash to remove the special meaning of a double-quote
 
-=item 5
+=item 5Z<>
 
 another simple word (note the lack of effect of the
 backslashed double-quote)
@@ -295,4 +295,9 @@ for assuring me that a &nested_quotewords() would be useful, and to
 Jeff Friedl <jfriedl@yahoo-inc.com> for telling me not to worry about
 error-checking (sort of-- you had to be there).
 
+=head1 COPYRIGHT AND LICENSE
+
+This library is free software; you may redistribute and/or modify it
+under the same terms as Perl itself.
+
 =cut
index dfc9836..f939b66 100644 (file)
@@ -17,7 +17,7 @@ use File::Spec;
 
 no warnings 'utf8';
 
-our $VERSION = '1.11';
+our $VERSION = '1.12';
 our $PACKAGE = __PACKAGE__;
 
 ### begin XS only ###
index 91537e1..6adcbeb 100644 (file)
@@ -268,8 +268,8 @@ _derivCE_9 (code)
     _derivCE_24 = 5
   PREINIT:
     UV base, aaaa, bbbb;
-    U8 a[VCE_Length + 1] = "\x00\xFF\xFF\x00\x20\x00\x02\xFF\xFF";
-    U8 b[VCE_Length + 1] = "\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF";
+    U8 a[VCE_Length + 1] = "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
+    U8 b[VCE_Length + 1] = "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
     bool basic_unified = 0;
   PPCODE:
     if (CJK_UidIni <= code) {
@@ -299,6 +299,8 @@ _derivCE_9 (code)
     a[2] = (U8)(aaaa & 0xFF);
     b[1] = (U8)(bbbb >> 8);
     b[2] = (U8)(bbbb & 0xFF);
+    a[4] = (U8)(0x20); /* second octet of level 2 */
+    a[6] = (U8)(0x02); /* second octet of level 3 */
     a[7] = b[7] = (U8)(code >> 8);
     a[8] = b[8] = (U8)(code & 0xFF);
     EXTEND(SP, 2);
@@ -311,8 +313,8 @@ _derivCE_8 (code)
     UV code
   PREINIT:
     UV aaaa, bbbb;
-    U8 a[VCE_Length + 1] = "\x00\xFF\xFF\x00\x02\x00\x01\xFF\xFF";
-    U8 b[VCE_Length + 1] = "\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF";
+    U8 a[VCE_Length + 1] = "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
+    U8 b[VCE_Length + 1] = "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
   PPCODE:
     aaaa =  0xFF80 + (code >> 15);
     bbbb = (code & 0x7FFF) | 0x8000;
@@ -320,6 +322,8 @@ _derivCE_8 (code)
     a[2] = (U8)(aaaa & 0xFF);
     b[1] = (U8)(bbbb >> 8);
     b[2] = (U8)(bbbb & 0xFF);
+    a[4] = (U8)(0x02); /* second octet of level 2 */
+    a[6] = (U8)(0x01); /* second octet of level 3 */
     a[7] = b[7] = (U8)(code >> 8);
     a[8] = b[8] = (U8)(code & 0xFF);
     EXTEND(SP, 2);
@@ -331,10 +335,12 @@ void
 _uideoCE_8 (code)
     UV code
   PREINIT:
-    U8 uice[VCE_Length + 1] = "\x00\xFF\xFF\x00\x20\x00\x02\xFF\xFF";
+    U8 uice[VCE_Length + 1] = "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
   PPCODE:
     uice[1] = uice[7] = (U8)(code >> 8);
     uice[2] = uice[8] = (U8)(code & 0xFF);
+    uice[4] = (U8)(0x20); /* second octet of level 2 */
+    uice[6] = (U8)(0x02); /* second octet of level 3 */
     PUSHs(sv_2mortal(newSVpvn((char *) uice, VCE_Length)));
 
 
index f734dee..0ea47af 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.11';
+our $VERSION = '1.12';
 
 my %u2p;
 my $wt = 0x8000;
index 9ad06b0..8052bfa 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.11';
+our $VERSION = '1.12';
 
 my %u2p;
 my $wt = 0x8000;
index 4406c80..e8d5f44 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.11';
+our $VERSION = '1.12';
 
 my %u2p;
 my $wt = 0x8000;
index ac39beb..3746d01 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use warnings;
 use Unicode::Collate;
 
-our $VERSION = '1.11';
+our $VERSION = '1.12';
 
 my %jamo2prim = (
     0x1100, 0x376F,   0x1101, 0x3770,   0x1102, 0x3771,   0x1103, 0x3772,
index e64b756..b8f3976 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.11';
+our $VERSION = '1.12';
 
 my %u2p;
 my $wt = 0x8000;
index 34c7dd9..a7f7526 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.11';
+our $VERSION = '1.12';
 
 my %u2p;
 my $wt = 0x8000;
index 251ce52..9e5ced0 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.11';
+our $VERSION = '1.12';
 
 my %u2p;
 my $wt = 0x8000;
index 4662861..184ab6c 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 use Carp;
 use base qw(Unicode::Collate);
 
-our $VERSION = '1.11';
+our $VERSION = '1.12';
 
 my $PL_EXT  = '.pl';
 
index ebb3081..f962e61 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0149      ; [.1A7D.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
 ENTRY
index 8465744..c5eef31 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0629      ; [.2025.0021.0002] # ARABIC LETTER TEH MARBUTA
 FE94      ; [.2025.0021.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
index 7afc12d..a7efd2a 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0982      ; [.23CC.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
 0981      ; [.23CC.0020.0002][.FFF2.0000.0000] # BENGALI SIGN CANDRABINDU
index 2c8c32a..09f159b 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
 # schwa doesn't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E7      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
index 592a6b1..8c2af06 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x041A, 0x043A, 0x0427, 0x0447, 0x042B, 0x044B,
index b704280..645125c 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
index 120d2ff..a876406 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0982      ; [.23CC.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
 0983      ; [.23CC.0020.0002][.FFF2.0000.0000] # BENGALI SIGN VISARGA
index 3946bdb..308c68f 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    backwards => 2,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
index f9be2aa..f75d266 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010D      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
 0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
index b7f3c6a..4449bcd 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
 0043 0068 ; [.193F.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
index 614bce7..2e50971 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    upper_before_lower => 1,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index 1c3617f..00daa92 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E4      ; [.190C.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
 0061 0308 ; [.190C.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
index 6d19565..4ac1b91 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
 # d-tail, open-e, f-hook, gamma, eng, open-o, v-hook don't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 0302      ; [.0000.0029.0002] # COMBINING CIRCUMFLEX ACCENT
index 8904187..bdecddb 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0109      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
 0063 0302 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
index bd74733..c151572 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00F1      ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
 006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
index fcfbcfe..cc1bdfc 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
 0043 0068 ; [.193F.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
index 66dfa39..8611cc5 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0161      ; [.1B54.0020.0002] # LATIN SMALL LETTER S WITH CARON
 0073 030C ; [.1B54.0020.0002] # LATIN SMALL LETTER S WITH CARON
index 11d9bc0..f68dfd9 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0650      ; [.0000.0077.0002] # ARABIC KASRA
 064B      ; [.0000.007B.0002] # ARABIC FATHATAN
index 377a433..65211cc 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
 # in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
index a290717..aa8335e 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
 # in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
index 5988318..e0a3bf8 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00F1      ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
 006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
index ee947d3..0f8e8e0 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index e53c018..b5083bd 100644 (file)
@@ -1,4 +1,4 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    backwards => 2,
 };
index 38a222f..6984e21 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0A82      ; [.2438.0020.0002][.FFF1.0000.0000] # GUJARATI SIGN ANUSVARA
 0A81      ; [.2438.0021.0002][.FFF1.0000.0000] # GUJARATI SIGN CANDRABINDU
index 303fcc5..244d693 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
 # b-hook, d-hook, k-hook, y-hook don't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 0073 0068 ; [.1B34.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
index c67e26f..059b55f 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0065      ; [.190D.0020.0002] # LATIN SMALL LETTER E
 0045      ; [.190D.0020.0008] # LATIN CAPITAL LETTER E
index 8fc9019..0b72a65 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0902      ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
 0901      ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
index db73f1e..2a8e8fe 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010D      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
 0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
index 93fe582..c5e8ca0 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0073 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER S>
 0063 0053 ; [.193F.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
index ab0c1b0..8d02f53 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0587      ; [.1FBD.0020.0002][.FFF1.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
 0584      ; [.1FBD.0020.0002][.FFF0.0000.0000] # ARMENIAN SMALL LETTER KEH
index d336161..c5a852b 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.1926.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
 0043 0068 ; [.1926.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
index aedb0d9..0c0c06b 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E1      ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
 0061 0301 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
index 52591ce..a8fa663 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::JISX0208;
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    overrideCJK => \&Unicode::Collate::CJK::JISX0208::weightJISX0208,
    entry => <<'ENTRY', # for DUCET v7.0.0
 30A1      ; [.38D4.0020.000F.0002] # KATAKANA LETTER SMALL A
index b9ff218..24e5abb 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
index ea9012b..9fcae20 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index 7c11dbf..ef846e6 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0C82      ; [.2549.0020.0002][.FFF1.0000.0000] # KANNADA SIGN ANUSVARA
 0C83      ; [.2549.0020.0002][.FFF2.0000.0000] # KANNADA SIGN VISARGA
index 12521b5..e328bf4 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Korean;
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    overrideCJK => \&Unicode::Collate::CJK::Korean::weightKorean,
    entry => <<'ENTRY', # for DUCET v7.0.0
 F967      ; [.3776.0021.0002.4E0D][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
index 43ea485..d2e645a 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0902      ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
 0901      ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
index 85eb3e4..e461791 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 025B      ; [.196F.0020.0002] # LATIN SMALL LETTER OPEN E
 0190      ; [.196F.0020.0008] # LATIN CAPITAL LETTER OPEN E
index 4b96426..5782ba2 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
 # in cldr test/lt.xml why I-dot-acute > I-dot though i-dot-acute < i-dot ?
    entry => <<'ENTRY', # for DUCET v7.0.0
 0049 0307 ; [.19F6.0020.0008][.0000.002E.0002] # <LATIN CAPITAL LETTER I, COMBINING DOT ABOVE>
index 95bf61c..c490ce3 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010D      ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CARON
 0063 030C ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CARON
index e89dc56..8ad888d 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0415, 0x0435, 0x0416, 0x0436,
                0x0417, 0x0437, 0x0418, 0x0438, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x0423, 0x0443, 0x0427, 0x0447, 0x042B, 0x044B,
index c009168..1cced22 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0D3D      ; [.0000.00C0.0002] # MALAYALAM SIGN AVAGRAHA
 0D57      ; [.25C8.0020.0002] # MALAYALAM AU LENGTH MARK
index 0218d97..98bc0b1 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0902      ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
 0901      ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
index c2fb762..e8cca66 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    upper_before_lower => 1,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010B      ; [.193D.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
index c037e7d..749807d 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index c037e7d..749807d 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index 89d9056..0a43662 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00EA      ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
 0065 0302 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
index b813134..4c4e9ce 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.1BE4.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
 0043 0068 ; [.1BE4.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
index ecbfe0d..3af7bfe 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0B01      ; [.2489.0020.0002][.FFF1.0000.0000] # ORIYA SIGN CANDRABINDU
 0B02      ; [.2489.0020.0002][.FFF2.0000.0000] # ORIYA SIGN ANUSVARA
index 9dbed5f..0db0eca 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0A71      ; [.0000.00BD.0002] # GURMUKHI ADDAK
 0A03      ; [.0000.00BC.0002] # GURMUKHI SIGN VISARGA
index f7cb9c6..2b155f4 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0105      ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
 0061 0328 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
index ecb87a8..9a59f36 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0103      ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
 0061 0306 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
index b704280..645125c 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
index 0218d97..98bc0b1 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0902      ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
 0901      ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
index 96acf54..957b896 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
 # eng, g-stroke, t-stroke don't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E1      ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
index f226cf4..5510c73 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0D82      ; [.25DC.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
 0D83      ; [.25DC.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
index 154a4e3..7f2a1fe 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0D82      ; [.25DC.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
 0D83      ; [.25DC.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
index 0a81f09..ce7eaf0 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E4      ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
 0061 0308 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
index 3fec1a3..6d5bd70 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010D      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
 0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
index 3e0efc7..deaf103 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E7      ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
 0063 0327 ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
index 0b17447..90d5c73 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0418, 0x0438, 0x0406, 0x0456,
                0x041E, 0x043E, 0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443,
index 966a649..7e26b33 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index 80eab22..9d850b7 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index bfb7bb9..7009712 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0B82      ; [.24CC.0020.0002][.FFF0.0000.0000] # TAMIL SIGN ANUSVARA
 0B83      ; [.24CC.0020.0002][.FFF1.0000.0000] # TAMIL SIGN VISARGA
index 3f49d4b..22aaffa 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0C01      ; [.2500.0020.0002][.FFF1.0000.0000] # TELUGU SIGN CANDRABINDU
 0C02      ; [.2500.0020.0002][.FFF2.0000.0000] # TELUGU SIGN ANUSVARA
index d678747..1924027 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    variable => 'shifted',
    alternate => 'shifted',
    entry => <<'ENTRY', # for DUCET v7.0.0
index 89d9056..0a43662 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00EA      ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
 0065 0302 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
index 472fca1..0125da2 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 006E 0067 ; [.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
 004E 0067 ; [.1A7E.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
index 6288f2b..beaba4f 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E7      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
 0063 0327 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
index 0585112..73c1090 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x041E, 0x043E, 0x04E8, 0x04E9,
                0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447, 0x042B, 0x044B,
index 767d14c..53de5d4 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0623      ; [.2015.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
 0627 0654 ; [.2015.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
index bab2e05..c03a839 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
 # 0306 is not a Vietnamese tone, just to avoid \x{306} eq. to something.
    entry => <<'ENTRY', # for DUCET v7.0.0
 0309      ; [.0000.0026.0002][.0000.00F0.0000] # COMBINING HOOK ABOVE
index a530399..8481566 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0061 0061 ; [.190C.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
 00E4 00E4 ; [.190C.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
index 74c7858..3d78de3 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
 # eng doesn't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E0      ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
index 4afdc41..5cffcd1 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 1EB9      ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
 0065 0323 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
index e8a2b44..ec4296f 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
 0061 0304 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index ff35bb1..d8929ef 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Big5;
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    overrideCJK => \&Unicode::Collate::CJK::Big5::weightBig5,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index 5bcaf2d..ad11721 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::GB2312;
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    overrideCJK => \&Unicode::Collate::CJK::GB2312::weightGB2312,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index c4e88a9..37a7b31 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Pinyin;
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    overrideCJK => \&Unicode::Collate::CJK::Pinyin::weightPinyin,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index bc6fd19..dc88d04 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Stroke;
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    overrideCJK => \&Unicode::Collate::CJK::Stroke::weightStroke,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index 906fee1..1463055 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Zhuyin;
 +{
-   locale_version => 1.11,
+   locale_version => 1.12,
    overrideCJK => \&Unicode::Collate::CJK::Zhuyin::weightZhuyin,
    entry => <<'ENTRY', # for DUCET v7.0.0
 02C9      ; [.0000.0199.0002] # MODIFIER LETTER MACRON
index 0b5ddb3..874d845 100644 (file)
@@ -16,7 +16,7 @@ BEGIN {
 
 use strict;
 use warnings;
-BEGIN { $| = 1; print "1..45\n"; }
+BEGIN { $| = 1; print "1..48\n"; }
 my $count = 0;
 sub ok ($;$) {
     my $p = my $r = shift;
@@ -107,9 +107,14 @@ ok($Collator->viewSortKey('a'),
 ok($Collator->viewSortKey("\x{304C}"),
     '[1926 | 0020 013D | 000E 0002 | FFFF FFFF | 0000 304C]');
 
+ok($Collator->viewSortKey("\x{4E00}"),
+    '[FB40 CE00 | 0020 | 0002 | FFFF FFFF | 0000 4E00]');
+
 ok($Collator->viewSortKey("\x{100000}"),
     '[FBE0 8000 | 0020 | 0002 | FFFF FFFF | 0010 0000]');
 
+##### 38
+
 eval { require Unicode::Normalize };
 if (!$@) {
     $Collator->change(normalization => "NFD");
@@ -122,7 +127,7 @@ if (!$@) {
 
 $Collator->change(normalization => undef);
 
-##### 38
+##### 39
 
 $Collator->change(level => 3);
 
@@ -139,7 +144,7 @@ $Collator->change(level => 1);
 ok($Collator->viewSortKey("\x{304C}"),
     '[1926 | | | | 0000 304C]');
 
-##### 41
+##### 42
 
 $Collator->change(UCA_Version => 8);
 
@@ -161,4 +166,10 @@ $Collator->change(level => 4);
 ok($Collator->viewSortKey("\x{304C}"),
     '[1926|0020 013D|000E 0002|FFFF FFFF|0000 304C]');
 
-##### 45
+ok($Collator->viewSortKey("\x{4E00}"),
+    '[4E00|0020|0002|FFFF|0000 4E00]');
+
+ok($Collator->viewSortKey("\x{100000}"),
+    '[FFA0 8000|0002|0001|FFFF FFFF|0010 0000]');
+
+##### 48
index e3a081d..72d5fce 100644 (file)
@@ -37,7 +37,7 @@ my $objEs = Unicode::Collate::Locale->
     new(locale => 'ES', normalization => undef);
 
 ok($objEs->getlocale, 'es');
-ok($objEs->locale_version, 1.11);
+ok($objEs->locale_version, 1.12);
 
 $objEs->change(level => 1);
 
index d8a2b0e..e4d3588 100644 (file)
@@ -37,7 +37,7 @@ my $objEsTrad = Unicode::Collate::Locale->
     new(locale => 'ES-trad', normalization => undef);
 
 ok($objEsTrad->getlocale, 'es__traditional');
-ok($objEsTrad->locale_version, 1.11);
+ok($objEsTrad->locale_version, 1.12);
 
 $objEsTrad->change(level => 1);
 
index fa8cdf4..779a1bf 100644 (file)
@@ -40,7 +40,7 @@ my $objFr = Unicode::Collate::Locale->
     new(locale => 'FR', normalization => undef);
 
 ok($objFr->getlocale, 'fr');
-ok($objFr->locale_version, 1.11);
+ok($objFr->locale_version, 1.12);
 
 $objFr->change(level => 1);
 
index 381d4c5..91da596 100644 (file)
@@ -16,7 +16,7 @@ BEGIN {
 
 use strict;
 use warnings;
-BEGIN { $| = 1; print "1..93\n"; } # 53 + 4 x @Versions
+BEGIN { $| = 1; print "1..106\n"; } # 62 + 4 x @Versions
 my $count = 0;
 sub ok ($;$) {
     my $p = my $r = shift;
@@ -39,9 +39,12 @@ my $Collator = Unicode::Collate->new(
   UCA_Version => 24,
 );
 
-ok($Collator->viewSortKey(""), "[| | |]");
+ok($Collator->viewSortKey(""),         '[| | |]');
+ok($Collator->viewSortKey("\0"),       '[| | |]');
+ok($Collator->viewSortKey("\x{200B}"), '[| | |]');
 
-ok($Collator->viewSortKey("A"), "[0A15 | 0020 | 0008 | FFFF]");
+ok($Collator->viewSortKey("A"), '[0A15 | 0020 | 0008 | FFFF]');
+ok($Collator->viewSortKey('a'), '[0A15 | 0020 | 0002 | FFFF]');
 
 ok($Collator->viewSortKey("ABC"),
     "[0A15 0A29 0A3D | 0020 0020 0020 | 0008 0008 0008 | FFFF FFFF FFFF]");
@@ -53,6 +56,15 @@ ok($Collator->viewSortKey("!\x{300}"), "[| | | 024B]");
 
 ok($Collator->viewSortKey("\x{300}"), "[| 0035 | 0002 | FFFF]");
 
+ok($Collator->viewSortKey("\x{304C}"),
+    '[1926 | 0020 013D | 000E 0002 | FFFF FFFF]');
+
+ok($Collator->viewSortKey("\x{4E00}"),
+    '[FB40 CE00 | 0020 | 0002 | FFFF FFFF]');
+
+ok($Collator->viewSortKey("\x{100000}"),
+    '[FBE0 8000 | 0020 | 0002 | FFFF FFFF]');
+
 $Collator->change(level => 3);
 ok($Collator->viewSortKey("A"), "[0A15 | 0020 | 0008 |]");
 
@@ -62,7 +74,7 @@ ok($Collator->viewSortKey("A"), "[0A15 | 0020 | |]");
 $Collator->change(level => 1);
 ok($Collator->viewSortKey("A"), "[0A15 | | |]");
 
-##### 10
+##### 16
 
 $Collator->change(level => 4, UCA_Version => 8);
 
@@ -80,6 +92,15 @@ ok($Collator->viewSortKey("!\x{300}"), "[|0035|0002|024B FFFF]");
 
 ok($Collator->viewSortKey("\x{300}"), "[|0035|0002|FFFF]");
 
+ok($Collator->viewSortKey("\x{304C}"),
+    '[1926|0020 013D|000E 0002|FFFF FFFF]');
+
+ok($Collator->viewSortKey("\x{4E00}"),
+    '[4E00|0020|0002|FFFF]');
+
+ok($Collator->viewSortKey("\x{100000}"),
+    '[FFA0 8000|0002|0001|FFFF FFFF]');
+
 $Collator->change(level => 3);
 ok($Collator->viewSortKey("A"), "[0A15|0020|0008|]");
 
@@ -89,7 +110,7 @@ ok($Collator->viewSortKey("A"), "[0A15|0020||]");
 $Collator->change(level => 1);
 ok($Collator->viewSortKey("A"), "[0A15|||]");
 
-##### 19
+##### 28
 
 $Collator->change(level => 3, UCA_Version => 9);
 ok($Collator->viewSortKey("A\x{300}z\x{301}"),
@@ -115,6 +136,8 @@ $Collator->change(backwards => []);
 ok($Collator->viewSortKey("A\x{300}z\x{301}"),
     "[0A15 0C13 | 0020 0035 0020 0032 | 0008 0002 0002 0002 |]");
 
+##### 34
+
 $Collator->change(level => 4);
 
 # Variable
@@ -158,7 +181,7 @@ ok($Collator->viewSortKey("?!."), '[| | | 024E 024B 0255]');
 
 $Collator->change(%origVar);
 
-##### 37
+##### 46
 
 # Level 3 weight
 
@@ -199,7 +222,7 @@ ok($Collator->viewSortKey("a\x{3042}"),
 ok($Collator->viewSortKey("A\x{30A2}"),
     '[0A15 1921 | 0020 0020 | 0008 0011 | FFFF FFFF]');
 
-##### 47
+##### 56
 
 our $el = Unicode::Collate->new(
   entry => <<'ENTRY',
@@ -243,9 +266,9 @@ ok($el->viewSortKey("l\x{FF4C}\x{217C}\x{2113}\x{24DB}"),
 ok($el->viewSortKey("L\x{FF2C}\x{216C}\x{2112}\x{24C1}"),
     "[$el12 | 0008 0009 000A 000B 000C | FFFF FFFF FFFF FFFF FFFF]");
 
-##### 53
+##### 62
 
-my @Versions = (9, 11, 14, 16, 18, 20, 22, 24, 26, 28);
+my @Versions = (9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30);
 
 for my $v (@Versions) {
     $Collator->change(UCA_Version => $v);
index b31603b..445ed12 100644 (file)
@@ -1,7 +1,7 @@
 package parent;
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.228';
+$VERSION = '0.232';
 
 sub import {
     my $class = shift;
index 851a438..a8708b4 100644 (file)
@@ -13,8 +13,18 @@ use Config;
 use lib 't/lib';
 
 plan skip_all => ".pmc are only available with 5.6 and later" if $] < 5.006;
+my $no_pmc;
+
+if (Config->can('non_bincompat_options')) {
+    foreach(Config::non_bincompat_options()) {
+       if($_ eq "PERL_DISABLE_PMC"){
+           $no_pmc = 1;
+           last;
+       }
+    }
+};
 plan skip_all => ".pmc are disabled in this perl"
-    if $Config{ccflags} =~ /(?<!\w)-DPERL_DISABLE_PMC\b/;
+    if $no_pmc;
 plan tests => 3;
 
 use vars qw($got_here);
index 62aa679..5b191eb 100644 (file)
@@ -87,7 +87,7 @@ BEGIN {
     }
 }
 
-our $VERSION = '1.35';
+our $VERSION = '1.36';
 
 our $MaxEvalLen = 0;
 our $Verbose    = 0;
index 8863618..a602297 100644 (file)
@@ -2,7 +2,7 @@ package Carp::Heavy;
 
 use Carp ();
 
-our $VERSION = '1.35';
+our $VERSION = '1.36';
 
 # Carp::Heavy was merged into Carp in version 1.12.  Any mismatched versions
 # after this point are not significant and can be ignored.
index b12c482..3d707a1 100644 (file)
@@ -28,10 +28,10 @@ BEGIN {
 }
 
 {
-  my $str = Carp::longmess("foo");
+  my $line = __LINE__; my $str = Carp::longmess("foo");
   is(
     $str,
-    "foo at t/Carp.t line 31.\n",
+    "foo at $0 line $line.\n",
     "we don't overshoot the top stack frame",
   );
 }
index 15a2e00..1575b29 100644 (file)
@@ -13,7 +13,7 @@ sub rx { qr/$_[0]/ }
 # releases, U+E9 is 0x51 on all EBCDIC code pages supported then.
 my $e9 = sprintf "%02x", (($] ge 5.007_003)
                           ? utf8::unicode_to_native(0xe9)
-                          : ((ord("A" == 193))
+                          : ((ord("A") == 193)
                              ? 0x51
                              : 0xE9));
 my $chr_e9 = chr eval "0x$e9";
@@ -43,8 +43,14 @@ like lm(qr/a\x{666}/), qr/main::lm\(qr\(a\\x\{666\}\)u?\)/;
 like lm(rx("a\x{666}")), qr/main::lm\(qr\(a${x666_rx}\)u?\)/;
 like lm(qr/L${chr_e9}on/), qr/main::lm\(qr\(L\\x\{?${e9}\}?on\)u?\)/;
 like lm(rx("L${chr_e9}on")), qr/main::lm\(qr\(L${xe9_rx}on\)u?\)/;
-like lm(qr/L${chr_e9}on \x{2603} !/), qr/main::lm\(qr\(L\\x\{?${e9}\}?on \\x\{2603\} !\)u?\)/;
-like lm(rx("L${chr_e9}on \x{2603} !")), qr/main::lm\(qr\(L${xe9_rx}on ${x2603_rx} !\)u?\)/;
+
+
+SKIP: {
+    skip "wide-character-related bug in pre-5.18 perls", 2 if $] lt 5.017_001;
+
+    like lm(qr/L${chr_e9}on \x{2603} !/), qr/main::lm\(qr\(L\\x\{?${e9}\}?on \\x\{2603\} !\)u?\)/;
+    like lm(rx("L${chr_e9}on \x{2603} !")), qr/main::lm\(qr\(L${xe9_rx}on ${x2603_rx} !\)u?\)/;
+}
 
 $Carp::MaxArgLen = 5;
 foreach my $arg ("foo bar baz", "foo bar ba", "foo bar b", "foo bar ", "foo bar", "foo ba") {
@@ -54,10 +60,16 @@ foreach my $arg ("foo b", "foo ", "foo", "fo", "f", "") {
     like lm(rx($arg)), qr/main::lm\(qr\(\Q$arg\E\)u?\)/;
 }
 like lm(qr/foo.bar$/sm), qr/main::lm\(qr\(fo\)\.\.\.u?ms\)/;
-like lm(qr/L${chr_e9}on \x{2603} !/), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
-like lm(rx("L${chr_e9}on \x{2603} !")), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
-like lm(qr/L${chr_e9}on\x{2603}/), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
-like lm(rx("L${chr_e9}on\x{2603}")), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
+
+SKIP: {
+    skip "wide-character-related bug in pre-5.18 perls", 4 if $] lt 5.017_001;
+
+    like lm(qr/L${chr_e9}on \x{2603} !/), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
+    like lm(rx("L${chr_e9}on \x{2603} !")), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
+    like lm(qr/L${chr_e9}on\x{2603}/), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
+    like lm(rx("L${chr_e9}on\x{2603}")), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
+}
+
 like lm(qr/foo\x{2603}/), qr/main::lm\(qr\(fo\)\.\.\.u?\)/;
 like lm(rx("foo\x{2603}")), qr/main::lm\(qr\(fo\)\.\.\.u?\)/;
 
@@ -65,7 +77,12 @@ $Carp::MaxArgLen = 0;
 foreach my $arg ("wibble:" x 20, "foo bar baz") {
     like lm(rx($arg)), qr/main::lm\(qr\(\Q$arg\E\)u?\)/;
 }
-like lm(qr/L${chr_e9}on\x{2603}/), qr/main::lm\(qr\(L\\x\{?${e9}\}?on\\x\{2603\}\)u?\)/;
-like lm(rx("L${chr_e9}on\x{2603}")), qr/main::lm\(qr\(L${xe9_rx}on${x2603_rx}\)u?\)/;
+
+SKIP: {
+    skip "wide-character-related bug in pre-5.18 perls", 2 if $] lt 5.017_001;
+
+    like lm(qr/L${chr_e9}on\x{2603}/), qr/main::lm\(qr\(L\\x\{?${e9}\}?on\\x\{2603\}\)u?\)/;
+    like lm(rx("L${chr_e9}on\x{2603}")), qr/main::lm\(qr\(L${xe9_rx}on${x2603_rx}\)u?\)/;
+}
 
 1;
index a6c2749..42b43b1 100644 (file)
@@ -12,7 +12,7 @@ sub lm { lmm() }
 # releases, U+E9 is 0x51 on all EBCDIC code pages supported then.
 my $e9 = sprintf "%02x", (($] ge 5.007_003)
                           ? utf8::unicode_to_native(0xe9)
-                          : ((ord("A" == 193))
+                          : ((ord("A") == 193)
                              ? 0x51
                              : 0xE9));
 my $chr_e9 = chr utf8::unicode_to_native(0xe9);
index 5073be1..e884298 100644 (file)
@@ -10,7 +10,7 @@
 package Data::Dumper;
 
 BEGIN {
-    $VERSION = '2.157'; # Don't forget to set version and release
+    $VERSION = '2.158'; # Don't forget to set version and release
 }               # date in POD below!
 
 #$| = 1;
@@ -37,6 +37,8 @@ BEGIN {
     or $Useperl = 1;
 }
 
+my $IS_ASCII  = ord 'A' ==  65;
+
 # module vars and their defaults
 $Indent     = 2         unless defined $Indent;
 $Purity     = 0         unless defined $Purity;
@@ -222,8 +224,11 @@ sub DESTROY {}
 
 sub Dump {
     return &Dumpxs
-    unless $Data::Dumper::Useperl || (ref($_[0]) && $_[0]->{useperl}) ||
-           $Data::Dumper::Deparse || (ref($_[0]) && $_[0]->{deparse});
+    unless $Data::Dumper::Useperl || (ref($_[0]) && $_[0]->{useperl})
+        || $Data::Dumper::Deparse || (ref($_[0]) && $_[0]->{deparse})
+
+            # Use pure perl version on earlier releases on EBCDIC platforms
+        || (! $IS_ASCII && $] lt 5.021_010);
     return &Dumpperl;
 }
 
@@ -724,41 +729,71 @@ my %esc = (
     "\e" => "\\e",
 );
 
+my $low_controls = ($IS_ASCII)
+
+                   # This includes \177, because traditionally it has been
+                   # output as octal, even though it isn't really a "low"
+                   # control
+                   ? qr/[\0-\x1f\177]/
+
+                     # EBCDIC low controls.
+                   : qr/[\0-\x3f]/;
+
 # put a string value in double quotes
 sub qquote {
   local($_) = shift;
   s/([\\\"\@\$])/\\$1/g;
+
+  # This efficiently changes the high ordinal characters to \x{} if the utf8
+  # flag is on.  On ASCII platforms, the high ordinals are all the
+  # non-ASCII's.  On EBCDIC platforms, we don't include in these the non-ASCII
+  # controls whose ordinals are less than SPACE, excluded below by the range
+  # \0-\x3f.  On ASCII platforms this range just compiles as part of :ascii:.
+  # On EBCDIC platforms, there is just one outlier high ordinal control, and
+  # it gets output as \x{}.
   my $bytes; { use bytes; $bytes = length }
-  s/([[:^ascii:]])/'\x{'.sprintf("%x",ord($1)).'}'/ge if $bytes > length;
-  return qq("$_") unless
-    /[^ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~]/;  # fast exit
+  s/([^[:ascii:]\0-\x3f])/sprintf("\\x{%x}",ord($1))/ge
+    if $bytes > length
 
-  my $high = shift || "";
+       # The above doesn't get the EBCDIC outlier high ordinal control when
+       # the string is UTF-8 but there are no UTF-8 variant characters in it.
+       # We want that to come out as \x{} anyway.  We need is_utf8() to do
+       # this.
+       || (! $IS_ASCII && $] ge 5.008_001 && utf8::is_utf8($_));
+
+  return qq("$_") unless /[[:^print:]]/;  # fast exit if only printables
+
+  # Here, there is at least one non-printable to output.  First, translate the
+  # escapes.
   s/([\a\b\t\n\f\r\e])/$esc{$1}/g;
 
-  if (ord('^')==94)  { # ascii
-    # no need for 3 digits in escape for these
-    s/([\0-\037])(?!\d)/'\\'.sprintf('%o',ord($1))/eg;
-    s/([\0-\037\177])/'\\'.sprintf('%03o',ord($1))/eg;
+  # no need for 3 digits in escape for octals not followed by a digit.
+  s/($low_controls)(?!\d)/'\\'.sprintf('%o',ord($1))/eg;
+
+  # But otherwise use 3 digits
+  s/($low_controls)/'\\'.sprintf('%03o',ord($1))/eg;
+
     # all but last branch below not supported --BEHAVIOR SUBJECT TO CHANGE--
-    if ($high eq "iso8859") {
-      s/([\200-\240])/'\\'.sprintf('%o',ord($1))/eg;
+  my $high = shift || "";
+    if ($high eq "iso8859") {   # Doesn't escape the Latin1 printables
+      if ($IS_ASCII) {
+        s/([\200-\240])/'\\'.sprintf('%o',ord($1))/eg;
+      }
+      elsif ($] ge 5.007_003) {
+        my $high_control = utf8::unicode_to_native(0x9F);
+        s/$high_control/sprintf('\\%o',ord($1))/eg;
+      }
     } elsif ($high eq "utf8") {
+#     Some discussion of what to do here is in
+#       https://rt.perl.org/Ticket/Display.html?id=113088
 #     use utf8;
 #     $str =~ s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge;
     } elsif ($high eq "8bit") {
         # leave it as it is
     } else {
-      s/([\200-\377])/'\\'.sprintf('%03o',ord($1))/eg;
-      s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge;
+      s/([[:^ascii:]])/'\\'.sprintf('%03o',ord($1))/eg;
+      #s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge;
     }
-  }
-  else { # ebcdic
-      s{([^ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~])(?!\d)}
-       {my $v = ord($1); '\\'.sprintf(($v <= 037 ? '%o' : '%03o'), $v)}eg;
-      s{([^ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~])}
-       {'\\'.sprintf('%03o',ord($1))}eg;
-  }
 
   return qq("$_");
 }
@@ -1419,7 +1454,7 @@ modify it under the same terms as Perl itself.
 
 =head1 VERSION
 
-Version 2.157  (January 29 2014)
+Version 2.158  (March 13 2015)
 
 =head1 SEE ALSO
 
index 98b013b..97277f4 100644 (file)
 #  define DD_USE_OLD_ID_FORMAT
 #endif
 
+/* These definitions are ASCII only.  But the pure-perl .pm avoids
+ * calling this .xs file for releases where they aren't defined */
+
+#ifndef isASCII
+#   define isASCII(c) (((UV) (c)) < 128)
+#endif
+
+#ifndef ESC_NATIVE          /* \e */
+#   define ESC_NATIVE 27
+#endif
+
+#ifndef isPRINT
+#   define isPRINT(c) (((UV) (c)) >= ' ' && ((UV) (c)) < 127)
+#endif
+
+#ifndef isALPHA
+#   define isALPHA(c) (   (((UV) (c)) >= 'a' && ((UV) (c)) <= 'z')          \
+                       || (((UV) (c)) <= 'Z' && ((UV) (c)) >= 'A'))
+#endif
+
+#ifndef isIDFIRST
+#   define isIDFIRST(c) (isALPHA(c) || (c) == '_')
+#endif
+
 #ifndef isWORDCHAR
-#   define isWORDCHAR(c) isALNUM(c)
+#   define isWORDCHAR(c) (isIDFIRST(c)                                      \
+                          || (((UV) (c)) >= '0' && ((UV) (c)) <= '9'))
 #endif
 
 static I32 num_q (const char *s, STRLEN slen);
@@ -40,12 +65,6 @@ static I32 DD_dump (pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval,
 
 #if PERL_VERSION <= 6 /* Perl 5.6 and earlier */
 
-# ifdef EBCDIC
-#  define UNI_TO_NATIVE(ch) (((ch) > 255) ? (ch) : ASCII_TO_NATIVE(ch))
-# else
-#  define UNI_TO_NATIVE(ch) (ch)
-# endif
-
 UV
 Perl_utf8_to_uvchr_buf(pTHX_ U8 *s, U8 *send, STRLEN *retlen)
 {
@@ -72,8 +91,7 @@ Perl_utf8_to_uvchr_buf(pTHX_ U8 *s, U8 *send, STRLEN *retlen)
      * end of the buffer if there is a malformation that indicates the
      * character is longer than the space available */
 
-    const UV uv = utf8_to_uvchr(s, retlen);
-    return UNI_TO_NATIVE(uv);
+    return utf8_to_uvchr(s, retlen);
 }
 
 # if !defined(PERL_IMPLICIT_CONTEXT)
@@ -234,55 +252,90 @@ esc_q_utf8(pTHX_ SV* sv, const char *src, STRLEN slen, I32 do_utf8, I32 useqq)
     STRLEN qq_escapables = 0;  /* " $ @ will need a \ in "" strings.  */
     STRLEN normal = 0;
     int increment;
-    UV next;
-
-    /* this will need EBCDICification */
-    for (s = src; s < send; do_utf8 ? s += increment : s++) {
-        const UV k = do_utf8 ? utf8_to_uvchr_buf((U8*)s, (U8*) send, NULL) : *(U8*)s;
 
-        /* check for invalid utf8 */
-        increment = (k == 0 && *s != '\0') ? 1 : UTF8SKIP(s);
+    for (s = src; s < send; s += increment) { /* Sizing pass */
+        UV k = *(U8*)s;
 
-       /* this is only used to check if the next character is an
-        * ASCII digit, which are invariant, so if the following collects
-        * a UTF-8 start byte it does no harm
-        */
-       next = (s + increment >= send ) ? 0 : *(U8*)(s+increment);
+        increment = 1;      /* Will override if necessary for utf-8 */
 
-#ifdef EBCDIC
-       if (!isprint(k) || k > 256) {
-#else
-       if (k > 127) {
-#endif
-            /* 4: \x{} then count the number of hex digits.  */
-            grow += 4 + (k <= 0xFF ? 2 : k <= 0xFFF ? 3 : k <= 0xFFFF ? 4 :
+        if (isPRINT(k)) {
+            if (k == '\\') {
+                backslashes++;
+            } else if (k == '\'') {
+                single_quotes++;
+            } else if (k == '"' || k == '$' || k == '@') {
+                qq_escapables++;
+            } else {
+                normal++;
+            }
+        }
+        else if (! isASCII(k) && k > ' ') {
+            /* High ordinal non-printable code point.  (The test that k is
+             * above SPACE should be optimized out by the compiler on
+             * non-EBCDIC platforms; otherwise we could put an #ifdef around
+             * it, but it's better to have just a single code path when
+             * possible.  All but one of the non-ASCII EBCDIC controls are low
+             * ordinal; that one is the only one above SPACE.)
+             *
+             * If UTF-8, output as hex, regardless of useqq.  This means there
+             * is an overhead of 4 chars '\x{}'.  Then count the number of hex
+             * digits.  */
+            if (do_utf8) {
+                k = utf8_to_uvchr_buf((U8*)s, (U8*) send, NULL);
+
+                /* treat invalid utf8 byte by byte.  This loop iteration gets the
+                * first byte */
+                increment = (k == 0 && *s != '\0') ? 1 : UTF8SKIP(s);
+
+                grow += 4 + (k <= 0xFF ? 2 : k <= 0xFFF ? 3 : k <= 0xFFFF ? 4 :
 #if UVSIZE == 4
-                8 /* We may allocate a bit more than the minimum here.  */
+                    8 /* We may allocate a bit more than the minimum here.  */
 #else
-                k <= 0xFFFFFFFF ? 8 : UVSIZE * 4
-#endif
-                );
-#ifndef EBCDIC
-       } else if (useqq &&
-           /* we can't use the short form like '\0' if followed by a digit */
-                   (((k >= 7 && k <= 10) || k == 12 || k == 13 || k == 27)
-                 || (k < 8 && (next < '0' || next > '9')))) {
-           grow += 2;
-       } else if (useqq && k <= 31 && (next < '0' || next > '9')) {
-           grow += 3;
-       } else if (useqq && (k <= 31 || k >= 127)) {
-           grow += 4;
+                    k <= 0xFFFFFFFF ? 8 : UVSIZE * 4
 #endif
-        } else if (k == '\\') {
-            backslashes++;
-        } else if (k == '\'') {
-            single_quotes++;
-        } else if (k == '"' || k == '$' || k == '@') {
-            qq_escapables++;
-        } else {
+                    );
+            }
+            else if (useqq) {   /* Not utf8, must be <= 0xFF, hence 2 hex
+                                 * digits. */
+                grow += 4 + 2;
+            }
+            else {  /* Non-qq generates 3 octal digits plus backslash */
+                grow += 4;
+            }
+       } /* End of high-ordinal non-printable */
+        else if (! useqq) { /* Low ordinal, non-printable, non-qq just
+                             * outputs the raw char */
             normal++;
         }
-    }
+        else {  /* Is qq, low ordinal, non-printable.  Output escape
+                 * sequences */
+            if (   k == '\a' || k == '\b' || k == '\t' || k == '\n' || k == '\r'
+                || k == '\f' || k == ESC_NATIVE)
+            {
+                grow += 2;  /* 1 char plus backslash */
+            }
+            else /* The other low ordinals are output as an octal escape
+                  * sequence */
+                 if (s + 1 >= send || (   *(U8*)(s+1) >= '0'
+                                       && *(U8*)(s+1) <= '9'))
+            {
+                /* When the following character is a digit, use 3 octal digits
+                 * plus backslash, as using fewer digits would concatenate the
+                 * following char into this one */
+                grow += 4;
+            }
+            else if (k <= 7) {
+                grow += 2;  /* 1 octal digit, plus backslash */
+            }
+            else if (k <= 077) {
+                grow += 3;  /* 2 octal digits plus backslash */
+            }
+            else {
+                grow += 4;  /* 3 octal digits plus backslash */
+            }
+        }
+    } /* End of size-calculating loop */
+
     if (grow || useqq) {
         /* We have something needing hex. 3 is ""\0 */
         sv_grow(sv, cur + 3 + grow + 2*backslashes + single_quotes
@@ -291,38 +344,78 @@ esc_q_utf8(pTHX_ SV* sv, const char *src, STRLEN slen, I32 do_utf8, I32 useqq)
 
         *r++ = '"';
 
-        for (s = src; s < send; do_utf8 ? s += UTF8SKIP(s) : s++) {
-            const UV k = do_utf8 ? utf8_to_uvchr_buf((U8*)s, (U8*) send, NULL) : *(U8*)s;
+        for (s = src; s < send; s += increment) {
+            UV k;
+
+            if (do_utf8
+                && ! isASCII(*s)
+                    /* Exclude non-ASCII low ordinal controls.  This should be
+                     * optimized out by the compiler on ASCII platforms; if not
+                     * could wrap it in a #ifdef EBCDIC, but better to avoid
+                     * #if's if possible */
+                && *(U8*)s > ' '
+            ) {
+
+                /* When in UTF-8, we output all non-ascii chars as \x{}
+                 * reqardless of useqq, except for the low ordinal controls on
+                 * EBCDIC platforms */
+                k = utf8_to_uvchr_buf((U8*)s, (U8*) send, NULL);
+
+                /* treat invalid utf8 byte by byte.  This loop iteration gets the
+                * first byte */
+                increment = (k == 0 && *s != '\0') ? 1 : UTF8SKIP(s);
+
+#if PERL_VERSION < 10
+                sprintf(r, "\\x{%"UVxf"}", k);
+                r += strlen(r);
+                /* my_sprintf is not supported by ppport.h */
+#else
+                r = r + my_sprintf(r, "\\x{%"UVxf"}", k);
+#endif
+                continue;
+            }
+
+            /* Here 1) isn't UTF-8; or
+             *      2) the current character is ASCII; or
+             *      3) it is an EBCDIC platform and is a low ordinal
+             *         non-ASCII control.
+             * In each case the character occupies just one byte */
+            k = *(U8*)s;
+            increment = 1;
+
+            if (isPRINT(k)) {
+                /* These need a backslash escape */
+                if (k == '"' || k == '\\' || k == '$' || k == '@') {
+                    *r++ = '\\';
+                }
 
-            if (k == '"' || k == '\\' || k == '$' || k == '@') {
-                *r++ = '\\';
                 *r++ = (char)k;
             }
-            else
-#ifdef EBCDIC
-             if (isprint(k) && k < 256)
-#else
-             if (useqq && (k <= 31 || k == 127 || (!do_utf8 && k > 127))) {
+            else if (! useqq) { /* non-qq, non-printable, low-ordinal is
+                                 * output raw */
+                *r++ = (char)k;
+            }
+            else {  /* Is qq means use escape sequences */
                bool next_is_digit;
 
                *r++ = '\\';
                switch (k) {
-               case 7:  *r++ = 'a'; break;
-               case 8:  *r++ = 'b'; break;
-               case 9:  *r++ = 't'; break;
-               case 10: *r++ = 'n'; break;
-               case 12: *r++ = 'f'; break;
-               case 13: *r++ = 'r'; break;
-               case 27: *r++ = 'e'; break;
+               case '\a':  *r++ = 'a'; break;
+               case '\b':  *r++ = 'b'; break;
+               case '\t':  *r++ = 't'; break;
+               case '\n':  *r++ = 'n'; break;
+               case '\f':  *r++ = 'f'; break;
+               case '\r':  *r++ = 'r'; break;
+               case ESC_NATIVE: *r++ = 'e'; break;
                default:
-                   increment = (k == 0 && *s != '\0') ? 1 : UTF8SKIP(s);
 
                    /* only ASCII digits matter here, which are invariant,
                     * since we only encode characters \377 and under, or
                     * \x177 and under for a unicode string
                     */
-                   next = (s+increment < send) ? *(U8*)(s+increment) : 0;
-                   next_is_digit = next >= '0' && next <= '9';
+                    next_is_digit = (s + 1 >= send )
+                                    ? FALSE
+                                    : (*(U8*)(s+1) >= '0' && *(U8*)(s+1) <= '9');
 
                    /* faster than
                     * r = r + my_sprintf(r, "%o", k);
@@ -339,18 +432,6 @@ esc_q_utf8(pTHX_ SV* sv, const char *src, STRLEN slen, I32 do_utf8, I32 useqq)
                    }
                }
            }
-           else if (k < 0x80)
-#endif
-                *r++ = (char)k;
-            else {
-#if PERL_VERSION < 10
-                sprintf(r, "\\x{%"UVxf"}", k);
-                r += strlen(r);
-                /* my_sprintf is not supported by ppport.h */
-#else
-                r = r + my_sprintf(r, "\\x{%"UVxf"}", k);
-#endif
-            }
         }
         *r++ = '"';
     } else {
@@ -1106,8 +1187,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
              len = my_snprintf(tmpbuf, sizeof(tmpbuf), "%"IVdf, SvIV(val));
             if (SvPOK(val)) {
               /* Need to check to see if this is a string such as " 0".
-                 I'm assuming from sprintf isn't going to clash with utf8.
-                 Is this valid on EBCDIC?  */
+                 I'm assuming from sprintf isn't going to clash with utf8. */
               STRLEN pvlen;
               const char * const pv = SvPV(val, pvlen);
               if (pvlen != len || memNE(pv, tmpbuf, len))
@@ -1270,7 +1350,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 do deparse yet.'
 #
 
 void
index f452ad2..643160a 100644 (file)
@@ -16,7 +16,6 @@ local $Data::Dumper::Sortkeys = 1;
 
 use Data::Dumper;
 use Config;
-my $Is_ebcdic = defined($Config{'ebcdic'}) && $Config{'ebcdic'} eq 'define';
 
 $Data::Dumper::Pad = "#";
 my $TMAX;
@@ -24,6 +23,61 @@ my $XS;
 my $TNUM = 0;
 my $WANT = '';
 
+sub convert_to_native($) {
+    my $input = shift;
+
+    # unicode_to_native() not available before this release; hence won't work
+    # on EBCDIC platforms for earlier.
+    return $input if $] lt 5.007_003;
+
+    my @output;
+
+    # The input should always be one of the following constructs
+    while ($input =~ m/ ( \\ [0-7]+ )
+                      | ( \\ x \{ [[:xdigit:]]+ } )
+                      | ( \\ . )
+                      | ( . ) /gx)
+    {
+        #print STDERR __LINE__, ": ", $&, "\n";
+        my $index;
+        my $replacement;
+        if (defined $4) {       # Literal
+            $index = ord $4;
+            $replacement = $4;
+        }
+        elsif (defined $3) {    # backslash escape
+            $index = ord eval "\"$3\"";
+            $replacement = $3;
+        }
+        elsif (defined $2) {    # Hex
+            $index = utf8::unicode_to_native(ord eval "\"$2\"");
+
+            # But low hex numbers are always in octal.  These are all
+            # controls.
+            my $format = ($index < ord(" "))
+                         ? "\\%o"
+                         : "\\x{%x}";
+            $replacement = sprintf($format, $index);
+        }
+        elsif (defined $1) {    # Octal
+            $index = utf8::unicode_to_native(ord eval "\"$1\"");
+            $replacement = sprintf("\\%o", $index);
+        }
+        else {
+            die "Unexpected match in convert_to_native()";
+        }
+
+        if (defined $output[$index]) {
+            print STDERR "ordinal $index already has '$output[$index]'; skipping '$replacement'\n";
+            next;
+        }
+
+        $output[$index] = $replacement;
+    }
+
+    return join "", grep { defined } @output;
+}
+
 sub TEST {
   my $string = shift;
   my $name = shift;
@@ -31,42 +85,19 @@ sub TEST {
   ++$TNUM;
   $t =~ s/([A-Z]+)\(0x[0-9a-f]+\)/$1(0xdeadbeef)/g
     if ($WANT =~ /deadbeef/);
-  if ($Is_ebcdic) {
-    # these data need massaging with non ascii character sets
-    # because of hashing order differences
-    $WANT = join("\n",sort(split(/\n/,$WANT)));
-    $WANT =~ s/\,$//mg;
-    $t    = join("\n",sort(split(/\n/,$t)));
-    $t    =~ s/\,$//mg;
-  }
   $name = $name ? " - $name" : '';
   print( ($t eq $WANT and not $@) ? "ok $TNUM$name\n"
     : "not ok $TNUM$name\n--Expected--\n$WANT\n--Got--\n$@$t\n");
 
   ++$TNUM;
-  if ($Is_ebcdic) { # EBCDIC.
-    if ($TNUM == 311 || $TNUM == 314) {
-      eval $string;
-    } else {
-      eval $t;
-    }
-  } else {
-    eval "$t";
-  }
-  print $@ ? "not ok $TNUM\n# \$@ says: $@\n" : "ok $TNUM\n";
+  eval "$t";
+  print $@ ? "not ok $TNUM\n# \$@ says: $@\n" : "ok $TNUM -   no eval error\n";
 
   $t = eval $string;
   ++$TNUM;
   $t =~ s/([A-Z]+)\(0x[0-9a-f]+\)/$1(0xdeadbeef)/g
     if ($WANT =~ /deadbeef/);
-  if ($Is_ebcdic) {
-    # here too there are hashing order differences
-    $WANT = join("\n",sort(split(/\n/,$WANT)));
-    $WANT =~ s/\,$//mg;
-    $t    = join("\n",sort(split(/\n/,$t)));
-    $t    =~ s/\,$//mg;
-  }
-  print( ($t eq $WANT and not $@) ? "ok $TNUM\n"
+  print( ($t eq $WANT and not $@) ? "ok $TNUM -   works a 2nd time after intervening eval\n"
     : "not ok $TNUM\n--Expected--\n$WANT\n--Got--\n$@$t\n");
 }
 
@@ -77,17 +108,20 @@ sub SKIP_TEST {
   ++$TNUM; print "ok $TNUM # skip $reason\n";
 }
 
+$TMAX = 450;
+
 # Force Data::Dumper::Dump to use perl. We test Dumpxs explicitly by calling
 # it direct. Out here it lets us knobble the next if to test that the perl
 # only tests do work (and count correctly)
 $Data::Dumper::Useperl = 1;
 if (defined &Data::Dumper::Dumpxs) {
   print "### XS extension loaded, will run XS tests\n";
-  $TMAX = 438; $XS = 1;
+  $XS = 1;
 }
 else {
   print "### XS extensions not loaded, will NOT run XS tests\n";
-  $TMAX = 219; $XS = 0;
+  $TMAX /= 2;
+  $XS = 0;
 }
 
 print "1..$TMAX\n";
@@ -104,7 +138,7 @@ $b->{a} = $a;
 $b->{b} = $a->[1];
 $b->{c} = $a->[2];
 
-############# 1
+#############
 ##
 $WANT = <<'EOT';
 #$a = [
@@ -138,7 +172,7 @@ SCOPE: {
 }
 
 
-############# 7
+#############
 ##
 $WANT = <<'EOT';
 #@a = (
@@ -174,7 +208,7 @@ SCOPE: {
     if $XS;
 }
 
-############# 13
+#############
 ##
 $WANT = <<'EOT';
 #%b = (
@@ -200,7 +234,7 @@ TEST (q(Data::Dumper->Dumpxs([$b, $a], [qw(*b a)])),
     'basic test with dereferenced hash: Dumpxs()')
     if $XS;
 
-############# 19
+#############
 ##
 $WANT = <<'EOT';
 #$a = [
@@ -236,7 +270,7 @@ if ($XS) {
 }
 
 
-############# 25
+#############
 ##
 $WANT = <<'EOT';
 #$a = [
@@ -266,7 +300,7 @@ TEST (q( $d->Reset; $d->Dumpxs ),
     'Indent(3): Purity(0)->Quotekeys(0): Dumpxs()')
     if $XS;
 
-############# 31
+#############
 ##
 $WANT = <<'EOT';
 #$VAR1 = [
@@ -288,7 +322,7 @@ EOT
 TEST (q(Dumper($a)), 'Dumper');
 TEST (q(Data::Dumper::DumperX($a)), 'DumperX') if $XS;
 
-############# 37
+#############
 ##
 $WANT = <<'EOT';
 #[
@@ -316,7 +350,7 @@ EOT
 }
 
 
-############# 43
+#############
 ##
 $WANT = <<'EOT';
 #$VAR1 = {
@@ -348,7 +382,7 @@ $foo = { "abc\000\'\efg" => "mno\000",
   $foo{d} = \%foo;
   $foo[2] = \%foo;
 
-############# 49
+#############
 ##
   $WANT = <<'EOT';
 #$foo = \*::foo;
@@ -383,7 +417,7 @@ EOT
     'Purity 1: Indent 3: Dumpxs()')
     if $XS;
 
-############# 55
+#############
 ##
   $WANT = <<'EOT';
 #$foo = \*::foo;
@@ -414,7 +448,7 @@ EOT
     'Purity 1: Indent 1: Dumpxs()')
     if $XS;
 
-############# 61
+#############
 ##
   $WANT = <<'EOT';
 #@bar = (
@@ -444,7 +478,7 @@ EOT
     'array|hash|glob dereferenced: Dumpxs()')
     if $XS;
 
-############# 67
+#############
 ##
   $WANT = <<'EOT';
 #$bar = [
@@ -474,7 +508,7 @@ EOT
     'array|hash|glob: not dereferenced: Dumpxs()')
     if $XS;
 
-############# 73
+#############
 ##
   $WANT = <<'EOT';
 #$foo = \*::foo;
@@ -499,7 +533,7 @@ EOT
     'Purity 0: Quotekeys 0: dereferenced: Dumpxs')
     if $XS;
 
-############# 79
+#############
 ##
   $WANT = <<'EOT';
 #$foo = \*::foo;
@@ -537,7 +571,7 @@ EOT
   $mutts = \%kennel;
   $mutts = $mutts;         # avoid warning
 
-############# 85
+#############
 ##
   $WANT = <<'EOT';
 #%kennels = (
@@ -567,7 +601,7 @@ EOT
       'constructor: hash|array|scalar: Dumpxs()');
   }
 
-############# 91
+#############
 ##
   $WANT = <<'EOT';
 #%kennels = %kennels;
@@ -578,7 +612,7 @@ EOT
   TEST q($d->Dump), 'object call: Dump';
   TEST q($d->Dumpxs), 'object call: Dumpxs' if $XS;
 
-############# 97
+#############
 ##
   $WANT = <<'EOT';
 #%kennels = (
@@ -598,7 +632,7 @@ EOT
     TEST (q($d->Reset; $d->Dumpxs), 'Reset and Dumpxs separate calls');
   }
 
-############# 103
+#############
 ##
   $WANT = <<'EOT';
 #@dogs = (
@@ -628,14 +662,14 @@ EOT
        'constructor: array|hash|scalar: Dumpxs()');
   }
 
-############# 109
+#############
 ##
   TEST q($d->Reset->Dump), 'Reset Dump chained';
   if ($XS) {
     TEST q($d->Reset->Dumpxs), 'Reset Dumpxs chained';
   }
 
-############# 115
+#############
 ##
   $WANT = <<'EOT';
 #@dogs = (
@@ -673,7 +707,7 @@ EOT
 sub z { print "foo\n" }
 $c = [ \&z ];
 
-############# 121
+#############
 ##
   $WANT = <<'EOT';
 #$a = $b;
@@ -688,7 +722,7 @@ TEST (q(Data::Dumper->new([\&z,$c],['a','c'])->Seen({'b' => \&z})->Dumpxs;),
     'Seen: scalar: Dumpxs')
        if $XS;
 
-############# 127
+#############
 ##
   $WANT = <<'EOT';
 #$a = \&b;
@@ -703,7 +737,7 @@ TEST (q(Data::Dumper->new([\&z,$c],['a','c'])->Seen({'*b' => \&z})->Dumpxs;),
     'Seen: glob: Dumpxs')
        if $XS;
 
-############# 133
+#############
 ##
   $WANT = <<'EOT';
 #*a = \&b;
@@ -725,7 +759,7 @@ TEST (q(Data::Dumper->new([\&z,$c],['*a','*c'])->Seen({'*b' =>
   $a = [];
   $a->[1] = \$a->[0];
 
-############# 139
+#############
 ##
   $WANT = <<'EOT';
 #@a = (
@@ -746,7 +780,7 @@ TEST (q(Data::Dumper->new([$a],['*a'])->Purity(1)->Dumpxs;),
   $a = \\\\\'foo';
   $b = $$$a;
 
-############# 145
+#############
 ##
   $WANT = <<'EOT';
 #$a = \\\\\'foo';
@@ -764,7 +798,7 @@ TEST (q(Data::Dumper->new([$a,$b],['a','b'])->Purity(1)->Dumpxs;),
   $a = [{ a => \$b }, { b => undef }];
   $b = [{ c => \$b }, { d => \$a }];
 
-############# 151
+#############
 ##
   $WANT = <<'EOT';
 #$a = [
@@ -799,7 +833,7 @@ TEST (q(Data::Dumper->new([$a,$b],['a','b'])->Purity(1)->Dumpxs;),
   $b = $a->[0][0];
   $c = $${$b->[0][0]};
 
-############# 157
+#############
 ##
   $WANT = <<'EOT';
 #$a = [
@@ -830,7 +864,7 @@ TEST (q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Purity(1)->Dumpxs;),
     $b = { 'c' => $c };
     $a = { 'b' => $b };
 
-############# 163
+#############
 ##
   $WANT = <<'EOT';
 #$a = {
@@ -852,7 +886,7 @@ TEST (q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Maxdepth(4)->Dumpxs;),
     'Maxdepth(4): Dumpxs()')
        if $XS;
 
-############# 169
+#############
 ##
   $WANT = <<'EOT';
 #$a = {
@@ -875,7 +909,7 @@ TEST (q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Maxdepth(1)->Dumpxs;),
     $a = \$a;
     $b = [$a];
 
-############# 175
+#############
 ##
   $WANT = <<'EOT';
 #$b = [
@@ -889,7 +923,7 @@ TEST (q(Data::Dumper->new([$b],['b'])->Purity(0)->Dumpxs;),
     'Purity(0): Dumpxs()')
        if $XS;
 
-############# 181
+#############
 ##
   $WANT = <<'EOT';
 #$b = [
@@ -908,7 +942,7 @@ TEST (q(Data::Dumper->new([$b],['b'])->Purity(1)->Dumpxs;),
 
 {
   $a = "\x{09c10}";
-############# 187
+#############
 ## XS code was adding an extra \0
   $WANT = <<'EOT';
 #$a = "\x{9c10}";
@@ -927,7 +961,7 @@ EOT
   $i = 0;
   $a = { map { ("$_$_$_", ++$i) } 'I'..'Q' };
 
-############# 193
+#############
 ##
   $WANT = <<'EOT';
 #$VAR1 = {
@@ -959,7 +993,7 @@ TEST (q(Data::Dumper->new([$a])->Dumpxs;),
     return [ sort { $b <=> $a } keys %$hash ];
   }
 
-############# 199
+#############
 ##
   $WANT = <<'EOT';
 #$VAR1 = {
@@ -993,7 +1027,7 @@ TEST q(Data::Dumper->new([$c])->Dumpxs;), "sortkeys sub (XS)"
     ];
   }
 
-############# 205
+#############
 ##
   $WANT = <<'EOT';
 #$VAR1 = [
@@ -1033,7 +1067,7 @@ TEST q(Data::Dumper->new([[$c, $d]])->Dumpxs;), "more sortkeys sub (XS)"
   local $Data::Dumper::Deparse = 1;
   local $Data::Dumper::Indent = 2;
 
-############# 211
+#############
 ##
   $WANT = <<'EOT';
 #$VAR1 = {
@@ -1051,7 +1085,7 @@ EOT
   }
 }
 
-############# 214
+#############
 ##
 
 # This is messy.
@@ -1293,7 +1327,7 @@ if ($XS) {
 
 {
   $a = "1\n";
-############# 310
+#############
 ## Perl code was using /...$/ and hence missing the \n.
   $WANT = <<'EOT';
 my $VAR1 = '42
@@ -1322,7 +1356,7 @@ EOT
         -2147483648,
         -2147483649,
         );
-############# 316
+#############
 ## Perl code flips over at 10 digits.
   $WANT = <<'EOT';
 #$VAR1 = 999999999;
@@ -1379,42 +1413,27 @@ EOT
   }
 }
 
-#XXX}
 {
-    if ($Is_ebcdic) {
        $b = "Bad. XS didn't escape dollar sign";
-############# 322
-       $WANT = <<"EOT"; # Careful. This is '' string written inside '' here doc
-#\$VAR1 = '\$b\"\@\\\\\xB1';
-EOT
-        $a = "\$b\"\@\\\xB1\x{100}";
-       chop $a;
-       TEST q(Data::Dumper->Dump([$a])), "utf8 flag with \" and \$";
-       if ($XS) {
-           $WANT = <<'EOT'; # While this is "" string written inside "" here doc
-#$VAR1 = "\$b\"\@\\\x{b1}";
-EOT
-            TEST q(Data::Dumper->Dumpxs([$a])), "XS utf8 flag with \" and \$";
-       }
-    } else {
-       $b = "Bad. XS didn't escape dollar sign";
-############# 322
-       $WANT = <<"EOT"; # Careful. This is '' string written inside '' here doc
-#\$VAR1 = '\$b\"\@\\\\\xA3';
+#############
+    # B6 is chosen because it is UTF-8 variant on ASCII and all 3 EBCDIC
+    # platforms that Perl currently purports to work on.  It also is the only
+    # such code point that has the same meaning on all 4, the paragraph sign.
+    $WANT = <<"EOT"; # Careful. This is '' string written inside "" here doc
+#\$VAR1 = '\$b\"\@\\\\\xB6';
 EOT
 
-        $a = "\$b\"\@\\\xA3\x{100}";
-       chop $a;
-       TEST q(Data::Dumper->Dump([$a])), "utf8 flag with \" and \$";
-       if ($XS) {
-           $WANT = <<'EOT'; # While this is "" string written inside "" here doc
-#$VAR1 = "\$b\"\@\\\x{a3}";
+    $a = "\$b\"\@\\\xB6\x{100}";
+    chop $a;
+    TEST q(Data::Dumper->Dump([$a])), "utf8 flag with \" and \$";
+    if ($XS) {
+        $WANT = <<'EOT'; # While this is "" string written inside "" here doc
+#$VAR1 = "\$b\"\@\\\x{b6}";
 EOT
-            TEST q(Data::Dumper->Dumpxs([$a])), "XS utf8 flag with \" and \$";
-       }
-  }
+        TEST q(Data::Dumper->Dumpxs([$a])), "XS utf8 flag with \" and \$";
+    }
   # XS used to produce "$b\"' which is 4 chars, not 3. [ie wrongly qq(\$b\\\")]
-############# 328
+#############
   $WANT = <<'EOT';
 #$VAR1 = '$b"';
 EOT
@@ -1429,7 +1448,7 @@ EOT
 
   # XS used to produce 'D'oh!' which is well, D'oh!
   # Andreas found this one, which in turn discovered the previous two.
-############# 334
+#############
   $WANT = <<'EOT';
 #$VAR1 = 'D\'oh!';
 EOT
@@ -1492,7 +1511,7 @@ EOT
   TEST q(Data::Dumper->Dumpxs([\\%foo])),
     "XS quotekeys == 0 for utf8 flagged ASCII" if $XS;
 }
-############# 358
+#############
 {
   $WANT = <<'EOT';
 #$VAR1 = [
@@ -1507,7 +1526,7 @@ EOT
     TEST q(Data::Dumper->Dumpxs([\@foo])), 'Richard Clamp, Message-Id: <20030104005247.GA27685@mirth.demon.co.uk>: Dumpxs()'if $XS;
 }
 
-############# 364
+#############
 # Make sure $obj->Dumpxs returns the right thing in list context. This was
 # broken by the initial attempt to fix [perl #74170].
 $WANT = <<'EOT';
@@ -1517,11 +1536,13 @@ TEST q(join " ", new Data::Dumper [[]],[] =>->Dumpxs),
     '$obj->Dumpxs in list context'
  if $XS;
 
-############# 366
+#############
 {
-  $WANT = <<'EOT';
-#$VAR1 = [
-#  "\0\1\2\3\4\5\6\a\b\t\n\13\f\r\16\17\20\21\22\23\24\25\26\27\30\31\32\e\34\35\36\37 !\"#\$%&'()*+,-./0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377"
+  $WANT = '\0\1\2\3\4\5\6\a\b\t\n\13\f\r\16\17\20\21\22\23\24\25\26\27\30\31\32\e\34\35\36\37 !\"#\$%&\'()*+,-./0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377';
+  $WANT = convert_to_native($WANT);
+  $WANT = <<EOT;
+#\$VAR1 = [
+#  "$WANT"
 #];
 EOT
 
@@ -1531,11 +1552,13 @@ EOT
   TEST (q(Data::Dumper::DumperX($foo)), 'All latin1 characters: DumperX') if $XS;
 }
 
-############# 372
+#############
 {
-  $WANT = <<'EOT';
-#$VAR1 = [
-#  "\0\1\2\3\4\5\6\a\b\t\n\13\f\r\16\17\20\21\22\23\24\25\26\27\30\31\32\e\34\35\36\37 !\"#\$%&'()*+,-./0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177\x{80}\x{81}\x{82}\x{83}\x{84}\x{85}\x{86}\x{87}\x{88}\x{89}\x{8a}\x{8b}\x{8c}\x{8d}\x{8e}\x{8f}\x{90}\x{91}\x{92}\x{93}\x{94}\x{95}\x{96}\x{97}\x{98}\x{99}\x{9a}\x{9b}\x{9c}\x{9d}\x{9e}\x{9f}\x{a0}\x{a1}\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}\x{a7}\x{a8}\x{a9}\x{aa}\x{ab}\x{ac}\x{ad}\x{ae}\x{af}\x{b0}\x{b1}\x{b2}\x{b3}\x{b4}\x{b5}\x{b6}\x{b7}\x{b8}\x{b9}\x{ba}\x{bb}\x{bc}\x{bd}\x{be}\x{bf}\x{c0}\x{c1}\x{c2}\x{c3}\x{c4}\x{c5}\x{c6}\x{c7}\x{c8}\x{c9}\x{ca}\x{cb}\x{cc}\x{cd}\x{ce}\x{cf}\x{d0}\x{d1}\x{d2}\x{d3}\x{d4}\x{d5}\x{d6}\x{d7}\x{d8}\x{d9}\x{da}\x{db}\x{dc}\x{dd}\x{de}\x{df}\x{e0}\x{e1}\x{e2}\x{e3}\x{e4}\x{e5}\x{e6}\x{e7}\x{e8}\x{e9}\x{ea}\x{eb}\x{ec}\x{ed}\x{ee}\x{ef}\x{f0}\x{f1}\x{f2}\x{f3}\x{f4}\x{f5}\x{f6}\x{f7}\x{f8}\x{f9}\x{fa}\x{fb}\x{fc}\x{fd}\x{fe}\x{ff}\x{20ac}"
+  $WANT = '\0\1\2\3\4\5\6\a\b\t\n\13\f\r\16\17\20\21\22\23\24\25\26\27\30\31\32\e\34\35\36\37 !\"#\$%&\'()*+,-./0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177\x{80}\x{81}\x{82}\x{83}\x{84}\x{85}\x{86}\x{87}\x{88}\x{89}\x{8a}\x{8b}\x{8c}\x{8d}\x{8e}\x{8f}\x{90}\x{91}\x{92}\x{93}\x{94}\x{95}\x{96}\x{97}\x{98}\x{99}\x{9a}\x{9b}\x{9c}\x{9d}\x{9e}\x{9f}\x{a0}\x{a1}\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}\x{a7}\x{a8}\x{a9}\x{aa}\x{ab}\x{ac}\x{ad}\x{ae}\x{af}\x{b0}\x{b1}\x{b2}\x{b3}\x{b4}\x{b5}\x{b6}\x{b7}\x{b8}\x{b9}\x{ba}\x{bb}\x{bc}\x{bd}\x{be}\x{bf}\x{c0}\x{c1}\x{c2}\x{c3}\x{c4}\x{c5}\x{c6}\x{c7}\x{c8}\x{c9}\x{ca}\x{cb}\x{cc}\x{cd}\x{ce}\x{cf}\x{d0}\x{d1}\x{d2}\x{d3}\x{d4}\x{d5}\x{d6}\x{d7}\x{d8}\x{d9}\x{da}\x{db}\x{dc}\x{dd}\x{de}\x{df}\x{e0}\x{e1}\x{e2}\x{e3}\x{e4}\x{e5}\x{e6}\x{e7}\x{e8}\x{e9}\x{ea}\x{eb}\x{ec}\x{ed}\x{ee}\x{ef}\x{f0}\x{f1}\x{f2}\x{f3}\x{f4}\x{f5}\x{f6}\x{f7}\x{f8}\x{f9}\x{fa}\x{fb}\x{fc}\x{fd}\x{fe}\x{ff}\x{20ac}';
+  $WANT = convert_to_native($WANT);
+  $WANT = <<EOT;
+#\$VAR1 = [
+#  "$WANT"
 #];
 EOT
 
@@ -1553,7 +1576,7 @@ EOT
     if $XS;
 }
 
-############# 378
+#############
 {
   # If XS cannot load, the pure-Perl version cannot deparse vstrings with
   # underscores properly.  In 5.8.0, vstrings are just strings.
@@ -1563,11 +1586,12 @@ EOT
 #$c = \'ABC';
 #$d = \'ABC';
 NOVSTRINGS
-  my $vstrings_corr = <<'VSTRINGS_CORRECT';
-#$a = \v65.66.67;
-#$b = \v65.66.067;
-#$c = \v65.66.6_7;
-#$d = \'ABC';
+my $ABC_native = chr(65) . chr(66) . chr(67);
+  my $vstrings_corr = <<VSTRINGS_CORRECT;
+#\$a = \\v65.66.67;
+#\$b = \\v65.66.067;
+#\$c = \\v65.66.6_7;
+#\$d = \\'$ABC_native';
 VSTRINGS_CORRECT
   $WANT = $] <= 5.0080001
           ? $no_vstrings
@@ -1591,7 +1615,7 @@ VSTRINGS_CORRECT
   }
 }
 
-############# 384
+#############
 {
   # [perl #107372] blessed overloaded globs
   $WANT = <<'EOW';
@@ -1606,7 +1630,7 @@ EOW
   TEST q(Data::Dumper->Dumpxs([\*finkle])), 'blessed overloaded globs (xs)'
     if $XS;
 }
-############# 390
+#############
 {
   # [perl #74798] uncovered behaviour
   $WANT = <<'EOW';
@@ -1653,7 +1677,7 @@ EOW
     "numbers and number-like scalars"
     if $XS;
 }
-############# 426
+#############
 {
   # [perl #82948]
   # re::regexp_pattern was moved to universal.c in v5.10.0-252-g192c1e2
@@ -1669,7 +1693,7 @@ OLD
   TEST q(Data::Dumper->Dumpxs([ qr/abc/, qr/abc/i ])), "qr// xs"
     if $XS;
 }
-############# 432
+#############
 
 {
   sub foo {}
@@ -1682,4 +1706,37 @@ EOW
   TEST q(Data::Dumper->new([ \&foo, \\&foo ], [ "*a", "b" ])->Dumpxs), "name of code in *foo xs"
     if $XS;
 }
-############# 436
+#############
+
+{
+    if($] lt 5.007_003) {
+        SKIP_TEST "Test is only problematic for EBCDIC, which only works for >= 5.8";
+        SKIP_TEST "Test is only problematic for EBCDIC, which only works for >= 5.8";
+    }
+    else {
+        # There is special code to handle the single control that in EBCDIC is
+        # not in the block with all the other controls, when it is UTF-8 and
+        # there are no variants in it (All controls in EBCDIC are invariant.)
+        # This tests that.  There is no harm in testing this works on ASCII,
+        # and is better to not have split code paths.
+        my $outlier = chr utf8::unicode_to_native(0x9F);
+        my $outlier_hex = sprintf "%x", ord $outlier;
+        $WANT = <<EOT;
+#\$VAR1 = \"\\x{$outlier_hex}\";
+EOT
+        $foo = "$outlier\x{100}";
+        chop $foo;
+        local $Data::Dumper::Useqq = 1;
+        TEST (q(Dumper($foo)), 'EBCDIC outlier control');
+        TEST (q(Data::Dumper::DumperX($foo)), 'EBCDIC outlier control: DumperX') if $XS;
+    }
+}
+############# [perl #124091]
+{
+        $WANT = <<'EOT';
+#$VAR1 = "\n";
+EOT
+        local $Data::Dumper::Useqq = 1;
+        TEST (qq(Dumper("\n")), '\n alone');
+        TEST (qq(Data::Dumper::DumperX("\n")), '\n alone') if $XS;
+}
index a858828..0f6313a 100644 (file)
@@ -26,6 +26,8 @@ my %d = (
     alpha   => 'a',
 );
 
+my $is_ascii = ord("A") == 65;
+
 run_tests_for_quotekeys();
 SKIP: {
     skip "XS version was unavailable, so we already ran with pure Perl", 5
@@ -110,25 +112,33 @@ sub run_tests_for_quotekeys {
       );
 
     is(Dumper(\%qkdata),
-       q($VAR1 = {'0' => 1,'012345' => 1,'12' => 1,'123456789' => 1,'1234567890' => 1,"1\x{660}" => 1,'::de::fg' => 1,'ab' => 1,'hi::12' => 1};),
+       (($is_ascii) # Sort order is different on EBCDIC platforms
+        ? q($VAR1 = {'0' => 1,'012345' => 1,'12' => 1,'123456789' => 1,'1234567890' => 1,"1\x{660}" => 1,'::de::fg' => 1,'ab' => 1,'hi::12' => 1};)
+        : q($VAR1 = {'::de::fg' => 1,'ab' => 1,'hi::12' => 1,'0' => 1,'012345' => 1,'12' => 1,'123456789' => 1,'1234567890' => 1,"1\x{660}" => 1};)),
        "always quote when quotekeys true");
 
     {
         local $Data::Dumper::Useqq = 1;
         is(Dumper(\%qkdata),
-          q($VAR1 = {"0" => 1,"012345" => 1,"12" => 1,"123456789" => 1,"1234567890" => 1,"1\x{660}" => 1,"::de::fg" => 1,"ab" => 1,"hi::12" => 1};),
+           (($is_ascii)
+           ? q($VAR1 = {"0" => 1,"012345" => 1,"12" => 1,"123456789" => 1,"1234567890" => 1,"1\x{660}" => 1,"::de::fg" => 1,"ab" => 1,"hi::12" => 1};)
+            : q($VAR1 = {"::de::fg" => 1,"ab" => 1,"hi::12" => 1,"0" => 1,"012345" => 1,"12" => 1,"123456789" => 1,"1234567890" => 1,"1\x{660}" => 1};)),
           "always quote when quotekeys true (useqq)");
     }
 
     local $Data::Dumper::Quotekeys = 0;
 
     is(Dumper(\%qkdata),
-       q($VAR1 = {0 => 1,'012345' => 1,12 => 1,123456789 => 1,'1234567890' => 1,"1\x{660}" => 1,'::de::fg' => 1,ab => 1,'hi::12' => 1};),
+        (($is_ascii)
+         ? q($VAR1 = {0 => 1,'012345' => 1,12 => 1,123456789 => 1,'1234567890' => 1,"1\x{660}" => 1,'::de::fg' => 1,ab => 1,'hi::12' => 1};)
+         : q($VAR1 = {'::de::fg' => 1,ab => 1,'hi::12' => 1,0 => 1,'012345' => 1,12 => 1,123456789 => 1,'1234567890' => 1,"1\x{660}" => 1};)),
              "avoid quotes when quotekeys false");
     {
         local $Data::Dumper::Useqq = 1;
        is(Dumper(\%qkdata),
-          q($VAR1 = {0 => 1,"012345" => 1,12 => 1,123456789 => 1,"1234567890" => 1,"1\x{660}" => 1,"::de::fg" => 1,ab => 1,"hi::12" => 1};),
+            (($is_ascii)
+            ? q($VAR1 = {0 => 1,"012345" => 1,12 => 1,123456789 => 1,"1234567890" => 1,"1\x{660}" => 1,"::de::fg" => 1,ab => 1,"hi::12" => 1};)
+             : q($VAR1 = {"::de::fg" => 1,ab => 1,"hi::12" => 1,0 => 1,"012345" => 1,12 => 1,123456789 => 1,"1234567890" => 1,"1\x{660}" => 1};)),
              "avoid quotes when quotekeys false (useqq)");
     }
 }
index 1acc3ea..3b525b7 100644 (file)
@@ -269,7 +269,15 @@ is_deeply( \%split_seen, \%exp,
       if ($^O eq 'dec_osf' && $rp =~ m[^/cluster/members/]) {
           skip "Tru64 cluster filesystem", 1;
       } # SKIP
-      is( uc($rv), uc($rp), "perl_src(): identified directory" );
+      elsif ($^O eq 'os390') {
+        # os390 also has cluster-like things called 'sysplexed'.  So far, the
+        # tail end of the path matches what we passed it (with some prepended
+        # directories).  So test for that.
+        like( uc($rp), qr/\U\Q$rp\E$/, "perl_src(): identified directory" );
+      }
+      else {
+        is( uc($rv), uc($rp), "perl_src(): identified directory" );
+      }
     }
     is( $capture, q{}, "perl_src(): no warning, as expected" );
 
index 8d762a8..d77ac1b 100644 (file)
@@ -2141,13 +2141,18 @@ this model, the less likely conflicts will occur.
 
 One area where there has been conflict is in regards to C locales.  (See
 L<perllocale>.)  perl, with one exception and unless told otherwise,
-sets up the underlying locale the program is running in to that passed
-into it from the environment.  As of v5.20, this underlying locale is
-completely hidden from pure perl code outside the lexical scope of
-C<S<use locale>>; except a couple of function calls in the POSIX
-module of necessity use it.  But the underlying locale, with that one
-exception is exposed to XS code, affecting all C library routines whose
-behavior is locale-dependent.   The exception is the
+sets up the underlying locale the program is running in to the locale
+passed
+into it from the environment.  This is an important difference from a
+generic C language program, where the underlying locale is the "C"
+locale unless the program changes it.  As of v5.20, this underlying
+locale is completely hidden from pure perl code outside the lexical
+scope of C<S<use locale>> except for a couple of function calls in the
+POSIX module which of necessity use it.  But the underlying locale, with
+that
+one exception is exposed to XS code, affecting all C library routines
+whose behavior is locale-dependent.  Your XS code better not assume that
+the underlying locale is "C".  The exception is the
 L<C<LC_NUMERIC>|perllocale/Category LC_NUMERIC: Numeric Formatting>
 locale category, and the reason it is an exception is that experience
 has shown that it can be problematic for XS code, whereas we have not
@@ -2174,16 +2179,20 @@ may call a C library function that is.  Hopefully the man page for such
 a function will indicate that dependency, but the documentation is
 imperfect.
 
-The current locale is exposed to XS code except possibly C<LC_NUMERIC>.
-There have not been reports of problems with these other categories.
+The current locale is exposed to XS code except possibly C<LC_NUMERIC>
+(explained in the next paragraph).
+There have not been reports of problems with the other categories.
+Perl initializes things on start-up so that the current locale is the
+one which is indicated by the user's environment in effect at that time.
+See L<perllocale/ENVIRONMENT>.
 
-Up through v5.20, Perl initializes things on start-up so that
-C<LC_NUMERIC> is set to the "C" locale.  But if any code anywhere
-changes it, it will stay changed.  This means that your module can't
+However, up through v5.20, Perl initialized things on start-up so that
+C<LC_NUMERIC> was set to the "C" locale.  But if any code anywhere
+changed it, it would stay changed.  This means that your module can't
 count on C<LC_NUMERIC> being something in particular, and you can't
 expect floating point numbers (including version strings) to have dots
 in them.  If you don't allow for a non-dot, your code could break if
-anyone anywhere changes the locale.  For this reason, v5.22 is changing
+anyone anywhere changed the locale.  For this reason, v5.22 changed
 the behavior so that Perl tries to keep C<LC_NUMERIC> in the "C" locale
 except around the operations internally where it should be something
 else.  Misbehaving XS code will always be able to change the locale
@@ -2201,15 +2210,13 @@ C<Gtk>.  This can cause problems for the perl core and other modules.
 Starting in v5.20.1, calling the function
 L<sync_locale()|perlapi/sync_locale> from XS should be sufficient to
 avoid most of these problems.  Prior to this, you need a pure Perl
-segment that does this:
+statement that does this:
 
  POSIX::setlocale(LC_ALL, POSIX::setlocale(LC_ALL));
 
-Macros are provided for XS code to temporarily change to use the
-underlying C<LC_NUMERIC> locale when necessary.  An API is being
-developed for this, but 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.
+In the event that your XS code may need the underlying C<LC_NUMERIC>
+locale, there are macros available to access this; see
+L<perlapi/Locale-related functions and macros>.
 
 =back
 
index a902eaf..d6485f4 100644 (file)
@@ -5,20 +5,29 @@ BEGIN {
        print "1..0 # Skip: not perlio\n";
        exit 0;
     }
-    require($ENV{PERL_CORE} ? "../../t/test.pl" : "./t/test.pl");
+    require($ENV{PERL_CORE} ? "../../t/test.pl" : "../t/test.pl");
 }
 
 use utf8;
 
+skip_all("EBCDIC platform; testing not core")
+                                           if $::IS_EBCDIC && ! $ENV{PERL_CORE};
 
 plan(tests => 2);
 
+my $bytes =
+            "\xce\x9c\xe1\xbd\xb7\xce\xb1\x20\xcf\x80\xe1\xbd\xb1\xcf\x80\xce".
+            "\xb9\xce\xb1\x2c\x20\xce\xbc\xe1\xbd\xb0\x20\xcf\x80\xce\xbf\xce".
+            "\xb9\xe1\xbd\xb0\x20\xcf\x80\xe1\xbd\xb1\xcf\x80\xce\xb9\xce\xb1".
+            "\xcd\xbe\x0a";
+
+if ($::IS_EBCDIC) {
+    require($ENV{PERL_CORE} ? "../../t/charset_tools.pl" : "../t/charset_tools.pl");
+    $bytes = byte_utf8a_to_utf8n($bytes)
+}
+
 open my $fh, ">:raw", 'io_utf8argv';
-print $fh
-   "\xce\x9c\xe1\xbd\xb7\xce\xb1\x20\xcf\x80\xe1\xbd\xb1\xcf\x80\xce".
-   "\xb9\xce\xb1\x2c\x20\xce\xbc\xe1\xbd\xb0\x20\xcf\x80\xce\xbf\xce".
-   "\xb9\xe1\xbd\xb0\x20\xcf\x80\xe1\xbd\xb1\xcf\x80\xce\xb9\xce\xb1".
-   "\xcd\xbe\x0a";
+print $fh $bytes;
 close $fh or die "close: $!";
 
 
index 015be81..3fdda25 100644 (file)
@@ -1,3 +1,6 @@
+5.20150320
+  - Updated for v5.21.10
+
 5.20150220
   - Updated for v5.21.9
 
index 47f23d0..942a6e3 100644 (file)
@@ -4,7 +4,17 @@ use vars qw/$VERSION %released %version %families %upstream
            %bug_tracker %deprecated %delta/;
 use Module::CoreList::TieHashDelta;
 use version;
-$VERSION = '5.20150220';
+$VERSION = '5.20150320';
+
+sub _released_order {   # Sort helper, to make '?' sort after everything else
+    (substr($released{$a}, 0, 1) eq "?")
+    ? ((substr($released{$b}, 0, 1) eq "?")
+        ? 0
+        : 1)
+    : ((substr($released{$b}, 0, 1) eq "?")
+        ? -1
+        : $released{$a} cmp $released{$b} )
+}
 
 my $dumpinc = 0;
 sub import {
@@ -38,7 +48,7 @@ sub first_release_raw {
 sub first_release_by_date {
     my @perls = &first_release_raw;
     return unless @perls;
-    return (sort { $released{$a} cmp $released{$b} } @perls)[0];
+    return (sort _released_order @perls)[0];
 }
 
 sub first_release {
@@ -96,7 +106,7 @@ sub removed_from {
 }
 
 sub removed_from_by_date {
-  my @perls = sort { $released{$a} cmp $released{$b} } &removed_raw;
+  my @perls = sort _released_order &removed_raw;
   return shift @perls;
 }
 
@@ -263,6 +273,7 @@ sub changes_between {
     5.021008 => '2015-01-20',
     5.020002 => '2015-02-14',
     5.021009 => '2015-02-21',
+    5.021010 => '2015-03-20',
   );
 
 for my $version ( sort { $a <=> $b } keys %released ) {
@@ -11186,6 +11197,160 @@ for my $version ( sort { $a <=> $b } keys %released ) {
         removed => {
         }
     },
+    5.021010 => {
+        delta_from => 5.021009,
+        changed => {
+            'App::Cpan'             => '1.63',
+            'B'                     => '1.57',
+            'B::Deparse'            => '1.34',
+            'B::Op_private'         => '5.021010',
+            'Benchmark'             => '1.2',
+            'CPAN'                  => '2.10',
+            'CPAN::Distribution'    => '2.04',
+            'CPAN::FirstTime'       => '5.5307',
+            'CPAN::HTTP::Credentials'=> '1.9601',
+            'CPAN::HandleConfig'    => '5.5006',
+            'CPAN::Meta'            => '2.150001',
+            'CPAN::Meta::Converter' => '2.150001',
+            'CPAN::Meta::Feature'   => '2.150001',
+            'CPAN::Meta::History'   => '2.150001',
+            'CPAN::Meta::Merge'     => '2.150001',
+            'CPAN::Meta::Prereqs'   => '2.150001',
+            'CPAN::Meta::Spec'      => '2.150001',
+            'CPAN::Meta::Validator' => '2.150001',
+            'CPAN::Module'          => '5.5002',
+            'CPAN::Plugin'          => '0.95',
+            'CPAN::Plugin::Specfile'=> '0.01',
+            'CPAN::Shell'           => '5.5005',
+            'Carp'                  => '1.36',
+            'Carp::Heavy'           => '1.36',
+            'Config'                => '5.02101',
+            'Cwd'                   => '3.55',
+            'DB'                    => '1.08',
+            'Data::Dumper'          => '2.158',
+            'Devel::PPPort'         => '3.31',
+            'DynaLoader'            => '1.32',
+            'Encode'                => '2.72',
+            'Encode::Alias'         => '2.19',
+            'File::Spec'            => '3.55',
+            'File::Spec::Cygwin'    => '3.55',
+            'File::Spec::Epoc'      => '3.55',
+            'File::Spec::Functions' => '3.55',
+            'File::Spec::Mac'       => '3.55',
+            'File::Spec::OS2'       => '3.55',
+            'File::Spec::Unix'      => '3.55',
+            'File::Spec::VMS'       => '3.55',
+            'File::Spec::Win32'     => '3.55',
+            'Getopt::Long'          => '2.45',
+            'Locale::Codes'         => '3.34',
+            'Locale::Codes::Constants'=> '3.34',
+            'Locale::Codes::Country'=> '3.34',
+            'Locale::Codes::Country_Codes'=> '3.34',
+            'Locale::Codes::Country_Retired'=> '3.34',
+            'Locale::Codes::Currency'=> '3.34',
+            'Locale::Codes::Currency_Codes'=> '3.34',
+            'Locale::Codes::Currency_Retired'=> '3.34',
+            'Locale::Codes::LangExt'=> '3.34',
+            'Locale::Codes::LangExt_Codes'=> '3.34',
+            'Locale::Codes::LangExt_Retired'=> '3.34',
+            'Locale::Codes::LangFam'=> '3.34',
+            'Locale::Codes::LangFam_Codes'=> '3.34',
+            'Locale::Codes::LangFam_Retired'=> '3.34',
+            'Locale::Codes::LangVar'=> '3.34',
+            'Locale::Codes::LangVar_Codes'=> '3.34',
+            'Locale::Codes::LangVar_Retired'=> '3.34',
+            'Locale::Codes::Language'=> '3.34',
+            'Locale::Codes::Language_Codes'=> '3.34',
+            'Locale::Codes::Language_Retired'=> '3.34',
+            'Locale::Codes::Script' => '3.34',
+            'Locale::Codes::Script_Codes'=> '3.34',
+            'Locale::Codes::Script_Retired'=> '3.34',
+            'Locale::Country'       => '3.34',
+            'Locale::Currency'      => '3.34',
+            'Locale::Language'      => '3.34',
+            'Locale::Script'        => '3.34',
+            'Module::CoreList'      => '5.20150320',
+            'Module::CoreList::TieHashDelta'=> '5.20150320',
+            'Module::CoreList::Utils'=> '5.20150320',
+            'POSIX'                 => '1.52',
+            'Pod::Functions'        => '1.09',
+            'Pod::Functions::Functions'=> '1.09',
+            'Term::Complete'        => '1.403',
+            'Test::Builder'         => '1.001014',
+            'Test::Builder::IO::Scalar'=> '2.113',
+            'Test::Builder::Module' => '1.001014',
+            'Test::Builder::Tester' => '1.28',
+            'Test::Builder::Tester::Color'=> '1.290001',
+            'Test::More'            => '1.001014',
+            'Test::Simple'          => '1.001014',
+            'Test::Tester'          => '0.114',
+            'Test::use::ok'         => '0.16',
+            'Text::Balanced'        => '2.03',
+            'Text::ParseWords'      => '3.30',
+            'Unicode::Collate'      => '1.12',
+            'Unicode::Collate::CJK::Big5'=> '1.12',
+            'Unicode::Collate::CJK::GB2312'=> '1.12',
+            'Unicode::Collate::CJK::JISX0208'=> '1.12',
+            'Unicode::Collate::CJK::Korean'=> '1.12',
+            'Unicode::Collate::CJK::Pinyin'=> '1.12',
+            'Unicode::Collate::CJK::Stroke'=> '1.12',
+            'Unicode::Collate::CJK::Zhuyin'=> '1.12',
+            'Unicode::Collate::Locale'=> '1.12',
+            'XS::APItest'           => '0.71',
+            'encoding'              => '2.14',
+            'locale'                => '1.06',
+            'meta_notation'         => undef,
+            'ok'                    => '0.16',
+            'parent'                => '0.232',
+            're'                    => '0.32',
+            'sigtrap'               => '1.08',
+            'threads'               => '2.01',
+            'utf8'                  => '1.15',
+        },
+        removed => {
+            'Test::CanFork'         => 1,
+            'Test::CanThread'       => 1,
+            'Test::More::DeepCheck' => 1,
+            'Test::More::DeepCheck::Strict'=> 1,
+            'Test::More::DeepCheck::Tolerant'=> 1,
+            'Test::More::Tools'     => 1,
+            'Test::MostlyLike'      => 1,
+            'Test::Stream'          => 1,
+            'Test::Stream::API'     => 1,
+            'Test::Stream::ArrayBase'=> 1,
+            'Test::Stream::ArrayBase::Meta'=> 1,
+            'Test::Stream::Block'   => 1,
+            'Test::Stream::Carp'    => 1,
+            'Test::Stream::Context' => 1,
+            'Test::Stream::Event'   => 1,
+            'Test::Stream::Event::Bail'=> 1,
+            'Test::Stream::Event::Child'=> 1,
+            'Test::Stream::Event::Diag'=> 1,
+            'Test::Stream::Event::Finish'=> 1,
+            'Test::Stream::Event::Note'=> 1,
+            'Test::Stream::Event::Ok'=> 1,
+            'Test::Stream::Event::Plan'=> 1,
+            'Test::Stream::Event::Subtest'=> 1,
+            'Test::Stream::ExitMagic'=> 1,
+            'Test::Stream::ExitMagic::Context'=> 1,
+            'Test::Stream::Exporter'=> 1,
+            'Test::Stream::Exporter::Meta'=> 1,
+            'Test::Stream::ForceExit'=> 1,
+            'Test::Stream::IOSets'  => 1,
+            'Test::Stream::Meta'    => 1,
+            'Test::Stream::PackageUtil'=> 1,
+            'Test::Stream::Subtest' => 1,
+            'Test::Stream::Tester'  => 1,
+            'Test::Stream::Tester::Checks'=> 1,
+            'Test::Stream::Tester::Checks::Event'=> 1,
+            'Test::Stream::Tester::Events'=> 1,
+            'Test::Stream::Tester::Events::Event'=> 1,
+            'Test::Stream::Tester::Grab'=> 1,
+            'Test::Stream::Threads' => 1,
+            'Test::Stream::Toolset' => 1,
+            'Test::Stream::Util'    => 1,
+        }
+    },
 );
 
 sub is_core
@@ -11685,6 +11850,13 @@ for my $version (sort { $a <=> $b } keys %delta) {
         removed => {
         }
     },
+    5.021010 => {
+        delta_from => 5.021009,
+        changed => {
+        },
+        removed => {
+        }
+    },
 );
 
 for my $version (sort { $a <=> $b } keys %deprecated) {
@@ -11744,6 +11916,8 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'CPAN::Mirrors'         => 'cpan',
     'CPAN::Module'          => 'cpan',
     'CPAN::Nox'             => 'cpan',
+    'CPAN::Plugin'          => 'cpan',
+    'CPAN::Plugin::Specfile'=> 'cpan',
     'CPAN::Prompt'          => 'cpan',
     'CPAN::Queue'           => 'cpan',
     'CPAN::Shell'           => 'cpan',
@@ -12043,53 +12217,13 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'Term::Cap'             => 'cpan',
     'Test'                  => 'cpan',
     'Test::Builder'         => 'cpan',
+    'Test::Builder::IO::Scalar'=> 'cpan',
     'Test::Builder::Module' => 'cpan',
     'Test::Builder::Tester' => 'cpan',
     'Test::Builder::Tester::Color'=> 'cpan',
-    'Test::CanFork'         => 'cpan',
-    'Test::CanThread'       => 'cpan',
     'Test::Harness'         => 'cpan',
     'Test::More'            => 'cpan',
-    'Test::More::DeepCheck' => 'cpan',
-    'Test::More::DeepCheck::Strict'=> 'cpan',
-    'Test::More::DeepCheck::Tolerant'=> 'cpan',
-    'Test::More::Tools'     => 'cpan',
-    'Test::MostlyLike'      => 'cpan',
     'Test::Simple'          => 'cpan',
-    'Test::Stream'          => 'cpan',
-    'Test::Stream::API'     => 'cpan',
-    'Test::Stream::ArrayBase'=> 'cpan',
-    'Test::Stream::ArrayBase::Meta'=> 'cpan',
-    'Test::Stream::Block'   => 'cpan',
-    'Test::Stream::Carp'    => 'cpan',
-    'Test::Stream::Context' => 'cpan',
-    'Test::Stream::Event'   => 'cpan',
-    'Test::Stream::Event::Bail'=> 'cpan',
-    'Test::Stream::Event::Child'=> 'cpan',
-    'Test::Stream::Event::Diag'=> 'cpan',
-    'Test::Stream::Event::Finish'=> 'cpan',
-    'Test::Stream::Event::Note'=> 'cpan',
-    'Test::Stream::Event::Ok'=> 'cpan',
-    'Test::Stream::Event::Plan'=> 'cpan',
-    'Test::Stream::Event::Subtest'=> 'cpan',
-    'Test::Stream::ExitMagic'=> 'cpan',
-    'Test::Stream::ExitMagic::Context'=> 'cpan',
-    'Test::Stream::Exporter'=> 'cpan',
-    'Test::Stream::Exporter::Meta'=> 'cpan',
-    'Test::Stream::ForceExit'=> 'cpan',
-    'Test::Stream::IOSets'  => 'cpan',
-    'Test::Stream::Meta'    => 'cpan',
-    'Test::Stream::PackageUtil'=> 'cpan',
-    'Test::Stream::Subtest' => 'cpan',
-    'Test::Stream::Tester'  => 'cpan',
-    'Test::Stream::Tester::Checks'=> 'cpan',
-    'Test::Stream::Tester::Checks::Event'=> 'cpan',
-    'Test::Stream::Tester::Events'=> 'cpan',
-    'Test::Stream::Tester::Events::Event'=> 'cpan',
-    'Test::Stream::Tester::Grab'=> 'cpan',
-    'Test::Stream::Threads' => 'cpan',
-    'Test::Stream::Toolset' => 'cpan',
-    'Test::Stream::Util'    => 'cpan',
     'Test::Tester'          => 'cpan',
     'Test::Tester::Capture' => 'cpan',
     'Test::Tester::CaptureRunner'=> 'cpan',
@@ -12179,10 +12313,12 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'CPAN::Meta::Requirements'=> 'https://github.com/dagolden/CPAN-Meta-Requirements/issues',
     'CPAN::Meta::Spec'      => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues',
     'CPAN::Meta::Validator' => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues',
-    'CPAN::Meta::YAML'      => 'https://github.com/dagolden/CPAN-Meta-YAML/issues',
+    'CPAN::Meta::YAML'      => 'https://github.com/Perl-Toolchain-Gang/YAML-Tiny/issues',
     'CPAN::Mirrors'         => undef,
     'CPAN::Module'          => undef,
     'CPAN::Nox'             => undef,
+    'CPAN::Plugin'          => undef,
+    'CPAN::Plugin::Specfile'=> undef,
     'CPAN::Prompt'          => undef,
     'CPAN::Queue'           => undef,
     'CPAN::Shell'           => undef,
@@ -12482,53 +12618,13 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'Term::Cap'             => undef,
     'Test'                  => undef,
     'Test::Builder'         => 'http://github.com/Test-More/test-more/issues/',
+    'Test::Builder::IO::Scalar'=> 'http://github.com/Test-More/test-more/issues/',
     'Test::Builder::Module' => 'http://github.com/Test-More/test-more/issues/',
     'Test::Builder::Tester' => 'http://github.com/Test-More/test-more/issues/',
     'Test::Builder::Tester::Color'=> 'http://github.com/Test-More/test-more/issues/',
-    'Test::CanFork'         => undef,
-    'Test::CanThread'       => undef,
     'Test::Harness'         => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness',
     'Test::More'            => 'http://github.com/Test-More/test-more/issues/',
-    'Test::More::DeepCheck' => undef,
-    'Test::More::DeepCheck::Strict'=> undef,
-    'Test::More::DeepCheck::Tolerant'=> undef,
-    'Test::More::Tools'     => undef,
-    'Test::MostlyLike'      => undef,
     'Test::Simple'          => 'http://github.com/Test-More/test-more/issues/',
-    'Test::Stream'          => undef,
-    'Test::Stream::API'     => undef,
-    'Test::Stream::ArrayBase'=> undef,
-    'Test::Stream::ArrayBase::Meta'=> undef,
-    'Test::Stream::Block'   => undef,
-    'Test::Stream::Carp'    => undef,
-    'Test::Stream::Context' => undef,
-    'Test::Stream::Event'   => undef,
-    'Test::Stream::Event::Bail'=> undef,
-    'Test::Stream::Event::Child'=> undef,
-    'Test::Stream::Event::Diag'=> undef,
-    'Test::Stream::Event::Finish'=> undef,
-    'Test::Stream::Event::Note'=> undef,
-    'Test::Stream::Event::Ok'=> undef,
-    'Test::Stream::Event::Plan'=> undef,
-    'Test::Stream::Event::Subtest'=> undef,
-    'Test::Stream::ExitMagic'=> undef,
-    'Test::Stream::ExitMagic::Context'=> undef,
-    'Test::Stream::Exporter'=> undef,
-    'Test::Stream::Exporter::Meta'=> undef,
-    'Test::Stream::ForceExit'=> undef,
-    'Test::Stream::IOSets'  => undef,
-    'Test::Stream::Meta'    => undef,
-    'Test::Stream::PackageUtil'=> undef,
-    'Test::Stream::Subtest' => undef,
-    'Test::Stream::Tester'  => undef,
-    'Test::Stream::Tester::Checks'=> undef,
-    'Test::Stream::Tester::Checks::Event'=> undef,
-    'Test::Stream::Tester::Events'=> undef,
-    'Test::Stream::Tester::Events::Event'=> undef,
-    'Test::Stream::Tester::Grab'=> undef,
-    'Test::Stream::Threads' => undef,
-    'Test::Stream::Toolset' => undef,
-    'Test::Stream::Util'    => undef,
     'Test::Tester'          => 'http://github.com/Test-More/test-more/issues/',
     'Test::Tester::Capture' => 'http://github.com/Test-More/test-more/issues/',
     'Test::Tester::CaptureRunner'=> 'http://github.com/Test-More/test-more/issues/',
index 81dc487..255dab0 100644 (file)
@@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta;
 use strict;
 use vars qw($VERSION);
 
-$VERSION = '5.20150220';
+$VERSION = '5.20150320';
 
 sub TIEHASH {
     my ($class, $changed, $removed, $parent) = @_;
index e7f61fe..6b608a0 100644 (file)
@@ -6,7 +6,7 @@ use vars qw[$VERSION %utilities];
 use Module::CoreList;
 use Module::CoreList::TieHashDelta;
 
-$VERSION = '5.20150220';
+$VERSION = '5.20150320';
 
 sub utilities {
     my $perl = shift;
@@ -15,6 +15,16 @@ sub utilities {
     return sort keys %{ $utilities{$perl} };
 }
 
+sub _released_order {   # Sort helper, to make '?' sort after everything else
+    (substr($Module::CoreList::released{$a}, 0, 1) eq "?")
+    ? ((substr($Module::CoreList::released{$b}, 0, 1) eq "?")
+        ? 0
+        : 1)
+    : ((substr($Module::CoreList::released{$b}, 0, 1) eq "?")
+        ? -1
+        : $Module::CoreList::released{$a} cmp $Module::CoreList::released{$b} )
+}
+
 sub first_release_raw {
     my $util = shift;
     $util = shift if eval { $util->isa(__PACKAGE__) };
@@ -32,7 +42,7 @@ sub first_release_raw {
 sub first_release_by_date {
     my @perls = &first_release_raw;
     return unless @perls;
-    return (sort { $Module::CoreList::released{$a} cmp $Module::CoreList::released{$b} } @perls)[0];
+    return (sort _released_order @perls)[0];
 }
 
 sub first_release {
@@ -47,7 +57,7 @@ sub removed_from {
 }
 
 sub removed_from_by_date {
-  my @perls = sort { $Module::CoreList::released{$a} cmp $Module::CoreList::released{$b} } &removed_raw;
+  my @perls = sort _released_order &removed_raw;
   return shift @perls;
 }
 
@@ -1021,6 +1031,13 @@ my %delta = (
         removed => {
         }
     },
+    5.021010 => {
+        delta_from => 5.021009,
+        changed => {
+        },
+        removed => {
+        }
+    },
 );
 
 for my $version (sort { $a <=> $b } keys %delta) {
index 4822495..d42a158 100644 (file)
@@ -11,7 +11,7 @@ is( Module::CoreList::Utils->first_release('corelist'), 5.008009, 'corelist with
 is( Module::CoreList::Utils->first_release_by_date('corelist'), 5.009002, 'corelist with v5.9.2');
 is( Module::CoreList::Utils::first_release_by_date('corelist'), 5.009002, 'corelist with v5.9.2');
 {
-  my @expected = qw(a2p c2ph cppstdin find2perl h2xs pstruct s2p);
+  my @expected = sort qw(a2p c2ph cppstdin find2perl h2xs pstruct s2p);
   {
     my @foo = Module::CoreList::Utils->utilities(5.001);
     is_deeply( \@foo, \@expected, '5.001 utils all present and correct' );
index c16b30d..fc8d758 100644 (file)
@@ -79,7 +79,7 @@ $p->{port_num} = $port2;
 
 {
     local $TODO;
-    $TODO = "Believed not to work on $^O" if $^O eq 'hpux';
+    $TODO = "Believed not to work on $^O" if $^O eq 'hpux' || $^O eq 'os390';
     is($p->ping("127.0.0.1"), 1, 'second port is reachable');
 }
 
@@ -131,7 +131,7 @@ is($p->ping("127.0.0.1"), 1, "send SYN to second port") or diag ("ERRNO: $!");
 
 {
     local $TODO;
-    $TODO = "Believed not to work on $^O" if $^O eq 'hpux' || $^O eq 'MSWin32';
+    $TODO = "Believed not to work on $^O" if $^O eq 'hpux' || $^O eq 'MSWin32' || $^O eq 'os390';
     is($p->ack(), '127.0.0.1', 'IP should be reachable');
 }
 is($p->ack(), undef, 'No more sockets');
index 1811a24..fd24b6e 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use Exporter;
 use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
 
-$VERSION = '3.54';
+$VERSION = '3.55';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//;
 
index 1f174bf..7206260 100644 (file)
@@ -1,3 +1,13 @@
+/*
+ * Local variables:
+ * c-indentation-style: bsd
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set ts=8 sts=4 sw=4 et:
+ */
+
 #define PERL_NO_GET_CONTEXT
 
 #include "EXTERN.h"
 #   include <unistd.h>
 #endif
 
+/* For special handling of os390 sysplexed systems */
+#define SYSNAME "$SYSNAME"
+#define SYSNAME_LEN (sizeof(SYSNAME) - 1)
+
 /* The realpath() implementation from OpenBSD 3.9 to 4.2 (realpath.c 1.13)
  * Renamed here to bsd_realpath() to avoid library conflicts.
  */
@@ -68,144 +82,159 @@ char *
 bsd_realpath(const char *path, char resolved[MAXPATHLEN])
 {
        char *p, *q, *s;
-       size_t left_len, resolved_len;
+       size_t remaining_len, resolved_len;
        unsigned symlinks;
        int serrno;
-       char left[MAXPATHLEN], next_token[MAXPATHLEN];
+       char remaining[MAXPATHLEN], next_token[MAXPATHLEN];
 
        serrno = errno;
        symlinks = 0;
        if (path[0] == '/') {
-               resolved[0] = '/';
-               resolved[1] = '\0';
-               if (path[1] == '\0')
-                       return (resolved);
-               resolved_len = 1;
-               left_len = my_strlcpy(left, path + 1, sizeof(left));
+            resolved[0] = '/';
+            resolved[1] = '\0';
+            if (path[1] == '\0')
+                    return (resolved);
+            resolved_len = 1;
+            remaining_len = my_strlcpy(remaining, path + 1, sizeof(remaining));
        } else {
-               if (getcwd(resolved, MAXPATHLEN) == NULL) {
-                       my_strlcpy(resolved, ".", MAXPATHLEN);
-               return (NULL);
-       }
-               resolved_len = strlen(resolved);
-               left_len = my_strlcpy(left, path, sizeof(left));
-       }
-       if (left_len >= sizeof(left) || resolved_len >= MAXPATHLEN) {
-               errno = ENAMETOOLONG;
-               return (NULL);
+            if (getcwd(resolved, MAXPATHLEN) == NULL) {
+                my_strlcpy(resolved, ".", MAXPATHLEN);
+                return (NULL);
+            }
+            resolved_len = strlen(resolved);
+            remaining_len = my_strlcpy(remaining, path, sizeof(remaining));
        }
-
-       /*
-        * Iterate over path components in 'left'.
-        */
-       while (left_len != 0) {
-               /*
-                * Extract the next path component and adjust 'left'
-                * and its length.
-                */
-               p = strchr(left, '/');
-               s = p ? p : left + left_len;
-               if ((STRLEN)(s - left) >= (STRLEN)sizeof(next_token)) {
-                       errno = ENAMETOOLONG;
-                       return (NULL);
-                       }
-               memcpy(next_token, left, s - left);
-               next_token[s - left] = '\0';
-               left_len -= s - left;
-               if (p != NULL)
-                       memmove(left, s + 1, left_len + 1);
-               if (resolved[resolved_len - 1] != '/') {
-                       if (resolved_len + 1 >= MAXPATHLEN) {
-                               errno = ENAMETOOLONG;
-                               return (NULL);
-               }
-                       resolved[resolved_len++] = '/';
-                       resolved[resolved_len] = '\0';
+       if (remaining_len >= sizeof(remaining) || resolved_len >= MAXPATHLEN) {
+            errno = ENAMETOOLONG;
+            return (NULL);
        }
-               if (next_token[0] == '\0')
-                       continue;
-               else if (strcmp(next_token, ".") == 0)
-                       continue;
-               else if (strcmp(next_token, "..") == 0) {
-                       /*
-                        * Strip the last path component except when we have
-                        * single "/"
-                        */
-                       if (resolved_len > 1) {
-                               resolved[resolved_len - 1] = '\0';
-                               q = strrchr(resolved, '/') + 1;
-                               *q = '\0';
-                               resolved_len = q - resolved;
-                       }
-                       continue;
-    }
 
        /*
-                * Append the next path component and lstat() it. If
-                * lstat() fails we still can return successfully if
-                * there are no more path components left.
+        * Iterate over path components in 'remaining'.
         */
-               resolved_len = my_strlcat(resolved, next_token, MAXPATHLEN);
-               if (resolved_len >= MAXPATHLEN) {
-                       errno = ENAMETOOLONG;
-                       return (NULL);
-               }
+       while (remaining_len != 0) {
+
+            /*
+             * Extract the next path component and adjust 'remaining'
+             * and its length.
+             */
+
+            p = strchr(remaining, '/');
+            s = p ? p : remaining + remaining_len;
+            if ((STRLEN)(s - remaining) >= (STRLEN)sizeof(next_token)) {
+                errno = ENAMETOOLONG;
+                return (NULL);
+            }
+            memcpy(next_token, remaining, s - remaining);
+            next_token[s - remaining] = '\0';
+            remaining_len -= s - remaining;
+            if (p != NULL)
+                memmove(remaining, s + 1, remaining_len + 1);
+            if (resolved[resolved_len - 1] != '/') {
+                if (resolved_len + 1 >= MAXPATHLEN) {
+                    errno = ENAMETOOLONG;
+                    return (NULL);
+                }
+                resolved[resolved_len++] = '/';
+                resolved[resolved_len] = '\0';
+            }
+            if (next_token[0] == '\0')
+                continue;
+            else if (strcmp(next_token, ".") == 0)
+                continue;
+            else if (strcmp(next_token, "..") == 0) {
+                /*
+                 * Strip the last path component except when we have
+                 * single "/"
+                 */
+                if (resolved_len > 1) {
+                    resolved[resolved_len - 1] = '\0';
+                    q = strrchr(resolved, '/') + 1;
+                    *q = '\0';
+                    resolved_len = q - resolved;
+                }
+                continue;
+            }
+
+            /*
+             * Append the next path component and lstat() it. If
+             * lstat() fails we still can return successfully if
+             * there are no more path components left.
+             */
+            resolved_len = my_strlcat(resolved, next_token, MAXPATHLEN);
+            if (resolved_len >= MAXPATHLEN) {
+                errno = ENAMETOOLONG;
+                return (NULL);
+            }
 #if defined(HAS_LSTAT) && defined(HAS_READLINK) && defined(HAS_SYMLINK)
-               {
-                       struct stat sb;
-                       if (lstat(resolved, &sb) != 0) {
-                               if (errno == ENOENT && p == NULL) {
-                                       errno = serrno;
-                                       return (resolved);
-                               }
-                               return (NULL);
-                       }
-                       if (S_ISLNK(sb.st_mode)) {
-                               int slen;
-                               char symlink[MAXPATHLEN];
-                               
-                               if (symlinks++ > MAXSYMLINKS) {
-                                       errno = ELOOP;
-                                       return (NULL);
-                               }
-                               slen = readlink(resolved, symlink, sizeof(symlink) - 1);
-                               if (slen < 0)
-                                       return (NULL);
-                               symlink[slen] = '\0';
-                               if (symlink[0] == '/') {
-                                       resolved[1] = 0;
-                                       resolved_len = 1;
-                               } else if (resolved_len > 1) {
-                                       /* Strip the last path component. */
-                                       resolved[resolved_len - 1] = '\0';
-                                       q = strrchr(resolved, '/') + 1;
-                                       *q = '\0';
-                                       resolved_len = q - resolved;
-                               }
-
-       /*
-                                * If there are any path components left, then
-                                * append them to symlink. The result is placed
-                                * in 'left'.
-        */
-                               if (p != NULL) {
-                                       if (symlink[slen - 1] != '/') {
-                                               if ((STRLEN)(slen + 1) >= (STRLEN)sizeof(symlink)) {
-                                                       errno = ENAMETOOLONG;
-                                                       return (NULL);
-                                               }
-                                               symlink[slen] = '/';
-                                               symlink[slen + 1] = 0;
-                                       }
-                                       left_len = my_strlcat(symlink, left, sizeof(symlink));
-                                       if (left_len >= sizeof(left)) {
-                                               errno = ENAMETOOLONG;
-                                               return (NULL);
-                                       }
-                               }
-                               left_len = my_strlcpy(left, symlink, sizeof(left));
-                       }
-               }
+            {
+                struct stat sb;
+                if (lstat(resolved, &sb) != 0) {
+                    if (errno == ENOENT && p == NULL) {
+                        errno = serrno;
+                        return (resolved);
+                    }
+                    return (NULL);
+                }
+                if (S_ISLNK(sb.st_mode)) {
+                    int slen;
+                    char symlink[MAXPATHLEN];
+
+                    if (symlinks++ > MAXSYMLINKS) {
+                        errno = ELOOP;
+                        return (NULL);
+                    }
+                    slen = readlink(resolved, symlink, sizeof(symlink) - 1);
+                    if (slen < 0)
+                        return (NULL);
+                    symlink[slen] = '\0';
+#  ifdef EBCDIC /* XXX Probably this should be only os390 */
+                    /* Replace all instances of $SYSNAME/foo simply by /foo */
+                    if (slen > SYSNAME_LEN + strlen(next_token)
+                        && strnEQ(symlink, SYSNAME, SYSNAME_LEN)
+                        && *(symlink + SYSNAME_LEN) == '/'
+                        && strEQ(symlink + SYSNAME_LEN + 1, next_token))
+                    {
+                        goto not_symlink;
+                    }
+#  endif
+                    if (symlink[0] == '/') {
+                        resolved[1] = 0;
+                        resolved_len = 1;
+                    } else if (resolved_len > 1) {
+                        /* Strip the last path component. */
+                        resolved[resolved_len - 1] = '\0';
+                        q = strrchr(resolved, '/') + 1;
+                        *q = '\0';
+                        resolved_len = q - resolved;
+                    }
+
+                    /*
+                     * If there are any path components left, then
+                     * append them to symlink. The result is placed
+                     * in 'remaining'.
+                     */
+                    if (p != NULL) {
+                        if (symlink[slen - 1] != '/') {
+                            if ((STRLEN)(slen + 1) >= (STRLEN)sizeof(symlink)) {
+                                errno = ENAMETOOLONG;
+                                return (NULL);
+                            }
+                            symlink[slen] = '/';
+                            symlink[slen + 1] = 0;
+                        }
+                        remaining_len = my_strlcat(symlink, remaining, sizeof(symlink));
+                        if (remaining_len >= sizeof(remaining)) {
+                            errno = ENAMETOOLONG;
+                            return (NULL);
+                        }
+                    }
+                    remaining_len = my_strlcpy(remaining, symlink, sizeof(remaining));
+                }
+#  ifdef EBCDIC
+              not_symlink: ;
+#  endif
+            }
 #endif
        }
 
@@ -214,7 +243,7 @@ bsd_realpath(const char *path, char resolved[MAXPATHLEN])
         * is a single "/".
         */
        if (resolved_len > 1 && resolved[resolved_len - 1] == '/')
-               resolved[resolved_len - 1] = '\0';
+            resolved[resolved_len - 1] = '\0';
        return (resolved);
 }
 #endif
index 7da1ce4..688ea00 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec;
 use strict;
 use vars qw(@ISA $VERSION);
 
-$VERSION = '3.53';
+$VERSION = '3.55';
 $VERSION =~ tr/_//;
 
 my %module = (MacOS   => 'Mac',
index c81292c..ab917c5 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.54';
+$VERSION = '3.55';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index 0f9f71a..8c3b64c 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::Epoc;
 use strict;
 use vars qw($VERSION @ISA);
 
-$VERSION = '3.54';
+$VERSION = '3.55';
 $VERSION =~ tr/_//;
 
 require File::Spec::Unix;
index 3f87865..1ded427 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 
 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
 
-$VERSION = '3.54';
+$VERSION = '3.55';
 $VERSION =~ tr/_//;
 
 require Exporter;
index 7aaf302..2b0935b 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.54';
+$VERSION = '3.55';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index 291ac97..92d95f7 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.54';
+$VERSION = '3.55';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index 6860209..98a232d 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::Unix;
 use strict;
 use vars qw($VERSION);
 
-$VERSION = '3.54';
+$VERSION = '3.55';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//;
 
index 1fe08a8..d74c0be 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.54';
+$VERSION = '3.55';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index d148271..bbaf0e3 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.54';
+$VERSION = '3.55';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index 42b84ef..9a87aa9 100644 (file)
@@ -21,7 +21,12 @@ $safe->deny_only();
 # Expression that triggers require utf8 and call to SWASHNEW.
 # Fails with "Undefined subroutine PLPerl::utf8::SWASHNEW called"
 # if SWASHNEW is not shared, else returns true if unicode logic is working.
-my $trigger = q{ my $a = pack('U',0xC4); my $b = chr 0xE4; utf8::upgrade $b; $a =~ /$b/i };
+# (For early Perls we don't take into account EBCDIC, so will fail there
+my $trigger = q{ my $a = pack('U',0xC4); my $b = chr }
+            . (($] lt 5.007_003) ? "" : 'utf8::unicode_to_native(')
+            . '0xE4'
+            . (($] lt 5.007_003) ? "" : ')')
+            . q{; utf8::upgrade $b; $a =~ /$b/i };
 
 ok $safe->reval( $trigger ), 'trigger expression should return true';
 is $@, '', 'trigger expression should not die';
index c383142..7fc40ba 100644 (file)
@@ -102,7 +102,7 @@ is($thawed->{"b"}->(), "JAPH");
 $freezed = freeze $obj[2];
 $thawed  = thaw $freezed;
 
-is($thawed->(), 42);
+is($thawed->(), (ord "A") == 193 ? -118 : 42);
 
 ######################################################################
 
index fd20ef6..a8dd6cd 100644 (file)
@@ -32,8 +32,10 @@ is($x, ${thaw freeze \$x});
 $x = join '', map {chr $_} (0..1023);
 is($x, ${thaw freeze \$x});
 
-# Char in the range 127-255 (probably) in utf8
-$x = chr (175) . chr (256);
+# Char in the range 127-255 (probably) in utf8.  This just won't work for
+# EBCDIC for early Perls.
+$x = ($] lt 5.007_003) ? chr(175) : chr(utf8::unicode_to_native(175))
+   . chr (256);
 chop $x;
 is($x, ${thaw freeze \$x});
 
index 601e495..4d0e79e 100644 (file)
@@ -5,7 +5,7 @@ require Exporter;
 use strict;
 our @ISA = qw(Exporter);
 our @EXPORT = qw(Complete);
-our $VERSION = '1.402';
+our $VERSION = '1.403';
 
 #      @(#)complete.pl,v1.2            (me@anywhere.EBay.Sun.COM) 09/23/91
 
@@ -162,7 +162,7 @@ sub Complete {
                 };
 
                 # printable char
-                ord >= 32 && do {
+                ord >= ord(" ") && do {
                     $return .= $_;
                     $r++;
                     print;
index 9de8724..7d7ea3d 100644 (file)
@@ -5,7 +5,7 @@ use 5.008;
 use strict;
 use warnings;
 
-our $VERSION = '1.96_001';
+our $VERSION = '2.01';
 my $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -134,7 +134,7 @@ threads - Perl interpreter-based threads
 
 =head1 VERSION
 
-This document describes threads version 1.96
+This document describes threads version 2.01
 
 =head1 WARNING
 
index 4ccde34..96973b7 100644 (file)
@@ -48,7 +48,7 @@ my $rc = $thr->join();
 ok(! defined($rc), 'Exited: threads->exit()');
 
 
-run_perl(prog => 'use threads 1.96;' .
+run_perl(prog => 'use threads 2.01;' .
                  'threads->exit(86);' .
                  'exit(99);',
          nolib => ($ENV{PERL_CORE}) ? 0 : 1,
@@ -98,7 +98,7 @@ $rc = $thr->join();
 ok(! defined($rc), 'Exited: $thr->set_thread_exit_only');
 
 
-run_perl(prog => 'use threads 1.96 qw(exit thread_only);' .
+run_perl(prog => 'use threads 2.01 qw(exit thread_only);' .
                  'threads->create(sub { exit(99); })->join();' .
                  'exit(86);',
          nolib => ($ENV{PERL_CORE}) ? 0 : 1,
@@ -108,7 +108,7 @@ run_perl(prog => 'use threads 1.96 qw(exit thread_only);' .
     is($?>>8, 86, "'use threads 'exit' => 'thread_only'");
 }
 
-my $out = run_perl(prog => 'use threads 1.96;' .
+my $out = run_perl(prog => 'use threads 2.01;' .
                            'threads->create(sub {' .
                            '    exit(99);' .
                            '});' .
@@ -124,7 +124,7 @@ my $out = run_perl(prog => 'use threads 1.96;' .
 like($out, qr/1 finished and unjoined/, "exit(status) in thread");
 
 
-$out = run_perl(prog => 'use threads 1.96 qw(exit thread_only);' .
+$out = run_perl(prog => 'use threads 2.01 qw(exit thread_only);' .
                         'threads->create(sub {' .
                         '   threads->set_thread_exit_only(0);' .
                         '   exit(99);' .
@@ -141,7 +141,7 @@ $out = run_perl(prog => 'use threads 1.96 qw(exit thread_only);' .
 like($out, qr/1 finished and unjoined/, "set_thread_exit_only(0)");
 
 
-run_perl(prog => 'use threads 1.96;' .
+run_perl(prog => 'use threads 2.01;' .
                  'threads->create(sub {' .
                  '   $SIG{__WARN__} = sub { exit(99); };' .
                  '   die();' .
index e668e62..a0e6296 100644 (file)
@@ -161,7 +161,7 @@ package main;
 
 # bugid #24165
 
-run_perl(prog => 'use threads 1.96;' .
+run_perl(prog => 'use threads 2.01;' .
                  'sub a{threads->create(shift)} $t = a sub{};' .
                  '$t->tid; $t->join; $t->tid',
          nolib => ($ENV{PERL_CORE}) ? 0 : 1,
index 3bbca65..f5395cf 100644 (file)
 #ifndef sv_dup_inc
 #  define sv_dup_inc(s,t)      SvREFCNT_inc(sv_dup(s,t))
 #endif
+#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
 
 #ifdef USE_ITHREADS
 
diff --git a/doio.c b/doio.c
index a63f2a2..218887d 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -377,6 +377,7 @@ Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len,
                else {
                    PerlIO *that_fp = NULL;
                     int wanted_fd;
+                    UV uv;
                    if (num_svs > 1) {
                        /* diag_listed_as: More than one argument to '%s' open */
                        Perl_croak(aTHX_ "More than one argument to '%c&' open",IoTYPE(io));
@@ -390,8 +391,11 @@ Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len,
                         wanted_fd = SvUV(*svp);
                        num_svs = 0;
                    }
-                   else if (isDIGIT(*type)) {
-                        wanted_fd = grok_atou(type, NULL);
+                   else if (isDIGIT(*type)
+                        && grok_atoUV(type, &uv, NULL)
+                        && uv <= INT_MAX
+                    ) {
+                        wanted_fd = (int)uv;
                    }
                    else {
                        const IO* thatio;
index f993f53..801240b 100644 (file)
@@ -88,7 +88,9 @@ S_grok_bslash_o(pTHX_ char **s, UV *uv, const char** error_msg,
 
 /*  Documentation to be supplied when interface nailed down finally
  *  This returns FALSE if there is an error which the caller need not recover
- *  from; , otherwise TRUE.  In either case the caller should look at *len
+ *  from; otherwise TRUE.  In either case the caller should look at *len [???].
+ *  It guarantees that the returned codepoint, *uv, when expressed as
+ *  utf8 bytes, would fit within the skipped "\o{...}" bytes.
  *  On input:
  *     s   is the address of a pointer to a NULL terminated string that begins
  *         with 'o', and the previous character was a backslash.  At exit, *s
@@ -118,6 +120,11 @@ S_grok_bslash_o(pTHX_ char **s, UV *uv, const char** error_msg,
                 * ourselves */
                | PERL_SCAN_SILENT_ILLDIGIT;
 
+#ifdef DEBUGGING
+    char *start = *s - 1;
+    assert(*start == '\\');
+#endif
+
     PERL_ARGS_ASSERT_GROK_BSLASH_O;
 
 
@@ -176,6 +183,10 @@ S_grok_bslash_o(pTHX_ char **s, UV *uv, const char** error_msg,
     /* Return past the '}' */
     *s = e + 1;
 
+    /* guarantee replacing "\o{...}" with utf8 bytes fits within
+     * existing space */
+    assert(OFFUNISKIP(*uv) < *s - start);
+
     return TRUE;
 }
 
@@ -188,7 +199,10 @@ S_grok_bslash_x(pTHX_ char **s, UV *uv, const char** error_msg,
 
 /*  Documentation to be supplied when interface nailed down finally
  *  This returns FALSE if there is an error which the caller need not recover
- *  from; , otherwise TRUE.
+ *  from; otherwise TRUE.
+ *  It guarantees that the returned codepoint, *uv, when expressed as
+ *  utf8 bytes, would fit within the skipped "\x{...}" bytes.
+ *
  *  On input:
  *     s   is the address of a pointer to a NULL terminated string that begins
  *         with 'x', and the previous character was a backslash.  At exit, *s
@@ -215,11 +229,13 @@ S_grok_bslash_x(pTHX_ char **s, UV *uv, const char** error_msg,
     char* e;
     STRLEN numbers_len;
     I32 flags = PERL_SCAN_DISALLOW_PREFIX;
+#ifdef DEBUGGING
+    char *start = *s - 1;
+    assert(*start == '\\');
+#endif
 
     PERL_ARGS_ASSERT_GROK_BSLASH_X;
 
-    PERL_UNUSED_ARG(output_warning);
-
     assert(**s == 'x');
     (*s)++;
 
@@ -242,7 +258,7 @@ S_grok_bslash_x(pTHX_ char **s, UV *uv, const char** error_msg,
             }
             return FALSE;
         }
-       return TRUE;
+       goto ok;
     }
 
     e = strchr(*s, '}');
@@ -269,7 +285,7 @@ S_grok_bslash_x(pTHX_ char **s, UV *uv, const char** error_msg,
         }
         *s = e + 1;
         *uv = 0;
-        return TRUE;
+        goto ok;
     }
 
     flags |= PERL_SCAN_ALLOW_UNDERSCORES;
@@ -291,6 +307,10 @@ S_grok_bslash_x(pTHX_ char **s, UV *uv, const char** error_msg,
     /* Return past the '}' */
     *s = e + 1;
 
+  ok:
+    /* guarantee replacing "\x{...}" with utf8 bytes fits within
+     * existing space */
+    assert(OFFUNISKIP(*uv) < *s - start);
     return TRUE;
 }
 
diff --git a/dump.c b/dump.c
index 24ce93e..0629514 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -477,9 +477,9 @@ Perl_sv_peek(pTHX_ SV *sv)
        }
     }
     else if (SvNOKp(sv)) {
-       STORE_NUMERIC_LOCAL_SET_STANDARD();
+       STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD();
        Perl_sv_catpvf(aTHX_ t, "(%"NVgf")",SvNVX(sv));
-       RESTORE_NUMERIC_LOCAL();
+       RESTORE_LC_NUMERIC_UNDERLYING();
     }
     else if (SvIOKp(sv)) {
        if (SvIsUV(sv))
@@ -572,7 +572,10 @@ Perl_dump_packsubs_perl(pTHX_ const HV *stash, bool justperl)
     for (i = 0; i <= (I32) HvMAX(stash); i++) {
         const HE *entry;
        for (entry = HvARRAY(stash)[i]; entry; entry = HeNEXT(entry)) {
-           const GV * const gv = (const GV *)HeVAL(entry);
+           GV * gv = (GV *)HeVAL(entry);
+            if (SvROK(gv) && SvTYPE(SvRV(gv)) == SVt_PVCV)
+                /* unfake a fake GV */
+                (void)CvGV(SvRV(gv));
            if (SvTYPE(gv) != SVt_PVGV || !GvGP(gv))
                continue;
            if (GvCVu(gv))
@@ -902,7 +905,10 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o)
                         sv_catpv(tmpsv, &PL_op_private_labels[label]);
                         sv_catpv(tmpsv, "=");
                     }
-                    sv_catpv(tmpsv, &PL_op_private_labels[enum_label]);
+                    if (enum_label == -1)
+                        Perl_sv_catpvf(aTHX_ tmpsv, "0x%"UVxf, (UV)val);
+                    else
+                        sv_catpv(tmpsv, &PL_op_private_labels[enum_label]);
 
                 }
                 else {
@@ -1084,9 +1090,6 @@ Perl_gv_dump(pTHX_ GV *gv)
     const char* name;
     SV *sv, *tmp = newSVpvs_flags("", SVs_TEMP);
 
-
-    PERL_ARGS_ASSERT_GV_DUMP;
-
     if (!gv) {
        PerlIO_printf(Perl_debug_log, "{}\n");
        return;
@@ -1572,9 +1575,9 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
                && type != SVt_PVCV && type != SVt_PVFM  && type != SVt_REGEXP
                && type != SVt_PVIO && !isGV_with_GP(sv) && !SvVALID(sv))
               || type == SVt_NV) {
-       STORE_NUMERIC_LOCAL_SET_STANDARD();
+       STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD();
        Perl_dump_indent(aTHX_ level, file, "  NV = %.*" NVgf "\n", NV_DIG, SvNVX(sv));
-       RESTORE_NUMERIC_LOCAL();
+       RESTORE_LC_NUMERIC_UNDERLYING();
     }
 
     if (SvROK(sv)) {
@@ -2320,7 +2323,8 @@ S_append_gv_name(pTHX_ GV *gv, SV *out)
 }
 
 #ifdef USE_ITHREADS
-#  define ITEM_SV(item) *av_fetch(comppad, (item)->pad_offset, FALSE);
+#  define ITEM_SV(item) (comppad ? \
+    *av_fetch(comppad, (item)->pad_offset, FALSE) : NULL);
 #else
 #  define ITEM_SV(item) UNOP_AUX_item_sv(item)
 #endif
@@ -2341,8 +2345,14 @@ Perl_multideref_stringify(pTHX_ const OP *o, CV *cv)
     int derefs = 0;
     SV *out = newSVpvn_flags("",0,SVs_TEMP);
 #ifdef USE_ITHREADS
-    PADLIST * const padlist = CvPADLIST(cv);
-    PAD *comppad = PadlistARRAY(padlist)[1];
+    PAD *comppad;
+
+    if (cv) {
+        PADLIST *padlist = CvPADLIST(cv);
+        comppad = PadlistARRAY(padlist)[1];
+    }
+    else
+        comppad = NULL;
 #endif
 
     PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY;
@@ -2353,38 +2363,50 @@ Perl_multideref_stringify(pTHX_ const OP *o, CV *cv)
         case MDEREF_reload:
             actions = (++items)->uv;
             continue;
+            NOT_REACHED; /* NOTREACHED */
 
         case MDEREF_HV_padhv_helem:
             is_hash = TRUE;
+            /* FALLTHROUGH */
         case MDEREF_AV_padav_aelem:
             derefs = 1;
             S_append_padvar(aTHX_ (++items)->pad_offset, cv, out, 1, 0, 1);
             goto do_elem;
+            NOT_REACHED; /* NOTREACHED */
 
         case MDEREF_HV_gvhv_helem:
             is_hash = TRUE;
+            /* FALLTHROUGH */
         case MDEREF_AV_gvav_aelem:
             derefs = 1;
-            sv = ITEM_SV(++items);
+            items++;
+            sv = ITEM_SV(items);
             S_append_gv_name(aTHX_ (GV*)sv, out);
             goto do_elem;
+            NOT_REACHED; /* NOTREACHED */
 
         case MDEREF_HV_gvsv_vivify_rv2hv_helem:
             is_hash = TRUE;
+            /* FALLTHROUGH */
         case MDEREF_AV_gvsv_vivify_rv2av_aelem:
-            sv = ITEM_SV(++items);
+            items++;
+            sv = ITEM_SV(items);
             S_append_gv_name(aTHX_ (GV*)sv, out);
             goto do_vivify_rv2xv_elem;
+            NOT_REACHED; /* NOTREACHED */
 
         case MDEREF_HV_padsv_vivify_rv2hv_helem:
             is_hash = TRUE;
+            /* FALLTHROUGH */
         case MDEREF_AV_padsv_vivify_rv2av_aelem:
             S_append_padvar(aTHX_ (++items)->pad_offset, cv, out, 1, 0, 1);
             goto do_vivify_rv2xv_elem;
+            NOT_REACHED; /* NOTREACHED */
 
         case MDEREF_HV_pop_rv2hv_helem:
         case MDEREF_HV_vivify_rv2hv_helem:
             is_hash = TRUE;
+            /* FALLTHROUGH */
         do_vivify_rv2xv_elem:
         case MDEREF_AV_pop_rv2av_aelem:
         case MDEREF_AV_vivify_rv2av_aelem:
@@ -2401,15 +2423,20 @@ Perl_multideref_stringify(pTHX_ const OP *o, CV *cv)
             switch (actions & MDEREF_INDEX_MASK) {
             case MDEREF_INDEX_const:
                 if (is_hash) {
-                    STRLEN cur;
-                    char *s;
-                    sv = ITEM_SV(++items);
-                    s = SvPV(sv, cur);
-                    pv_pretty(out, s, cur, 30,
-                                NULL, NULL,
-                                (PERL_PV_PRETTY_NOCLEAR
-                                |PERL_PV_PRETTY_QUOTE
-                                |PERL_PV_PRETTY_ELLIPSES));
+                    items++;
+                    sv = ITEM_SV(items);
+                    if (!sv)
+                        sv_catpvs_nomg(out, "???");
+                    else {
+                        STRLEN cur;
+                        char *s;
+                        s = SvPV(sv, cur);
+                        pv_pretty(out, s, cur, 30,
+                                    NULL, NULL,
+                                    (PERL_PV_PRETTY_NOCLEAR
+                                    |PERL_PV_PRETTY_QUOTE
+                                    |PERL_PV_PRETTY_ELLIPSES));
+                    }
                 }
                 else
                     Perl_sv_catpvf(aTHX_ out, "%"IVdf, (++items)->iv);
@@ -2418,7 +2445,8 @@ Perl_multideref_stringify(pTHX_ const OP *o, CV *cv)
                 S_append_padvar(aTHX_ (++items)->pad_offset, cv, out, 1, 0, 1);
                 break;
             case MDEREF_INDEX_gvsv:
-                sv = ITEM_SV(++items);
+                items++;
+                sv = ITEM_SV(items);
                 S_append_gv_name(aTHX_ (GV*)sv, out);
                 break;
             }
@@ -2509,19 +2537,27 @@ Perl_debop(pTHX_ const OP *o)
 }
 
 STATIC CV*
-S_deb_curcv(pTHX_ const I32 ix)
+S_deb_curcv(pTHX_ I32 ix)
 {
-    const PERL_CONTEXT * const cx = &cxstack[ix];
-    if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT)
-        return cx->blk_sub.cv;
-    else if (CxTYPE(cx) == CXt_EVAL && !CxTRYBLOCK(cx))
-        return cx->blk_eval.cv;
-    else if (ix == 0 && PL_curstackinfo->si_type == PERLSI_MAIN)
-        return PL_main_cv;
-    else if (ix <= 0)
-        return NULL;
-    else
-        return deb_curcv(ix - 1);
+    PERL_SI *si = PL_curstackinfo;
+    for (; ix >=0; ix--) {
+        const PERL_CONTEXT * const cx = &(si->si_cxstack)[ix];
+
+        if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT)
+            return cx->blk_sub.cv;
+        else if (CxTYPE(cx) == CXt_EVAL && !CxTRYBLOCK(cx))
+            return cx->blk_eval.cv;
+        else if (ix == 0 && si->si_type == PERLSI_MAIN)
+            return PL_main_cv;
+        else if (ix == 0 && CxTYPE(cx) == CXt_NULL
+               && si->si_type == PERLSI_SORT)
+        {
+            /* fake sort sub; use CV of caller */
+            si = si->si_prev;
+            ix = si->si_cxix + 1;
+        }
+    }
+    return NULL;
 }
 
 void
index 26d3511..a909f7d 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -334,7 +334,7 @@ ApR |I32    |cxinc
 Afp    |void   |deb            |NN const char* pat|...
 Ap     |void   |vdeb           |NN const char* pat|NULLOK va_list* args
 Ap     |void   |debprofdump
-EXp    |SV*    |multideref_stringify   |NN const OP* o|NN CV *cv
+EXp    |SV*    |multideref_stringify   |NN const OP* o|NULLOK CV *cv
 Ap     |I32    |debop          |NN const OP* o
 Ap     |I32    |debstack
 Ap     |I32    |debstackptrs
@@ -445,7 +445,7 @@ Ap  |void   |dump_all
 p      |void   |dump_all_perl  |bool justperl
 Ap     |void   |dump_eval
 Ap     |void   |dump_form      |NN const GV* gv
-Ap     |void   |gv_dump        |NN GV* gv
+Ap     |void   |gv_dump        |NULLOK GV* gv
 Ap     |void   |op_dump        |NN const OP *o
 Ap     |void   |pmop_dump      |NULLOK PMOP* pm
 Ap     |void   |dump_packsubs  |NN const HV* stash
@@ -818,7 +818,7 @@ Apd |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
 Apd    |int    |grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
 ApdR   |bool   |grok_numeric_radix|NN const char **sp|NN const char *send
 Apd    |UV     |grok_oct       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-Apdn   |UV     |grok_atou      |NN const char* pv|NULLOK const char** endptr
+EXpn   |bool   |grok_atoUV     |NN const char* pv|NN UV* valptr|NULLOK const char** endptr
 : These are all indirectly referenced by globals.c. This is somewhat annoying.
 p      |int    |magic_clearenv |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clear_all_env|NN SV* sv|NN MAGIC* mg
@@ -1134,7 +1134,7 @@ 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
-ApMn   |void   |_warn_problematic_locale
+EXpMn  |void   |_warn_problematic_locale
 ApOM   |void   |new_numeric    |NULLOK const char* newcoll
 Ap     |void   |set_numeric_local
 Ap     |void   |set_numeric_radix
@@ -1447,6 +1447,7 @@ Apd       |void   |sv_magic       |NN SV *const sv|NULLOK SV *const obj|const int how \
 Apd    |MAGIC *|sv_magicext    |NN SV *const sv|NULLOK SV *const obj|const int how \
                                |NULLOK const MGVTBL *const vtbl|NULLOK const char *const name \
                                |const I32 namlen
+Ein    |bool   |sv_only_taint_gmagic|NN SV *sv
 : exported for re.pm
 EXp    |MAGIC *|sv_magicext_mglob|NN SV *sv
 ApdbamR        |SV*    |sv_mortalcopy  |NULLOK SV *const oldsv
@@ -1769,7 +1770,7 @@ Ap        |void   |do_gvgv_dump   |I32 level|NN PerlIO *file|NN const char *name\
                                |NULLOK GV *sv
 Ap     |void   |do_hv_dump     |I32 level|NN PerlIO *file|NN const char *name\
                                |NULLOK HV *sv
-Ap     |void   |do_magic_dump  |I32 level|NN PerlIO *file|NN const MAGIC *mg|I32 nest \
+Ap     |void   |do_magic_dump  |I32 level|NN PerlIO *file|NULLOK const MAGIC *mg|I32 nest \
                                |I32 maxnest|bool dumpops|STRLEN pvlim
 Ap     |void   |do_op_dump     |I32 level|NN PerlIO *file|NULLOK const OP *o
 Ap     |void   |do_pmop_dump   |I32 level|NN PerlIO *file|NULLOK const PMOP *pm
@@ -2135,6 +2136,7 @@ Es        |regnode*|regclass      |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
+EsnP   |unsigned int|regex_set_precedence|const U8 my_operator
 Es     |regnode*|handle_regex_sets|NN RExC_state_t *pRExC_state \
                                |NULLOK SV ** return_invlist            \
                                |NN I32 *flagp|U32 depth                \
@@ -2144,10 +2146,12 @@ Es      |regnode*|reg_node      |NN RExC_state_t *pRExC_state|U8 op
 Es     |UV     |reg_recode     |const char value|NN SV **encp
 Es     |regnode*|regpiece      |NN RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth
-Es     |STRLEN |grok_bslash_N  |NN RExC_state_t *pRExC_state               \
-                               |NULLOK regnode** nodep|NULLOK UV *valuep   \
-                               |NN I32 *flagp|U32 depth                    \
-                               |NULLOK SV** substitute_parse
+Es     |bool   |grok_bslash_N  |NN RExC_state_t *pRExC_state               \
+                               |NULLOK regnode** nodep                     \
+                               |NULLOK UV *code_point_p                    \
+                               |NULLOK int* cp_count                       \
+                               |NN I32 *flagp                              \
+                               |const U32 depth
 Es     |void   |reginsert      |NN RExC_state_t *pRExC_state \
                                |U8 op|NN regnode *opnd|U32 depth
 Es     |void   |regtail        |NN RExC_state_t *pRExC_state \
@@ -2276,30 +2280,30 @@ Es      |void   |to_utf8_substr |NN regexp * prog
 Es     |bool   |to_byte_substr |NN regexp * prog
 ERsn   |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
                                                |NN const regnode *scan
-EsnR   |bool   |isGCB          |const PL_GCB_enum before|const PL_GCB_enum after
-EsR    |bool   |isSB           |PL_SB_enum before                              \
-                               |PL_SB_enum after                               \
+EsnR   |bool   |isGCB          |const GCB_enum before|const GCB_enum after
+EsR    |bool   |isSB           |SB_enum before                         \
+                               |SB_enum after                          \
                                |NN const U8 * const strbeg                     \
                                |NN const U8 * const curpos                     \
                                |NN const U8 * const strend                     \
                                |const bool utf8_target
-EsR    |PL_SB_enum|advance_one_SB|NN U8 ** curpos                              \
+EsR    |SB_enum|advance_one_SB |NN U8 ** curpos                                \
                                |NN const U8 * const strend                     \
                                |const bool utf8_target
-EsR    |PL_SB_enum|backup_one_SB|NN const U8 * const strbeg                    \
+EsR    |SB_enum|backup_one_SB  |NN const U8 * const strbeg                     \
                                |NN U8 ** curpos                                \
                                |const bool utf8_target
-EsR    |bool   |isWB           |PL_WB_enum previous                            \
-                               |PL_WB_enum before                              \
-                               |PL_WB_enum after                               \
+EsR    |bool   |isWB           |WB_enum previous                               \
+                               |WB_enum before                         \
+                               |WB_enum after                          \
                                |NN const U8 * const strbeg                     \
                                |NN const U8 * const curpos                     \
                                |NN const U8 * const strend                     \
                                |const bool utf8_target
-EsR    |PL_WB_enum|advance_one_WB|NN U8 ** curpos                              \
+EsR    |WB_enum|advance_one_WB |NN U8 ** curpos                                \
                                |NN const U8 * const strend                     \
                                |const bool utf8_target
-EsR    |PL_WB_enum|backup_one_WB|NN PL_WB_enum * previous                      \
+EsR    |WB_enum|backup_one_WB  |NN WB_enum * previous                  \
                                |NN const U8 * const strbeg                     \
                                |NN U8 ** curpos                                \
                                |const bool utf8_target
diff --git a/embed.h b/embed.h
index 77b867c..4d9ca18 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -45,7 +45,6 @@
 #define _to_utf8_lower_flags(a,b,c,d)  Perl__to_utf8_lower_flags(aTHX_ a,b,c,d)
 #define _to_utf8_title_flags(a,b,c,d)  Perl__to_utf8_title_flags(aTHX_ a,b,c,d)
 #define _to_utf8_upper_flags(a,b,c,d)  Perl__to_utf8_upper_flags(aTHX_ a,b,c,d)
-#define _warn_problematic_locale       Perl__warn_problematic_locale
 #define amagic_call(a,b,c,d)   Perl_amagic_call(aTHX_ a,b,c,d)
 #define amagic_deref_call(a,b) Perl_amagic_deref_call(aTHX_ a,b)
 #define append_utf8_from_native_byte   S_append_utf8_from_native_byte
 #define getcwd_sv(a)           Perl_getcwd_sv(aTHX_ a)
 #define gp_free(a)             Perl_gp_free(aTHX_ a)
 #define gp_ref(a)              Perl_gp_ref(aTHX_ a)
-#define grok_atou              Perl_grok_atou
 #define grok_bin(a,b,c,d)      Perl_grok_bin(aTHX_ a,b,c,d)
 #define grok_hex(a,b,c,d)      Perl_grok_hex(aTHX_ a,b,c,d)
 #define grok_infnan(a,b)       Perl_grok_infnan(aTHX_ a,b)
 #endif
 #if defined(PERL_CORE) || defined(PERL_EXT)
 #define _get_encoding()                Perl__get_encoding(aTHX)
+#define _warn_problematic_locale       Perl__warn_problematic_locale
 #define av_reify(a)            Perl_av_reify(aTHX_ a)
 #define current_re_engine()    Perl_current_re_engine(aTHX)
 #define cv_ckproto_len_flags(a,b,c,d,e)        Perl_cv_ckproto_len_flags(aTHX_ a,b,c,d,e)
+#define grok_atoUV             Perl_grok_atoUV
 #define mg_find_mglob(a)       Perl_mg_find_mglob(aTHX_ a)
 #define multideref_stringify(a,b)      Perl_multideref_stringify(aTHX_ a,b)
 #define op_clear(a)            Perl_op_clear(aTHX_ a)
 #define reg_temp_copy(a,b)     Perl_reg_temp_copy(aTHX_ a,b)
 #define report_uninit(a)       Perl_report_uninit(aTHX_ a)
 #define sv_magicext_mglob(a)   Perl_sv_magicext_mglob(aTHX_ a)
+#define sv_only_taint_gmagic   S_sv_only_taint_gmagic
 #define validate_proto(a,b,c)  Perl_validate_proto(aTHX_ a,b,c)
 #define vivify_defelem(a)      Perl_vivify_defelem(aTHX_ a)
 #define yylex()                        Perl_yylex(aTHX)
 #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 regclass(a,b,c,d,e,f,g,h)      S_regclass(aTHX_ a,b,c,d,e,f,g,h)
+#define regex_set_precedence   S_regex_set_precedence
 #define reginsert(a,b,c,d)     S_reginsert(aTHX_ a,b,c,d)
 #define regnode_guts(a,b,c,d)  S_regnode_guts(aTHX_ a,b,c,d)
 #define regpatws               S_regpatws
index 5deaa2c..e8c45ee 100644 (file)
@@ -15,7 +15,7 @@ require Exporter;
 # walkoptree comes from B.xs
 
 BEGIN {
-    $B::VERSION = '1.56';
+    $B::VERSION = '1.57';
     @B::EXPORT_OK = ();
 
     # Our BOOT code needs $VERSION set, and will append to @EXPORT_OK.
index 41518d8..b9885c3 100644 (file)
@@ -1418,36 +1418,46 @@ aux_list(o, cv)
                         actions = (++items)->uv;
                         PUSHs(sv_2mortal(newSVuv(actions)));
                         continue;
+                        NOT_REACHED; /* NOTREACHED */
 
                     case MDEREF_HV_padhv_helem:
                         is_hash = TRUE;
+                        /* FALLTHROUGH */
                     case MDEREF_AV_padav_aelem:
                         PUSHs(sv_2mortal(newSVuv((++items)->pad_offset)));
                         goto do_elem;
+                        NOT_REACHED; /* NOTREACHED */
 
                     case MDEREF_HV_gvhv_helem:
                         is_hash = TRUE;
+                        /* FALLTHROUGH */
                     case MDEREF_AV_gvav_aelem:
                         sv = ITEM_SV(++items);
                         PUSHs(make_sv_object(aTHX_ sv));
                         goto do_elem;
+                        NOT_REACHED; /* NOTREACHED */
 
                     case MDEREF_HV_gvsv_vivify_rv2hv_helem:
                         is_hash = TRUE;
+                        /* FALLTHROUGH */
                     case MDEREF_AV_gvsv_vivify_rv2av_aelem:
                         sv = ITEM_SV(++items);
                         PUSHs(make_sv_object(aTHX_ sv));
                         goto do_vivify_rv2xv_elem;
+                        NOT_REACHED; /* NOTREACHED */
 
                     case MDEREF_HV_padsv_vivify_rv2hv_helem:
                         is_hash = TRUE;
+                        /* FALLTHROUGH */
                     case MDEREF_AV_padsv_vivify_rv2av_aelem:
                         PUSHs(sv_2mortal(newSVuv((++items)->pad_offset)));
                         goto do_vivify_rv2xv_elem;
+                        NOT_REACHED; /* NOTREACHED */
 
                     case MDEREF_HV_pop_rv2hv_helem:
                     case MDEREF_HV_vivify_rv2hv_helem:
                         is_hash = TRUE;
+                        /* FALLTHROUGH */
                     do_vivify_rv2xv_elem:
                     case MDEREF_AV_pop_rv2av_aelem:
                     case MDEREF_AV_vivify_rv2av_aelem:
index 2f59a60..554450e 100644 (file)
@@ -1,2 +1,6 @@
 # gcc -O3 (and -O2) get overly excited over B.c in MacOS X 10.1.4.
-$self->{OPTIMIZE} = '-O1';
+use Config;
+
+my $optimize = $Config{optimize};
+$optimize =~ s/(^| )-O[2-9]\b/$1-O1/g
+             and $self->{OPTIMIZE} = $optimize;
index bd2149f..cf030df 100644 (file)
@@ -1,2 +1,8 @@
 # gcc -O3 (and -O2) get overly excited over B.c in OpenBSD 3.3/sparc 64
-$self->{OPTIMIZE} = '-O1' if $Config{ARCH} eq 'sparc64';
+use Config;
+
+if ($Config{ARCH} eq 'sparc64') {
+    my $optimize = $Config{optimize};
+    $optimize =~ s/(^| )-O[2-9]\b/$1-O1/g
+                 and $self->{OPTIMIZE} = $optimize;
+}
index 93d8867..76b7089 100644 (file)
@@ -15,7 +15,6 @@ use strict;
 BEGIN  {
     eval { require threads; threads->import; }
 }
-use Test::Stream 'enable_fork';
 use Test::More;
 
 BEGIN { use_ok( 'B' ); }
@@ -225,11 +224,19 @@ SKIP: {
     skip('no fork', 1)
        unless ($Config::Config{d_fork} or $Config::Config{d_pseudofork});
     my $pid;
+    pipe my $r, my $w or die "Can't pipe: $!";;
     if ($pid = fork) {
+        close $w;
+        my $type = <$r>;
+        close $r;
         waitpid($pid,0);
+        is($type, "B::SPECIAL", "special SV table works after pseudofork");
     }
     else {
-        is(ref B::svref_2object(\(!!0)), "B::SPECIAL", "special SV table works after psuedofork");
+        close $r;
+        $|++;
+        print $w ref B::svref_2object(\(!!0));
+        close $w;
         exit;
     }
 }
@@ -280,7 +287,7 @@ is(B::opnumber("pp_null"), 0, "Testing opnumber with opname (pp_null)");
     while (my ($test, $expect) = splice @tests, 0, 2) {
        is(B::perlstring($test), $expect, "B::perlstring($expect)");
        utf8::upgrade $test;
-       $expect =~ s/\\b/\\x\{8\}/g;
+       $expect =~ s/\\b/sprintf("\\x{%x}", utf8::unicode_to_native(8))/eg;
        $expect =~ s/\\([0-7]{3})/sprintf "\\x\{%x\}", oct $1/eg;
        is(B::perlstring($test), $expect, "B::perlstring($expect) (Unicode)");
     }
index 66d2a8a..4f19427 100644 (file)
@@ -165,7 +165,7 @@ checkOptree(note   => q{},
 # c  <1> rv2av[t6] sKRM/1
 # d  <#> gv[*_] s
 # e  <1> rv2gv sKRM/1
-# f  <{> enteriter(next->q last->t redo->g) lKS/DEF
+# f  <{> enteriter(next->q last->t redo->g) KS/DEF
 # r  <0> iter s
 # s  <|> and(other->g) K/1
 # g      <;> nextstate(main 475 (eval 10):1) v:{
@@ -198,7 +198,7 @@ EOT_EOT
 # c  <1> rv2av[t3] sKRM/1
 # d  <$> gv(*_) s
 # e  <1> rv2gv sKRM/1
-# f  <{> enteriter(next->q last->t redo->g) lKS/DEF
+# f  <{> enteriter(next->q last->t redo->g) KS/DEF
 # r  <0> iter s
 # s  <|> and(other->g) K/1
 # g      <;> nextstate(main 559 (eval 15):1) v:{
index 9a11278..d259bf9 100644 (file)
@@ -240,7 +240,7 @@ checkOptree ( name  => '-exec sub { foreach (1..10) {print "foo $_"} }',
 # 3  <$> const[IV 1] s
 # 4  <$> const[IV 10] s
 # 5  <#> gv[*_] s
-# 6  <{> enteriter(next->d last->g redo->7) lKS/DEF
+# 6  <{> enteriter(next->d last->g redo->7) KS/DEF
 # e  <0> iter s
 # f  <|> and(other->7) K/1
 # 7      <;> nextstate(main 442 optree.t:158) v:>,<,%
@@ -259,7 +259,7 @@ EOT_EOT
 # 3  <$> const(IV 1) s
 # 4  <$> const(IV 10) s
 # 5  <$> gv(*_) s
-# 6  <{> enteriter(next->d last->g redo->7) lKS/DEF
+# 6  <{> enteriter(next->d last->g redo->7) KS/DEF
 # e  <0> iter s
 # f  <|> and(other->7) K/1
 # 7      <;> nextstate(main 443 optree_samples.t:182) v:>,<,%
@@ -283,7 +283,7 @@ checkOptree ( name  => '-basic sub { print "foo $_" foreach (1..10) }',
 # -     <@> lineseq KP ->g
 # 1        <;> nextstate(main 445 optree.t:167) v:>,<,% ->2
 # f        <2> leaveloop K/2 ->g
-# 6           <{> enteriter(next->c last->f redo->7) lKS/DEF ->d
+# 6           <{> enteriter(next->c last->f redo->7) KS/DEF ->d
 # -              <0> ex-pushmark s ->2
 # -              <1> ex-list lK ->5
 # 2                 <0> pushmark s ->3
@@ -308,7 +308,7 @@ EOT_EOT
 # -     <@> lineseq KP ->g
 # 1        <;> nextstate(main 446 optree_samples.t:192) v:>,<,% ->2
 # f        <2> leaveloop K/2 ->g
-# 6           <{> enteriter(next->c last->f redo->7) lKS/DEF ->d
+# 6           <{> enteriter(next->c last->f redo->7) KS/DEF ->d
 # -              <0> ex-pushmark s ->2
 # -              <1> ex-list lK ->5
 # 2                 <0> pushmark s ->3
@@ -341,7 +341,7 @@ checkOptree ( name  => '-exec -e foreach (1..10) {print qq{foo $_}}',
 # 4  <$> const[IV 1] s
 # 5  <$> const[IV 10] s
 # 6  <#> gv[*_] s
-# 7  <{> enteriter(next->e last->h redo->8) lKS/DEF
+# 7  <{> enteriter(next->e last->h redo->8) vKS/DEF
 # f  <0> iter s
 # g  <|> and(other->8) vK/1
 # 8      <;> nextstate(main 1 -e:1) v:>,<,%
@@ -361,7 +361,7 @@ EOT_EOT
 # 4  <$> const(IV 1) s
 # 5  <$> const(IV 10) s
 # 6  <$> gv(*_) s
-# 7  <{> enteriter(next->e last->h redo->8) lKS/DEF
+# 7  <{> enteriter(next->e last->h redo->8) vKS/DEF
 # f  <0> iter s
 # g  <|> and(other->8) vK/1
 # 8      <;> nextstate(main 1 -e:1) v:>,<,%
@@ -386,7 +386,7 @@ checkOptree ( name  => '-exec sub { print "foo $_" foreach (1..10) }',
 # 3  <$> const[IV 1] s
 # 4  <$> const[IV 10] s
 # 5  <#> gv[*_] s
-# 6  <{> enteriter(next->c last->f redo->7) lKS/DEF
+# 6  <{> enteriter(next->c last->f redo->7) KS/DEF
 # d  <0> iter s
 # e  <|> and(other->7) K/1
 # 7      <0> pushmark s
@@ -404,7 +404,7 @@ EOT_EOT
 # 3  <$> const(IV 1) s
 # 4  <$> const(IV 10) s
 # 5  <$> gv(*_) s
-# 6  <{> enteriter(next->c last->f redo->7) lKS/DEF
+# 6  <{> enteriter(next->c last->f redo->7) KS/DEF
 # d  <0> iter s
 # e  <|> and(other->7) K/1
 # 7      <0> pushmark s
@@ -530,7 +530,7 @@ checkOptree ( name  => '%h=(); for $_(@a){$h{getkey($_)} = $_}',
 # a  <1> rv2av[t6] sKRM/1
 # b  <#> gv[*_] s
 # c  <1> rv2gv sKRM/1
-# d  <{> enteriter(next->o last->r redo->e) lKS/DEF
+# d  <{> enteriter(next->o last->r redo->e) KS/DEF
 # p  <0> iter s
 # q  <|> and(other->e) K/1
 # e      <;> nextstate(main 505 (eval 24):1) v:{
@@ -561,7 +561,7 @@ EOT_EOT
 # a  <1> rv2av[t3] sKRM/1
 # b  <$> gv(*_) s
 # c  <1> rv2gv sKRM/1
-# d  <{> enteriter(next->o last->r redo->e) lKS/DEF
+# d  <{> enteriter(next->o last->r redo->e) KS/DEF
 # p  <0> iter s
 # q  <|> and(other->e) K/1
 # e      <;> nextstate(main 505 (eval 24):1) v:{
index f5127b6..e35930b 100644 (file)
@@ -1043,8 +1043,16 @@ SKIP: {
 # a way to make a better place for it:
 
 use constant {
-    perl => 'rules',
-    beer => 'foamy',
+
+    # The length of the rhs string must be such that if chr() is applied to it
+    # doesn't yield a character with a backslash mnemonic.  For example, if it
+    # were 'rules' instead of 'rule', it would have 5 characters, and on
+    # EBCDIC, chr(5) is \t.  The dumping code would translate all the 5's in
+    # MG_PTR into "\t", and this test code would be expecting \5's, so the
+    # tests would fail.  No platform that Perl works on translates chr(4) into
+    # a mnemonic.
+    perl => 'rule',
+    beer => 'foam',
 };
 
 unless ($Config{useithreads}) {
@@ -1056,8 +1064,8 @@ unless ($Config{useithreads}) {
   REFCNT = 5
   FLAGS = \\(PADMY,POK,READONLY,(?:IsCOW,)?pPOK\\)     # $] < 5.021005
   FLAGS = \\(POK,(?:IsCOW,)?READONLY,pPOK\\)           # $] >=5.021005
-  PV = $ADDR "rules"\\\0
-  CUR = 5
+  PV = $ADDR "rule"\\\0
+  CUR = 4
   LEN = \d+
   COW_REFCNT = 0
 ');
@@ -1072,8 +1080,8 @@ unless ($Config{useithreads}) {
 'SV = PVMG\\($ADDR\\) at $ADDR
   REFCNT = 5
   FLAGS = \\($PADMY,SMG,POK,(?:IsCOW,)?READONLY,(?:IsCOW,)?pPOK,VALID,EVALED\\)
-  PV = $ADDR "rules"\\\0
-  CUR = 5
+  PV = $ADDR "rule"\\\0
+  CUR = 4
   LEN = \d+
   COW_REFCNT = 0
   MAGIC = $ADDR
@@ -1092,8 +1100,8 @@ unless ($Config{useithreads}) {
 'SV = PVMG\\($ADDR\\) at $ADDR
   REFCNT = 5
   FLAGS = \\($PADMY,SMG,POK,(?:IsCOW,)?READONLY,(?:IsCOW,)?pPOK,VALID,EVALED\\)
-  PV = $ADDR "rules"\\\0
-  CUR = 5
+  PV = $ADDR "rule"\\\0
+  CUR = 4
   LEN = \d+
   COW_REFCNT = 0
   MAGIC = $ADDR
@@ -1111,8 +1119,8 @@ unless ($Config{useithreads}) {
   REFCNT = 6
   FLAGS = \\(PADMY,POK,READONLY,(?:IsCOW,)?pPOK\\)     # $] < 5.021005
   FLAGS = \\(POK,(?:IsCOW,)?READONLY,pPOK\\)           # $] >=5.021005
-  PV = $ADDR "foamy"\\\0
-  CUR = 5
+  PV = $ADDR "foam"\\\0
+  CUR = 4
   LEN = \d+
   COW_REFCNT = 0
 ');
@@ -1123,8 +1131,8 @@ unless ($Config{useithreads}) {
   REFCNT = 6
   FLAGS = \\(PADMY,POK,READONLY,(?:IsCOW,)?pPOK\\)     # $] < 5.021005
   FLAGS = \\(POK,(?:IsCOW,)?READONLY,pPOK\\)           # $] >=5.021005
-  PV = $ADDR "foamy"\\\0
-  CUR = 5
+  PV = $ADDR "foam"\\\0
+  CUR = 4
   LEN = \d+
   COW_REFCNT = 0
 ');
@@ -1132,8 +1140,8 @@ unless ($Config{useithreads}) {
     my $want = 'SV = PVMG\\($ADDR\\) at $ADDR
   REFCNT = 6
   FLAGS = \\($PADMY,SMG,POK,(?:IsCOW,)?READONLY,(?:IsCOW,)?pPOK,VALID,EVALED\\)
-  PV = $ADDR "foamy"\\\0
-  CUR = 5
+  PV = $ADDR "foam"\\\0
+  CUR = 4
   LEN = \d+
   COW_REFCNT = 0
   MAGIC = $ADDR
index c59dd5a..45dd6d3 100644 (file)
@@ -85,7 +85,7 @@ package DynaLoader;
 # Tim.Bunce@ig.co.uk, August 1994
 
 BEGIN {
-    $VERSION = '1.31';
+    $VERSION = '1.32';
 }
 
 use Config;
index dc20b74..137af19 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #define PERLIO_NOT_STDIO 0
+#define PERL_EXT
 
 /*
  * On AIX 4.3 and above the emulation layer is not needed any more, and
index 1f99b61..aac2f7b 100644 (file)
@@ -84,6 +84,7 @@
    Other comments within the dl_dlopen.xs file may be helpful as well.
 */
 
+#define PERL_EXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
index c3df9ea..3dce1ef 100644 (file)
 */
 
 #define PERL_NO_GET_CONTEXT
+#define PERL_EXT
 
 #include "EXTERN.h"
 #define PERL_IN_DL_DLOPEN_XS
index 3027dda..7822878 100644 (file)
@@ -39,6 +39,7 @@ been tested on NeXT platforms.
 
 */
 
+#define PERL_EXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
index 0bf620e..9ecafa0 100644 (file)
@@ -37,6 +37,7 @@
  *
  */
 
+#define PERL_EXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
index 70bedb8..0ed0173 100644 (file)
@@ -22,6 +22,7 @@
 #undef MAGIC
 #endif
 
+#define PERL_EXT
 #include "EXTERN.h"
 #define PERL_IN_DL_HPUX_XS
 #include "perl.h"
index 5a193e4..2914177 100644 (file)
@@ -3,6 +3,7 @@
  * Stubs for platforms that do not support dynamic linking
  */
 
+#define PERL_EXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
index c17f397..562b034 100644 (file)
@@ -26,6 +26,7 @@
  * trouble because of Symbian's New(), Copy(), etc definitions. */
 
 #define DL_SYMBIAN_XS
+#define PERL_EXT
 
 #include "EXTERN.h"
 #include "perl.h"
index 576b08a..ca8d54f 100644 (file)
@@ -45,6 +45,7 @@
  *
  */
 
+#define PERL_EXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
index d99f116..605b63f 100644 (file)
@@ -25,6 +25,7 @@ calls.
 #include <string.h>
 
 #define PERL_NO_GET_CONTEXT
+#define PERL_EXT
 
 #include "EXTERN.h"
 #include "perl.h"
index 96ea8be..557c0ec 100644 (file)
@@ -10,6 +10,7 @@
 
 #define PERL_EUPXS_ALWAYS_EXPORT
 #ifndef START_MY_CXT /* Some IDEs try compiling this standalone. */
+#   define PERL_EXT
 #   include "EXTERN.h"
 #   include "perl.h"
 #   include "XSUB.h"
@@ -100,6 +101,7 @@ dl_generic_private_init(pTHX)       /* called by dl_*.xs dl_private_init() */
 {
 #if defined(PERL_IN_DL_HPUX_XS) || defined(PERL_IN_DL_DLOPEN_XS)
     char *perl_dl_nonlazy;
+    UV uv;
 #endif
     MY_CXT_INIT;
 
@@ -115,9 +117,12 @@ dl_generic_private_init(pTHX)      /* called by dl_*.xs dl_private_init() */
 #endif
 
 #if defined(PERL_IN_DL_HPUX_XS) || defined(PERL_IN_DL_DLOPEN_XS)
-    if ( (perl_dl_nonlazy = getenv("PERL_DL_NONLAZY")) != NULL )
-       dl_nonlazy = grok_atou(perl_dl_nonlazy, NULL);
-    else
+    if ( (perl_dl_nonlazy = getenv("PERL_DL_NONLAZY")) != NULL
+       && grok_atoUV(perl_dl_nonlazy, &uv, NULL)
+       && uv <= INT_MAX
+    ) {
+       dl_nonlazy = (int)uv;
+    } else
        dl_nonlazy = 0;
     if (dl_nonlazy)
        DLDEBUG(1,PerlIO_printf(Perl_debug_log, "DynaLoader bind mode is 'non-lazy'\n"));
index 92c6b7a..61d02ec 100644 (file)
@@ -6,6 +6,13 @@ my $n_tests;
 use Hash::Util::FieldHash;
 use Scalar::Util qw( weaken);
 
+sub numbers_first { # Sort helper: All digit entries sort in front of others
+                    # Makes sorting portable across ASCII/EBCDIC
+    return $a cmp $b if ($a =~ /^\d+$/) == ($b =~ /^\d+$/);
+    return -1 if $a =~ /^\d+$/;
+    return 1;
+}
+
 # The functions in Hash::Util::FieldHash
 # _test_uvar_get, _test_uvar_get and _test_uvar_both
 
@@ -108,7 +115,7 @@ use Scalar::Util qw( weaken);
     $h{ def} = 456;
     is( $counter, 2, "lvalue assign triggers");
 
-    (@x) = sort %h;
+    (@x) = sort numbers_first %h;
     is( $counter, 2, "hash in list context doesn't trigger");
     is( "@x", "123 456 abc def", "correct result");
 
@@ -121,14 +128,14 @@ use Scalar::Util qw( weaken);
     delete $h{ def};
     is( $counter, 5, "good delete triggers");
 
-    (@x) = sort %h;
+    (@x) = sort numbers_first %h;
     is( $counter, 5, "hash in list context doesn't trigger");
     is( "@x", "123 abc", "correct result");
 
     delete $h{ xyz};
     is( $counter, 6, "bad delete triggers");
 
-    (@x) = sort %h;
+    (@x) = sort numbers_first %h;
     is( $counter, 6, "hash in list context doesn't trigger");
     is( "@x", "123 abc", "correct result");
 
@@ -138,7 +145,7 @@ use Scalar::Util qw( weaken);
     $x = $h{ xyz};
     is( $counter, 8, "bad read triggers");
 
-    (@x) = sort %h;
+    (@x) = sort numbers_first %h;
     is( $counter, 8, "hash in list context doesn't trigger");
     is( "@x", "123 abc", "correct result");
 
index 2e9e333..031d074 100644 (file)
@@ -13,6 +13,14 @@ BEGIN {
 
 use strict;
 use Test::More;
+
+sub numbers_first { # Sort helper: All digit entries sort in front of others
+                    # Makes sorting portable across ASCII/EBCDIC
+    return $a cmp $b if ($a =~ /^\d+$/) == ($b =~ /^\d+$/);
+    return -1 if $a =~ /^\d+$/;
+    return 1;
+}
+
 my @Exported_Funcs;
 BEGIN {
     @Exported_Funcs = qw(
@@ -427,9 +435,9 @@ ok(defined($hash_seed) && $hash_seed ne '', "hash_seed $hash_seed");
     my %hash=(0..9);
     lock_keys(%hash,keys(%hash),'a'..'f');
     ok(Internals::SvREADONLY(%hash),'lock_keys args DDS/t');
-    my @hidden=sort(hidden_keys(%hash));
-    my @legal=sort(legal_keys(%hash));
-    my @keys=sort(keys(%hash));
+    my @hidden=sort numbers_first hidden_keys(%hash);
+    my @legal=sort numbers_first legal_keys(%hash);
+    my @keys=sort numbers_first keys(%hash);
     is("@hidden","a b c d e f",'lock_keys() @hidden DDS/t 3');
     is("@legal","0 2 4 6 8 a b c d e f",'lock_keys() @legal DDS/t 3');
     is("@keys","0 2 4 6 8",'lock_keys() @keys');
@@ -452,9 +460,9 @@ ok(defined($hash_seed) && $hash_seed ne '', "hash_seed $hash_seed");
     my %hash=(0..9);
     lock_ref_keys(\%hash,keys %hash,'a'..'f');
     ok(Internals::SvREADONLY(%hash),'lock_ref_keys args DDS/t');
-    my @hidden=sort(hidden_keys(%hash));
-    my @legal=sort(legal_keys(%hash));
-    my @keys=sort(keys(%hash));
+    my @hidden=sort numbers_first hidden_keys(%hash);
+    my @legal=sort numbers_first legal_keys(%hash);
+    my @keys=sort numbers_first keys(%hash);
     is("@hidden","a b c d e f",'lock_ref_keys() @hidden DDS/t 2');
     is("@legal","0 2 4 6 8 a b c d e f",'lock_ref_keys() @legal DDS/t 2');
     is("@keys","0 2 4 6 8",'lock_ref_keys() @keys DDS/t 2');
@@ -463,9 +471,9 @@ ok(defined($hash_seed) && $hash_seed ne '', "hash_seed $hash_seed");
     my %hash=(0..9);
     lock_ref_keys_plus(\%hash,'a'..'f');
     ok(Internals::SvREADONLY(%hash),'lock_ref_keys_plus args DDS/t');
-    my @hidden=sort(hidden_keys(%hash));
-    my @legal=sort(legal_keys(%hash));
-    my @keys=sort(keys(%hash));
+    my @hidden=sort numbers_first hidden_keys(%hash);
+    my @legal=sort numbers_first legal_keys(%hash);
+    my @keys=sort numbers_first keys(%hash);
     is("@hidden","a b c d e f",'lock_ref_keys_plus() @hidden DDS/t');
     is("@legal","0 2 4 6 8 a b c d e f",'lock_ref_keys_plus() @legal DDS/t');
     is("@keys","0 2 4 6 8",'lock_ref_keys_plus() @keys DDS/t');
@@ -474,9 +482,9 @@ ok(defined($hash_seed) && $hash_seed ne '', "hash_seed $hash_seed");
     my %hash=(0..9, 'a' => 'alpha');
     lock_ref_keys_plus(\%hash,'a'..'f');
     ok(Internals::SvREADONLY(%hash),'lock_ref_keys_plus args overlap');
-    my @hidden=sort(hidden_keys(%hash));
-    my @legal=sort(legal_keys(%hash));
-    my @keys=sort(keys(%hash));
+    my @hidden=sort numbers_first hidden_keys(%hash);
+    my @legal=sort numbers_first legal_keys(%hash);
+    my @keys=sort numbers_first keys(%hash);
     is("@hidden","b c d e f",'lock_ref_keys_plus() @hidden overlap');
     is("@legal","0 2 4 6 8 a b c d e f",'lock_ref_keys_plus() @legal overlap');
     is("@keys","0 2 4 6 8 a",'lock_ref_keys_plus() @keys overlap');
@@ -485,9 +493,9 @@ ok(defined($hash_seed) && $hash_seed ne '', "hash_seed $hash_seed");
     my %hash=(0..9);
     lock_keys_plus(%hash,'a'..'f');
     ok(Internals::SvREADONLY(%hash),'lock_keys_plus args DDS/t');
-    my @hidden=sort(hidden_keys(%hash));
-    my @legal=sort(legal_keys(%hash));
-    my @keys=sort(keys(%hash));
+    my @hidden=sort numbers_first hidden_keys(%hash);
+    my @legal=sort numbers_first legal_keys(%hash);
+    my @keys=sort numbers_first keys(%hash);
     is("@hidden","a b c d e f",'lock_keys_plus() @hidden DDS/t 3');
     is("@legal","0 2 4 6 8 a b c d e f",'lock_keys_plus() @legal DDS/t 3');
     is("@keys","0 2 4 6 8",'lock_keys_plus() @keys DDS/t 3');
@@ -496,9 +504,9 @@ ok(defined($hash_seed) && $hash_seed ne '', "hash_seed $hash_seed");
     my %hash=(0..9, 'a' => 'alpha');
     lock_keys_plus(%hash,'a'..'f');
     ok(Internals::SvREADONLY(%hash),'lock_keys_plus args overlap non-ref');
-    my @hidden=sort(hidden_keys(%hash));
-    my @legal=sort(legal_keys(%hash));
-    my @keys=sort(keys(%hash));
+    my @hidden=sort numbers_first hidden_keys(%hash);
+    my @legal=sort numbers_first legal_keys(%hash);
+    my @keys=sort numbers_first keys(%hash);
     is("@hidden","b c d e f",'lock_keys_plus() @hidden overlap non-ref');
     is("@legal","0 2 4 6 8 a b c d e f",'lock_keys_plus() @legal overlap non-ref');
     is("@keys","0 2 4 6 8 a",'lock_keys_plus() @keys overlap non-ref');
index b1118bd..43fad83 100644 (file)
 #  define c99_ilogb    ilogbq
 #  define c99_lgamma   lgammaq
 #  define c99_log1p    log1pq
+#  define c99_llrint   llrintq
 #  define c99_log2     log2q
 /* no logbq */
-/* no llrintq */
-/* no llroundq */
+#  define c99_lround   llroundq
 #  define c99_lrint    lrintq
 #  define c99_lround   lroundq
 #  define c99_nan      nanq
@@ -2002,7 +2002,8 @@ localeconv()
 
         /* localeconv() deals with both LC_NUMERIC and LC_MONETARY, but
          * LC_MONETARY is already in the correct locale */
-        STORE_NUMERIC_STANDARD_FORCE_LOCAL();
+        DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+        STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
 
        RETVAL = newHV();
        sv_2mortal((SV*)RETVAL);
@@ -2011,7 +2012,7 @@ localeconv()
            const struct lconv_offset *integers = lconv_integers;
            const char *ptr = (const char *) lcbuf;
 
-           do {
+           while (strings->name) {
                 /* This string may be controlled by either LC_NUMERIC, or
                  * LC_MONETARY */
                 bool is_utf8_locale
@@ -2042,18 +2043,20 @@ localeconv()
                                         && ! is_invariant_string((U8 *) value, 0)
                                         && is_utf8_string((U8 *) value, 0)),
                         0);
-                  }
-           } while ((++strings)->name);
+                }
+                strings++;
+           }
 
-           do {
+           while (integers->name) {
                const char value = *((const char *)(ptr + integers->offset));
 
                if (value != CHAR_MAX)
                    (void) hv_store(RETVAL, integers->name,
                                    strlen(integers->name), newSViv(value), 0);
-           } while ((++integers)->name);
+                integers++;
+            }
        }
-        RESTORE_NUMERIC_STANDARD();
+        RESTORE_LC_NUMERIC_STANDARD();
 #endif  /* HAS_LOCALECONV */
     OUTPUT:
        RETVAL
@@ -2077,7 +2080,7 @@ setlocale(category, locale = 0)
             }
 #   ifdef LC_ALL
             else if (category == LC_ALL) {
-                SET_NUMERIC_LOCAL();
+                SET_NUMERIC_UNDERLYING();
             }
 #   endif
         }
@@ -2099,8 +2102,8 @@ setlocale(category, locale = 0)
         /* Save retval since subsequent setlocale() calls may overwrite it. */
         retval = savepv(retval);
 
-        /* For locale == 0, we may have switched to NUMERIC_LOCAL.  Switch back
-         * */
+        /* For locale == 0, we may have switched to NUMERIC_UNDERLYING.  Switch
+         * back */
         if (locale == 0) {
             SET_NUMERIC_STANDARD();
             XSRETURN_PV(retval);
@@ -2320,6 +2323,8 @@ acos(x)
        case 20:
 #ifdef c99_logb
            RETVAL = c99_logb(x);
+#elif defined(c99_log2) && FLT_RADIX == 2
+           RETVAL = Perl_floor(c99_log2(PERL_ABS(x)));
 #else
            not_here("logb");
 #endif
@@ -3184,7 +3189,8 @@ strtod(str)
        double num;
        char *unparsed;
     PPCODE:
-        STORE_NUMERIC_STANDARD_FORCE_LOCAL();
+        DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+        STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
        num = strtod(str, &unparsed);
        PUSHs(sv_2mortal(newSVnv(num)));
        if (GIMME_V == G_ARRAY) {
@@ -3194,7 +3200,7 @@ strtod(str)
            else
                PUSHs(&PL_sv_undef);
        }
-        RESTORE_NUMERIC_STANDARD();
+        RESTORE_LC_NUMERIC_STANDARD();
 
 #ifdef HAS_STRTOLD
 
@@ -3205,7 +3211,8 @@ strtold(str)
        long double num;
        char *unparsed;
     PPCODE:
-        STORE_NUMERIC_STANDARD_FORCE_LOCAL();
+        DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+        STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
        num = strtold(str, &unparsed);
        PUSHs(sv_2mortal(newSVnv(num)));
        if (GIMME_V == G_ARRAY) {
@@ -3215,7 +3222,7 @@ strtold(str)
            else
                PUSHs(&PL_sv_undef);
        }
-        RESTORE_NUMERIC_STANDARD();
+        RESTORE_LC_NUMERIC_STANDARD();
 
 #endif
 
index a825178..2a78f19 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 
 our ($AUTOLOAD, %SIGRT);
 
-our $VERSION = '1.51';
+our $VERSION = '1.52';
 
 require XSLoader;
 
index caa7f2b..7e18da4 100644 (file)
@@ -10,6 +10,12 @@ plan(skip_all => "POSIX is unavailable")
 require POSIX;
 POSIX->import();
 
+require($ENV{PERL_CORE} ? "../../t/charset_tools.pl" : "../t/charset_tools.pl");
+
+sub ascii_order {   # Sort helper
+    return native_to_uni($a) cmp native_to_uni($b);
+}
+
 # @POSIX::EXPORT and @POSIX::EXPORT_OK are generated. The intent of this test is
 # to catch *unintended* changes to them introduced by bugs in refactoring.
 
@@ -139,5 +145,5 @@ while (my ($var, $expect) = each %expect) {
     my $have = *{$POSIX::{$var}}{ARRAY};
     cmp_ok(@$have, '==', @$expect,
           "Correct number of entries for \@POSIX::$var");
-    is_deeply([sort @$have], $expect, "Correct entries for \@POSIX::$var");
+    is_deeply([sort ascii_order @$have], $expect, "Correct entries for \@POSIX::$var");
 }
index 9495fcc..ec25d3a 100644 (file)
@@ -6,6 +6,7 @@ BEGIN {
        print "1..0\n";
        exit 0;
     }
+    require 'loc_tools.pl';
 }
 
 use Test::More tests => 120;
@@ -344,7 +345,8 @@ eval { use strict; POSIX->import("S_ISBLK"); my $x = S_ISBLK };
 unlike( $@, qr/Can't use string .* as a symbol ref/, "Can import autoloaded constants" );
 
 SKIP: {
-    skip("localeconv() not present", 26) unless $Config{d_locconv};
+    skip("locales not available", 26) unless locales_enabled(qw(NUMERIC MONETARY));
+    skip("localeconv() not available", 26) unless $Config{d_locconv};
     my $conv = localeconv;
     is(ref $conv, 'HASH', 'localconv returns a hash reference');
 
index 1d0315f..a0ad384 100644 (file)
@@ -194,6 +194,7 @@ SKIP: {
     eval 'use POSIX qw(SA_SIGINFO); SA_SIGINFO';
     skip("no SA_SIGINFO", 1) if $@;
     skip("SA_SIGINFO is broken on AIX 4.2", 1) if ($^O.$Config{osvers}) =~ m/^aix4\.2/;
+    skip("SA_SIGINFO is broken on os390", 1) if ($^O.$Config{osvers}) =~ m/os390/;
     sub hiphup {
        is($_[1]->{signo}, SIGHUP, "SA_SIGINFO got right signal");
     }
index 6b4d3d0..cba14a8 100644 (file)
@@ -9,6 +9,11 @@ BEGIN {
        print "1..0 # Skip: not Encode\n";
        exit 0;
     }
+    if (ord("A") == 193) {
+       print "1..0 # Skip: EBCDIC\n";
+       exit 0;
+    }
+    require "../../t/charset_tools.pl";
 }
 
 use Test::More tests => 24;
@@ -37,13 +42,9 @@ if (open(GRK, ">$grk")) {
 
 if (open(UTF, "<$utf")) {
     binmode(UTF, ":bytes");
-    if (ord('A') == 193) { # EBCDIC
-       # alpha beta gamma in UTF-EBCDIC Unicode (0x3b1 0x3b2 0x3b3)
-       is(scalar <UTF>, "\xb4\x58\xb4\x59\xb4\x62");
-    } else {
-       # alpha beta gamma in UTF-8 Unicode (0x3b1 0x3b2 0x3b3)
-       is(scalar <UTF>, "\xce\xb1\xce\xb2\xce\xb3");
-    }
+
+    # alpha beta gamma in UTF-8 Unicode (0x3b1 0x3b2 0x3b3)
+    is(scalar <UTF>, byte_utf8a_to_utf8n("\xce\xb1\xce\xb2\xce\xb3"));
     close UTF;
 }
 
index 4acb0f5..5e262be 100644 (file)
@@ -10,10 +10,11 @@ BEGIN {
 
 use Config;
 
-use Test::More $Config{useperlio}
-    ? (tests => 1)
-    : (skip_all => 'No PerlIO enabled');
-
+use Test::More (ord("A") == 65 && $Config{useperlio})
+               ? (tests => 1)
+               : (skip_all => '(No PerlIO enabled;'
+                            . ' or is EBCDIC platform which doesnt have'
+                            . ' "use encoding" used by open ":locale")');
 BEGIN {
     $SIG{__WARN__} = sub { $warn .= $_[0] };
 }
index 960a8fd..2b23ab3 100644 (file)
@@ -1,2 +1,6 @@
 # compilation may hang at -O3 level
-$self->{OPTIMIZE} = '-O';
+use Config;
+
+my $optimize = $Config{optimize};
+$optimize =~ s/(^| )-O[2-9]\b/$1-O/g
+             and $self->{OPTIMIZE} = $optimize;
index 578ec89..04bf5bc 100644 (file)
@@ -91,11 +91,19 @@ while (my ($type, $funcs) = each %Kinds) {
 }
 
 # We sort __SUB__ after sub, but before substr, but __PACKAGE__ after package,
-# and __END__ after END.
+# and __END__ after END.  (We create a temporary array of two elements, where
+# the second has the underscores squeezed out, and sort on that element
+# first.)
 sub sort_funcs {
     map { $_->[0] }
-        sort { uc $a->[1] cmp uc $b->[1] || $b->[1] cmp $a->[1] || $a->[0] cmp $b->[0] }
-            map  { my $f = tr/_//dr; [ $_, $f ] }
+        sort { uc $a->[1] cmp uc $b->[1]
+               || $b->[1] cmp $a->[1]
+               || $a->[0] =~ /^_/   # here $a and $b are identical when
+                                    # underscores squeezed out; so if $a
+                                    # begins with an underscore, it should
+                                    # sort after $b
+               || $a->[0] cmp $b->[0]
+             } map  { my $f = tr/_//dr; [ $_, $f ] }
                 @_;
 }
 
@@ -196,7 +204,7 @@ L<perlfunc/"Perl Functions by Category"> section.
 
 =cut
 
-our $VERSION = '1.08';
+our $VERSION = '1.09';
 
 require Exporter;
 
index d861c0f..4631d40 100644 (file)
@@ -224,19 +224,29 @@ static void
 prdatum(FILE *stream, datum d)
 {
        int c;
-       char *p = d.dptr;
+       U8 *p = (U8 *) d.dptr;
        int n = d.dsize;
 
        while (n--) {
-               c = *p++ & 0377;
+               c = *p++;
+#ifndef EBCDIC /* Meta notation doesn't make sense on EBCDIC systems*/
                if (c & 0200) {
-                       fprintf(stream, "M-");
-                       c &= 0177;
+                    fprintf(stream, "M-");
+                    c &= 0177;
                }
-               if (c == 0177 || c < ' ') 
-                       fprintf(stream, "^%c", (c == 0177) ? '?' : c + '@');
-               else
-                       putc(c, stream);
+#endif
+                /* \c notation applies for \0 . \x1f, plus \c? */
+                if (c <= 0x1F || c == QUESTION_MARK_CTRL) {
+                    fprintf(stream, "^%c", toCTRL(c));
+                }
+#ifdef EBCDIC   /* Instead of meta, use \x{} for non-printables */
+                else if (! isPRINT_A(c)) {
+                    fprintf(stream, "\\x{%02x}", c);
+               }
+#endif
+               else { /* must be an ASCII printable */
+                    putc(c, stream);
+                }
        }
 }
 
index a759492..e4b7156 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use warnings;
 use Carp;
 
-our $VERSION = '0.70';
+our $VERSION = '0.71';
 
 require XSLoader;
 
index 2b7b349..c3f88b4 100644 (file)
@@ -1,4 +1,8 @@
 #define PERL_IN_XS_APITEST
+
+/* We want to be able to test things that aren't API yet. */
+#define PERL_EXT
+
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
index 6d1ef82..0ce9e08 100644 (file)
@@ -32,22 +32,24 @@ grok_number_flags(number, flags)
            PUSHs(sv_2mortal(newSVuv(value)));
 
 void
-grok_atou(number, endsv)
+grok_atoUV(number, endsv)
        SV *number
        SV *endsv
     PREINIT:
        STRLEN len;
        const char *pv = SvPV(number, len);
-       UV result;
+       UV value = 0xdeadbeef;
+       bool result;
        const char* endptr;
     PPCODE:
        EXTEND(SP,2);
        if (endsv == &PL_sv_undef) {
-          result = grok_atou(pv, NULL);
+          result = grok_atoUV(pv, &value, NULL);
         } else {
-          result = grok_atou(pv, &endptr);
+          result = grok_atoUV(pv, &value, &endptr);
         }
-       PUSHs(sv_2mortal(newSVuv(result)));
+       PUSHs(result ? &PL_sv_yes : &PL_sv_no);
+       PUSHs(sv_2mortal(newSVuv(value)));
        if (endsv == &PL_sv_undef) {
           PUSHs(sv_2mortal(newSVpvn(NULL, 0)));
        } else {
index 9e95d1b..1c71a2d 100644 (file)
@@ -2,7 +2,13 @@ use strict;
 use warnings;
 use Encode ();
 
-use Test::More tests => 77;
+use Test::More;
+if (ord("A") != 65) {
+    plan skip_all => "Painful to port to non-ASCII";
+}
+else {
+    plan tests => 77;
+}
 
 use XS::APItest qw( fetch_pad_names pad_scalar );
 
index f66717b..c3169ce 100644 (file)
@@ -137,26 +137,26 @@ my @atous =
    [ "12x",  "x",   12, 2 ],
 
    # Leading whitespace is failure.
-   [ " 0",   " 0",  0,  0 ],
-   [ " 1",   " 1",  0,  0 ],
-   [ " 12",  " 12", 0,  0 ],
+   [ " 0",   undef, 0,  0 ],
+   [ " 1",   undef, 0,  0 ],
+   [ " 12",  undef, 0,  0 ],
 
    # Leading garbage is outright failure.
-   [ "x0",   "x0",  0,  0 ],
-   [ "x1",   "x1",  0,  0 ],
-   [ "x12",  "x12", 0,  0 ],
+   [ "x0",   undef,  0,  0 ],
+   [ "x1",   undef,  0,  0 ],
+   [ "x12",  undef, 0,  0 ],
 
    # We do not parse decimal point.
-   [ "12.3",  ".3", 12, 2 ],
+   [ "12.3", ".3", 12, 2 ],
 
    # Leading pluses or minuses are no good.
-   [ "+12", "+12",  0, 0 ],
-   [ "-12", "-12",  0, 0 ],
+   [ "+12", undef,  0, 0 ],
+   [ "-12", undef,  0, 0 ],
 
-   # Extra leading zeros cause overflow.
-   [ "00",   "00",  $ATOU_MAX,  0 ],
-   [ "01",   "01",  $ATOU_MAX,  0 ],
-   [ "012",  "012", $ATOU_MAX,  0 ],
+   # Extra leading zeros are no good.
+   [ "00",   undef,  $ATOU_MAX,  0 ],
+   [ "01",   undef,  $ATOU_MAX,  0 ],
+   [ "012",  undef, $ATOU_MAX,  0 ],
   );
 
 # Values near overflow point.
@@ -173,83 +173,93 @@ if ($Config{uvsize} == 8) {
        # This is well within 64-bit.
        [ "9999999999", "", 9999999999, 10, ],
 
-       # Values valid up to 64-bit and beyond.
+       # Values valid up to 64-bit, failing beyond.
        [ "18446744073709551613", "", 18446744073709551613, 20, ],
        [ "18446744073709551614", "", 18446744073709551614, 20, ],
        [ "18446744073709551615", "", $ATOU_MAX, 20, ],
-       [ "18446744073709551616", "", $ATOU_MAX, 0, ],
-       [ "18446744073709551617", "", $ATOU_MAX, 0, ],
+       [ "18446744073709551616", undef, $ATOU_MAX, 0, ],
+       [ "18446744073709551617", undef, $ATOU_MAX, 0, ],
       );
 } elsif ($Config{uvsize} == 4) {
     push @atous,
       (
-       # Values valid up to 32-bit and beyond.
+       # Values valid up to 32-bit, failing beyond.
        [ "4294967293", "", 4294967293, 10, ],
        [ "4294967294", "", 4294967294, 10, ],
        [ "4294967295", "", $ATOU_MAX, 10, ],
-       [ "4294967296", "", $ATOU_MAX, 0, ],
-       [ "4294967297", "", $ATOU_MAX, 0, ],
+       [ "4294967296", undef, $ATOU_MAX, 0, ],
+       [ "4294967297", undef, $ATOU_MAX, 0, ],
 
        # Still beyond 32-bit.
-       [ "4999999999", "", $ATOU_MAX, 0, ],
-       [ "5678901234", "", $ATOU_MAX, 0, ],
-       [ "6789012345", "", $ATOU_MAX, 0, ],
-       [ "7890123456", "", $ATOU_MAX, 0, ],
-       [ "8901234567", "", $ATOU_MAX, 0, ],
-       [ "9012345678", "", $ATOU_MAX, 0, ],
-       [ "9999999999", "", $ATOU_MAX, 0, ],
-       [ "10000000000", "", $ATOU_MAX, 0, ],
-       [ "12345678901", "", $ATOU_MAX, 0, ],
+       [ "4999999999", undef, $ATOU_MAX, 0, ],
+       [ "5678901234", undef, $ATOU_MAX, 0, ],
+       [ "6789012345", undef, $ATOU_MAX, 0, ],
+       [ "7890123456", undef, $ATOU_MAX, 0, ],
+       [ "8901234567", undef, $ATOU_MAX, 0, ],
+       [ "9012345678", undef, $ATOU_MAX, 0, ],
+       [ "9999999999", undef, $ATOU_MAX, 0, ],
+       [ "10000000000", undef, $ATOU_MAX, 0, ],
+       [ "12345678901", undef, $ATOU_MAX, 0, ],
 
        # 64-bit values are way beyond.
-       [ "18446744073709551613", "", $ATOU_MAX, 0, ],
-       [ "18446744073709551614", "", $ATOU_MAX, 0, ],
-       [ "18446744073709551615", "", $ATOU_MAX, 0, ],
-       [ "18446744073709551616", "", $ATOU_MAX, 0, ],
-       [ "18446744073709551617", "", $ATOU_MAX, 0, ],
+       [ "18446744073709551613", undef, $ATOU_MAX, 0, ],
+       [ "18446744073709551614", undef, $ATOU_MAX, 0, ],
+       [ "18446744073709551615", undef, $ATOU_MAX, 0, ],
+       [ "18446744073709551616", undef, $ATOU_MAX, 0, ],
+       [ "18446744073709551617", undef, $ATOU_MAX, 0, ],
       );
 }
 
 # These will fail to fail once 128/256-bit systems arrive.
 push @atous,
     (
-       [ "23456789012345678901", "", $ATOU_MAX, 0 ],
-       [ "34567890123456789012", "", $ATOU_MAX, 0 ],
-       [ "98765432109876543210", "", $ATOU_MAX, 0 ],
-       [ "98765432109876543211", "", $ATOU_MAX, 0 ],
-       [ "99999999999999999999", "", $ATOU_MAX, 0 ],
+       [ "23456789012345678901", undef, $ATOU_MAX, 0 ],
+       [ "34567890123456789012", undef, $ATOU_MAX, 0 ],
+       [ "98765432109876543210", undef, $ATOU_MAX, 0 ],
+       [ "98765432109876543211", undef, $ATOU_MAX, 0 ],
+       [ "99999999999999999999", undef, $ATOU_MAX, 0 ],
     );
 
 for my $grok (@atous) {
     my $input = $grok->[0];
     my $endsv = $grok->[1];
+    my $expect_ok = defined $endsv;
+    my $strict_ok = $expect_ok && $endsv eq '';
 
-    my ($out_uv, $out_len);
+    my ($ok, $out_uv, $out_len);
 
     # First with endsv.
-    ($out_uv, $out_len) = grok_atou($input, $endsv);
-    is($out_uv,  $grok->[2],
-       "'$input' $endsv - number success (got $out_uv cf $grok->[2])");
-    ok($grok->[3] <= length $input, "'$input' $endsv - length sanity 1");
-    unless (length $grok->[1]) {
-        is($out_len, $grok->[3], "'$input' $endsv - length sanity 2");
-    } # else { ... } ?
-    if ($out_len) {
-        is($endsv, substr($input, $out_len),
-           "'$input' $endsv - length sanity 3");
+    ($ok, $out_uv, $out_len) = grok_atoUV($input, $endsv);
+    is($expect_ok, $ok, sprintf "'$input' expected %s, got %s",
+        ($expect_ok ? 'success' : 'failure'),
+        ($ok ? 'success' : 'failure'),
+    );
+    if ($expect_ok) {
+        is($expect_ok, $ok, "'$input' expect success");
+        is($out_uv,  $grok->[2],
+            "'$input' $endsv - number success (got $out_uv cf $grok->[2])");
+        ok($grok->[3] <= length $input, "'$input' $endsv - length sanity 1");
+        unless (length $grok->[1]) {
+            is($out_len, $grok->[3], "'$input' $endsv - length sanity 2");
+        } # else { ... } ?
+        if ($out_len) {
+            is($endsv, substr($input, $out_len),
+                "'$input' $endsv - length sanity 3");
+        }
+    } else {
+        is($expect_ok, $ok, "'$input' expect failure");
+        is(0xdeadbeef, $out_uv, "'$input' on failure expect value unchanged");
     }
 
     # Then without endsv (undef == NULL).
-    ($out_uv, $out_len) = grok_atou($input, undef);
-    if (length $grok->[1]) {
-        if ($grok->[2] == $ATOU_MAX) {
-            is($out_uv,  $ATOU_MAX, "'$input' undef - number overflow");
-        } else {
-            is($out_uv,  0, "'$input' undef - number zero");
-        }
-    } else {
+    ($ok, $out_uv, $out_len) = grok_atoUV($input, undef);
+    if ($strict_ok) {
+        is($strict_ok, $ok, "'$input' expect strict success");
         is($out_uv,  $grok->[2],
-           "'$input' undef - number success (got $out_uv cf $grok->[2])");
+            "'$input' $endsv - strict number success (got $out_uv cf $grok->[2])");
+    } else {
+        is($strict_ok, $ok, "'$input' expect strict failure");
+        is(0xdeadbeef, $out_uv, "'$input' on strict failure expect value unchanged");
     }
 }
 
index a434e2d..9ebe0d3 100644 (file)
@@ -27,7 +27,7 @@ if($Config{d_setlocale}) {
         # Some locale implementations don't have the 128-255 characters all
         # mean nothing.  Skip the locale tests in that situation
         for my $i (128 .. 255) {
-            if (chr($i) =~ /[[:print:]]/) {
+            if (chr(utf8::unicode_to_native($i)) =~ /[[:print:]]/) {
                 undef $locale;
                 last;
             }
@@ -136,7 +136,7 @@ foreach my $name (sort keys %properties) {
                     fail($@);
                 }
                 else {
-                    my $truth = truth($matches && $i < 128);
+                    my $truth = truth($matches && utf8::native_to_unicode($i) < 128);
                     is ($ret, $truth, "is${function}_A( $display_name ) == $truth");
                 }
                 $ret = truth eval "test_is${function}_L1($i)";
@@ -157,7 +157,7 @@ foreach my $name (sort keys %properties) {
                     fail($@);
                 }
                 else {
-                    my $truth = truth($matches && $i < 128);
+                    my $truth = truth($matches && utf8::native_to_unicode($i) < 128);
                     is ($ret, $truth, "is${function}_LC( $display_name ) == $truth (C locale)");
                 }
             }
@@ -195,7 +195,7 @@ foreach my $name (sort keys %properties) {
                 fail($@);
             }
             else {
-                my $truth = truth($matches && ($i < 128 || $i > 255));
+                my $truth = truth($matches && (utf8::native_to_unicode($i) < 128 || $i > 255));
                 is ($ret, $truth, "is${function}_LC_uvchr( $display_name ) == $truth (C locale)");
             }
         }
@@ -233,7 +233,7 @@ foreach my $name (sort keys %properties) {
                 fail($@);
             }
             else {
-                my $truth = truth($matches && ($i < 128 || $i > 255));
+                my $truth = truth($matches && (utf8::native_to_unicode($i) < 128 || $i > 255));
                 is ($ret, $truth, "is${function}_LC_utf8( $display_name ) == $truth (C locale)");
             }
         }
index 8a8c607..ac8eebe 100644 (file)
@@ -20,7 +20,7 @@ sub test_fetch_absent;
 my $utf8_for_258 = chr 258;
 utf8::encode $utf8_for_258;
 
-my @testkeys = ('N', chr 198, chr 256);
+my @testkeys = ('N', chr utf8::unicode_to_native(198), chr 256);
 my @keys = (@testkeys, $utf8_for_258);
 
 foreach (@keys) {
@@ -396,7 +396,7 @@ sub test_U_hash {
 sub main_tests {
   my ($keys, $testkeys, $description) = @_;
   foreach my $key (@$testkeys) {
-    my $lckey = ($key eq chr 198) ? chr 230 : lc $key;
+    my $lckey = ($key eq chr utf8::unicode_to_native(198)) ? chr utf8::unicode_to_native(230) : lc $key;
     my $unikey = $key;
     utf8::encode $unikey;
 
index df914fc..6c83005 100644 (file)
@@ -66,9 +66,9 @@ if ($^O eq 'vos') {
   $VAR = "";
   is (DPeek ($VAR),    'PVIV(""\0)',           ' $VAR ""');
   is (DPeek (\$VAR),   '\PVIV(""\0)',          '\$VAR ""');
-  $VAR = "\xa8";
-  is (DPeek ($VAR),    'PVIV("\250"\0)',       ' $VAR "\xa8"');
-  is (DPeek (\$VAR),   '\PVIV("\250"\0)',      '\$VAR "\xa8"');
+  $VAR = "\xdf";    # \xdf works for both ASCII and EBCDIC
+  is (DPeek ($VAR),    'PVIV("\337"\0)',       ' $VAR "\xdf"');
+  is (DPeek (\$VAR),   '\PVIV("\337"\0)',      '\$VAR "\xdf"');
   $VAR = "a\x0a\x{20ac}";
   is (DPeek ($VAR), 'PVIV("a\n\342\202\254"\0) [UTF8 "a\n\x{20ac}"]',
                                        ' $VAR "a\x0a\x{20ac}"');
index c57257e..9cb52fc 100644 (file)
@@ -3,7 +3,8 @@
 use Test::More tests => 10;
 
 BEGIN {
-    use_ok('XS::APItest')
+    use_ok('XS::APItest');
+    require 'charset_tools.pl';
 };
 
 $b = "\303\244"; # or encode_utf8("\x{e4}");
@@ -32,7 +33,7 @@ is(eval { XS::APItest::first_byte($1) } || $@, 0303,
 sub TIESCALAR { bless [], shift }
 sub FETCH { ++$f; *{chr 255} }
 tie $t, "main";
-is SvPVutf8($t), "*main::\xc3\xbf",
+is SvPVutf8($t), "*main::" . byte_utf8a_to_utf8n("\xc3\xbf"),
   'SvPVutf8 works with get-magic changing the SV type';
 is $f, 1, 'SvPVutf8 calls get-magic once';
 
@@ -43,7 +44,7 @@ package t {
 }
 tie $t, "t";
 undef $f;
-is SvPVutf8($t), "\xc3\xbf",
+is SvPVutf8($t), byte_utf8a_to_utf8n("\xc3\xbf"),
   'SvPVutf8 works with get-magic downgrading the SV';
 is $f, 1, 'SvPVutf8 calls get-magic once';
 ()="$t";
index bc5a7ed..8322cb9 100644 (file)
@@ -5,13 +5,15 @@ use Test::More;
 
 use XS::APItest;
 
+my $pound_sign = chr utf8::unicode_to_native(163);
+
 foreach ([0, '', '', 'empty'],
         [0, 'N', 'N', '1 char'],
         [1, 'NN', 'N', '1 char substring'],
         [-2, 'Perl', 'Rules', 'different'],
-        [0, chr 163, chr 163, 'pound sign'],
-        [1, chr (163) . 10, chr (163) . 1, '10 pounds is more than 1 pound'],
-        [1, chr(163) . chr(163), chr 163, '2 pound signs are more than 1'],
+        [0, $pound_sign, $pound_sign, 'pound sign'],
+        [1, $pound_sign . 10, $pound_sign . 1, '10 pounds is more than 1 pound'],
+        [1, $pound_sign . $pound_sign, $pound_sign, '2 pound signs are more than 1'],
         [-2, ' $!', " \x{1F42B}!", 'Camels are worth more than 1 dollar'],
         [-1, '!', "!\x{1F42A}", 'Initial substrings match'],
        ) {
@@ -24,6 +26,8 @@ foreach ([0, '', '', 'empty'],
     is(bytes_cmp_utf8($right, $left), -$expect, "$desc reversed");
 }
 
+if (ord("A") == 65) { # EBCDIC is too hard to test for malformations
+
 # Test uft8n_to_uvchr().  These provide essentially complete code coverage.
 
 # Copied from utf8.h
@@ -319,5 +323,6 @@ foreach my $test (@tests) {
         }
     }
 }
+}
 
 done_testing;
index 92ddaf5..058b8aa 100644 (file)
@@ -4,7 +4,7 @@ package re;
 use strict;
 use warnings;
 
-our $VERSION     = "0.31";
+our $VERSION     = "0.32";
 our @ISA         = qw(Exporter);
 our @EXPORT_OK   = ('regmust',
                     qw(is_regexp regexp_pattern
@@ -372,6 +372,9 @@ if $pat contains C<(?{ ... })> assertions or C<(??{ ... })> subexpressions.
 
 =head2 'strict' mode
 
+Note that this is an experimental feature which may be changed or removed in a
+future Perl release.
+
 When C<use re 'strict'> is in effect, stricter checks are applied than
 otherwise when compiling regular expressions patterns.  These may cause more
 warnings to be raised than otherwise, and more things to be fatal instead of
@@ -380,8 +383,8 @@ things, which may be legal, but have a reasonable possibility of not being the
 programmer's actual intent.  This automatically turns on the C<"regexp">
 warnings category (if not already on) within its scope.
 
-As an example of something that is caught under C<"strict'> but not otherwise
-is the pattern
+As an example of something that is caught under C<"strict'>, but not
+otherwise, is the pattern
 
  qr/\xABC/
 
@@ -405,8 +408,9 @@ if there are more than two.
 It is expected that what exactly C<'strict'> does will evolve over time as we
 gain experience with it.  This means that programs that compile under it in
 today's Perl may not compile, or may have more or fewer warnings, in future
-Perls.  There is no backwards compatibility promises with regards to it.  For
-this reason, using it will raise a C<experimental::re_strict> class warning,
+Perls.  There is no backwards compatibility promises with regards to it.  Also
+there are already proposals for an alternate syntax for enabling it.  For
+these reasons, using it will raise a C<experimental::re_strict> class warning,
 unless that category is turned off.
 
 Note that if a pattern compiled within C<'strict'> is recompiled, say by
index 770b456..781ffc9 100644 (file)
@@ -80,7 +80,7 @@ if ('1234'=~/(?:(?<A>\d)|(?<C>!))(?<B>\d)(?<A>\d)(?<B>\d)/){
 
 {
     # tests for new regexp flags
-    my $text = "\xE4";
+    my $text = chr utf8::unicode_to_native(0xE4);
     my $check;
 
     {
index 03c35a0..fd1c35a 100644 (file)
@@ -6,6 +6,7 @@ BEGIN {
                print "1..0 # Skip -- Perl configured without re module\n";
                exit 0;
        }
+        require 'loc_tools.pl';
 }
 
 use strict;
@@ -66,12 +67,7 @@ ok 'f r e l p' =~ /f r e l p/,
 }
 
 SKIP: {
-  if (
-      !$Config::Config{d_setlocale}
-   || $Config::Config{ccflags} =~ /\bD?NO_LOCALE\b/
-  ) {
-    skip "no locale support", 7
-  }
+  skip "no locale support", 7 unless locales_enabled('CTYPE');
   use locale;
   use re '/u';
   is qr//, '(?^u:)', 'use re "/u" with active locale';
index 60e4c02..f75e541 100644 (file)
@@ -96,8 +96,8 @@ TRIE-EXACT
 <BQ>
 matched empty string
 Match successful!
-Found floating substr "Y" at offset 1...
-Found anchored substr "X" at offset 0...
+Found floating substr "Y" at offset 1 (rx_origin now 0)...
+Found anchored substr "X" at offset 0 (rx_origin now 0)...
 Successfully guessed: match at offset 0
 checking floating
 minlen 2
diff --git a/gv.c b/gv.c
index 41cebeb..63bdc56 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -1984,13 +1984,11 @@ S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len,
            {
                /* Ensures that we have an all-digit variable, ${"1foo"} fails
                   this test  */
-               /* This snippet is taken from is_gv_magical */
-               const char *end = name + len;
-               while (--end > name) {
-                   if (!isDIGIT(*end))
-                        return addmg;
-               }
-                paren = grok_atou(name, NULL);
+                UV uv;
+                if (!grok_atoUV(name, &uv, NULL) || uv > I32_MAX)
+                    return addmg;
+                /* XXX why are we using a SSize_t? */
+                paren = (SSize_t)(I32)uv;
                 goto storeparen;
            }
            }
@@ -2540,9 +2538,12 @@ 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", HEKfARG(hvname_hek)));
-        if (PL_stashcache && hvname_hek)
+        if (PL_stashcache && hvname_hek) {
+           DEBUG_o(Perl_deb(aTHX_
+                          "gp_free clearing PL_stashcache for '%"HEKf"'\n",
+                           HEKfARG(hvname_hek)));
            (void)hv_deletehek(PL_stashcache, hvname_hek, G_DISCARD);
+        }
        SvREFCNT_dec(hv);
       }
       if (io && SvREFCNT(io) == 1 && IoIFP(io)
diff --git a/handy.h b/handy.h
index faa9f7a..5337c3f 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -651,9 +651,7 @@ C<isPUNCT_LC_uvchr>, and C<isPUNCT_LC_utf8>.
 Returns a boolean indicating whether the specified character is a
 whitespace character.  This is analogous
 to what C<m/\s/> matches in a regular expression.  Starting in Perl 5.18
-(experimentally), this also matches what C<m/[[:space:]]/> does.
-("Experimentally" means that this change may be backed out in 5.22 if
-field experience indicates that it was unwise.)  Prior to 5.18, only the
+this also matches what C<m/[[:space:]]/> does.  Prior to 5.18, only the
 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.
@@ -665,10 +663,8 @@ C<isSPACE_LC_uvchr>, and C<isSPACE_LC_utf8>.
 
 =for apidoc Am|bool|isPSXSPC|char ch
 (short for Posix Space)
-Starting in 5.18, this is identical (experimentally) in all its forms to the
-corresponding C<isSPACE()> macros.  ("Experimentally" means that this change
-may be backed out in 5.22 if field experience indicates that it
-was unwise.)
+Starting in 5.18, this is identical in all its forms to the
+corresponding C<isSPACE()> macros.
 The locale forms of this macro are identical to their corresponding
 C<isSPACE()> forms in all Perl releases.  In releases prior to 5.18, the
 non-locale forms differ from their C<isSPACE()> forms only in that the
@@ -939,27 +935,26 @@ patched there.  The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
  * useful to group these which have no members that match above Latin1, (or
  * above ASCII in the latter case) */
 
-#  define _CC_SPACE             10      /* \s */
+#  define _CC_SPACE             10      /* \s, [:space:] */
 #  define _CC_BLANK             11      /* [:blank:] */
 #  define _CC_XDIGIT            12      /* [:xdigit:] */
-#  define _CC_PSXSPC            13      /* [:space:] */
-#  define _CC_CNTRL             14      /* [:cntrl:] */
-#  define _CC_ASCII             15      /* [:ascii:] */
-#  define _CC_VERTSPACE         16      /* \v */
+#  define _CC_CNTRL             13      /* [:cntrl:] */
+#  define _CC_ASCII             14      /* [:ascii:] */
+#  define _CC_VERTSPACE         15      /* \v */
 
 #  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. */
-#  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
-#  define _CC_MNEMONIC_CNTRL           24
-/* Unused: 25-31
+#  define _CC_IDFIRST                  16
+#  define _CC_CHARNAME_CONT            17
+#  define _CC_NONLATIN1_FOLD           18
+#  define _CC_NONLATIN1_SIMPLE_FOLD    19
+#  define _CC_QUOTEMETA                20
+#  define _CC_NON_FINAL_FOLD           21
+#  define _CC_IS_IN_SOME_FOLD          22
+#  define _CC_MNEMONIC_CNTRL           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
@@ -982,7 +977,6 @@ typedef enum {
     _CC_ENUM_GRAPH          = _CC_GRAPH,
     _CC_ENUM_LOWER          = _CC_LOWER,
     _CC_ENUM_PRINT          = _CC_PRINT,
-    _CC_ENUM_PSXSPC         = _CC_PSXSPC,
     _CC_ENUM_PUNCT          = _CC_PUNCT,
     _CC_ENUM_SPACE          = _CC_SPACE,
     _CC_ENUM_UPPER          = _CC_UPPER,
@@ -1058,7 +1052,6 @@ END_EXTERN_C
 #   define isGRAPH_A(c)  _generic_isCC_A(c, _CC_GRAPH)
 #   define isLOWER_A(c)  _generic_isCC_A(c, _CC_LOWER)
 #   define isPRINT_A(c)  _generic_isCC_A(c, _CC_PRINT)
-#   define isPSXSPC_A(c) _generic_isCC_A(c, _CC_PSXSPC)
 #   define isPUNCT_A(c)  _generic_isCC_A(c, _CC_PUNCT)
 #   define isSPACE_A(c)  _generic_isCC_A(c, _CC_SPACE)
 #   define isUPPER_A(c)  _generic_isCC_A(c, _CC_UPPER)
@@ -1076,7 +1069,7 @@ END_EXTERN_C
 #   define isGRAPH_L1(c)  _generic_isCC(c, _CC_GRAPH)
 #   define isLOWER_L1(c)  _generic_isCC(c, _CC_LOWER)
 #   define isPRINT_L1(c)  _generic_isCC(c, _CC_PRINT)
-#   define isPSXSPC_L1(c) _generic_isCC(c, _CC_PSXSPC)
+#   define isPSXSPC_L1(c) isSPACE_L1(c)
 #   define isPUNCT_L1(c)  _generic_isCC(c, _CC_PUNCT)
 #   define isSPACE_L1(c)  _generic_isCC(c, _CC_SPACE)
 #   define isUPPER_L1(c)  _generic_isCC(c, _CC_UPPER)
@@ -1189,7 +1182,6 @@ END_EXTERN_C
 #   if ! defined(EBCDIC) && ! defined(NATIVE_TO_LATIN1)
 #       define NATIVE_TO_LATIN1(ch) (ch)
 #   endif
-#   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))
 #   define isBLANK_L1(c)     (isBLANK_A(c)                                   \
@@ -1207,7 +1199,6 @@ END_EXTERN_C
 #   define isPRINT_L1(c)     (isPRINT_A(c)                                   \
                               || (FITS_IN_8_BITS(c)                          \
                                   && NATIVE_TO_LATIN1((U8) c) >= 0xA0))
-#   define isPSXSPC_L1(c)    isSPACE_L1(c)
 #   define isPUNCT_L1(c)     (isPUNCT_A(c)                                   \
                               || (FITS_IN_8_BITS(c)                          \
                                   && (NATIVE_TO_LATIN1((U8) c) == 0xA1       \
@@ -1269,7 +1260,9 @@ END_EXTERN_C
 #define isIDFIRST(c) isIDFIRST_A(c)
 #define isLOWER(c)   isLOWER_A(c)
 #define isPRINT(c)   isPRINT_A(c)
+#define isPSXSPC_A(c) isSPACE_A(c)
 #define isPSXSPC(c)  isPSXSPC_A(c)
+#define isPSXSPC_L1(c) isSPACE_L1(c)
 #define isPUNCT(c)   isPUNCT_A(c)
 #define isSPACE(c)   isSPACE_A(c)
 #define isUPPER(c)   isUPPER_A(c)
@@ -1508,11 +1501,10 @@ END_EXTERN_C
 #define isLOWER_uni(c)      _generic_swash_uni(_CC_LOWER, c)
 #define isPRINT_uni(c)      _generic_swash_uni(_CC_PRINT, c)
 
-/* Posix and regular space are identical above Latin1 */
-#define isPSXSPC_uni(c)     _generic_uni(_CC_PSXSPC, is_XPERLSPACE_cp_high, c)
-
 #define isPUNCT_uni(c)      _generic_swash_uni(_CC_PUNCT, c)
 #define isSPACE_uni(c)      _generic_uni(_CC_SPACE, is_XPERLSPACE_cp_high, c)
+#define isPSXSPC_uni(c)     isSPACE_uni(c)
+
 #define isUPPER_uni(c)      _generic_swash_uni(_CC_UPPER, c)
 #define isVERTWS_uni(c)     _generic_uni(_CC_VERTSPACE, is_VERTWS_cp_high, c)
 #define isWORDCHAR_uni(c)   _generic_swash_uni(_CC_WORDCHAR, c)
@@ -1547,8 +1539,7 @@ END_EXTERN_C
                                                   _is_uni_perl_idstart, c)
 #define isLOWER_LC_uvchr(c)  _generic_LC_swash_uvchr(isLOWER_LC, _CC_LOWER, c)
 #define isPRINT_LC_uvchr(c)  _generic_LC_swash_uvchr(isPRINT_LC, _CC_PRINT, c)
-#define isPSXSPC_LC_uvchr(c) isSPACE_LC_uvchr(c) /* space is identical to posix
-                                                    space under locale */
+#define isPSXSPC_LC_uvchr(c) isSPACE_LC_uvchr(c)
 #define isPUNCT_LC_uvchr(c)  _generic_LC_swash_uvchr(isPUNCT_LC, _CC_PUNCT, c)
 #define isSPACE_LC_uvchr(c)  _generic_LC_uvchr(isSPACE_LC,                     \
                                                     is_XPERLSPACE_cp_high, c)
@@ -1634,10 +1625,7 @@ END_EXTERN_C
 
 #define isLOWER_utf8(p)         _generic_swash_utf8(_CC_LOWER, p)
 #define isPRINT_utf8(p)         _generic_swash_utf8(_CC_PRINT, p)
-
-/* Posix and regular space are identical above Latin1 */
-#define isPSXSPC_utf8(p)        _generic_func_utf8(_CC_PSXSPC, is_XPERLSPACE_high, p)
-
+#define isPSXSPC_utf8(p)        isSPACE_utf8(p)
 #define isPUNCT_utf8(p)         _generic_swash_utf8(_CC_PUNCT, p)
 #define isSPACE_utf8(p)         _generic_func_utf8(_CC_SPACE, is_XPERLSPACE_high, p)
 #define isUPPER_utf8(p)         _generic_swash_utf8(_CC_UPPER, p)
@@ -1679,8 +1667,7 @@ END_EXTERN_C
 #define isIDFIRST_LC_utf8(p) _generic_LC_func_utf8(isIDFIRST_LC, _is_utf8_perl_idstart, p)
 #define isLOWER_LC_utf8(p)   _generic_LC_swash_utf8(isLOWER_LC, _CC_LOWER, p)
 #define isPRINT_LC_utf8(p)   _generic_LC_swash_utf8(isPRINT_LC, _CC_PRINT, p)
-#define isPSXSPC_LC_utf8(p)  isSPACE_LC_utf8(p) /* space is identical to posix
-                                                   space under locale */
+#define isPSXSPC_LC_utf8(p)  isSPACE_LC_utf8(p)
 #define isPUNCT_LC_utf8(p)   _generic_LC_swash_utf8(isPUNCT_LC, _CC_PUNCT, p)
 #define isSPACE_LC_utf8(p)   _generic_LC_func_utf8(isSPACE_LC, is_XPERLSPACE_high, p)
 #define isUPPER_LC_utf8(p)   _generic_LC_swash_utf8(isUPPER_LC, _CC_UPPER, p)
@@ -1889,14 +1876,49 @@ PoisonWith(0xEF) for catching access to freed memory.
 
 #define MEM_SIZE_MAX ((MEM_SIZE)~0)
 
-/* The +0.0 in MEM_WRAP_CHECK_ is an attempt to foil
- * overly eager compilers that will bleat about e.g.
- * (U16)n > (size_t)~0/sizeof(U16) always being false. */
+
 #ifdef PERL_MALLOC_WRAP
-#define MEM_WRAP_CHECK(n,t) \
-       (void)(UNLIKELY(sizeof(t) > 1 && ((MEM_SIZE)(n)+0.0) > MEM_SIZE_MAX/sizeof(t)) && (croak_memory_wrap(),0))
-#define MEM_WRAP_CHECK_1(n,t,a) \
-       (void)(UNLIKELY(sizeof(t) > 1 && ((MEM_SIZE)(n)+0.0) > MEM_SIZE_MAX/sizeof(t)) && (Perl_croak_nocontext("%s",(a)),0))
+
+/* This expression will be constant-folded at compile time.  It checks
+ * whether or not the type of the count n is so small (e.g. U8 or U16, or
+ * U32 on 64-bit systems) that there's no way a wrap-around could occur.
+ * As well as avoiding the need for a run-time check in some cases, it's
+ * designed to avoid compiler warnings like:
+ *     comparison is always false due to limited range of data type
+ */
+
+#  define _MEM_WRAP_NEEDS_RUNTIME_CHECK(n,t) \
+    (sizeof(t) > ((MEM_SIZE)1 << 8*(sizeof(MEM_SIZE) - sizeof(n))))
+
+/* This is written in a slightly odd way to avoid various spurious
+ * compiler warnings. We *want* to write the expression as
+ *    _MEM_WRAP_NEEDS_RUNTIME_CHECK(n,t) && (n > C)
+ * (for some compile-time constant C), but even when the LHS
+ * constant-folds to false at compile-time, g++ insists on emitting
+ * warnings about the RHS (e.g. "comparison is always false"), so instead
+ * we write it as
+ *
+ *    (cond ? n : X) > C
+ *
+ * where X is a constant with X > C always false. Choosing a value for X
+ * is tricky. If 0, some compilers will complain about 0 > C always being
+ * false; if 1, Coverity complains when n happens to be the constant value
+ * '1', that cond ? 1 : 1 has the same value on both branches; so use C
+ * for X and hope that nothing else whines.
+ */
+
+#  define _MEM_WRAP_WILL_WRAP(n,t) \
+      ((_MEM_WRAP_NEEDS_RUNTIME_CHECK(n,t) ? (MEM_SIZE)(n) : \
+            MEM_SIZE_MAX/sizeof(t)) > MEM_SIZE_MAX/sizeof(t))
+
+#  define MEM_WRAP_CHECK(n,t) \
+       (void)(UNLIKELY(_MEM_WRAP_WILL_WRAP(n,t)) \
+        && (croak_memory_wrap(),0))
+
+#  define MEM_WRAP_CHECK_1(n,t,a) \
+       (void)(UNLIKELY(_MEM_WRAP_WILL_WRAP(n,t)) \
+       && (Perl_croak_nocontext("%s",(a)),0))
+
 #define MEM_WRAP_CHECK_(n,t) MEM_WRAP_CHECK(n,t),
 
 #define PERL_STRLEN_ROUNDUP(n) ((void)(((n) > MEM_SIZE_MAX - 2 * PERL_STRLEN_ROUNDUP_QUANTUM) ? (croak_memory_wrap(),0):0),((n-1+PERL_STRLEN_ROUNDUP_QUANTUM)&~((MEM_SIZE)PERL_STRLEN_ROUNDUP_QUANTUM-1)))
index d475f11..737de85 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.9
+# mkdir -p /opt/perl-catamount/lib/perl5/5.21.10
 # 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.9
+# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.21.10
 # 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 a9ffe2e..f0b7726 100644 (file)
@@ -167,22 +167,7 @@ EOF
        *"-c99: Unknown flag"*)
                _ccflags_strict_ansi="-std1"
                ;;
-       *)      # However, use the -c99 only if compiling for
-               # -DPERL_MEM_LOG, where the C99 feature __func__
-               # is useful to have.  Otherwise use the good old
-               # -std1 so that we stay C89 strict, which the goal
-               # of the Perl C code base (no //, no code between
-               # declarations, etc).  Moreover, the Tru64 cc is
-               # not fully C99, and most probably never will be.
-               #
-               # The -DPERL_MEM_LOG can be either in ccflags
-               # (if using an old config.sh) or in the command line
-               # (which has been stowed away in UU/cmdline.opt).
-               #
-               case "$ccflags `cat UU/cmdline.opt`" in
-               *-DPERL_MEM_LOG*)       _ccflags_strict_ansi="-c99"  ;;
-               *)                      _ccflags_strict_ansi="-std1" ;;
-               esac
+       *)      _ccflags_strict_ansi="-c99"
                ;;
        esac
        _lddlflags_strict_ansi="-std1"
index cb1895d..b2650a7 100644 (file)
@@ -598,6 +598,14 @@ EOCBU
 cat >UU/uselargefiles.cbu <<'EOCBU'
 # This script UU/uselargefiles.cbu will get 'called-back' by Configure
 # after it has prompted the user for whether to use large files.
+
+case "$archname:$use64bitall:$use64bitint" in
+    *-LP64*:undef:define)
+       archname=`echo "$archname" | sed 's/-LP64/-64int/'`
+       echo "Archname changed to $archname"
+       ;;
+    esac
+
 case "$uselargefiles" in
     ""|$define|true|[yY]*)
        # there are largefile flags available via getconf(1)
index 6c1d8f0..8fe573e 100644 (file)
 # To get ANSI C, we need to use c89, and ld doesn't exist
 # You can override this with Configure -Dcc=gcc -Dld=ld.
 case "$cc" in
-'') cc='c89' ;;
+'') cc='c99' ;;
 esac
 case "$ld" in
-'') ld='c89' ;;
+'') ld='c99' ;;
 esac
 
 # -DMAXSIG=39 maximum signal number
@@ -33,8 +33,8 @@ esac
 # -DEBCDIC should come from Configure and need not be mentioned here.
 # Prepend your favorites with Configure -Dccflags=your_favorites
 case "$ccflags" in
-'') ccflags='-2 -Wc,XPLINK -DMAXSIG=39 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' ;;
-*) ccflags="$ccflags -2 -Wc,XPLINK -DMAXSIG=39 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC" ;;
+'') ccflags='-qlanglvl=extended:extc89:extc99 -qlongname -qxplink -qdll -qfloat=ieee -qhaltonmsg=3296:4108 -DMAXSIG=39 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC -D_POSIX_SOURCE=1' ;;
+*) ccflags='$ccflags -qlanglvl=extended:extc89:extc99 -qlongname -qxplink -qdll -qfloat=ieee -qhaltonmsg=3296:4108 -DMAXSIG=39 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC -D_POSIX_SOURCE=1' ;;
 esac
 
 # Turning on optimization breaks perl.
@@ -46,7 +46,7 @@ esac
 # To link via definition side decks we need the dll option
 # You can override this with Configure -Ucccdlflags or somesuch.
 case "$cccdlflags" in
-'') cccdlflags='-W 0,dll' ;;
+'') cccdlflags='-qxplink -qdll' ;;
 esac
 
 case "$so" in
@@ -72,7 +72,7 @@ esac
 # information at the end of the executable (=> smaller binaries).
 # Override this option with -Dldflags='whatever else you wanted'.
 case "$ldflags" in
-'') ldflags='-Wl,EDIT=NO -Wl,XPLINK,dll' ;;
+'') ldflags='-qxplink -qdll' ;;
 esac
 
 # In order to build with dynamic be sure to specify:
@@ -110,12 +110,12 @@ define)
         ;;
     esac
     libperl="libperl.$so"
-    ccflags="$ccflags -D_SHR_ENVIRON -DPERL_EXTERNAL_GLOB -Wc,dll"
-    cccdlflags='-c -Wc,XPLINK,dll,EXPORTALL'
+    ccflags="$ccflags -D_SHR_ENVIRON -DPERL_EXTERNAL_GLOB -qexportall -qdll -qxplink"
+    cccdlflags='-c -qexportall -qxplink -qdll'
     # The following will need to be modified for the installed libperl.x.
     # The modification to Config.pm is done by the installperl script after the build and test.
-    ccdlflags="-W l,XPLINK,dll `pwd`/libperl.x"
-    lddlflags="-W l,XPLINK,dll `pwd`/libperl.x"
+    ccdlflags="-qxplink -qdll `pwd`/libperl.x"
+    lddlflags="-qxplink -qdll `pwd`/libperl.x"
     ;;
 esac
 # even on static builds using LIBPATH should be OK.
@@ -219,13 +219,6 @@ fi
 # sprintf() seems to get things right(er).
 gconvert_preference=sprintf
 
-cat >config.arch<<'__CONFIG_ARCH__'
-# The '-W 0,float(ieee)' cannot be used during Configure as ldflags.
-
-ccflags="$ccflags -W 0,float(ieee)"
-
-__CONFIG_ARCH__
-
 # Configure gets these wrong for some reason.
 d_gethostbyaddr_r='undef'
 d_gethostbyname_r='undef'
@@ -259,3 +252,7 @@ d_attribute_warn_unused_result='undef'
 # (C++ but C99 math agrees)
 # XXX: Configure scan for proper behavior
 d_nan='undef'
+
+# Configures says this exists, but it doesn't work properly.  See
+# <54DCE073.4010100@khwilliamson.com>
+d_dir_dd_fd='undef'
diff --git a/hv.c b/hv.c
index 5195ca2..bb9cb27 100644 (file)
--- a/hv.c
+++ b/hv.c
@@ -1726,7 +1726,7 @@ S_clear_placeholders(pTHX_ HV *hv, U32 items)
     } while (--i >= 0);
     /* You can't get here, hence assertion should always fail.  */
     assert (items == 0);
-    NOT_REACHED;
+    NOT_REACHED; /* NOTREACHED */
 }
 
 STATIC void
@@ -2096,11 +2096,6 @@ Perl_hv_iterinit(pTHX_ HV *hv)
 {
     PERL_ARGS_ASSERT_HV_ITERINIT;
 
-    /* FIXME: Are we not NULL, or do we croak? Place bets now! */
-
-    if (!hv)
-       Perl_croak(aTHX_ "Bad hash");
-
     if (SvOOK(hv)) {
        struct xpvhv_aux * iter = HvAUX(hv);
        HE * const entry = iter->xhv_eiter; /* HvEITER(hv) */
@@ -2128,9 +2123,6 @@ Perl_hv_riter_p(pTHX_ HV *hv) {
 
     PERL_ARGS_ASSERT_HV_RITER_P;
 
-    if (!hv)
-       Perl_croak(aTHX_ "Bad hash");
-
     iter = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv);
     return &(iter->xhv_riter);
 }
@@ -2141,9 +2133,6 @@ Perl_hv_eiter_p(pTHX_ HV *hv) {
 
     PERL_ARGS_ASSERT_HV_EITER_P;
 
-    if (!hv)
-       Perl_croak(aTHX_ "Bad hash");
-
     iter = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv);
     return &(iter->xhv_eiter);
 }
@@ -2154,9 +2143,6 @@ Perl_hv_riter_set(pTHX_ HV *hv, I32 riter) {
 
     PERL_ARGS_ASSERT_HV_RITER_SET;
 
-    if (!hv)
-       Perl_croak(aTHX_ "Bad hash");
-
     if (SvOOK(hv)) {
        iter = HvAUX(hv);
     } else {
@@ -2175,9 +2161,6 @@ Perl_hv_rand_set(pTHX_ HV *hv, U32 new_xhv_rand) {
     PERL_ARGS_ASSERT_HV_RAND_SET;
 
 #ifdef PERL_HASH_RANDOMIZE_KEYS
-    if (!hv)
-        Perl_croak(aTHX_ "Bad hash");
-
     if (SvOOK(hv)) {
         iter = HvAUX(hv);
     } else {
@@ -2195,9 +2178,6 @@ Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter) {
 
     PERL_ARGS_ASSERT_HV_EITER_SET;
 
-    if (!hv)
-       Perl_croak(aTHX_ "Bad hash");
-
     if (SvOOK(hv)) {
        iter = HvAUX(hv);
     } else {
@@ -2334,10 +2314,12 @@ Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
     PERL_HASH(hash, name, len);
 
     if (aux->xhv_name_count) {
-       HEK ** const xhv_name = aux->xhv_name_u.xhvnameu_names;
        I32 count = aux->xhv_name_count;
-       HEK **hekp = xhv_name + (count < 0 ? -count : count);
+       HEK ** const xhv_name = aux->xhv_name_u.xhvnameu_names + (count<0);
+       HEK **hekp = xhv_name + (count < 0 ? -count - 1 : count);
        while (hekp-- > xhv_name)
+       {
+           assert(*hekp);
            if (
                  (HEK_UTF8(*hekp) || (flags & SVf_UTF8)) 
                     ? hek_eq_pvn_flags(aTHX_ *hekp, name, (I32)len, flags)
@@ -2347,6 +2329,7 @@ Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
                    aux->xhv_name_count = -count;
                return;
            }
+       }
        if (count < 0) aux->xhv_name_count--, count = -count;
        else aux->xhv_name_count++;
        Renew(aux->xhv_name_u.xhvnameu_names, count + 1, HEK *);
@@ -2515,9 +2498,6 @@ Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
 
     PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS;
 
-    if (!hv)
-       Perl_croak(aTHX_ "Bad hash");
-
     xhv = (XPVHV*)SvANY(hv);
 
     if (!SvOOK(hv)) {
diff --git a/hv.h b/hv.h
index 95dde46..a912476 100644 (file)
--- a/hv.h
+++ b/hv.h
@@ -58,7 +58,7 @@ struct shared_he {
 
 /* Subject to change.
    Don't access this directly.
-   Use the funcs in mro.c
+   Use the funcs in mro_core.c
 */
 
 struct mro_alg {
index cde2c54..1124412 100644 (file)
--- a/inline.h
+++ b/inline.h
@@ -378,6 +378,30 @@ get_regex_charset_name(const U32 flags, STRLEN* const lenp)
 }
 
 /*
+
+Return false if any get magic is on the SV other than taint magic.
+
+*/
+
+PERL_STATIC_INLINE bool
+S_sv_only_taint_gmagic(SV *sv) {
+    MAGIC *mg = SvMAGIC(sv);
+
+    PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC;
+
+    while (mg) {
+        if (mg->mg_type != PERL_MAGIC_taint
+            && !(mg->mg_flags & MGf_GSKIP)
+            && mg->mg_virtual->svt_get) {
+            return FALSE;
+        }
+        mg = mg->mg_moremagic;
+    }
+
+    return TRUE;
+}
+
+/*
  * Local variables:
  * c-indentation-style: bsd
  * c-basic-offset: 4
index 0093056..40134dd 100644 (file)
@@ -179,7 +179,7 @@ PERLVAR(I, statgv,  GV *)
 PERLVARI(I, statname,  SV *,   NULL)
 
 #ifdef HAS_TIMES
-/* Will be removed soon after v5.21.9. See RT #121351 */
+/* Will be removed soon after v5.21.10. See RT #121351 */
 PERLVAR(I, timesbuf,   struct tms)
 #endif
 
@@ -238,7 +238,9 @@ PERLVAR(I, exit_flags,      U8)             /* was exit() unexpected, etc. */
 
 PERLVAR(I, utf8locale, bool)           /* utf8 locale detected */
 PERLVAR(I, in_utf8_CTYPE_locale, bool)
-PERLVAR(I, warn_locale, SV *)
+#ifdef USE_LOCALE_CTYPE
+    PERLVAR(I, warn_locale, SV *)
+#endif
 
 PERLVARA(I, colors,6,  char *)         /* values from PERL_RE_COLORS env var */
 
@@ -751,7 +753,7 @@ PERLVARI(I, globhook,       globhook_t, NULL)
 
 PERLVARI(I, padlist_generation, U32, 1)        /* id to identify padlist clones */
 
-/* The last unconditional member of the interpreter structure when 5.21.9 was
+/* The last unconditional member of the interpreter structure when 5.21.10 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.  */
index fc262be..bdab989 100644 (file)
 /* U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
 /* U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
-/* U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL),
-/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
-/* 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)|(1U<<_CC_MNEMONIC_CNTRL),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 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),
@@ -40,7 +40,7 @@
 /* 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 SP */ (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_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+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
 /* U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+88 HTS */ (1U<<_CC_CNTRL)|(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 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(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+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)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 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)|(1U<<_CC_MNEMONIC_CNTRL),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 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+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)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+18 CAN */ (1U<<_CC_ASCII)|(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),
+/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(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)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 0x28 U+88 HTS */ (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),
+/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(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),
 /* 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)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 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)|(1U<<_CC_MNEMONIC_CNTRL),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 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+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),
+/* 0x15 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
 /* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+18 CAN */ (1U<<_CC_ASCII)|(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)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x25 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 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)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 0x28 U+88 HTS */ (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),
+/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(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),
 /* 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)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 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)|(1U<<_CC_MNEMONIC_CNTRL),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 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+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)|(1U<<_CC_MNEMONIC_CNTRL),
+/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+18 CAN */ (1U<<_CC_ASCII)|(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),
+/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(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)|(1U<<_CC_MNEMONIC_CNTRL),
 /* 0x28 U+88 HTS */ (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),
+/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(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),
index c998989..15a1527 100644 (file)
@@ -46,7 +46,7 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
         MDEREF_SHIFT
     );
 
-$VERSION = '1.33';
+$VERSION = '1.34';
 use strict;
 use vars qw/$AUTOLOAD/;
 use warnings ();
@@ -1724,7 +1724,7 @@ sub stash_variable {
        return "$prefix$name";
     }
 
-    if ($name =~ /^[^[:alpha:]+-]$/) {
+    if ($name =~ /^[^[:alpha:]_+-]$/) {
       if (defined $cx && $cx == 26) {
        if ($prefix eq '@') {
            return "$prefix\{$name}";
index f536284..9805bde 100644 (file)
@@ -1534,7 +1534,7 @@ my @x;
 @x = ($#{`}, $#{~}, $#{!}, $#{@}, $#{$}, $#{%}, $#{^}, $#{&}, $#{*});
 @x = ($#{(}, $#{)}, $#{[}, $#{{}, $#{]}, $#{}}, $#{'}, $#{"}, $#{,});
 @x = ($#{<}, $#{.}, $#{>}, $#{/}, $#{?}, $#{=}, $#+, $#{\}, $#{|}, $#-);
-@x = ($#{;}, $#{:}, $#{1});
+@x = ($#{;}, $#{:}, $#{1}), $#_;
 ####
 # ${#} interpolated
 # It's a known TODO that warnings are deparsed as bits, not textually.
index e1cc2ce..f42286c 100644 (file)
@@ -118,7 +118,7 @@ package B::Op_private;
 our %bits;
 
 
-our $VERSION = "5.021009";
+our $VERSION = "5.021010";
 
 $bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
 $bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
@@ -150,7 +150,7 @@ $bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo);
 $bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv leavewrite);
 $bits{$_}{6} = 'OPpRUNTIME' for qw(match pushre qr subst substcont);
 $bits{$_}{2} = 'OPpSLICEWARNING' for qw(aslice hslice padav padhv rv2av rv2hv);
-$bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 chdir chmod chomp chown chr chroot complement concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_ncmp i_subtract index int kill left_shift length link log match mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename repeat right_shift rindex rmdir schomp scmp scomplement setpgrp setpriority sin sleep split sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime vec wait waitpid);
+$bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 chdir chmod chomp chown chr chroot complement concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_ncmp i_subtract index int kill left_shift length link log match mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push pushre qr rand rename repeat right_shift rindex rmdir schomp scmp scomplement setpgrp setpriority sin sleep split sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime vec wait waitpid);
 $bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr);
 $bits{$_}{7} = 'OPpTRANS_DELETE' for qw(trans transr);
 $bits{$_}{0} = 'OPpTRANS_FROM_UTF' for qw(trans transr);
@@ -792,7 +792,7 @@ our %ops_using = (
     OPpSORT_DESCEND          => [qw(sort)],
     OPpSPLIT_IMPLIM          => [qw(split)],
     OPpSUBSTR_REPL_FIRST     => [qw(substr)],
-    OPpTARGET_MY             => [qw(abs add atan2 chdir chmod chomp chown chr chroot complement concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_ncmp i_subtract index int kill left_shift length link log match mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename repeat right_shift rindex rmdir schomp scmp scomplement setpgrp setpriority sin sleep split sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime vec wait waitpid)],
+    OPpTARGET_MY             => [qw(abs add atan2 chdir chmod chomp chown chr chroot complement concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_ncmp i_subtract index int kill left_shift length link log match mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push pushre qr rand rename repeat right_shift rindex rmdir schomp scmp scomplement setpgrp setpriority sin sleep split sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime vec wait waitpid)],
     OPpTRANS_COMPLEMENT      => [qw(trans transr)],
 );
 
index ee2eaea..abd9316 100644 (file)
@@ -262,6 +262,7 @@ foreach my $lib (qw(applibexp archlibexp privlibexp sitearchexp sitelibexp
   my $dir = $Config{$lib};
   SKIP: {
     skip "lib $lib not in \@INC on Win32" if $^O eq 'MSWin32';
+    skip "lib $lib not in \@INC on os390" if $^O eq 'os390';
     skip "lib $lib not defined" unless defined $dir;
     skip "lib $lib not set" unless length $dir;
     # May be in @INC in either Unix or VMS format on VMS.
index fd0ff92..404c57c 100644 (file)
--- a/lib/DB.pm
+++ b/lib/DB.pm
@@ -41,7 +41,7 @@ BEGIN {
   $DB::subname = '';    # currently executing sub (fully qualified name)
   $DB::lineno = '';     # current line number
 
-  $DB::VERSION = $DB::VERSION = '1.07';
+  $DB::VERSION = $DB::VERSION = '1.08';
 
   # initialize private globals to avoid warnings
 
@@ -244,8 +244,8 @@ sub backtrace {
     for (@a) {
       s/'/\\'/g;
       s/([^\0]*)/'$1'/ unless /^-?[\d.]+$/;
-      s/([\200-\377])/sprintf("M-%c",ord($1)&0177)/eg;
-      s/([\0-\37\177])/sprintf("^%c",ord($1)^64)/eg;
+      require 'meta_notation.pm';
+      $_ = _meta_notation($_) if /[[:^print:]]/a;
     }
     $w = $w ? '@ = ' : '$ = ';
     $a = $h ? '(' . join(', ', @a) . ')' : '';
index d7a8ef2..37a58ac 100644 (file)
@@ -3,6 +3,7 @@ use strict;
 use warnings;
 use Carp;
 
+require "../t/charset_tools.pl";
 
 BEGIN 
 {
@@ -75,6 +76,10 @@ VerifyData(\%h1,
 eval { $db1->Filter_Pop() };
 is $@, '', "pop the 'utf8' filter" ;
 
+SKIP: {
+    skip "Encode doesn't currently work for most filters on EBCDIC, including 8859-16", 11 if $::IS_EBCDIC || $::IS_EBCDIC;
+    # Actually the only thing failing below is the euro, because that's the
+    # only thing that's added in 8859-16.
 eval { $db1->Filter_Push('encode' => 'iso-8859-16') };
 is $@, '', "push an 'encode' filter (specify iso-8859-16)" ;
 
@@ -97,25 +102,14 @@ my $db2 = tie(%h2, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db2, "tied to $db_file";
 
-if (ord('A') == 193) { # EBCDIC.
-    VerifyData(\%h2,
+VerifyData(\%h2,
           {
-           'alpha'     => "\xB4\x58",
-           'beta'      => "\xB4\x59",
-           "\xB4\x62"=> "gamma",               
-           "\x65\x75\x72\x6F" => "\xA4",                           
+           'alpha'     => byte_utf8a_to_utf8n("\xCE\xB1"),
+           'beta'      => byte_utf8a_to_utf8n("\xCE\xB2"),
+           byte_utf8a_to_utf8n("\xCE\xB3") => "gamma",
+           'euro'      => uni_to_native("\xA4"),
            ""          => "",
           });
-} else {
-    VerifyData(\%h2,
-          {
-           'alpha'     => "\xCE\xB1",
-           'beta'      => "\xCE\xB2",
-           "\xCE\xB3"=> "gamma",
-           'euro'      => "\xA4",
-           ""          => "",
-          });
-}
 
 undef $db2;
 {
@@ -124,3 +118,4 @@ undef $db2;
     is $@, '', "untie without inner references" ;
 }
 
+}
index 0bc38f8..fb290e9 100644 (file)
@@ -6,6 +6,8 @@ use Carp;
 BEGIN 
 {
 
+    require "../t/charset_tools.pl";
+
     eval { require Encode; };
     
     if ($@) {
@@ -79,23 +81,13 @@ my $db2 = tie(%h2, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db2, "tied to $db_file";
 
-if (ord('A') == 193) { # EBCDIC.
-    VerifyData(\%h2,
-          {
-           'alpha'     => "\xB4\x58",
-           'beta'      => "\xB4\x59",
-           "\xB4\x62"=> "gamma",
-           ""          => "",
-          });
-} else {
-    VerifyData(\%h2,
-          {
-           'alpha'     => "\xCE\xB1",
-           'beta'      => "\xCE\xB2",
-           "\xCE\xB3"=> "gamma",
-           ""          => "",
-          });
-}
+VerifyData(\%h2,
+        {
+        'alpha'        => byte_utf8a_to_utf8n("\xCE\xB1"),
+        'beta' => byte_utf8a_to_utf8n("\xCE\xB2"),
+        byte_utf8a_to_utf8n("\xCE\xB3")=> "gamma",
+        ""             => "",
+        });
 
 undef $db2;
 {
index ee6ec03..8eadfee 100644 (file)
@@ -72,7 +72,7 @@ is(charprop($cp, "script"),     "Common");
 $cp = utf8::unicode_to_native(0x41);
 my $A_code = sprintf("%04X", ord("A"));
 my $a_code = sprintf("%04X", ord("a"));
-$charinfo = charinfo(utf8::unicode_to_native($cp));
+$charinfo = charinfo($cp);
 
 is($charinfo->{code},           $A_code, "LATIN CAPITAL LETTER A");
 is($charinfo->{name},           "LATIN CAPITAL LETTER A");
@@ -367,7 +367,7 @@ is(charblock(0x1FFFF),        "No_Block", "0x1FFFF - unused charblock");
 
 my $fraction_3_4_code = sprintf("%04X", utf8::unicode_to_native(0xbe));
 $cp = $fraction_3_4_code;
-$charinfo = charinfo(hex $fraction_3_4_code);
+$charinfo = charinfo($fraction_3_4_code);
 
 is($charinfo->{code},           $fraction_3_4_code, "VULGAR FRACTION THREE QUARTERS");
 is($charinfo->{name},           "VULGAR FRACTION THREE QUARTERS");
@@ -394,11 +394,11 @@ is(charprop($cp, 'na1'),        "FRACTION THREE QUARTERS");
 is($charinfo->{comment},        "");
 is(charprop($cp, 'isc'),        "");
 is($charinfo->{upper},          "");
-is(charprop($cp, 'uc'),         "\x{be}");
+is(charprop($cp, 'uc'),         chr hex $cp);
 is($charinfo->{lower},          "");
-is(charprop($cp, 'lc'),         "\x{be}");
+is(charprop($cp, 'lc'),         chr hex $cp);
 is($charinfo->{title},          "");
-is(charprop($cp, 'tc'),         "\x{be}");
+is(charprop($cp, 'tc'),         chr hex $cp);
 is($charinfo->{block},          "Latin-1 Supplement");
 is(charprop($cp, 'block'),      "Latin_1_Supplement");
 is($charinfo->{script},         "Common");
@@ -1167,33 +1167,33 @@ my $prop;
 my ($invlist_ref, $invmap_ref, $format, $missing);
 if ($::IS_ASCII) { # On EBCDIC, other things will come first, and can vary
                 # according to code page
-$prop = "uc";
-($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
-is($format, 'al', "prop_invmap() format of '$prop' is 'al'");
-is($missing, '0', "prop_invmap() missing of '$prop' is '0'");
-is($invlist_ref->[1], 0x61, "prop_invmap('$prop') list[1] is 0x61");
-is($invmap_ref->[1], 0x41, "prop_invmap('$prop') map[1] is 0x41");
-
-$prop = "upper";
-($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
-is($format, 's', "prop_invmap() format of '$prop' is 's");
-is($missing, 'N', "prop_invmap() missing of '$prop' is 'N'");
-is($invlist_ref->[1], 0x41, "prop_invmap('$prop') list[1] is 0x41");
-is($invmap_ref->[1], 'Y', "prop_invmap('$prop') map[1] is 'Y'");
-
-$prop = "lower";
-($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
-is($format, 's', "prop_invmap() format of '$prop' is 's'");
-is($missing, 'N', "prop_invmap() missing of '$prop' is 'N'");
-is($invlist_ref->[1], 0x61, "prop_invmap('$prop') list[1] is 0x61");
-is($invmap_ref->[1], 'Y', "prop_invmap('$prop') map[1] is 'Y'");
-
-$prop = "lc";
-($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
-is($format, 'al', "prop_invmap() format of '$prop' is 'al'");
-is($missing, '0', "prop_invmap() missing of '$prop' is '0'");
-is($invlist_ref->[1], 0x41, "prop_invmap('$prop') list[1] is 0x41");
-is($invmap_ref->[1], 0x61, "prop_invmap('$prop') map[1] is 0x61");
+    $prop = "uc";
+    ($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
+    is($format, 'al', "prop_invmap() format of '$prop' is 'al'");
+    is($missing, '0', "prop_invmap() missing of '$prop' is '0'");
+    is($invlist_ref->[1], 0x61, "prop_invmap('$prop') list[1] is 0x61");
+    is($invmap_ref->[1], 0x41, "prop_invmap('$prop') map[1] is 0x41");
+
+    $prop = "upper";
+    ($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
+    is($format, 's', "prop_invmap() format of '$prop' is 's");
+    is($missing, 'N', "prop_invmap() missing of '$prop' is 'N'");
+    is($invlist_ref->[1], 0x41, "prop_invmap('$prop') list[1] is 0x41");
+    is($invmap_ref->[1], 'Y', "prop_invmap('$prop') map[1] is 'Y'");
+
+    $prop = "lower";
+    ($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
+    is($format, 's', "prop_invmap() format of '$prop' is 's'");
+    is($missing, 'N', "prop_invmap() missing of '$prop' is 'N'");
+    is($invlist_ref->[1], 0x61, "prop_invmap('$prop') list[1] is 0x61");
+    is($invmap_ref->[1], 'Y', "prop_invmap('$prop') map[1] is 'Y'");
+
+    $prop = "lc";
+    ($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
+    is($format, 'al', "prop_invmap() format of '$prop' is 'al'");
+    is($missing, '0', "prop_invmap() missing of '$prop' is '0'");
+    is($invlist_ref->[1], 0x41, "prop_invmap('$prop') list[1] is 0x41");
+    is($invmap_ref->[1], 0x61, "prop_invmap('$prop') map[1] is 0x61");
 }
 
 # This property is stable and small, so can test all of it
index 91153ea..b2f3798 100644 (file)
@@ -14,6 +14,8 @@ package dumpvar;
 
 $winsize = 80 unless defined $winsize;
 
+sub ASCII { return ord('A') == 65; }
+
 
 # Defaults
 
@@ -25,6 +27,9 @@ $subdump = 1;
 $dumpReused = 0 unless defined $dumpReused;
 $bareStringify = 1 unless defined $bareStringify;
 
+my $APC = chr utf8::unicode_to_native(0x9F);
+my $backslash_c_question = (ASCII) ? '\177' : $APC;
+
 sub main::dumpValue {
   local %address;
   local $^W=0;
@@ -41,12 +46,8 @@ sub unctrl {
        local($v) ; 
 
        return \$_ if ref \$_ eq "GLOB";
-        if (ord('A') == 193) { # EBCDIC.
-           # EBCDIC has no concept of "\cA" or "A" being related
-           # to each other by a linear/boolean mapping.
-       } else {
-           s/([\001-\037\177])/'^'.pack('c',ord($1)^64)/eg;
-       }
+        s/([\000-\037])/ '^' . chr(utf8::unicode_to_native(ord($1)^64))/eg;
+        s/ $backslash_c_question /^?/xg;
        return $_;
     }
 }
@@ -54,7 +55,7 @@ sub unctrl {
 sub uniescape {
     join("",
         map { $_ > 255 ? sprintf("\\x{%04X}", $_) : chr($_) }
-            unpack("U*", $_[0]));
+            unpack("W*", $_[0]));
 }
 
 sub stringify {
@@ -79,39 +80,27 @@ sub _stringify {
            and %overload:: and defined &{'overload::StrVal'};
        
        if ($tick eq 'auto') {
-           if (ord('A') == 193) {
-               if (/[\000-\011]/ or /[\013-\024\31-\037\177]/) {
-                   $tick = '"';
-               } else {
-                   $tick = "'";
-               }
-            }  else {
-               if (/[\000-\011\013-\037\177]/) {
-                   $tick = '"';
-               } else {
-                   $tick = "'";
-               }
-           }
+            if (/[^[:^cntrl:]\n]/u) {   # All controls but \n get '"'
+                $tick = '"';
+            } else {
+                $tick = "'";
+            }
        }
        if ($tick eq "'") {
          s/([\'\\])/\\$1/g;
        } elsif ($unctrl eq 'unctrl') {
          s/([\"\\])/\\$1/g ;
-         s/([\000-\037\177])/'^'.pack('c',ord($1)^64)/eg;
+          $_ = &unctrl($_);
          # uniescape?
-         s/([\200-\377])/'\\0x'.sprintf('%2X',ord($1))/eg 
+         s/([[:^ascii:]])/'\\0x'.sprintf('%2X',ord($1))/eg
            if $quoteHighBit;
        } elsif ($unctrl eq 'quote') {
          s/([\"\\\$\@])/\\$1/g if $tick eq '"';
-         s/\033/\\e/g;
-         if (ord('A') == 193) { # EBCDIC.
-             s/([\000-\037\177])/'\\c'.chr(193)/eg; # Unfinished.
-         } else {
-             s/([\000-\037\177])/'\\c'._escaped_ord($1)/eg;
-         }
+         s/\e/\\e/g;
+          s/([\000-\037$backslash_c_question])/'\\c'._escaped_ord($1)/eg;
        }
        $_ = uniescape($_);
-       s/([\200-\377])/'\\'.sprintf('%3o',ord($1))/eg if $quoteHighBit;
+       s/([[:^ascii:]])/'\\'.sprintf('%3o',ord($1))/eg if $quoteHighBit;
        return ($noticks || /^\d+(\.\d*)?\Z/) 
          ? $_ 
          : $tick . $_ . $tick;
@@ -121,8 +110,13 @@ sub _stringify {
 # Ensure a resulting \ is escaped to be \\
 sub _escaped_ord {
     my $chr = shift;
-    $chr = chr(ord($chr)^64);
-    $chr =~ s{\\}{\\\\}g;
+    if ($chr eq $backslash_c_question) {
+        $chr = '?';
+    }
+    else {
+        $chr = chr(utf8::unicode_to_native(ord($chr)^64));
+        $chr =~ s{\\}{\\\\}g;
+    }
     return $chr;
 }
 
index ce3f225..186dcf2 100644 (file)
@@ -225,7 +225,7 @@ for my $i (0 .. 255) {
 
                     # With the legacy, nothing above 128 should be in the
                     # class
-                    if ($i >= 128) {
+                    if (utf8::native_to_unicode($i) >= 128) {
                         $expect_success = 0;
                         $expect_success = ! $expect_success if $complement;
                         $expect_success = ! $expect_success if $complement_class;
@@ -259,7 +259,7 @@ for my $i (0 .. 255) {
 
         no feature 'unicode_strings';
         $prefix = "no uni8bit; Verify $string";
-        if ($i >= 128) {
+        if (utf8::native_to_unicode($i) >= 128) {
             $expect_success = 1;
             $expect_success = ! $expect_success if $complement;
         }
index 2b58f6a..64d9dc0 100644 (file)
@@ -48,7 +48,7 @@ $result = runperl( progfile => '_h2ph_pre.ph',
                    stderr => 1 );
 like( $result, qr/syntax OK$/, "preamble compiles");
 
-$result = runperl( switches => ["-w"],
+$result = runperl( switches => ['-I.', "-w"],
                    stderr => 1,
                    prog => <<'PROG' );
 $SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);
index 61e77c7..9cc243f 100644 (file)
@@ -1,6 +1,6 @@
 package locale;
 
-our $VERSION = '1.05';
+our $VERSION = '1.06';
 use Config;
 
 $Carp::Internal{ (__PACKAGE__) } = 1;
index 5012d3b..3f37457 100644 (file)
@@ -19,13 +19,13 @@ BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
     unshift @INC, '.';
-    require Config; import Config;
-    if (!$Config{d_setlocale} || $Config{ccflags} =~ /\bD?NO_LOCALE\b/) {
+    require './loc_tools.pl';
+    unless (locales_enabled('LC_CTYPE')) {
        print "1..0\n";
        exit;
     }
-    require './loc_tools.pl';
     $| = 1;
+    require Config; import Config;
 }
 
 use strict;
@@ -1856,7 +1856,9 @@ foreach my $Locale (@Locale) {
             # first).  This is only done if the current locale has LC_MESSAGES
             $ok14 = 1;
             $ok14_5 = 1;
-            if (setlocale(&POSIX::LC_MESSAGES, $Locale)) {
+            if (   locales_enabled('LC_MESSAGES')
+                && setlocale(&POSIX::LC_MESSAGES, $Locale))
+            {
                 foreach my $err (keys %!) {
                     use Errno;
                     $! = eval "&Errno::$err";   # Convert to strerror() output
@@ -1904,14 +1906,16 @@ foreach my $Locale (@Locale) {
     }
 
     $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;
+    if (locales_enabled('LC_MESSAGES')) {
+        foreach my $err (keys %!) {
+            no locale;
+            use Errno;
+            $! = eval "&Errno::$err";   # Convert to strerror() output
+            my $strerror = "$!";
+            if ("$strerror" =~ /\P{ASCII}/) {
+                $ok21 = 0;
+                last;
+            }
         }
     }
 
diff --git a/lib/meta_notation.pm b/lib/meta_notation.pm
new file mode 100644 (file)
index 0000000..2f85cd3
--- /dev/null
@@ -0,0 +1,54 @@
+use strict;
+use warnings;
+
+# A tiny private library routine which is a helper to several Perl core
+# modules, to allow a paradigm to be implemented in a single place.  The name,
+# contents, or even the existence of this file may be changed at any time and
+# are NOT to be used by anthing outside the Perl core.
+
+sub _meta_notation ($) {
+
+    # Returns a copy of the input string with the nonprintable characters
+    # below 0x100 changed into printables.  Any ASCII printables or above 0xFF
+    # are unchanged.  (XXX Probably above-Latin1 characters should be
+    # converted to \X{...})
+    #
+    # \0 .. \x1F (which are "\c@" .. "\c_") are changed into ^@, ^A, ^B, ...
+    # ^Z, ^[, ^\, ^], ^^, ^_
+    # \c? is changed into ^?.
+    #
+    # The above accounts for all the ASCII-range nonprintables.
+    #
+    # On ASCII platforms, the upper-Latin1-range characters are converted to
+    # Meta notation, so that \xC1 becomes 'M-A', \xE2 becomes 'M-b', etc.
+    # This is how it always has worked, so is continued that way for backwards
+    # compatibility.  XXX Wrong, but the way it has always worked is that \x80
+    # .. \x9F are converted to M- followed by a literal control char.  This
+    # probably has escaped attention due to the limited domains this code has
+    # been applied to.  ext/SDBM_File/dbu.c does this right.
+    #
+    # On EBCDIC platforms, the upper-Latin1-range characters are converted
+    # into '\x{...}'  Meta notation doesn't make sense on EBCDIC platforms
+    # because the ASCII-range printables are a mixture of upper bit set or
+    # not.  [A-Za-Z0-9] all have the upper bit set.  The underscore likely
+    # doesn't; and other punctuation may or may not.  There's no simple
+    # pattern.
+
+    my $string = shift;
+
+    $string =~ s/([\0-\037])/
+               sprintf("^%c",utf8::unicode_to_native(ord($1)^64))/xeg;
+    $string =~ s/\c?/^?/g;
+    if (ord("A") == 65) {
+        $string =~ s/([\200-\377])/sprintf("M-%c",ord($1)&0177)/eg;
+    }
+    else {
+        no warnings 'experimental::regex_sets';
+        # Leave alone things above \xff
+        $string =~ s/( (?[ [\x00-\xFF] & [:^print:]])) /
+                  sprintf("\\x{%X}", ord($1))/xaeg;
+    }
+
+    return $string;
+}
+1
diff --git a/lib/meta_notation.t b/lib/meta_notation.t
new file mode 100644 (file)
index 0000000..d89d50c
--- /dev/null
@@ -0,0 +1,40 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = '../lib';
+    require './test.pl';
+}
+
+use strict;
+use warnings;
+
+eval "require 'meta_notation.pm'";
+if ($@) {
+    fail("Could not find 'meta_notation.pm'");
+}
+else {
+
+    is(_meta_notation("\007\010\011\c?Z\x{103}"), "^G^H^I^?Z\x{103}");
+
+    if ($::IS_ASCII || $::IS_ASCII) {
+        is(_meta_notation("\x{c1}\x{e2}"), 'M-AM-b');
+        is(_meta_notation("\x{df}"), 'M-_');
+    }
+    else {  # EBCDIC platform
+        # In the first iteration we are looking for a non-ASCII control; in
+        # the second, a regular non-ASCII character.  SPACE marks the end of
+        # most controls.  We test each to see that they are properly converted
+        # to \x{...}
+        foreach my $start (0x20, ord " ") {
+            for (my $i = $start; $i < 256; $i++) {
+                my $char = chr $i;
+                next if $char =~ /[[:ascii:]]/;
+                is(_meta_notation($char), sprintf("\\x{%X}", $i));
+                last;
+            }
+        }
+    }
+}
+
+done_testing();
index 3a5565d..5150c7f 100644 (file)
@@ -5,6 +5,7 @@ BEGIN {
        @INC = '../lib';
        require Config; import Config;
        require './test.pl';
+       require './charset_tools.pl';
 }
 
 plan 23;
@@ -181,8 +182,10 @@ EOE
     }
 }
 SKIP: {
-    skip("no perlio", 2) unless (find PerlIO::Layer 'perlio');
-    skip("no Encode", 2) unless $Config{extensions} =~ m{\bEncode\b};
+    skip("no perlio", 1) unless (find PerlIO::Layer 'perlio');
+    skip("no Encode", 1) unless $Config{extensions} =~ m{\bEncode\b};
+    skip("EBCDIC platform doesnt have 'use encoding' used by open ':locale'", 1)
+                                                                if $::IS_EBCDIC;
 
     eval q[use Encode::Alias;use open ":std", ":locale"];
     is($@, '', 'can use :std and :locale');
@@ -191,19 +194,25 @@ SKIP: {
 {
     local $ENV{PERL_UNICODE};
     delete $ENV{PERL_UNICODE};
+    local $TODO;
+    $TODO = "Encode not working on EBCDIC" if $::IS_EBCDIC;
     is runperl(
          progs => [
             'use open q\:encoding(UTF-8)\, q-:std-;',
             'use open q\:encoding(UTF-8)\;',
             'if(($_ = <STDIN>) eq qq-\x{100}\n-) { print qq-stdin ok\n- }',
             'else { print qq-got -, join(q q q, map ord, split//), "\n" }',
-            'print STDOUT qq-\x{ff}\n-;',
-            'print STDERR qq-\x{ff}\n-;',
+            'print STDOUT qq-\x{fe}\n-;',
+            'print STDERR qq-\x{fe}\n-;',
          ],
-         stdin => "\xc4\x80\n",
+         stdin => byte_utf8a_to_utf8n("\xc4\x80") . "\n",
          stderr => 1,
        ),
-       "stdin ok\n\xc3\xbf\n\xc3\xbf\n",
+       "stdin ok\n"
+        . byte_utf8a_to_utf8n("\xc3\xbe")
+        . "\n"
+        . byte_utf8a_to_utf8n("\xc3\xbe")
+        . "\n",
        "use open without :std does not affect standard handles",
     ;
 }
index 6bbbb0b..e6f4062 100644 (file)
@@ -47,7 +47,7 @@ sub numify { 0 + "${$_[0]}" } # Not needed, additional overhead
 package main;
 
 $| = 1;
-BEGIN { require './test.pl' }
+BEGIN { require './test.pl'; require './charset_tools.pl' }
 plan tests => 5215;
 
 use Scalar::Util qw(tainted);
@@ -2261,9 +2261,9 @@ fresh_perl_is
 
     $o->[0] = 1;
     $c = 0;
-    ::ok("\xc4\x80" =~ "^\x{100}\$",
+    ::ok(main::byte_utf8a_to_utf8n("\xc4\x80") =~ "^\x{100}\$",
                                "regex stringify utf8=1 ol=0 bytes=1");
-    ::ok("\xc4\x80" =~ $o,     "regex stringify utf8=1 ol=1 bytes=1");
+    ::ok(main::byte_utf8a_to_utf8n("\xc4\x80") =~ $o,  "regex stringify utf8=1 ol=1 bytes=1");
     ::is($c, 1,                        "regex stringify utf8=1 ol=1 bytes=1 count");
 
 
index e0989db..8babb45 100644 (file)
@@ -528,7 +528,7 @@ BEGIN {
 # Debugger for Perl 5.00x; perl5db.pl patch level:
 use vars qw($VERSION $header);
 
-$VERSION = '1.47';
+$VERSION = '1.48';
 
 $header = "perl5db.pl version $VERSION";
 
@@ -6540,11 +6540,10 @@ sub _dump_trace_calc_saved_single_arg
         s/(.*)/'$1'/s
         unless /^(?: -?[\d.]+ | \*[\w:]* )$/x;
 
-        # Turn high-bit characters into meta-whatever.
-        s/([\200-\377])/sprintf("M-%c",ord($1)&0177)/eg;
-
-        # Turn control characters into ^-whatever.
-        s/([\0-\37\177])/sprintf("^%c",ord($1)^64)/eg;
+        # Turn high-bit characters into meta-whatever, and controls into like
+        # '^D'.
+        require 'meta_notation.pm';
+        $_ = _meta_notation($_) if /[[:^print:]]/a;
 
         return $_;
     }
@@ -7573,7 +7572,7 @@ variables during a restart.
 Set_list packages up items to be stored in a set of environment variables
 (VAR_n, containing the number of items, and VAR_0, VAR_1, etc., containing
 the values). Values outside the standard ASCII charset are stored by encoding
-then as hexadecimal values.
+them as hexadecimal values.
 
 =cut
 
@@ -7589,7 +7588,9 @@ sub set_list {
     for my $i ( 0 .. $#list ) {
         $val = $list[$i];
         $val =~ s/\\/\\\\/g;
-        $val =~ s/([\0-\37\177\200-\377])/"\\0x" . unpack('H2',$1)/eg;
+        no warnings 'experimental::regex_sets';
+        $val =~ s/ ( (?[ [\000-\xFF] & [:^print:] ]) ) /
+                                                "\\0x" . unpack('H2',$1)/xaeg;
         $ENV{"${stem}_$i"} = $val;
     } ## end for $i (0 .. $#list)
 } ## end sub set_list
@@ -8429,7 +8430,7 @@ sub print_help {
     # wide.  If it's wider than that, an extra space will be added.
     $help_str =~ s{
         ^                       # only matters at start of line
-          ( \040{4} | \t )*     # some subcommands are indented
+          ( \ {4} | \t )*       # some subcommands are indented
           ( < ?                 # so <CR> works
             [BI] < [^\t\n] + )  # find an eeevil ornament
           ( \t+ )               # original separation, discarded
index df728c8..7d80146 100644 (file)
@@ -8,7 +8,7 @@ sigtrap - Perl pragma to enable simple signal handling
 
 use Carp;
 
-$VERSION = 1.07;
+$VERSION = 1.08;
 $Verbose ||= 0;
 
 sub import {
@@ -99,8 +99,8 @@ sub handler_traceback {
            s/([\'\\])/\\$1/g;
            s/([^\0]*)/'$1'/
              unless /^(?: -?[\d.]+ | \*[\w:]* )$/x;
-           s/([\200-\377])/sprintf("M-%c",ord($1)&0177)/eg;
-           s/([\0-\37\177])/sprintf("^%c",ord($1)^64)/eg;
+            require 'meta_notation.pm';
+            $_ = _meta_notation($_) if /[[:^print:]]/a;
            push(@a, $_);
        }
        $w = $w ? '@ = ' : '$ = ';
index 56d98fa..ef5fec6 100644 (file)
@@ -1,12 +1,15 @@
-# Perl should compile and reasonably run any version of Unicode.  That doesn't
-# mean that the test suite will run without showing errors.  A few of the
-# very-Unicode specific test files have been modified to account for different
-# versions, but most have not.  For example, some tests use characters that
-# aren't encoded in all Unicode versions; others have hard-coded the General
-# Categories that were correct at the time the test was written.  Perl itself
-# will not compile under Unicode releases prior to 3.0 without a simple change to
-# Unicode::Normalize.  mktables contains instructions for this, as well as other
-# hints for using older Unicode versions.
+# The goal is for perl to compile and reasonably run any version of Unicode.
+# But in v5.22, the earliest version that this works for is Unicode 5.1.
+# Working reasonably well doesn't mean that the test suite will run without
+# showing errors.  You may be able to compile an earlier version, and get
+# things to sort-of work. A few of the very-Unicode specific test files have been
+# modified to account for different versions, but most have not.  For example,
+# some tests use characters that aren't encoded in all Unicode versions; others
+# have hard-coded the General Categories for a code point that were correct at
+# the time the test was written.  Perl itself will not compile under Unicode
+# releases prior to 3.0 without a simple change to Unicode::Normalize.
+# mktables contains instructions for this, as well as other hints for using
+# older Unicode versions.
 
 # The *.txt files were copied from
 
index e796649..a746b77 100644 (file)
@@ -488,8 +488,9 @@ my $unicode_reference_url = 'http://www.unicode.org/reports/tr44/';
 #
 #   croak("Weird Canonical Decomposition of U+$h");
 #
-# Simply change to a carp.  It will compile, but will not know about any three
-# character decomposition.
+# Simply comment it out.  It will compile, but will not know about any three
+# character decompositions.  If using the .pm version, there is a similar
+# line.
 
 # The number of code points in \p{alpha=True} halved in 2.1.9.  It turns out
 # that the reason is that the CJK block starting at 4E00 was removed from
@@ -2289,6 +2290,8 @@ sub trace { return main::trace(@_); }
         $file{$addr} = main::internal_file_to_platform(shift);
         $first_released{$addr} = shift;
 
+        undef $file{$addr} if $first_released{$addr} gt $v_version;
+
         # The rest of the arguments are key => value pairs
         # %constructor_fields has been set up earlier to list all possible
         # ones.  Either set or push, depending on how the default has been set
@@ -2337,7 +2340,7 @@ sub trace { return main::trace(@_); }
         # including its reason
         if ($skip{$addr}) {
             $optional{$addr} = 1;
-            $skipped_files{$file{$addr}} = $skip{$addr}
+            $skipped_files{$file{$addr}} = $skip{$addr} if $file{$addr};
         }
         elsif ($properties{$addr}) {
 
@@ -2418,7 +2421,8 @@ sub trace { return main::trace(@_); }
         # than this Unicode version), and isn't there.  This means if someone
         # copies it into an earlier version's directory, we will go ahead and
         # process it.
-        return if $first_released{$addr} gt $v_version && ! -e $file;
+        return if $first_released{$addr} gt $v_version
+                  && (! defined $file || ! -e $file);
 
         # If in debugging mode and this file doesn't have the non-skip
         # flag set, and isn't one of the critical files, skip it.
@@ -16185,6 +16189,10 @@ controlling lists contained in the program
 C<\$Config{privlib}>/F<unicore/mktables> and then re-compiling and installing.
 (C<\%Config> is available from the Config module).
 
+Also, perl can be recompiled to operate on an earlier version of the Unicode
+standard.  Further information is at
+C<\$Config{privlib}>/F<unicore/README.perl>.
+
 =head1 Other information in the Unicode data base
 
 The Unicode data base is delivered in two different formats.  The XML version
index 4980c7c..ed23b61 100644 (file)
@@ -2,7 +2,7 @@ package utf8;
 
 $utf8::hint_bits = 0x00800000;
 
-our $VERSION = '1.14';
+our $VERSION = '1.15';
 
 sub import {
     $^H |= $utf8::hint_bits;
@@ -186,6 +186,7 @@ L<Encode>.
 
 =item * C<$unicode = utf8::native_to_unicode($code_point)>
 
+(Since Perl v5.8.0)
 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
@@ -195,8 +196,12 @@ platforms it converts from EBCIDC to Unicode.
 A meaningless value will currently be returned if the input is not an unsigned
 integer.
 
+Since Perl v5.22.0, calls to this function are optimized out on ASCII
+platforms, so there is no performance hit in using it there.
+
 =item * C<$native = utf8::unicode_to_native($code_point)>
 
+(Since Perl v5.8.0)
 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.
@@ -204,6 +209,9 @@ 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.
 
+Since Perl v5.22.0, calls to this function are optimized out on ASCII
+platforms, so there is no performance hit in using it there.
+
 =item * C<$flag = utf8::is_utf8($string)>
 
 (Since Perl 5.8.1)  Test whether I<$string> is marked internally as encoded in
index 5c03b31..bf722f3 100644 (file)
@@ -5,7 +5,7 @@ my $has_perlio;
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
     unless ($has_perlio = find PerlIO::Layer 'perlio') {
        print <<EOF;
 # Since you don't have perlio you might get failures with UTF-8 locales.
@@ -44,8 +44,8 @@ no utf8; # Ironic, no?
 
     my ($a, $b);
 
-    { use bytes; $a = "\xc3\xa4" }
-    { use utf8;  $b = "\xe4"     }
+    { use bytes; $a = byte_utf8a_to_utf8n("\xc3\xa4") }
+    { use utf8;  $b = uni_to_native("\xe4")     }
 
     my $test = 68;
 
@@ -429,7 +429,7 @@ SKIP: {
 {
     # Make sure utf8::decode respects copy-on-write [perl #91834].
     # Hash keys are the easiest way to test this.
-    my $name = "\x{c3}\x{b3}";
+    my $name = byte_utf8a_to_utf8n("\x{c3}\x{b3}");
     my ($k1) = keys %{ { $name=>undef } };
     my $k2 = $name;
     utf8::decode($k1);
@@ -442,7 +442,7 @@ SKIP: {
     # Make sure utf8::decode does not modify read-only scalars
     # [perl #91850].
     
-    my $name = "\x{c3}\x{b3}";
+    my $name = byte_utf8a_to_utf8n("\x{c3}\x{b3}");
     Internals::SvREADONLY($name, 1);
     eval { utf8::decode($name) };
     like $@, qr/^Modification of a read-only/,
@@ -452,12 +452,12 @@ SKIP: {
 {
     # utf8::decode should stringify refs [perl #91852].
 
-    package eieifg { use overload '""'      => sub { "\x{c3}\x{b3}" },
+    package eieifg { use overload '""'      => sub { main::byte_utf8a_to_utf8n("\x{c3}\x{b3}") },
                                    fallback => 1 }
 
     my $name = bless[], eieifg::;
     utf8::decode($name);
-    is $name, "\xf3", 'utf8::decode flattens references';
+    is $name, uni_to_native("\xf3"), 'utf8::decode flattens references';
 }
 
 {
@@ -481,7 +481,7 @@ SKIP: {
             use strict;
             my $s = "hlagh";
             my $r = \$s;
-            %s($r);
+            my $dummy = %s($r);
             $$r;
         ], $func;
         my $ret = eval $code or my $error = $@;
@@ -500,10 +500,10 @@ SKIP: {
 }
 
 {
-    my $a = "456\xb6";
+    my $a = "456" . uni_to_native("\xb6");
     utf8::upgrade($a);
 
-    my $b = "123456\xb6";
+    my $b = "123456" . uni_to_native("\xb6");
     $b =~ s/^...//;
     utf8::upgrade($b);
     is($b, $a, "utf8::upgrade OffsetOK");
@@ -563,7 +563,8 @@ SKIP: {
 for my $pos (0..5) {
 
     my $p;
-    my $s = "A\xc8\x81\xe8\xab\x86\x{100}";
+    my $utf8_bytes = byte_utf8a_to_utf8n("\xc8\x81\xe3\xbf\xbf");
+    my $s = "A$utf8_bytes\x{100}";
     chop($s);
 
     pos($s) = $pos;
@@ -573,17 +574,17 @@ for my $pos (0..5) {
     utf8::downgrade($s);
     is(length($s), 6,             "(pos $pos) len after     utf8::downgrade");
     is(pos($s),    $pos,          "(pos $pos) pos after     utf8::downgrade");
-    is($s, "A\xc8\x81\xe8\xab\x86","(pos $pos) str after     utf8::downgrade");
+    is($s, "A$utf8_bytes","(pos $pos) str after     utf8::downgrade");
     utf8::decode($s);
     is(length($s), 3,             "(pos $pos) len after  D; utf8::decode");
     is(pos($s),    undef,         "(pos $pos) pos after  D; utf8::decode");
-    is($s, "A\x{201}\x{8ac6}",    "(pos $pos) str after  D; utf8::decode");
+    is($s, "A\x{201}\x{3fff}",    "(pos $pos) str after  D; utf8::decode");
     utf8::encode($s);
     is(length($s), 6,             "(pos $pos) len after  D; utf8::encode");
     is(pos($s),    undef,         "(pos $pos) pos after  D; utf8::encode");
-    is($s, "A\xc8\x81\xe8\xab\x86","(pos $pos) str after  D; utf8::encode");
+    is($s, "A$utf8_bytes","(pos $pos) str after  D; utf8::encode");
 
-    $s = "A\xc8\x81\xe8\xab\x86";
+    $s = "A$utf8_bytes";
 
     pos($s) = $pos;
     is(length($s), 6,             "(pos $pos) len before    utf8::upgrade");
@@ -591,17 +592,32 @@ for my $pos (0..5) {
     utf8::upgrade($s);
     is(length($s), 6,             "(pos $pos) len after     utf8::upgrade");
     is(pos($s),    $pos,          "(pos $pos) pos after     utf8::upgrade");
-    is($s, "A\xc8\x81\xe8\xab\x86","(pos $pos) str after     utf8::upgrade");
+    is($s, "A$utf8_bytes","(pos $pos) str after     utf8::upgrade");
     utf8::decode($s);
     is(length($s), 3,             "(pos $pos) len after  U; utf8::decode");
     is(pos($s),    undef,         "(pos $pos) pos after  U; utf8::decode");
-    is($s, "A\x{201}\x{8ac6}",    "(pos $pos) str after  U; utf8::decode");
+    is($s, "A\x{201}\x{3fff}",    "(pos $pos) str after  U; utf8::decode");
     utf8::encode($s);
     is(length($s), 6,             "(pos $pos) len after  U; utf8::encode");
     is(pos($s),    undef,         "(pos $pos) pos after  U; utf8::encode");
-    is($s, "A\xc8\x81\xe8\xab\x86","(pos $pos) str after  U; utf8::encode");
+    is($s, "A$utf8_bytes","(pos $pos) str after  U; utf8::encode");
 }
 
+SKIP: {
+    skip("Test only valid on ASCII platform", 1) unless $::IS_ASCII;
+    require Config;
+    skip("Test needs a B module, which is lacking in this Perl", 1)
+        if $Config::Config{'extensions'} !~ /\bB\b/;
+
+    my $out = runperl ( switches => ["-XMO=Concise"],
+                    prog => 'utf8::unicode_to_native(0x41);
+                             utf8::native_to_unicode(0x42)',
+                    stderr => 1 );
+    unlike($out, qr/entersub/,
+            "utf8::unicode_to_native() and native_to_unicode() optimized out");
+}
+
+
 # [perl #119043] utf8::upgrade should not croak on read-only COWs
 for(__PACKAGE__) {
        eval { utf8::upgrade($_) };
index 6c62c1f..a1fe449 100644 (file)
--- a/locale.c
+++ b/locale.c
@@ -675,7 +675,10 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
     const bool locwarn = (printwarn > 1
                           || (printwarn
                               && (! bad_lang_use_once
-                                  || grok_atou(bad_lang_use_once, NULL))));
+                                  || (
+                                    /* disallow with "" or "0" */
+                                    *bad_lang_use_once
+                                    && strNE("0", bad_lang_use_once)))));
     bool done = FALSE;
 #ifdef WIN32
     /* In some systems you can find out the system default locale
@@ -1080,10 +1083,6 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
     Safefree(curnum);
 #endif /* USE_LOCALE_NUMERIC */
 
-#else  /* !USE_LOCALE */
-    PERL_UNUSED_ARG(printwarn);
-#endif /* USE_LOCALE */
-
 #ifdef __GLIBC__
     Safefree(language);
 #endif
@@ -1091,6 +1090,10 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
     Safefree(lc_all);
     Safefree(lang);
 
+#else  /* !USE_LOCALE */
+    PERL_UNUSED_ARG(printwarn);
+#endif /* USE_LOCALE */
+
     return ok;
 }
 
index 58bec64..a797e7e 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -1824,7 +1824,7 @@ Perl_mfree(Malloc_t where)
                if (bad_free_warn == -1) {
                    dTHX;
                    char *pbf = PerlEnv_getenv("PERL_BADFREE");
-                   bad_free_warn = (pbf) ? grok_atou(pbf, NULL) : 1;
+                   bad_free_warn = (pbf) ? strNE("0", pbf) : 1;
                }
                if (!bad_free_warn)
                    return;
@@ -1922,7 +1922,7 @@ Perl_realloc(void *mp, size_t nbytes)
                if (bad_free_warn == -1) {
                    dTHX;
                    char *pbf = PerlEnv_getenv("PERL_BADFREE");
-                   bad_free_warn = (pbf) ? grok_atou(pbf, NULL) : 1;
+                   bad_free_warn = (pbf) ? strNE("0", pbf) : 1;
                }
                if (!bad_free_warn)
                    return NULL;
diff --git a/mg.c b/mg.c
index d2a8db0..ee3cf29 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -3013,6 +3013,12 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
        }
     case ')':
        {
+/* (hv) best guess: maybe we'll need configure probes to do a better job,
+ * but you can override it if you need to.
+ */
+#ifndef INVALID_GID
+#define INVALID_GID ((Gid_t)-1)
+#endif
         /* XXX $) currently silently ignores failures */
        Gid_t new_egid;
 #ifdef HAS_SETGROUPS
@@ -3020,6 +3026,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
            const char *p = SvPV_const(sv, len);
             Groups_t *gary = NULL;
             const char* endptr;
+            UV uv;
 #ifdef _SC_NGROUPS_MAX
            int maxgrp = sysconf(_SC_NGROUPS_MAX);
 
@@ -3031,7 +3038,12 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
 
             while (isSPACE(*p))
                 ++p;
-            new_egid = (Gid_t)grok_atou(p, &endptr);
+            if (grok_atoUV(p, &uv, &endptr))
+                new_egid = (Gid_t)uv;
+            else {
+                new_egid = INVALID_GID;
+                endptr = NULL;
+            }
             for (i = 0; i < maxgrp; ++i) {
                 if (endptr == NULL)
                     break;
@@ -3044,7 +3056,12 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
                     Newx(gary, i + 1, Groups_t);
                 else
                     Renew(gary, i + 1, Groups_t);
-                gary[i] = (Groups_t)grok_atou(p, &endptr);
+                if (grok_atoUV(p, &uv, &endptr))
+                    gary[i] = (Groups_t)uv;
+                else {
+                    gary[i] = INVALID_GID;
+                    endptr = NULL;
+                }
             }
             if (i)
                 PERL_UNUSED_RESULT(setgroups(i, gary));
diff --git a/mg.h b/mg.h
index 3aa2401..becef4a 100644 (file)
--- a/mg.h
+++ b/mg.h
@@ -65,7 +65,7 @@ struct magic {
 /* assumes get-magic and stringification have already occurred */
 # define MgBYTEPOS_set(mg,sv,pv,off) (                  \
     assert_((mg)->mg_type == PERL_MAGIC_regex_global)    \
-    SvPOK(sv) && !SvGMAGICAL(sv)                          \
+    SvPOK(sv) && (!SvGMAGICAL(sv) || sv_only_taint_gmagic(sv))  \
        ? (mg)->mg_len = (off), (mg)->mg_flags |= MGf_BYTES \
        : ((mg)->mg_len = DO_UTF8(sv)                        \
            ? (SSize_t)utf8_length((U8 *)(pv), (U8 *)(pv)+(off)) \
similarity index 98%
rename from mro.c
rename to mro_core.c
index 5f7b939..4da9682 100644 (file)
--- a/mro.c
@@ -1,4 +1,4 @@
-/*    mro.c
+/*    mro_core.c
  *
  *    Copyright (c) 2007 Brandon L Black
  *    Copyright (c) 2007, 2008, 2009, 2010, 2011 Larry Wall and others
@@ -6,6 +6,9 @@
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
  *
+ *    This was 'mro.c', but changed because there is another mro.c in /ext, and
+ *    the os390 loader can't cope with this situation (which involves the two
+ *    files calling functions defined in the other)
  */
 
 /*
@@ -66,13 +69,13 @@ Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta,
        } else {
            HV *const hv = newHV();
            /* Start with 2 buckets. It's unlikely we'll need more. */
-           HvMAX(hv) = 1;      
+           HvMAX(hv) = 1;
            smeta->mro_linear_all = hv;
 
            if (smeta->mro_linear_current) {
                /* If we were storing something directly, put it in the hash
                   before we lose it. */
-               Perl_mro_set_private_data(aTHX_ smeta, smeta->mro_which, 
+               Perl_mro_set_private_data(aTHX_ smeta, smeta->mro_which,
                                          smeta->mro_linear_current);
            }
        }
@@ -126,7 +129,7 @@ Perl_mro_register(pTHX_ const struct mro_alg *mro) {
 
     PERL_ARGS_ASSERT_MRO_REGISTER;
 
-    
+
     if (!Perl_hv_common(aTHX_ PL_registered_mros, NULL,
                        mro->name, mro->length, mro->kflags,
                        HV_FETCH_ISSTORE, wrapper, mro->hash)) {
@@ -620,7 +623,7 @@ Perl_mro_isa_changed_in(pTHX_ HV* stash)
                        so on aggregate we expect to save time by not making
                        two calls to the common HV code for the case where
                        it doesn't exist.  */
-          
+
                     (void)
                       hv_storehek(mroisarev, namehek, &PL_sv_yes);
                 }
@@ -664,7 +667,7 @@ Perl_mro_isa_changed_in(pTHX_ HV* stash)
           almost as cheap as calling hv_exists, so on aggregate we expect to
           save time by not making two calls to the common HV code for the
           case where it doesn't exist.  */
-          
+
        (void)hv_storehek(mroisarev, stashhek, &PL_sv_yes);
     }
 
@@ -685,7 +688,7 @@ S_mro_clean_isarev(pTHX_ HV * const isa, const char * const name,
     PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV;
 
     /* Delete our name from our former parents' isarevs. */
-    if(isa && HvARRAY(isa) && hv_iterinit(isa)) {
+    if(HvARRAY(isa) && hv_iterinit(isa)) {
         SV **svp;
         while((iter = hv_iternext(isa))) {
             I32 klen;
@@ -856,7 +859,7 @@ Perl_mro_package_moved(pTHX_ HV * const stash, HV * const oldstash,
               mro_gather_and_rename set aside for us) this way, in case
               one class in this list is a superclass of a another class
               that we have already encountered. In such a case, meta->isa
-              will have been overwritten without old entries being deleted 
+
               from PL_isarev. */
            struct mro_meta * const meta = HvMROMETA(stash);
            if(meta->isa != (HV *)HeVAL(iter)){
@@ -1103,7 +1106,7 @@ S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes,
        ing that here, as we want to avoid resetting the hash iterator. */
 
     /* Skip the entire loop if the hash is empty.   */
-    if(oldstash && HvUSEDKEYS(oldstash)) { 
+    if(oldstash && HvUSEDKEYS(oldstash)) {
        xhv = (XPVHV*)SvANY(oldstash);
        seen = (HV *) sv_2mortal((SV *)newHV());
 
@@ -1358,7 +1361,7 @@ void
 Perl_mro_set_mro(pTHX_ struct mro_meta *const meta, SV *const name)
 {
     const struct mro_alg *const which = Perl_mro_get_from_name(aTHX_ name);
+
     PERL_ARGS_ASSERT_MRO_SET_MRO;
 
     if (!which)
@@ -1368,7 +1371,7 @@ Perl_mro_set_mro(pTHX_ struct mro_meta *const meta, SV *const name)
        if (meta->mro_linear_current && !meta->mro_linear_all) {
            /* If we were storing something directly, put it in the hash before
               we lose it. */
-           Perl_mro_set_private_data(aTHX_ meta, meta->mro_which, 
+           Perl_mro_set_private_data(aTHX_ meta, meta->mro_which,
                                      MUTABLE_SV(meta->mro_linear_current));
        }
        meta->mro_which = which;
@@ -1404,7 +1407,7 @@ XS(XS_mro_method_changed_in)
 
     if(items != 1)
        croak_xs_usage(cv, "classname");
-    
+
     classname = ST(0);
 
     class_stash = gv_stashsv(classname, 0);
index a6f6018..e97bc26 100644 (file)
--- a/numeric.c
+++ b/numeric.c
@@ -522,7 +522,8 @@ Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send)
     PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX;
 
     if (IN_LC(LC_NUMERIC)) {
-        DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED();
+        DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+        STORE_LC_NUMERIC_SET_TO_NEEDED();
         if (PL_numeric_radix_sv) {
             STRLEN len;
             const char * const radix = SvPV(PL_numeric_radix_sv, len);
@@ -1033,11 +1034,9 @@ Perl_grok_number_flags(pTHX_ const char *pv, STRLEN len, UV *valuep, U32 flags)
 }
 
 /*
-=for apidoc grok_atou
+grok_atoUV
 
-grok_atou is a safer replacement for atoi and strtol.
-
-grok_atou parses a C-style zero-byte terminated string, looking for
+grok_atoUV parses a C-style zero-byte terminated string, looking for
 a decimal unsigned integer.
 
 Returns the unsigned integer, if a valid value can be parsed
@@ -1045,52 +1044,43 @@ from the beginning of the string.
 
 Accepts only the decimal digits '0'..'9'.
 
-As opposed to atoi or strtol, grok_atou does NOT allow optional
+As opposed to atoi or strtol, grok_atoUV does NOT allow optional
 leading whitespace, or negative inputs.  If such features are
 required, the calling code needs to explicitly implement those.
 
-If a valid value cannot be parsed, returns either zero (if non-digits
-are met before any digits) or UV_MAX (if the value overflows).
-
-Note that extraneous leading zeros also count as an overflow
-(meaning that only "0" is the zero).
-
-On failure, the *endptr is also set to NULL, unless endptr is NULL.
-
-Trailing non-digit bytes are allowed if the endptr is non-NULL.
-On return the *endptr will contain the pointer to the first non-digit byte.
+Returns true if a valid value could be parsed. In that case, valptr
+is set to the parsed value, and endptr (if provided) is set to point
+to the character after the last digit.
 
-If the endptr is NULL, the first non-digit byte MUST be
-the zero byte terminating the pv, or zero will be returned.
+Returns false otherwise. This can happen if a) there is a leading zero
+followed by another digit; b) the digits would overflow a UV; or c)
+there are trailing non-digits AND endptr is not provided.
 
 Background: atoi has severe problems with illegal inputs, it cannot be
 used for incremental parsing, and therefore should be avoided
 atoi and strtol are also affected by locale settings, which can also be
 seen as a bug (global state controlled by user environment).
 
-=cut
 */
 
-UV
-Perl_grok_atou(const char *pv, const char** endptr)
+bool
+Perl_grok_atoUV(const char *pv, UV *valptr, const char** endptr)
 {
     const char* s = pv;
     const char** eptr;
     const char* end2; /* Used in case endptr is NULL. */
-    UV val = 0; /* The return value. */
+    UV val = 0; /* The parsed value. */
 
-    PERL_ARGS_ASSERT_GROK_ATOU;
+    PERL_ARGS_ASSERT_GROK_ATOUV;
 
     eptr = endptr ? endptr : &end2;
     if (isDIGIT(*s)) {
         /* Single-digit inputs are quite common. */
         val = *s++ - '0';
         if (isDIGIT(*s)) {
-            /* Extra leading zeros cause overflow. */
-            if (val == 0) {
-                *eptr = NULL;
-                return UV_MAX;
-            }
+            /* Fail on extra leading zeros. */
+            if (val == 0)
+                return FALSE;
             while (isDIGIT(*s)) {
                 /* This could be unrolled like in grok_number(), but
                  * the expected uses of this are not speed-needy, and
@@ -1100,21 +1090,18 @@ Perl_grok_atou(const char *pv, const char** endptr)
                     (val == uv_max_div_10 && digit <= uv_max_mod_10)) {
                     val = val * 10 + digit;
                 } else {
-                    *eptr = NULL;
-                    return UV_MAX;
+                    return FALSE;
                 }
             }
         }
     }
-    if (s == pv) {
-        *eptr = NULL; /* If no progress, failed to parse anything. */
-        return 0;
-    }
-    if (endptr == NULL && *s) {
-        return 0; /* If endptr is NULL, no trailing non-digits allowed. */
-    }
+    if (s == pv)
+        return FALSE;
+    if (endptr == NULL && *s)
+        return FALSE; /* If endptr is NULL, no trailing non-digits allowed. */
     *eptr = s;
-    return val;
+    *valptr = val;
+    return TRUE;
 }
 
 #ifndef USE_QUADMATH
@@ -1223,7 +1210,8 @@ Perl_my_atof(pTHX_ const char* s)
     PERL_ARGS_ASSERT_MY_ATOF;
 
     {
-        DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED();
+        DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+        STORE_LC_NUMERIC_SET_TO_NEEDED();
         if (PL_numeric_radix_sv && IN_LC(LC_NUMERIC)) {
             const char *standard = NULL, *local = NULL;
             bool use_standard_radix;
@@ -1246,7 +1234,7 @@ Perl_my_atof(pTHX_ const char* s)
             Perl_atof2(s, x);
 
             if (use_standard_radix)
-                SET_NUMERIC_LOCAL();
+                SET_NUMERIC_UNDERLYING();
         }
         else
             Perl_atof2(s, x);
@@ -1381,7 +1369,7 @@ Perl_my_atof2(pTHX_ const char* orig, NV* value)
 #ifdef USE_QUADMATH
     {
         char* endp;
-        if ((endp = S_my_atof_infnan(s, negative, send, value)))
+        if ((endp = S_my_atof_infnan(aTHX_ s, negative, send, value)))
             return endp;
         result[2] = strtoflt128(s, &endp);
         if (s != endp) {
diff --git a/op.c b/op.c
index 2a76ae4..f4ea5bc 100644 (file)
--- a/op.c
+++ b/op.c
@@ -400,7 +400,7 @@ Perl_opslab_free(pTHX_ OPSLAB *slab)
     PERL_UNUSED_CONTEXT;
     DEBUG_S_warn((aTHX_ "freeing slab %p", (void*)slab));
     assert(slab->opslab_refcnt == 1);
-    for (; slab; slab = slab2) {
+    do {
        slab2 = slab->opslab_next;
 #ifdef DEBUGGING
        slab->opslab_refcnt = ~(size_t)0;
@@ -415,7 +415,8 @@ Perl_opslab_free(pTHX_ OPSLAB *slab)
 #else
        PerlMemShared_free(slab);
 #endif
-    }
+        slab = slab2;
+    } while (slab);
 }
 
 void
@@ -507,7 +508,7 @@ Perl_op_refcnt_dec(pTHX_ OP *o)
 
 #define RETURN_UNLIMITED_NUMBER (PERL_INT_MAX / 2)
 
-#define CHANGE_TYPE(o,type) \
+#define OpTYPE_set(o,type) \
     STMT_START {                               \
        o->op_type = (OPCODE)type;              \
        o->op_ppaddr = PL_ppaddr[type];         \
@@ -1180,7 +1181,7 @@ Perl_op_null(pTHX_ OP *o)
        return;
     op_clear(o);
     o->op_targ = o->op_type;
-    CHANGE_TYPE(o, OP_NULL);
+    OpTYPE_set(o, OP_NULL);
 }
 
 void
@@ -1401,7 +1402,7 @@ S_alloc_LOGOP(pTHX_ I32 type, OP *first, OP* other)
     LOGOP *logop;
     OP *kid = first;
     NewOp(1101, logop, 1, LOGOP);
-    CHANGE_TYPE(logop, type);
+    OpTYPE_set(logop, type);
     logop->op_first = first;
     logop->op_other = other;
     logop->op_flags = OPf_KIDS;
@@ -1970,19 +1971,19 @@ Perl_scalarvoid(pTHX_ OP *arg)
             break;
 
         case OP_POSTINC:
-            CHANGE_TYPE(o, OP_PREINC);  /* pre-increment is faster */
+            OpTYPE_set(o, OP_PREINC);  /* pre-increment is faster */
             break;
 
         case OP_POSTDEC:
-            CHANGE_TYPE(o, OP_PREDEC);  /* pre-decrement is faster */
+            OpTYPE_set(o, OP_PREDEC);  /* pre-decrement is faster */
             break;
 
         case OP_I_POSTINC:
-            CHANGE_TYPE(o, OP_I_PREINC);        /* pre-increment is faster */
+            OpTYPE_set(o, OP_I_PREINC);        /* pre-increment is faster */
             break;
 
         case OP_I_POSTDEC:
-            CHANGE_TYPE(o, OP_I_PREDEC);        /* pre-decrement is faster */
+            OpTYPE_set(o, OP_I_PREDEC);        /* pre-decrement is faster */
             break;
 
         case OP_SASSIGN: {
@@ -2039,9 +2040,9 @@ Perl_scalarvoid(pTHX_ OP *arg)
             if (kid->op_type == OP_NOT
                 && (kid->op_flags & OPf_KIDS)) {
                 if (o->op_type == OP_AND) {
-                    CHANGE_TYPE(o, OP_OR);
+                    OpTYPE_set(o, OP_OR);
                 } else {
-                    CHANGE_TYPE(o, OP_AND);
+                    OpTYPE_set(o, OP_AND);
                 }
                 op_null(kid);
             }
@@ -2643,7 +2644,7 @@ S_lvref(pTHX_ OP *o, I32 type)
                return;
            }
          slurpy:
-            CHANGE_TYPE(o, OP_LVAVREF);
+            OpTYPE_set(o, OP_LVAVREF);
            o->op_private &= OPpLVAL_INTRO|OPpPAD_STATE;
            o->op_flags |= OPf_MOD|OPf_REF;
            return;
@@ -2700,7 +2701,7 @@ S_lvref(pTHX_ OP *o, I32 type)
        break;
     case OP_ASLICE:
     case OP_HSLICE:
-        CHANGE_TYPE(o, OP_LVREFSLICE);
+        OpTYPE_set(o, OP_LVREFSLICE);
        o->op_private &= OPpLVAL_INTRO|OPpLVREF_ELEM;
        return;
     case OP_NULL:
@@ -2731,9 +2732,8 @@ S_lvref(pTHX_ OP *o, I32 type)
                      ? "do block"
                      : OP_DESC(o),
                     PL_op_desc[type]));
-       return;
     }
-    CHANGE_TYPE(o, OP_LVREF);
+    OpTYPE_set(o, OP_LVREF);
     o->op_private &=
        OPpLVAL_INTRO|OPpLVREF_ELEM|OPpLVREF_TYPE|OPpPAD_STATE;
     if (type == OP_ENTERLOOP)
@@ -2772,7 +2772,7 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
     case OP_ENTERSUB:
        if ((type == OP_UNDEF || type == OP_REFGEN || type == OP_LOCK) &&
            !(o->op_flags & OPf_STACKED)) {
-            CHANGE_TYPE(o, OP_RV2CV);          /* entersub => rv2cv */
+            OpTYPE_set(o, OP_RV2CV);           /* entersub => rv2cv */
            assert(cUNOPo->op_first->op_type == OP_NULL);
            op_null(((LISTOP*)cUNOPo->op_first)->op_first);/* disable pushmark */
            break;
@@ -3237,14 +3237,14 @@ Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref)
 
     PERL_ARGS_ASSERT_DOREF;
 
-    if (!o || (PL_parser && PL_parser->error_count))
+    if (PL_parser && PL_parser->error_count)
        return o;
 
     switch (o->op_type) {
     case OP_ENTERSUB:
        if ((type == OP_EXISTS || type == OP_DEFINED) &&
            !(o->op_flags & OPf_STACKED)) {
-            CHANGE_TYPE(o, OP_RV2CV);             /* entersub => rv2cv */
+            OpTYPE_set(o, OP_RV2CV);             /* entersub => rv2cv */
            assert(cUNOPo->op_first->op_type == OP_NULL);
            op_null(((LISTOP*)cUNOPo->op_first)->op_first);     /* disable pushmark */
            o->op_flags |= OPf_SPECIAL;
@@ -3412,7 +3412,7 @@ S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp)
                       newSVOP(OP_CONST, 0, stashsv),
                       op_prepend_elem(OP_LIST,
                                    newUNOP(OP_REFGEN, 0,
-                                           op_lvalue(arg, OP_REFGEN)),
+                                           arg),
                                    dup_attrlist(attrs)));
 
     /* Fake up a method call to import */
@@ -3827,11 +3827,11 @@ Perl_op_scope(pTHX_ OP *o)
     if (o) {
        if (o->op_flags & OPf_PARENS || PERLDB_NOOPT || TAINTING_get) {
            o = op_prepend_elem(OP_LINESEQ, newOP(OP_ENTER, 0), o);
-            CHANGE_TYPE(o, OP_LEAVE);
+            OpTYPE_set(o, OP_LEAVE);
        }
        else if (o->op_type == OP_LINESEQ) {
            OP *kid;
-            CHANGE_TYPE(o, OP_SCOPE);
+            OpTYPE_set(o, OP_SCOPE);
            kid = ((LISTOP*)o)->op_first;
            if (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) {
                op_null(kid);
@@ -4414,7 +4414,7 @@ S_gen_constant_list(pTHX_ OP *o)
     Perl_pp_anonlist(aTHX);
     PL_tmps_floor = oldtmps_floor;
 
-    CHANGE_TYPE(o, OP_RV2AV);
+    OpTYPE_set(o, OP_RV2AV);
     o->op_flags &= ~OPf_REF;   /* treat \(1..2) like an ordinary list */
     o->op_flags |= OPf_PARENS; /* and flatten \(1..2,3) */
     o->op_opt = 0;             /* needs to be revisited in rpeep() */
@@ -4577,7 +4577,10 @@ Perl_op_convert_list(pTHX_ I32 type, I32 flags, OP *o)
     if (!o || o->op_type != OP_LIST)
         o = force_list(o, 0);
     else
+    {
        o->op_flags &= ~OPf_WANT;
+       o->op_private &= ~OPpLVAL_INTRO;
+    }
 
     if (!(PL_opargs[type] & OA_MARK))
        op_null(cLISTOPo->op_first);
@@ -4589,7 +4592,7 @@ Perl_op_convert_list(pTHX_ I32 type, I32 flags, OP *o)
        }
     }
 
-    CHANGE_TYPE(o, type);
+    OpTYPE_set(o, type);
     o->op_flags |= flags;
     if (flags & OPf_FOLDED)
        o->op_folded = 1;
@@ -4664,7 +4667,7 @@ supply up to two ops to be direct children of the list op; they are
 consumed by this function and become part of the constructed op tree.
 
 For most list operators, the check function expects all the kid ops to be
-present already, so calling C<newLISTOP(OP_JOIN, ...)> (e.g.,) is not
+present already, so calling C<newLISTOP(OP_JOIN, ...)> (e.g.) is not
 appropriate.  What you want to do in that case is create an op of type
 OP_LIST, append more children to it, and then call L</op_convert_list>.
 See L</op_convert_list> for more information.
@@ -4684,7 +4687,7 @@ Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
 
     NewOp(1101, listop, 1, LISTOP);
 
-    CHANGE_TYPE(listop, type);
+    OpTYPE_set(listop, type);
     if (first || last)
        flags |= OPf_KIDS;
     listop->op_flags = (U8)flags;
@@ -4746,7 +4749,7 @@ Perl_newOP(pTHX_ I32 type, I32 flags)
        || (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP);
 
     NewOp(1101, o, 1, OP);
-    CHANGE_TYPE(o, type);
+    OpTYPE_set(o, type);
     o->op_flags = (U8)flags;
 
     o->op_next = o;
@@ -4798,7 +4801,7 @@ Perl_newUNOP(pTHX_ I32 type, I32 flags, OP *first)
        first = force_list(first, 1);
 
     NewOp(1101, unop, 1, UNOP);
-    CHANGE_TYPE(unop, type);
+    OpTYPE_set(unop, type);
     unop->op_first = first;
     unop->op_flags = (U8)(flags | OPf_KIDS);
     unop->op_private = (U8)(1 | (flags >> 8));
@@ -4900,7 +4903,7 @@ S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP* dynamic_meth, SV* const_meth
     methop->op_rclass_sv = NULL;
 #endif
 
-    CHANGE_TYPE(methop, type);
+    OpTYPE_set(methop, type);
     return CHECKOP(type, methop);
 }
 
@@ -4957,7 +4960,7 @@ Perl_newBINOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
     if (!first)
        first = newOP(OP_NULL, 0);
 
-    CHANGE_TYPE(binop, type);
+    OpTYPE_set(binop, type);
     binop->op_first = first;
     binop->op_flags = (U8)(flags | OPf_KIDS);
     if (!last) {
@@ -5359,7 +5362,7 @@ Perl_newPMOP(pTHX_ I32 type, I32 flags)
        || type == OP_CUSTOM);
 
     NewOp(1101, pmop, 1, PMOP);
-    CHANGE_TYPE(pmop, type);
+    OpTYPE_set(pmop, type);
     pmop->op_flags = (U8)flags;
     pmop->op_private = (U8)(0 | (flags >> 8));
     if (PL_opargs[type] & OA_RETSCALAR)
@@ -5805,7 +5808,7 @@ Perl_newSVOP(pTHX_ I32 type, I32 flags, SV *sv)
        || type == OP_CUSTOM);
 
     NewOp(1101, svop, 1, SVOP);
-    CHANGE_TYPE(svop, type);
+    OpTYPE_set(svop, type);
     svop->op_sv = sv;
     svop->op_next = (OP*)svop;
     svop->op_flags = (U8)flags;
@@ -5871,7 +5874,7 @@ Perl_newPADOP(pTHX_ I32 type, I32 flags, SV *sv)
        || type == OP_CUSTOM);
 
     NewOp(1101, padop, 1, PADOP);
-    CHANGE_TYPE(padop, type);
+    OpTYPE_set(padop, type);
     padop->op_padix =
        pad_alloc(type, isGV(sv) ? SVf_READONLY : SVs_PADTMP);
     SvREFCNT_dec(PAD_SVl(padop->op_padix));
@@ -5938,7 +5941,7 @@ Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv)
        || (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP);
 
     NewOp(1101, pvop, 1, PVOP);
-    CHANGE_TYPE(pvop, type);
+    OpTYPE_set(pvop, type);
     pvop->op_pv = pv;
     pvop->op_next = (OP*)pvop;
     pvop->op_flags = (U8)flags;
@@ -6697,10 +6700,10 @@ Perl_newSTATEOP(pTHX_ I32 flags, char *label, OP *o)
 
     NewOp(1101, cop, 1, COP);
     if (PERLDB_LINE && CopLINE(PL_curcop) && PL_curstash != PL_debstash) {
-        CHANGE_TYPE(cop, OP_DBSTATE);
+        OpTYPE_set(cop, OP_DBSTATE);
     }
     else {
-        CHANGE_TYPE(cop, OP_NEXTSTATE);
+        OpTYPE_set(cop, OP_NEXTSTATE);
     }
     cop->op_flags = (U8)flags;
     CopHINTS_set(cop, PL_hints);
@@ -7363,7 +7366,7 @@ Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop,
 
     if (!loop) {
        NewOp(1101,loop,1,LOOP);
-        CHANGE_TYPE(loop, OP_ENTERLOOP);
+        OpTYPE_set(loop, OP_ENTERLOOP);
        loop->op_private = 0;
        loop->op_next = (OP*)loop;
     }
@@ -7422,7 +7425,7 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont)
     if (sv) {
        if (sv->op_type == OP_RV2SV) {  /* symbol table variable */
            iterpflags = sv->op_private & OPpOUR_INTRO; /* for our $x () */
-            CHANGE_TYPE(sv, OP_RV2GV);
+            OpTYPE_set(sv, OP_RV2GV);
 
            /* The op_type check is needed to prevent a possible segfault
             * if the loop variable is undeclared and 'strict vars' is in
@@ -7502,8 +7505,9 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont)
         expr = op_lvalue(force_list(expr, 1), OP_GREPSTART);
     }
 
-    loop = (LOOP*)list(op_convert_list(OP_ENTERITER, iterflags,
-                              op_append_elem(OP_LIST, expr, scalar(sv))));
+    loop = (LOOP*)op_convert_list(OP_ENTERITER, iterflags,
+                                  op_append_elem(OP_LIST, list(expr),
+                                                 scalar(sv)));
     assert(!loop->op_next);
     /* for my  $x () sets OPpLVAL_INTRO;
      * for our $x () sets OPpOUR_INTRO */
@@ -8388,7 +8392,7 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
     if (slab)
        Slab_to_ro(slab);
 #endif
-    if (o) op_free(o);
+    op_free(o);
     return cv;
 }
 
@@ -9078,9 +9082,7 @@ Perl_newXS_len_flags(pTHX_ const char *name, STRLEN len,
     bool interleave = FALSE;
 
     PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS;
-    if (!subaddr)
-       Perl_croak_nocontext("panic: no address for '%s' in '%s'",
-           name, filename ? filename : PL_xsubfilename);
+
     {
         GV * const gv = gv_fetchpvn(
                            name ? name : PL_curstash ? "__ANON__" : "__ANON__::__ANON__",
@@ -9283,12 +9285,12 @@ Perl_oopsAV(pTHX_ OP *o)
     switch (o->op_type) {
     case OP_PADSV:
     case OP_PADHV:
-        CHANGE_TYPE(o, OP_PADAV);
+        OpTYPE_set(o, OP_PADAV);
        return ref(o, OP_RV2AV);
 
     case OP_RV2SV:
     case OP_RV2HV:
-        CHANGE_TYPE(o, OP_RV2AV);
+        OpTYPE_set(o, OP_RV2AV);
        ref(o, OP_RV2AV);
        break;
 
@@ -9309,12 +9311,12 @@ Perl_oopsHV(pTHX_ OP *o)
     switch (o->op_type) {
     case OP_PADSV:
     case OP_PADAV:
-        CHANGE_TYPE(o, OP_PADHV);
+        OpTYPE_set(o, OP_PADHV);
        return ref(o, OP_RV2HV);
 
     case OP_RV2SV:
     case OP_RV2AV:
-        CHANGE_TYPE(o, OP_RV2HV);
+        OpTYPE_set(o, OP_RV2HV);
        ref(o, OP_RV2HV);
        break;
 
@@ -9333,7 +9335,7 @@ Perl_newAVREF(pTHX_ OP *o)
     PERL_ARGS_ASSERT_NEWAVREF;
 
     if (o->op_type == OP_PADANY) {
-        CHANGE_TYPE(o, OP_PADAV);
+        OpTYPE_set(o, OP_PADAV);
        return o;
     }
     else if ((o->op_type == OP_RV2AV || o->op_type == OP_PADAV)) {
@@ -9358,7 +9360,7 @@ Perl_newHVREF(pTHX_ OP *o)
     PERL_ARGS_ASSERT_NEWHVREF;
 
     if (o->op_type == OP_PADANY) {
-        CHANGE_TYPE(o, OP_PADHV);
+        OpTYPE_set(o, OP_PADHV);
        return o;
     }
     else if ((o->op_type == OP_RV2HV || o->op_type == OP_PADHV)) {
@@ -9372,7 +9374,7 @@ Perl_newCVREF(pTHX_ I32 flags, OP *o)
 {
     if (o->op_type == OP_PADANY) {
        dVAR;
-        CHANGE_TYPE(o, OP_PADCV);
+        OpTYPE_set(o, OP_PADCV);
     }
     return newUNOP(OP_RV2CV, flags, scalar(o));
 }
@@ -9385,7 +9387,7 @@ Perl_newSVREF(pTHX_ OP *o)
     PERL_ARGS_ASSERT_NEWSVREF;
 
     if (o->op_type == OP_PADANY) {
-        CHANGE_TYPE(o, OP_PADSV);
+        OpTYPE_set(o, OP_PADSV);
         scalar(o);
        return o;
     }
@@ -9682,7 +9684,7 @@ Perl_ck_eval(pTHX_ OP *o)
            enter->op_next = (OP*)enter;
 
            o = op_prepend_elem(OP_LINESEQ, (OP*)enter, (OP*)kid);
-            CHANGE_TYPE(o, OP_LEAVETRY);
+            OpTYPE_set(o, OP_LEAVETRY);
            enter->op_other = o;
            return o;
        }
@@ -9833,7 +9835,7 @@ Perl_ck_rvconst(pTHX_ OP *o)
                  && SvTYPE(SvRV(gv)) != SVt_PVCV)
                    gv_fetchsv(kidsv, GV_ADDMULTI, SVt_PVCV);
            }
-            CHANGE_TYPE(kid, OP_GV);
+            OpTYPE_set(kid, OP_GV);
            SvREFCNT_dec(kid->op_sv);
 #ifdef USE_ITHREADS
            /* XXX hack: dependence on sizeof(PADOP) <= sizeof(SVOP) */
@@ -10332,7 +10334,7 @@ Perl_ck_readline(pTHX_ OP *o)
     }
     else {
        OP * const newop
-           = newUNOP(OP_READLINE, o->op_flags | OPf_SPECIAL, newGVOP(OP_GV, 0, PL_argvgv));
+           = newUNOP(OP_READLINE, 0, newGVOP(OP_GV, 0, PL_argvgv));
        op_free(o);
        return newop;
     }
@@ -10407,10 +10409,10 @@ Perl_ck_smartmatch(pTHX_ OP *o)
        
        /* Implicitly take a reference to a regular expression */
        if (first->op_type == OP_MATCH) {
-            CHANGE_TYPE(first, OP_QR);
+            OpTYPE_set(first, OP_QR);
        }
        if (second->op_type == OP_MATCH) {
-            CHANGE_TYPE(second, OP_QR);
+            OpTYPE_set(second, OP_QR);
         }
     }
     
@@ -10477,7 +10479,7 @@ Perl_ck_sassign(pTHX_ OP *o)
                newCONDOP(0, first, S_maybe_targlex(aTHX_ o), other);
            OP *const condop = first->op_next;
 
-            CHANGE_TYPE(condop, OP_ONCE);
+            OpTYPE_set(condop, OP_ONCE);
            other->op_targ = target;
            nullop->op_flags |= OPf_WANT_SCALAR;
 
@@ -10648,8 +10650,10 @@ Perl_ck_refassign(pTHX_ OP *o)
     case OP_RV2AV:
        o->op_private |= OPpLVREF_AV;
        goto checkgv;
+        NOT_REACHED; /* NOTREACHED */
     case OP_RV2HV:
        o->op_private |= OPpLVREF_HV;
+        /* FALLTHROUGH */
     case OP_RV2SV:
       checkgv:
        if (cUNOPx(varop)->op_first->op_type != OP_GV) goto bad;
@@ -10836,7 +10840,7 @@ Perl_ck_select(pTHX_ OP *o)
     if (o->op_flags & OPf_KIDS) {
         kid = OpSIBLING(cLISTOPo->op_first);     /* get past pushmark */
         if (kid && OpHAS_SIBLING(kid)) {
-            CHANGE_TYPE(o, OP_SSELECT);
+            OpTYPE_set(o, OP_SSELECT);
            o = ck_fun(o);
            return fold_constants(op_integerize(op_std_init(o)));
        }
@@ -11096,7 +11100,9 @@ Perl_ck_split(pTHX_ OP *o)
         kid = pmruntime( newPMOP(OP_MATCH, OPf_SPECIAL), kid, NULL, 0, 0);
         op_sibling_splice(o, NULL, 0, kid);
     }
-    CHANGE_TYPE(kid, OP_PUSHRE);
+    OpTYPE_set(kid, OP_PUSHRE);
+    /* target implies @ary=..., so wipe it */
+    kid->op_targ = 0;
     scalar(kid);
     if (((PMOP *)kid)->op_pmflags & PMf_GLOBAL) {
       Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),
@@ -11650,7 +11656,7 @@ Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
                                   )
                                );
        }
-       NOT_REACHED;
+       NOT_REACHED; /* NOTREACHED */
     }
     else {
        OP *prev, *cvop, *first, *parent;
@@ -11708,7 +11714,7 @@ Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
            return op_convert_list(opnum,0,aop);
        }
     }
-    NOT_REACHED;
+    NOT_REACHED; /* NOTREACHED */
     return entersubop;
 }
 
@@ -12039,7 +12045,7 @@ Perl_ck_each(pTHX_ OP *o)
                break;
            case OP_PADAV:
            case OP_RV2AV:
-               CHANGE_TYPE(o, array_type);
+               OpTYPE_set(o, array_type);
                break;
            case OP_CONST:
                if (kid->op_private == OPpCONST_BARE
@@ -12050,7 +12056,7 @@ Perl_ck_each(pTHX_ OP *o)
                    /* we let ck_fun handle it */
                    break;
            default:
-               CHANGE_TYPE(o, ref_type);
+               OpTYPE_set(o, ref_type);
                scalar(kid);
        }
     }
@@ -12223,7 +12229,13 @@ S_maybe_multideref(pTHX_ OP *start, OP *orig_o, UV orig_action, U8 hints)
      * determines whether the op chain is convertible and calculates the
      * buffer size; the second pass populates the buffer and makes any
      * changes necessary to ops (such as moving consts to the pad on
-     * threaded builds)
+     * threaded builds).
+     *
+     * NB: for things like Coverity, note that both passes take the same
+     * path through the logic tree (except for 'if (pass)' bits), since
+     * both passes are following the same op_next chain; and in
+     * particular, if it would return early on the second pass, it would
+     * already have returned early on the first pass.
      */
     for (pass = 0; pass < 2; pass++) {
         OP *o                = orig_o;
@@ -12284,7 +12296,7 @@ S_maybe_multideref(pTHX_ OP *start, OP *orig_o, UV orig_action, U8 hints)
             break;
 
         default:
-            NOT_REACHED;
+            NOT_REACHED; /* NOTREACHED */
             return;
         }
 
@@ -12613,7 +12625,7 @@ S_maybe_multideref(pTHX_ OP *start, OP *orig_o, UV orig_action, U8 hints)
 
         if (pass) {
             OP *mderef;
-            OP *p;
+            OP *p, *q;
 
             mderef = newUNOP_AUX(OP_MULTIDEREF, 0, NULL, arg_buf);
             if (index_skip == -1) {
@@ -12777,7 +12789,12 @@ S_maybe_multideref(pTHX_ OP *start, OP *orig_o, UV orig_action, U8 hints)
 
             /* excise and free the original tree, and replace with
              * the multideref op */
-            op_free(op_sibling_splice(top_op, NULL, -1, mderef));
+            p = op_sibling_splice(top_op, NULL, -1, mderef);
+            while (p) {
+                q = OpSIBLING(p);
+                op_free(p);
+                p = q;
+            }
             op_null(top_op);
         }
         else {
@@ -13262,7 +13279,7 @@ Perl_rpeep(pTHX_ OP *o)
                     o->op_flags &=~ OPf_KIDS;
                     /* stub is a baseop; repeat is a binop */
                     STATIC_ASSERT_STMT(sizeof(OP) <= sizeof(BINOP));
-                    CHANGE_TYPE(o, OP_STUB);
+                    OpTYPE_set(o, OP_STUB);
                     o->op_private = 0;
                     break;
                 }
@@ -13494,7 +13511,7 @@ Perl_rpeep(pTHX_ OP *o)
                  * *always* formerly a pushmark */
                 assert(o->op_type == OP_PUSHMARK);
                 o->op_next = followop;
-                CHANGE_TYPE(o, OP_PADRANGE);
+                OpTYPE_set(o, OP_PADRANGE);
                 o->op_targ = base;
                 /* bit 7: INTRO; bit 6..0: count */
                 o->op_private = (intro | count);
@@ -13580,7 +13597,7 @@ Perl_rpeep(pTHX_ OP *o)
                    o->op_private |= o->op_next->op_private & (OPpLVAL_INTRO
                                                               | OPpOUR_INTRO);
                    o->op_next = o->op_next->op_next;
-                    CHANGE_TYPE(o, OP_GVSV);
+                    OpTYPE_set(o, OP_GVSV);
                }
            }
            else if (o->op_next->op_type == OP_READLINE
@@ -13588,7 +13605,7 @@ Perl_rpeep(pTHX_ OP *o)
                    && (o->op_next->op_next->op_flags & OPf_STACKED))
            {
                /* Turn "$a .= <FH>" into an OP_RCATLINE. AMS 20010917 */
-                CHANGE_TYPE(o, OP_RCATLINE);
+                OpTYPE_set(o, OP_RCATLINE);
                o->op_flags |= OPf_STACKED;
                op_null(o->op_next->op_next);
                op_null(o->op_next);
@@ -13854,8 +13871,7 @@ Perl_rpeep(pTHX_ OP *o)
 
            rv2av = OpSIBLING(ourmark);
            if (rv2av && rv2av->op_type == OP_RV2AV && !OpHAS_SIBLING(rv2av)
-               && rv2av->op_flags == (OPf_WANT_LIST | OPf_KIDS)
-               && enter->op_flags == (OPf_WANT_LIST | OPf_KIDS)) {
+               && rv2av->op_flags == (OPf_WANT_LIST | OPf_KIDS)) {
                /* We're just reversing a single array.  */
                rv2av->op_flags = OPf_WANT_SCALAR | OPf_KIDS | OPf_REF;
                enter->op_flags |= OPf_STACKED;
@@ -13892,7 +13908,7 @@ Perl_rpeep(pTHX_ OP *o)
                    sv_rvweaken(sv);
                    SvREADONLY_on(sv);
                }
-                CHANGE_TYPE(o, OP_CONST);
+                OpTYPE_set(o, OP_CONST);
                o->op_flags |= OPf_SPECIAL;
                cSVOPo->op_sv = sv;
            }
@@ -14075,7 +14091,7 @@ Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field)
                    any.xop_peep = xop->xop_peep;
                    break;
                default:
-                   NOT_REACHED;
+                   NOT_REACHED; /* NOTREACHED */
                    break;
                }
            } else {
@@ -14093,7 +14109,7 @@ Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field)
                    any.xop_peep = XOPd_xop_peep;
                    break;
                default:
-                   NOT_REACHED;
+                   NOT_REACHED; /* NOTREACHED */
                    break;
                }
            }
index 99f9f9d..6b5841e 100644 (file)
@@ -105,6 +105,7 @@ get_regex_charset(const U32 flags)
 #define RXf_PMf_FLAGCOPYMASK   (RXf_PMf_COMPILETIME|RXf_PMf_SPLIT)
 
 #if 0   /* Temporary to get Jenkins happy again */
+See thread starting at http://nntp.perl.org/group/perl.perl5.porters/220710
     /* Exclude win32 because it can't cope with I32_MAX definition */
 #ifndef WIN32
 #   if RXf_PMf_COMPILETIME > I32_MAX
index ef5f432..8124403 100644 (file)
--- a/opcode.h
+++ b/opcode.h
@@ -2446,39 +2446,39 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
       20, /* padhv */
       -1, /* padany */
       26, /* pushre */
-      27, /* rv2gv */
-      34, /* rv2sv */
-      39, /* av2arylen */
-      41, /* rv2cv */
+      28, /* rv2gv */
+      35, /* rv2sv */
+      40, /* av2arylen */
+      42, /* rv2cv */
       -1, /* anoncode */
        0, /* prototype */
        0, /* refgen */
        0, /* srefgen */
        0, /* ref */
-      48, /* bless */
-      49, /* backtick */
-      48, /* glob */
+      49, /* bless */
+      50, /* backtick */
+      49, /* glob */
        0, /* readline */
       -1, /* rcatline */
        0, /* regcmaybe */
        0, /* regcreset */
        0, /* regcomp */
-      54, /* match */
+      26, /* match */
       26, /* qr */
-      54, /* subst */
-      56, /* substcont */
-      58, /* trans */
-      58, /* transr */
-      66, /* sassign */
-      69, /* aassign */
+      26, /* subst */
+      55, /* substcont */
+      57, /* trans */
+      57, /* transr */
+      65, /* sassign */
+      68, /* aassign */
        0, /* chop */
        0, /* schop */
-      72, /* chomp */
-      72, /* schomp */
+      71, /* chomp */
+      71, /* schomp */
        0, /* defined */
        0, /* undef */
        0, /* study */
-      39, /* pos */
+      40, /* pos */
        0, /* preinc */
        0, /* i_preinc */
        0, /* predec */
@@ -2487,22 +2487,22 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* i_postinc */
        0, /* postdec */
        0, /* i_postdec */
-      74, /* pow */
-      74, /* multiply */
-      74, /* i_multiply */
-      74, /* divide */
-      74, /* i_divide */
-      74, /* modulo */
-      74, /* i_modulo */
-      76, /* repeat */
-      74, /* add */
-      74, /* i_add */
-      74, /* subtract */
-      74, /* i_subtract */
-      74, /* concat */
-      79, /* stringify */
-      74, /* left_shift */
-      74, /* right_shift */
+      73, /* pow */
+      73, /* multiply */
+      73, /* i_multiply */
+      73, /* divide */
+      73, /* i_divide */
+      73, /* modulo */
+      73, /* i_modulo */
+      75, /* repeat */
+      73, /* add */
+      73, /* i_add */
+      73, /* subtract */
+      73, /* i_subtract */
+      73, /* concat */
+      78, /* stringify */
+      73, /* left_shift */
+      73, /* right_shift */
       12, /* lt */
       12, /* i_lt */
       12, /* gt */
@@ -2516,132 +2516,132 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
       12, /* ne */
       12, /* i_ne */
       12, /* ncmp */
-      74, /* i_ncmp */
+      73, /* i_ncmp */
       12, /* slt */
       12, /* sgt */
       12, /* sle */
       12, /* sge */
       12, /* seq */
       12, /* sne */
-      74, /* scmp */
+      73, /* scmp */
       12, /* bit_and */
       12, /* bit_xor */
       12, /* bit_or */
-      74, /* nbit_and */
-      74, /* nbit_xor */
-      74, /* nbit_or */
+      73, /* nbit_and */
+      73, /* nbit_xor */
+      73, /* nbit_or */
       12, /* sbit_and */
       12, /* sbit_xor */
       12, /* sbit_or */
        0, /* negate */
        0, /* i_negate */
        0, /* not */
-      72, /* complement */
-      72, /* ncomplement */
-      72, /* scomplement */
+      71, /* complement */
+      71, /* ncomplement */
+      71, /* scomplement */
       12, /* smartmatch */
-      79, /* atan2 */
-      72, /* sin */
-      72, /* cos */
-      79, /* rand */
-      79, /* srand */
-      72, /* exp */
-      72, /* log */
-      72, /* sqrt */
-      72, /* int */
-      72, /* hex */
-      72, /* oct */
-      72, /* abs */
-      72, /* length */
-      81, /* substr */
-      84, /* vec */
-      79, /* index */
-      79, /* rindex */
-      48, /* sprintf */
-      48, /* formline */
-      72, /* ord */
-      72, /* chr */
-      79, /* crypt */
+      78, /* atan2 */
+      71, /* sin */
+      71, /* cos */
+      78, /* rand */
+      78, /* srand */
+      71, /* exp */
+      71, /* log */
+      71, /* sqrt */
+      71, /* int */
+      71, /* hex */
+      71, /* oct */
+      71, /* abs */
+      71, /* length */
+      80, /* substr */
+      83, /* vec */
+      78, /* index */
+      78, /* rindex */
+      49, /* sprintf */
+      49, /* formline */
+      71, /* ord */
+      71, /* chr */
+      78, /* crypt */
        0, /* ucfirst */
        0, /* lcfirst */
        0, /* uc */
        0, /* lc */
        0, /* quotemeta */
-      87, /* rv2av */
-      93, /* aelemfast */
-      93, /* aelemfast_lex */
-      94, /* aelem */
-      99, /* aslice */
-     102, /* kvaslice */
+      86, /* rv2av */
+      92, /* aelemfast */
+      92, /* aelemfast_lex */
+      93, /* aelem */
+      98, /* aslice */
+     101, /* kvaslice */
        0, /* aeach */
        0, /* akeys */
        0, /* avalues */
        0, /* each */
        0, /* values */
-      39, /* keys */
-     103, /* delete */
-     106, /* exists */
-     108, /* rv2hv */
-      94, /* helem */
-      99, /* hslice */
-     102, /* kvhslice */
-     116, /* multideref */
-      48, /* unpack */
-      48, /* pack */
-     123, /* split */
-      48, /* join */
-     126, /* list */
+      40, /* keys */
+     102, /* delete */
+     105, /* exists */
+     107, /* rv2hv */
+      93, /* helem */
+      98, /* hslice */
+     101, /* kvhslice */
+     115, /* multideref */
+      49, /* unpack */
+      49, /* pack */
+     122, /* split */
+      49, /* join */
+     125, /* list */
       12, /* lslice */
-      48, /* anonlist */
-      48, /* anonhash */
-      48, /* splice */
-      79, /* push */
+      49, /* anonlist */
+      49, /* anonhash */
+      49, /* splice */
+      78, /* push */
        0, /* pop */
        0, /* shift */
-      79, /* unshift */
-     128, /* sort */
-     135, /* reverse */
-     137, /* grepstart */
-     137, /* grepwhile */
-     137, /* mapstart */
-     137, /* mapwhile */
+      78, /* unshift */
+     127, /* sort */
+     134, /* reverse */
+     136, /* grepstart */
+     136, /* grepwhile */
+     136, /* mapstart */
+     136, /* mapwhile */
        0, /* range */
-     139, /* flip */
-     139, /* flop */
+     138, /* flip */
+     138, /* flop */
        0, /* and */
        0, /* or */
       12, /* xor */
        0, /* dor */
-     141, /* cond_expr */
+     140, /* cond_expr */
        0, /* andassign */
        0, /* orassign */
        0, /* dorassign */
        0, /* method */
-     143, /* entersub */
-     150, /* leavesub */
-     150, /* leavesublv */
-     152, /* caller */
-      48, /* warn */
-      48, /* die */
-      48, /* reset */
+     142, /* entersub */
+     149, /* leavesub */
+     149, /* leavesublv */
+     151, /* caller */
+      49, /* warn */
+      49, /* die */
+      49, /* reset */
       -1, /* lineseq */
-     154, /* nextstate */
-     154, /* dbstate */
+     153, /* nextstate */
+     153, /* dbstate */
       -1, /* unstack */
       -1, /* enter */
-     155, /* leave */
+     154, /* leave */
       -1, /* scope */
-     157, /* enteriter */
-     161, /* iter */
+     156, /* enteriter */
+     160, /* iter */
       -1, /* enterloop */
-     162, /* leaveloop */
+     161, /* leaveloop */
       -1, /* return */
-     164, /* last */
-     164, /* next */
-     164, /* redo */
-     164, /* dump */
-     164, /* goto */
-      48, /* exit */
+     163, /* last */
+     163, /* next */
+     163, /* redo */
+     163, /* dump */
+     163, /* goto */
+      49, /* exit */
        0, /* method_named */
        0, /* method_super */
        0, /* method_redir */
@@ -2652,143 +2652,143 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* leavewhen */
       -1, /* break */
       -1, /* continue */
-     166, /* open */
-      48, /* close */
-      48, /* pipe_op */
-      48, /* fileno */
-      48, /* umask */
-      48, /* binmode */
-      48, /* tie */
+     165, /* open */
+      49, /* close */
+      49, /* pipe_op */
+      49, /* fileno */
+      49, /* umask */
+      49, /* binmode */
+      49, /* tie */
        0, /* untie */
        0, /* tied */
-      48, /* dbmopen */
+      49, /* dbmopen */
        0, /* dbmclose */
-      48, /* sselect */
-      48, /* select */
-      48, /* getc */
-      48, /* read */
-      48, /* enterwrite */
-     150, /* leavewrite */
+      49, /* sselect */
+      49, /* select */
+      49, /* getc */
+      49, /* read */
+      49, /* enterwrite */
+     149, /* leavewrite */
       -1, /* prtf */
       -1, /* print */
       -1, /* say */
-      48, /* sysopen */
-      48, /* sysseek */
-      48, /* sysread */
-      48, /* syswrite */
-      48, /* eof */
-      48, /* tell */
-      48, /* seek */
-      48, /* truncate */
-      48, /* fcntl */
-      48, /* ioctl */
-      79, /* flock */
-      48, /* send */
-      48, /* recv */
-      48, /* socket */
-      48, /* sockpair */
-      48, /* bind */
-      48, /* connect */
-      48, /* listen */
-      48, /* accept */
-      48, /* shutdown */
-      48, /* gsockopt */
-      48, /* ssockopt */
+      49, /* sysopen */
+      49, /* sysseek */
+      49, /* sysread */
+      49, /* syswrite */
+      49, /* eof */
+      49, /* tell */
+      49, /* seek */
+      49, /* truncate */
+      49, /* fcntl */
+      49, /* ioctl */
+      78, /* flock */
+      49, /* send */
+      49, /* recv */
+      49, /* socket */
+      49, /* sockpair */
+      49, /* bind */
+      49, /* connect */
+      49, /* listen */
+      49, /* accept */
+      49, /* shutdown */
+      49, /* gsockopt */
+      49, /* ssockopt */
        0, /* getsockname */
        0, /* getpeername */
        0, /* lstat */
        0, /* stat */
-     171, /* ftrread */
-     171, /* ftrwrite */
-     171, /* ftrexec */
-     171, /* fteread */
-     171, /* ftewrite */
-     171, /* fteexec */
-     176, /* ftis */
-     176, /* ftsize */
-     176, /* ftmtime */
-     176, /* ftatime */
-     176, /* ftctime */
-     176, /* ftrowned */
-     176, /* fteowned */
-     176, /* ftzero */
-     176, /* ftsock */
-     176, /* ftchr */
-     176, /* ftblk */
-     176, /* ftfile */
-     176, /* ftdir */
-     176, /* ftpipe */
-     176, /* ftsuid */
-     176, /* ftsgid */
-     176, /* ftsvtx */
-     176, /* ftlink */
-     176, /* fttty */
-     176, /* fttext */
-     176, /* ftbinary */
-      79, /* chdir */
-      79, /* chown */
-      72, /* chroot */
-      79, /* unlink */
-      79, /* chmod */
-      79, /* utime */
-      79, /* rename */
-      79, /* link */
-      79, /* symlink */
+     170, /* ftrread */
+     170, /* ftrwrite */
+     170, /* ftrexec */
+     170, /* fteread */
+     170, /* ftewrite */
+     170, /* fteexec */
+     175, /* ftis */
+     175, /* ftsize */
+     175, /* ftmtime */
+     175, /* ftatime */
+     175, /* ftctime */
+     175, /* ftrowned */
+     175, /* fteowned */
+     175, /* ftzero */
+     175, /* ftsock */
+     175, /* ftchr */
+     175, /* ftblk */
+     175, /* ftfile */
+     175, /* ftdir */
+     175, /* ftpipe */
+     175, /* ftsuid */
+     175, /* ftsgid */
+     175, /* ftsvtx */
+     175, /* ftlink */
+     175, /* fttty */
+     175, /* fttext */
+     175, /* ftbinary */
+      78, /* chdir */
+      78, /* chown */
+      71, /* chroot */
+      78, /* unlink */
+      78, /* chmod */
+      78, /* utime */
+      78, /* rename */
+      78, /* link */
+      78, /* symlink */
        0, /* readlink */
-      79, /* mkdir */
-      72, /* rmdir */
-      48, /* open_dir */
+      78, /* mkdir */
+      71, /* rmdir */
+      49, /* open_dir */
        0, /* readdir */
        0, /* telldir */
-      48, /* seekdir */
+      49, /* seekdir */
        0, /* rewinddir */
        0, /* closedir */
       -1, /* fork */
-     180, /* wait */
-      79, /* waitpid */
-      79, /* system */
-      79, /* exec */
-      79, /* kill */
-     180, /* getppid */
-      79, /* getpgrp */
-      79, /* setpgrp */
-      79, /* getpriority */
-      79, /* setpriority */
-     180, /* time */
+     179, /* wait */
+      78, /* waitpid */
+      78, /* system */
+      78, /* exec */
+      78, /* kill */
+     179, /* getppid */
+      78, /* getpgrp */
+      78, /* setpgrp */
+      78, /* getpriority */
+      78, /* setpriority */
+     179, /* time */
       -1, /* tms */
        0, /* localtime */
-      48, /* gmtime */
+      49, /* gmtime */
        0, /* alarm */
-      79, /* sleep */
-      48, /* shmget */
-      48, /* shmctl */
-      48, /* shmread */
-      48, /* shmwrite */
-      48, /* msgget */
-      48, /* msgctl */
-      48, /* msgsnd */
-      48, /* msgrcv */
-      48, /* semop */
-      48, /* semget */
-      48, /* semctl */
+      78, /* sleep */
+      49, /* shmget */
+      49, /* shmctl */
+      49, /* shmread */
+      49, /* shmwrite */
+      49, /* msgget */
+      49, /* msgctl */
+      49, /* msgsnd */
+      49, /* msgrcv */
+      49, /* semop */
+      49, /* semget */
+      49, /* semctl */
        0, /* require */
        0, /* dofile */
       -1, /* hintseval */
-     181, /* entereval */
-     150, /* leaveeval */
+     180, /* entereval */
+     149, /* leaveeval */
        0, /* entertry */
       -1, /* leavetry */
        0, /* ghbyname */
-      48, /* ghbyaddr */
+      49, /* ghbyaddr */
       -1, /* ghostent */
        0, /* gnbyname */
-      48, /* gnbyaddr */
+      49, /* gnbyaddr */
       -1, /* gnetent */
        0, /* gpbyname */
-      48, /* gpbynumber */
+      49, /* gpbynumber */
       -1, /* gprotoent */
-      48, /* gsbyname */
-      48, /* gsbyport */
+      49, /* gsbyname */
+      49, /* gsbyport */
       -1, /* gservent */
        0, /* shostent */
        0, /* snetent */
@@ -2809,24 +2809,24 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
       -1, /* sgrent */
       -1, /* egrent */
       -1, /* getlogin */
-      48, /* syscall */
+      49, /* syscall */
        0, /* lock */
        0, /* once */
       -1, /* custom */
        0, /* reach */
-      39, /* rkeys */
+      40, /* rkeys */
        0, /* rvalues */
-     187, /* coreargs */
+     186, /* coreargs */
        3, /* runcv */
        0, /* fc */
       -1, /* padcv */
       -1, /* introcv */
       -1, /* clonecv */
-     191, /* padrange */
-     193, /* refassign */
-     199, /* lvref */
-     205, /* lvrefslice */
-     206, /* lvavref */
+     190, /* padrange */
+     192, /* refassign */
+     198, /* lvref */
+     204, /* lvrefslice */
+     205, /* lvavref */
        0, /* anonconst */
 
 };
@@ -2856,14 +2856,13 @@ EXTCONST U16  PL_op_private_bitdefs[] = {
     0x29dc, 0x3bd8, 0x0257, /* padsv */
     0x29dc, 0x3bd8, 0x2acc, 0x38c9, /* padav */
     0x29dc, 0x3bd8, 0x0534, 0x05d0, 0x2acc, 0x38c9, /* padhv */
-    0x3699, /* pushre, qr */
+    0x3698, 0x3ef1, /* pushre, match, qr, subst */
     0x29dc, 0x1758, 0x0256, 0x2acc, 0x2cc8, 0x3c84, 0x0003, /* rv2gv */
     0x29dc, 0x2ef8, 0x0256, 0x3c84, 0x0003, /* rv2sv */
     0x2acc, 0x0003, /* av2arylen, pos, keys, rkeys */
     0x2c3c, 0x0b98, 0x08f4, 0x028c, 0x3e48, 0x3c84, 0x0003, /* rv2cv */
     0x012f, /* bless, glob, sprintf, formline, unpack, pack, join, anonlist, anonhash, splice, warn, die, reset, exit, close, pipe_op, fileno, umask, binmode, tie, dbmopen, sselect, select, getc, read, enterwrite, sysopen, sysseek, sysread, syswrite, eof, tell, seek, truncate, fcntl, ioctl, send, recv, socket, sockpair, bind, connect, listen, accept, shutdown, gsockopt, ssockopt, open_dir, seekdir, gmtime, shmget, shmctl, shmread, shmwrite, msgget, msgctl, msgsnd, msgrcv, semop, semget, semctl, ghbyaddr, gnbyaddr, gpbynumber, gsbyname, gsbyport, syscall */
     0x30dc, 0x2ff8, 0x24b4, 0x23f0, 0x0003, /* backtick */
-    0x3698, 0x3ef1, /* match, subst */
     0x3698, 0x0003, /* substcont */
     0x0c9c, 0x1dd8, 0x0834, 0x3ef0, 0x3a0c, 0x2168, 0x01e4, 0x0141, /* trans, transr */
     0x0adc, 0x0458, 0x0067, /* sassign */
@@ -2931,7 +2930,7 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* PADAV      */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpPAD_STATE|OPpLVAL_INTRO),
     /* PADHV      */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL|OPpPAD_STATE|OPpLVAL_INTRO),
     /* PADANY     */ (0),
-    /* PUSHRE     */ (OPpRUNTIME),
+    /* PUSHRE     */ (OPpTARGET_MY|OPpRUNTIME),
     /* RV2GV      */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpDONT_INIT_GV|OPpMAYBE_LVSUB|OPpDEREF|OPpALLOW_FAKE|OPpLVAL_INTRO),
     /* RV2SV      */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpDEREF|OPpOUR_INTRO|OPpLVAL_INTRO),
     /* AV2ARYLEN  */ (OPpARG1_MASK|OPpMAYBE_LVSUB),
@@ -2950,7 +2949,7 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* REGCRESET  */ (OPpARG1_MASK),
     /* REGCOMP    */ (OPpARG1_MASK),
     /* MATCH      */ (OPpTARGET_MY|OPpRUNTIME),
-    /* QR         */ (OPpRUNTIME),
+    /* QR         */ (OPpTARGET_MY|OPpRUNTIME),
     /* SUBST      */ (OPpTARGET_MY|OPpRUNTIME),
     /* SUBSTCONT  */ (OPpARG1_MASK|OPpRUNTIME),
     /* TRANS      */ (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTARGET_MY|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE),
diff --git a/pad.c b/pad.c
index aa63fde..057a502 100644 (file)
--- a/pad.c
+++ b/pad.c
@@ -2126,7 +2126,7 @@ S_cv_clone_pad(pTHX_ CV *proto, CV *cv, CV *outside, HV *cloned,
                            S_cv_clone(aTHX_ (CV *)ppad[ix],
                                             (CV *)PL_curpad[ix],
                                             *cvp, cloned);
-                           hv_store(cloned, (char *)&ppad[ix],
+                           (void)hv_store(cloned, (char *)&ppad[ix],
                                     sizeof(CV *),
                                     SvREFCNT_inc_simple_NN(PL_curpad[ix]),
                                     0);
index 2806578..ffc60d3 100644 (file)
--- a/parser.h
+++ b/parser.h
@@ -100,7 +100,7 @@ typedef struct yy_parser {
 
     YYSTYPE    nextval[5];     /* value of next token, if any */
     I32                nexttype[5];    /* type of next token */
-    I32                nexttoke;
+    U32                nexttoke;
 
     COP                *saved_curcop;  /* the previous PL_curcop */
     char       tokenbuf[256];
index 760d246..ffb7cfd 100644 (file)
@@ -15,7 +15,7 @@
 
 #define PERL_REVISION  5               /* age */
 #define PERL_VERSION   21              /* epoch */
-#define PERL_SUBVERSION                      /* generation */
+#define PERL_SUBVERSION        10              /* 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    9
+#define PERL_API_SUBVERSION    10
 /*
    XXX Note:  The selection of non-default Configure options, such
    as -Duselonglong may invalidate these settings.  Currently, Configure
diff --git a/perl.c b/perl.c
index db079cd..afa2107 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -385,7 +385,6 @@ perl_construct(pTHXx)
     PL_XPosix_ptrs[_CC_PRINT] = _new_invlist_C_array(XPosixPrint_invlist);
     PL_XPosix_ptrs[_CC_PUNCT] = _new_invlist_C_array(XPosixPunct_invlist);
     PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(XPerlSpace_invlist);
-    PL_XPosix_ptrs[_CC_PSXSPC] = _new_invlist_C_array(XPosixSpace_invlist);
     PL_XPosix_ptrs[_CC_UPPER] = _new_invlist_C_array(XPosixUpper_invlist);
     PL_XPosix_ptrs[_CC_VERTSPACE] = _new_invlist_C_array(VertSpace_invlist);
     PL_XPosix_ptrs[_CC_WORDCHAR] = _new_invlist_C_array(XPosixWord_invlist);
@@ -551,7 +550,11 @@ perl_destruct(pTHXx)
             if (strEQ(s, "-1")) { /* Special case: modperl folklore. */
                 i = -1;
             } else {
-                i = grok_atou(s, NULL);
+                UV uv;
+                if (grok_atoUV(s, &uv, NULL) && uv <= INT_MAX)
+                    i = (int)uv;
+                else
+                    i = 0;
             }
 #ifdef DEBUGGING
            if (destruct_level < i) destruct_level = i;
@@ -1042,7 +1045,9 @@ perl_destruct(pTHXx)
     SvREFCNT_dec(PL_Latin1);
     SvREFCNT_dec(PL_NonL1NonFinalFold);
     SvREFCNT_dec(PL_HasMultiCharFold);
+#ifdef USE_LOCALE_CTYPE
     SvREFCNT_dec(PL_warn_locale);
+#endif
     PL_utf8_mark       = NULL;
     PL_utf8_toupper    = NULL;
     PL_utf8_totitle    = NULL;
@@ -1054,7 +1059,9 @@ perl_destruct(pTHXx)
     PL_AboveLatin1       = NULL;
     PL_InBitmap          = NULL;
     PL_HasMultiCharFold  = NULL;
+#ifdef USE_LOCALE_CTYPE
     PL_warn_locale       = NULL;
+#endif
     PL_Latin1            = NULL;
     PL_NonL1NonFinalFold = NULL;
     PL_UpperLatin1       = NULL;
@@ -1306,6 +1313,13 @@ perl_destruct(pTHXx)
     Perl_reentrant_free(aTHX);
 #endif
 
+    /* These all point to HVs that are about to be blown away.
+       Code in core and on CPAN assumes that if the interpreter is re-started
+       that they will be cleanly NULL or pointing to a valid HV.  */
+    PL_custom_op_names = NULL;
+    PL_custom_op_descs = NULL;
+    PL_custom_ops = NULL;
+
     sv_free_arenas();
 
     while (PL_regmatch_slab) {
@@ -1470,7 +1484,7 @@ perl_parse(pTHXx_ XSINIT_t xsinit, int argc, char **argv, char **env)
     {
         const char * const s = PerlEnv_getenv("PERL_HASH_SEED_DEBUG");
 
-        if (s && (grok_atou(s, NULL) == 1)) {
+        if (s && strEQ(s, "1")) {
             unsigned char *seed= PERL_HASH_SEED;
             unsigned char *seed_end= PERL_HASH_SEED + PERL_HASH_SEED_BYTES;
             PerlIO_printf(Perl_debug_log, "HASH_FUNCTION = %s HASH_SEED = 0x", PERL_HASH_FUNC);
@@ -1773,7 +1787,7 @@ S_Internals_V(pTHX_ CV *cv)
 #  endif              
        ;
     PERL_UNUSED_ARG(cv);
-    PERL_UNUSED_ARG(items);
+    PERL_UNUSED_VAR(items);
 
     EXTEND(SP, entries);
 
@@ -2001,6 +2015,10 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
 #endif
        (s = PerlEnv_getenv("PERL5OPT")))
     {
+        /* s points to static memory in getenv(), which may be overwritten at
+         * any time; use a mortal copy instead */
+       s = SvPVX(sv_2mortal(newSVpv(s, 0)));
+
        while (isSPACE(*s))
            s++;
        if (*s == '-' && *(s+1) == 'T') {
@@ -2305,7 +2323,9 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
 #ifdef MYMALLOC
     {
        const char *s;
-        if ((s=PerlEnv_getenv("PERL_DEBUG_MSTATS")) && grok_atou(s, NULL) >= 2)
+        UV uv;
+        s = PerlEnv_getenv("PERL_DEBUG_MSTATS");
+        if (s && grok_atoUV(s, &uv, NULL) && uv >= 2)
             dump_mstats("after compilation:");
     }
 #endif
@@ -2588,13 +2608,11 @@ Perl_call_argv(pTHX_ const char *sub_name, I32 flags, char **argv)
     PERL_ARGS_ASSERT_CALL_ARGV;
 
     PUSHMARK(SP);
-    if (argv) {
-       while (*argv) {
-           mXPUSHs(newSVpv(*argv,0));
-           argv++;
-       }
-       PUTBACK;
+    while (*argv) {
+        mXPUSHs(newSVpv(*argv,0));
+        argv++;
     }
+    PUTBACK;
     return call_pv(sub_name, flags);
 }
 
@@ -3039,7 +3057,7 @@ Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
       "  L  trace some locale setting information--for Perl core development\n",
       NULL
     };
-    int i = 0;
+    UV uv = 0;
 
     PERL_ARGS_ASSERT_GET_DEBUG_OPTS;
 
@@ -3050,7 +3068,7 @@ Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
        for (; isWORDCHAR(**s); (*s)++) {
            const char * const d = strchr(debopts,**s);
            if (d)
-               i |= 1 << (d - debopts);
+               uv |= 1 << (d - debopts);
            else if (ckWARN_d(WARN_DEBUGGING))
                Perl_warner(aTHX_ packWARN(WARN_DEBUGGING),
                    "invalid option -D%c, use -D'' to see choices\n", **s);
@@ -3058,8 +3076,7 @@ Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
     }
     else if (isDIGIT(**s)) {
         const char* e;
-       i = grok_atou(*s, &e);
-        if (e)
+       if (grok_atoUV(*s, &uv, &e))
             *s = e;
        for (; isWORDCHAR(**s); (*s)++) ;
     }
@@ -3067,7 +3084,7 @@ Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
       const char *const *p = usage_msgd;
       while (*p) PerlIO_puts(PerlIO_stdout(), *p++);
     }
-    return i;
+    return (int)uv; /* ignore any UV->int conversion loss */
 }
 #endif
 
@@ -3207,9 +3224,12 @@ Perl_moreswitches(pTHX_ const char *s)
        for (s++; isWORDCHAR(*s); s++) ;
 #endif
        return s;
+        NOT_REACHED; /* NOTREACHED */
     }  
     case 'h':
        usage();
+        NOT_REACHED; /* NOTREACHED */
+
     case 'i':
        Safefree(PL_inplace);
 #if defined(__CYGWIN__) /* do backup extension automagically */
@@ -3658,14 +3678,17 @@ S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript)
        PL_origfilename = savepvs("-e");
     }
     else {
+        const char *s;
+        UV uv;
        /* if find_script() returns, it returns a malloc()-ed value */
        scriptname = PL_origfilename = find_script(scriptname, dosearch, NULL, 1);
 
-       if (strnEQ(scriptname, "/dev/fd/", 8) && isDIGIT(scriptname[8]) ) {
-            const char *s = scriptname + 8;
-            const char* e;
-           fdscript = grok_atou(s, &e);
-           s = e;
+       if (strnEQ(scriptname, "/dev/fd/", 8)
+            && isDIGIT(scriptname[8])
+            && grok_atoUV(scriptname + 8, &uv, &s)
+            && uv <= PERL_INT_MAX
+        ) {
+            fdscript = (int)uv;
            if (*s) {
                /* PSz 18 Feb 04
                 * Tell apart "normal" usage of fdscript, e.g.
diff --git a/perl.h b/perl.h
index b3b77ba..8c05ff1 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -2918,6 +2918,26 @@ typedef struct padname PADNAME;
          signal(SIGFPE, SIG_IGN); \
      } STMT_END
 #endif
+/* In IRIX the default for Flush to Zero bit is true,
+ * which means that results going below the minimum of normal
+ * floating points go to zero, instead of going denormal/subnormal.
+ * This is unlike almost any other system running Perl, so let's clear it.
+ * [perl #123767] IRIX64 blead (ddce084a) opbasic/arith.t failure, originally
+ * [perl #120426] small numbers shouldn't round to zero if they have extra floating digits
+ *
+ * XXX The flush-to-zero behaviour should be a Configure scan.
+ * To change the behaviour usually requires some system-specific
+ * incantation, though, like the below. */
+#ifdef __sgi
+#  include <sys/fpu.h>
+#  define PERL_SYS_FPU_INIT \
+     STMT_START { \
+         union fpc_csr csr; \
+         csr.fc_word = get_fpc_csr(); \
+         csr.fc_struct.flush = 0; \
+         set_fpc_csr(csr.fc_word); \
+     } STMT_END
+#endif
 
 #ifndef PERL_SYS_FPU_INIT
 #  define PERL_SYS_FPU_INIT NOOP
@@ -4329,11 +4349,6 @@ static const union { unsigned int __i; float __f; } __PL_inf_u =
 #   endif
 #   if !defined(NV_NAN) && defined(LDBL_QNAN)
 #       define NV_NAN LDBL_QNAN
-#       define NV_QNAN LDBL_QNAN
-#   endif
-#   if !defined(NV_NAN) && defined(LDBL_SNAN)
-#       define NV_NAN LDBL_SNAN
-#       define NV_SNAN LDBL_SNAN
 #   endif
 #endif
 #if !defined(NV_NAN) && defined(DBL_NAN)
@@ -4341,27 +4356,15 @@ static const union { unsigned int __i; float __f; } __PL_inf_u =
 #endif
 #if !defined(NV_NAN) && defined(DBL_QNAN)
 #  define NV_NAN (NV)DBL_QNAN
-#  define NV_QNAN DBL_QNAN
-#endif
-#if !defined(NV_NAN) && defined(DBL_SNAN)
-#  define NV_NAN (NV)DBL_SNAN
-#  define NV_SNAN DBL_SNAN
 #endif
 #if !defined(NV_NAN) && defined(NAN)
 #  define NV_NAN (NV)NAN
 #endif
 #if !defined(NV_NAN) && defined(QNAN)
 #  define NV_NAN (NV)QNAN
-#  define NV_QNAN QNAN
-#endif
-#if !defined(NV_NAN) && defined(SNAN)
-#  define NV_NAN (NV)SNAN
-#  define NV_SNAN SNAN
 #endif
 #if !defined(NV_NAN) && defined(I_SUNMATH)
 #  define NV_NAN (NV)quiet_nan()
-#  define NV_QNAN (NV)quiet_nan()
-#  define NV_SNAN (NV)signaling_nan()
 #endif
 #if !defined(NV_NAN)
 #  if INTSIZE == 4
@@ -5806,12 +5809,16 @@ typedef struct am_table_short AMTS;
          * this will so rarely  be true, there is no point to optimize for
          * time; instead it makes sense to minimize space used and do all the
          * work in the rarely called function */
-#       define _CHECK_AND_WARN_PROBLEMATIC_LOCALE                           \
-       STMT_START {                                                        \
-            if (UNLIKELY(PL_warn_locale)) {                                 \
-                _warn_problematic_locale();                                 \
-            }                                                               \
-        }  STMT_END
+#       ifdef USE_LOCALE_CTYPE
+#           define _CHECK_AND_WARN_PROBLEMATIC_LOCALE                         \
+                STMT_START {                                                  \
+                    if (UNLIKELY(PL_warn_locale)) {                           \
+                        _warn_problematic_locale();                           \
+                    }                                                         \
+                }  STMT_END
+#       else
+#           define _CHECK_AND_WARN_PROBLEMATIC_LOCALE
+#       endif
 
 
     /* These two internal macros are called when a warning should be raised,
@@ -5859,48 +5866,128 @@ typedef struct am_table_short AMTS;
 
 #ifdef USE_LOCALE_NUMERIC
 
-/* These macros are for toggling between the underlying locale (LOCAL) and the
- * C locale. */
+/* These macros are for toggling between the underlying locale (UNDERLYING or
+ * LOCAL) and the C locale (STANDARD).
+
+=head1 Locale-related functions and macros
+
+=for apidoc Amn|void|DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+
+This macro should be used as a statement.  It declares a private variable
+(whose name begins with an underscore) that is needed by the other macros in
+this section.  Failing to include this correctly should lead to a syntax error.
+For compatibility with C89 C compilers it should be placed in a block before
+any executable statements.
+
+=for apidoc Am|void|STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
+
+This is used by XS code that that is C<LC_NUMERIC> locale-aware to force the
+locale for category C<LC_NUMERIC> to be what perl thinks is the current
+underlying locale.  (The perl interpreter could be wrong about what the
+underlying locale actually is if some C or XS code has called the C library
+function L<setlocale(3)> behind its back; calling L</sync_locale> before calling
+this macro will update perl's records.)
+
+A call to L</DECLARATION_FOR_LC_NUMERIC_MANIPULATION> must have been made to
+declare at compile time a private variable used by this macro.  This macro
+should be called as a single statement, not an expression, but with an empty
+argument list, like this:
+
+ {
+    DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+     ...
+    STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
+     ...
+    RESTORE_LC_NUMERIC();
+     ...
+ }
+
+The private variable is used to save the current locale state, so
+that the requisite matching call to L</RESTORE_LC_NUMERIC> can restore it.
+
+=for apidoc Am|void|STORE_LC_NUMERIC_SET_TO_NEEDED
+
+This is used to help wrap XS or C code that that is C<LC_NUMERIC> locale-aware.
+This locale category is generally kept set to the C locale by Perl for
+backwards compatibility, and because most XS code that reads floating point
+values can cope only with the decimal radix character being a dot.
+
+This macro makes sure the current C<LC_NUMERIC> state is set properly, to be
+aware of locale if the call to the XS or C code from the Perl program is
+from within the scope of a S<C<use locale>>; or to ignore locale if the call is
+instead from outside such scope.
+
+This macro is the start of wrapping the C or XS code; the wrap ending is done
+by calling the L</RESTORE_LC_NUMERIC> macro after the operation.  Otherwise
+the state can be changed that will adversely affect other XS code.
+
+A call to L</DECLARATION_FOR_LC_NUMERIC_MANIPULATION> must have been made to
+declare at compile time a private variable used by this macro.  This macro
+should be called as a single statement, not an expression, but with an empty
+argument list, like this:
+
+ {
+    DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+     ...
+    STORE_LC_NUMERIC_SET_TO_NEEDED();
+     ...
+    RESTORE_LC_NUMERIC();
+     ...
+ }
+
+=for apidoc Am|void|RESTORE_LC_NUMERIC
+
+This is used in conjunction with one of the macros
+L</STORE_LC_NUMERIC_SET_TO_NEEDED>
+and
+L</STORE_LC_NUMERIC_FORCE_TO_UNDERLYING>
+
+to properly restore the C<LC_NUMERIC> state.
+
+A call to L</DECLARATION_FOR_LC_NUMERIC_MANIPULATION> must have been made to
+declare at compile time a private variable used by this macro and the two
+C<STORE> ones.  This macro should be called as a single statement, not an
+expression, but with an empty argument list, like this:
+
+ {
+    DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+     ...
+    RESTORE_LC_NUMERIC();
+     ...
+ }
 
-/* The first set makes sure that the locale is set to C unless within a 'use
- * locale's scope; otherwise to the default locale.  A function pointer is
- * used, which can be declared separately by
- * DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED, followed by the actual
- * setting (using STORE_LC_NUMERIC_SET_TO_NEEDED()), or the two can be combined
- * into one call DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED().
- * RESTORE_LC_NUMERIC() in all cases restores the locale to what it was before
- * these were called */
+=cut
+
+*/
 
 #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_LC(LC_NUMERIC)) {                                                 \
-        if (_NOT_IN_NUMERIC_LOCAL) {                                         \
-            set_numeric_local();                                             \
-            _restore_LC_NUMERIC_function = &Perl_set_numeric_standard;       \
-        }                                                                    \
-    }                                                                        \
-    else {                                                                   \
-        if (_NOT_IN_NUMERIC_STANDARD) {                                      \
-            SET_NUMERIC_STANDARD();                                          \
-            _restore_LC_NUMERIC_function = &Perl_set_numeric_local;          \
-        }                                                                    \
+ * contrary be noops, in the dynamic scope by setting PL_numeric_standard to 2.
+ * */
+#define _NOT_IN_NUMERIC_UNDERLYING                                          \
+                        (! PL_numeric_local && PL_numeric_standard < 2)
+
+#define DECLARATION_FOR_LC_NUMERIC_MANIPULATION                             \
+    void (*_restore_LC_NUMERIC_function)(pTHX) = NULL
+
+#define STORE_LC_NUMERIC_SET_TO_NEEDED()                                    \
+    if (IN_LC(LC_NUMERIC)) {                                                \
+        if (_NOT_IN_NUMERIC_UNDERLYING) {                                   \
+            set_numeric_local();                                            \
+            _restore_LC_NUMERIC_function = &Perl_set_numeric_standard;      \
+        }                                                                   \
+    }                                                                       \
+    else {                                                                  \
+        if (_NOT_IN_NUMERIC_STANDARD) {                                     \
+            SET_NUMERIC_STANDARD();                                         \
+            _restore_LC_NUMERIC_function = &Perl_set_numeric_local;         \
+        }                                                                   \
     }
 
-#define DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED()                             \
-    DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED;                          \
-    STORE_LC_NUMERIC_SET_TO_NEEDED();
-
-#define RESTORE_LC_NUMERIC()                                                 \
-    if (_restore_LC_NUMERIC_function) {                                      \
-        _restore_LC_NUMERIC_function(aTHX);                                  \
+#define RESTORE_LC_NUMERIC()                                                \
+    if (_restore_LC_NUMERIC_function) {                                     \
+        _restore_LC_NUMERIC_function(aTHX);                                 \
     }
 
 /* The next two macros set unconditionally.  These should be rarely used, and
@@ -5909,66 +5996,87 @@ typedef struct am_table_short AMTS;
        STMT_START { if (_NOT_IN_NUMERIC_STANDARD) set_numeric_standard();  \
                                                                  } STMT_END
 
-#define SET_NUMERIC_LOCAL()                                                 \
-       STMT_START { if (_NOT_IN_NUMERIC_LOCAL)                             \
+#define SET_NUMERIC_UNDERLYING()                                            \
+       STMT_START { if (_NOT_IN_NUMERIC_UNDERLYING)                        \
                                             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 = _NOT_IN_NUMERIC_STANDARD; \
+#define STORE_LC_NUMERIC_UNDERLYING_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 = _NOT_IN_NUMERIC_LOCAL      \
-                            && IN_LC(LC_NUMERIC);       \
+#define STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING()                          \
+       bool _was_standard = _NOT_IN_NUMERIC_UNDERLYING                     \
+                            && 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 = _NOT_IN_NUMERIC_LOCAL;     \
-       if (_was_standard) set_numeric_local();
+#define STORE_LC_NUMERIC_FORCE_TO_UNDERLYING()                              \
+    if (_NOT_IN_NUMERIC_UNDERLYING) {                                       \
+        set_numeric_local();                                                \
+        _restore_LC_NUMERIC_function = &Perl_set_numeric_standard;          \
+    }
 
 /* Lock to the C locale until unlock is called */
-#define LOCK_NUMERIC_STANDARD()                         \
-        (__ASSERT_(PL_numeric_standard)                 \
+#define LOCK_LC_NUMERIC_STANDARD()                          \
+        (__ASSERT_(PL_numeric_standard)                     \
         PL_numeric_standard = 2)
 
-#define UNLOCK_NUMERIC_STANDARD()                       \
-        (__ASSERT_(PL_numeric_standard == 2)            \
+#define UNLOCK_LC_NUMERIC_STANDARD()                        \
+        (__ASSERT_(PL_numeric_standard == 2)                \
         PL_numeric_standard = 1)
 
-#define RESTORE_NUMERIC_LOCAL() \
+#define RESTORE_LC_NUMERIC_UNDERLYING()                     \
        if (_was_local) set_numeric_local();
 
-#define RESTORE_NUMERIC_STANDARD() \
-       if (_was_standard) SET_NUMERIC_STANDARD();
-
-#define Atof                           my_atof
+#define RESTORE_LC_NUMERIC_STANDARD()                       \
+    if (_restore_LC_NUMERIC_function) {                     \
+        _restore_LC_NUMERIC_function(aTHX);                 \
+    }
 
 #else /* !USE_LOCALE_NUMERIC */
 
-#define SET_NUMERIC_STANDARD()         /**/
-#define SET_NUMERIC_LOCAL()            /**/
+#define SET_LC_NUMERIC_STANDARD()
+#define SET_LC_NUMERIC_UNDERLYING()
 #define IS_NUMERIC_RADIX(a, b)         (0)
-#define STORE_NUMERIC_LOCAL_SET_STANDARD()     /**/
-#define STORE_NUMERIC_STANDARD_SET_LOCAL()     /**/
-#define STORE_NUMERIC_STANDARD_FORCE_LOCAL()
-#define RESTORE_NUMERIC_LOCAL()                /**/
-#define RESTORE_NUMERIC_STANDARD()     /**/
-#define DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED
+#define STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD()
+#define STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING()
+#define STORE_LC_NUMERIC_FORCE_TO_UNDERLYING()
+#define RESTORE_LC_NUMERIC_UNDERLYING()
+#define RESTORE_LC_NUMERIC_STANDARD()
+#define DECLARATION_FOR_LC_NUMERIC_MANIPULATION
 #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 LOCK_LC_NUMERIC_STANDARD()
+#define UNLOCK_LC_NUMERIC_STANDARD()
+
+#endif /* !USE_LOCALE_NUMERIC */
 
 #define Atof                           my_atof
 
-#endif /* !USE_LOCALE_NUMERIC */
+/* Back-compat names */
+#define DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED              \
+                        DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+#define DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED()                    \
+                DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED;     \
+                STORE_LC_NUMERIC_SET_TO_NEEDED();
+#define LOCK_NUMERIC_STANDARD() LOCK_LC_NUMERIC_STANDARD()
+#define RESTORE_NUMERIC_LOCAL() RESTORE_LC_NUMERIC_UNDERLYING()
+#define RESTORE_NUMERIC_STANDARD() RESTORE_LC_NUMERIC_STANDARD()
+#define SET_NUMERIC_LOCAL() SET_NUMERIC_UNDERLYING()
+#define STORE_NUMERIC_LOCAL_SET_STANDARD()                          \
+                    STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD()
+#define STORE_NUMERIC_STANDARD_SET_LOCAL()                          \
+                    STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING()
+#define STORE_NUMERIC_STANDARD_FORCE_LOCAL()                        \
+                        STORE_LC_NUMERIC_FORCE_TO_UNDERLYING()
+#define UNLOCK_NUMERIC_STANDARD() UNLOCK_LC_NUMERIC_STANDARD()
+
+
 
 #ifdef USE_QUADMATH
 #  define Perl_strtod(s, e) strtoflt128(s, e)
@@ -6499,15 +6607,6 @@ extern void moncontrol(int);
 #  endif
 #endif
 
-/* The implicit bit platforms include the implicit bit
- * in the NV_MANT_DIG.  The bit isn't really there, however,
- * so the real count of mantissa bits is one less. */
-#ifdef NV_IMPLICIT_BIT
-#  define NV_MANT_REAL_DIG (NV_MANT_DIG - 1)
-#else
-#  define NV_MANT_REAL_DIG (NV_MANT_DIG)
-#endif
-
 /*
 
    (KEEP THIS LAST IN perl.h!)
index d5851d5..d10ed3c 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.9"         /**/
-#define PRIVLIB_EXP "/sys/lib/perl/5.21.9"             /**/
+#define PRIVLIB "/sys/lib/perl/5.21.10"                /**/
+#define PRIVLIB_EXP "/sys/lib/perl/5.21.10"            /**/
 
 /* 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.9/site_perl"               /**/
-#define SITELIB_EXP "/sys/lib/perl/5.21.9/site_perl"           /**/
-#define SITELIB_STEM "/sys/lib/perl/5.21.9/site_perl"          /**/
+#define SITELIB "/sys/lib/perl/5.21.10/site_perl"              /**/
+#define SITELIB_EXP "/sys/lib/perl/5.21.10/site_perl"          /**/
+#define SITELIB_STEM "/sys/lib/perl/5.21.10/site_perl"         /**/
 
 /* Size_t_size:
  *     This symbol holds the size of a Size_t in bytes.
index 7387c47..c214461 100644 (file)
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/uname -n'
 api_revision='5'
-api_subversion='9'
+api_subversion='10'
 api_version='21'
-api_versionstring='5.21.9'
+api_versionstring='5.21.10'
 ar='ar'
-archlib='/sys/lib/perl5/5.21.9/386'
-archlibexp='/sys/lib/perl5/5.21.9/386'
+archlib='/sys/lib/perl5/5.21.10/386'
+archlibexp='/sys/lib/perl5/5.21.10/386'
 archname64=''
 archname='386'
 archobjs=''
@@ -787,17 +787,17 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='/sys/lib/perl/5.21.9/386'
+installarchlib='/sys/lib/perl/5.21.10/386'
 installbin='/usr/bin'
 installman1dir='/sys/man/1pub'
 installman3dir='/sys/man/2pub'
 installprefix='/usr'
 installprefixexp='/usr'
-installprivlib='/sys/lib/perl/5.21.9'
+installprivlib='/sys/lib/perl/5.21.10'
 installscript='/usr/bin'
-installsitearch='/sys/lib/perl/5.21.9/site_perl/386'
+installsitearch='/sys/lib/perl/5.21.10/site_perl/386'
 installsitebin='/usr/bin'
-installsitelib='/sys/lib/perl/5.21.9/site_perl'
+installsitelib='/sys/lib/perl/5.21.10/site_perl'
 installstyle='lib/perl5'
 installusrbinperl='undef'
 installvendorarch=''
@@ -918,8 +918,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/sys/lib/perl/5.21.9'
-privlibexp='/sys/lib/perl/5.21.9'
+privlib='/sys/lib/perl/5.21.10'
+privlibexp='/sys/lib/perl/5.21.10'
 procselfexe=''
 prototype='define'
 ptrsize='4'
@@ -984,13 +984,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.9/site_perl/386'
+sitearch='/sys/lib/perl/5.21.10/site_perl/386'
 sitearchexp='/sys/lib/perl/site_perl/386'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
-sitelib='/sys/lib/perl/5.21.9/site_perl'
-sitelib_stem='/sys/lib/perl/5.21.9/site_perl'
-sitelibexp='/sys/lib/perl/5.21.9/site_perl'
+sitelib='/sys/lib/perl/5.21.10/site_perl'
+sitelib_stem='/sys/lib/perl/5.21.10/site_perl'
+sitelibexp='/sys/lib/perl/5.21.10/site_perl'
 siteprefix='/usr'
 siteprefixexp='/usr'
 sizesize='4'
@@ -1023,7 +1023,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/sys/include/ape/string.h'
 submit=''
-subversion='9'
+subversion='10'
 sysman='/sys/man/1pub'
 tail=''
 tar=''
@@ -1105,8 +1105,8 @@ vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.21.9'
-version_patchlevel_string='version 21 subversion 9'
+version='5.21.10'
+version_patchlevel_string='version 21 subversion 10'
 versiononly='undef'
 vi=''
 xlibpth=''
@@ -1120,9 +1120,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=9
+PERL_SUBVERSION=10
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=9
+PERL_API_SUBVERSION=10
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
index 8747095..39f541a 100644 (file)
@@ -53,7 +53,7 @@
 /roffitall
 
 # generated
-/perl5219delta.pod
+/perl52110delta.pod
 /perlapi.pod
 /perlintern.pod
 *.html
index b6908d2..7d19bb1 100644 (file)
@@ -180,6 +180,7 @@ aux c2ph h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp
 
     perlhist           Perl history records
     perldelta          Perl changes since previous version
+    perl5219delta      Perl changes in version 5.21.9
     perl5218delta      Perl changes in version 5.21.8
     perl5217delta      Perl changes in version 5.21.7
     perl5216delta      Perl changes in version 5.21.6
diff --git a/pod/perl5219delta.pod b/pod/perl5219delta.pod
new file mode 100644 (file)
index 0000000..23156a1
--- /dev/null
@@ -0,0 +1,756 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5219delta - what is new for perl v5.21.9
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.21.8 release and the 5.21.9
+release.
+
+If you are upgrading from an earlier release such as 5.21.7, first read
+L<perl5218delta>, which describes differences between 5.21.7 and 5.21.8.
+
+=head1 Notice
+
+With this release we are now in the user-visible changes portion of the code
+freeze as we prepare for the next stable release of Perl 5.
+
+=head1 Core Enhancements
+
+=head2 qr/\b{gcb}/ is now handled in regular expressions
+
+C<gcb> stands for Grapheme Cluster Boundary.  It is a Unicode property
+that finds the boundary between sequences of characters that look like a
+single character to a native speaker of a language.  Perl has long had
+the ability to deal with these through the C<\X> regular escape
+sequence.  Now, there is an alternative way of handling these.  See
+L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
+
+=head2 qr/\b{wb}/ is now handled in regular expressions
+
+C<wb> stands for Word Boundary.  It is a Unicode property
+that finds the boundary between words.  This is similar to the plain
+C<\b> (without braces) but is more suitable for natural language
+processing.  It knows, for example that apostrophes can occur in the
+middle of words.  See L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
+
+=head2 qr/\b{sb}/ is now handled in regular expressions
+
+C<sb> stands for Sentence Boundary.  It is a Unicode property
+to aid in parsing natural language sentences.
+See L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
+
+=head2 New bitwise operators
+
+A new experimental facility has been added that makes the four standard
+bitwise operators (C<& | ^ ~>) treat their operands consistently as
+numbers, and introduces four new dotted operators (C<&. |. ^. ~.>) that
+treat their operands consistently as strings.  The same applies to the
+assignment variants (C<&= |= ^= &.= |.= ^.=>).
+
+To use this, enable the "bitwise" feature and disable the
+"experimental::bitwise" warnings category.  See L<perlop/Bitwise String
+Operators> for details.  [rt.perl.org #123466]
+
+=head2 C<no re> covers more and is lexical
+
+Previously running C<no re> would only turn off a few things. Now it
+turns off all the enabled things. For example, previously, you
+couldn't turn off debugging, once enabled, inside the same block.
+
+=head1 Incompatible Changes
+
+There are no changes intentionally incompatible with 5.21.8.
+If any exist, they are bugs, and we request that you submit a
+report.  See L</Reporting Bugs> below.
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<attributes> has been upgraded from version 0.25 to 0.26.
+
+=item *
+
+L<B> has been upgraded from version 1.55 to 1.56.
+
+=item *
+
+L<B::Debug> has been upgraded from version 1.22 to 1.23.
+
+=item *
+
+L<B::Deparse> has been upgraded from version 1.32 to 1.33.
+
+=over 4
+
+=item *
+
+Deparse now provides a defined state sub in inner subs.
+
+=item *
+
+Since version Perl 5.21.6, Deparse would croak on special constants, but
+this has now been fixed.
+
+=back
+
+=item *
+
+L<Benchmark> has been upgraded from version 1.19 to 1.20.
+
+=item *
+
+L<bigint>, L<bignum>, L<bigrat> have been upgraded to version 0.39.
+
+Document in CAVEATS that using strings as numbers won't always invoke
+the big number overloading, and how to invoke it.  [rt.perl.org #123064]
+
+=item *
+
+L<bignum> has been upgraded from version 0.38 to 0.39.
+
+=item *
+
+L<Carp> has been upgraded from version 1.34 to 1.35.
+
+=over 4
+
+=item *
+
+Carp now handles non-ASCII platforms better.
+
+=item *
+
+Off-by-one error fix for Perl E<lt> 5.14.
+
+=back
+
+=item *
+
+L<Config::Perl::V> has been upgraded from version 0.22 to 0.23.
+
+=item *
+
+L<constant> has been upgraded from version 1.32 to 1.33.
+
+=item *
+
+L<CPAN::Meta::Requirements> has been upgraded from version 2.131 to 2.132
+
+=item *
+
+L<Data::Dumper> has been upgraded from version 2.156 to 2.157.
+
+=item *
+
+L<Devel::Peek> has been upgraded from version 1.21 to 1.22.
+
+=item *
+
+L<DynaLoader> has been upgraded from version 1.30 to 1.31.
+
+=item *
+
+L<Encode> has been upgraded from version 2.67 to 2.70.
+
+Building in C++ mode on Windows now works.
+
+=item *
+
+L<encoding> has been upgraded from version 2.12 to 2.13.
+
+=item *
+
+L<Errno> has been upgraded from version 1.22 to 1.23.
+
+Add C<-P> to the preprocessor command-line on GCC 5.  GCC added extra
+line directives, breaking parsing of error code definitions.  [rt.perl.org
+#123784]
+
+=item *
+
+L<ExtUtils::Miniperl> has been upgraded from version 1.03 to 1.04.
+
+=item *
+
+L<feature> has been upgraded from version 1.39 to 1.40.
+
+=item *
+
+L<HTTP::Tiny> has been upgraded from version 0.053 to 0.054.
+
+=item *
+
+L<Opcode> has been upgraded from version 1.31 to 1.32.
+
+=item *
+
+L<overload> has been upgraded from version 1.24 to 1.25.
+
+=item *
+
+L<Perl::OSType> has been upgraded from version 1.007 to 1.008.
+
+=item *
+
+L<perlfaq> has been upgraded from version 5.0150046 to 5.021009.
+
+=item *
+
+L<PerlIO::scalar> has been upgraded from version 0.21 to 0.22.
+
+Attempting to write at file positions impossible for the platform now
+fail early rather than wrapping at 4GB.
+
+=item *
+
+L<Pod::Parser> has been upgraded from version 1.62 to 1.63.
+
+=item *
+
+L<Pod::Perldoc> has been upgraded from version 3.24 to 3.25.
+
+=item *
+
+L<POSIX> has been upgraded from version 1.49 to 1.51.
+
+=item *
+
+L<re> has been upgraded from version 0.30 to 0.31.
+
+=item *
+
+L<Socket> has been upgraded from version 2.016 to 2.018.
+
+=item *
+
+L<Storable> has been upgraded from version 2.52 to 2.53.
+
+=item *
+
+L<Test::Simple> has been upgraded from version 1.301001_097 to 1.301001_098.
+
+=item *
+
+L<threads::shared> has been upgraded from version 1.47 to 1.48.
+
+=item *
+
+L<Unicode::Collate> has been upgraded from version 1.10 to 1.11.
+
+=item *
+
+L<Unicode::UCD> has been upgraded from version 0.59 to 0.61.
+
+=over 4
+
+=item *
+
+A new function L<property_values()|Unicode::UCD/prop_values()>
+has been added to return a given property's possible values.
+
+=item *
+
+A new function L<charprop()|Unicode::UCD/charprop()>
+has been added to return the value of a given property for a given code
+point.
+
+=item *
+
+A new function L<charprops_all()|Unicode::UCD/charprops_all()>
+has been added to return the values of all Unicode properties for a
+given code point.
+
+=item *
+
+A bug has been fixed so that L<propaliases()|Unicode::UCD/prop_aliases()>
+returns the correct short and long names for the Perl extensions where
+it was incorrect.
+
+=item *
+
+A bug has been fixed so that
+L<prop_value_aliases()|Unicode::UCD/prop_value_aliases()>
+returns C<undef> instead of a wrong result for properties that are Perl
+extensions.
+
+=item *
+
+This module now works on EBCDIC platforms.
+
+=back
+
+=item *
+
+L<VMS::Stdio> has been upgraded from version 2.4 to 2.41.
+
+=item *
+
+L<warnings> has been upgraded from version 1.30 to 1.31.
+
+=item *
+
+L<Win32> has been upgraded from version 0.49 to 0.51.
+
+GetOSName() now supports Windows 8.1, and building in C++ mode now works.
+
+=item *
+
+L<Win32API::File> has been upgraded from version 0.1201 to 0.1202
+
+Building in C++ mode now works.
+
+=back
+
+=head1 Documentation
+
+=head2 New Documentation
+
+=head3 L<perlrebackslash>
+
+=over 4
+
+=item *
+
+Added documentation of C<\b{sb}>, C<\b{wb}>, C<\b{gcb}>, and C<\b{g}>.
+
+=back
+
+=head3 L<perlrequick>
+
+=over 4
+
+=item *
+
+Added example for C<\b{wb}>.
+
+=back
+
+=head3 L<perlretut>
+
+=over 4
+
+=item *
+
+Added example for C<\b{wb}>.
+
+=back
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perlunicode>
+
+=over 4
+
+=item *
+
+Update B<Default Word Boundaries> under
+L<perlunicode/"Unicode Regular Expression Support Level">'s
+B<Extended Unicode Support>.
+
+=back
+
+=head3 L<perlunicook>
+
+=over 4
+
+=item *
+
+Clarify that autodie E<gt>= 2.26 works with C<use open>.
+
+=item *
+
+Correct warning message for C<use autodie> and C<use open>.
+
+=back
+
+=head3 L<perlfaq>
+
+=over 4
+
+=item *
+
+L<perlfaq> has been synchronized with version 5.021009 from CPAN.
+
+=back
+
+=head3 L<perlop>
+
+=over 4
+
+=item *
+
+Correct the version number which removes C<m?PATTERN?>. It was Perl 5.22.0.
+
+=back
+
+=head3 L<perlvar>
+
+=over 4
+
+=item *
+
+Further clarify version number representations and usage.
+
+=back
+
+=head3 L<perlmodstyle>
+
+=over 4
+
+=item *
+
+Instead of pointing to the module list, we are now pointing to
+L<PrePAN|http://prepan.org/>.
+
+=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 Warnings
+
+=over 4
+
+=item *
+
+L<'%s' is an unknown bound type in regex|perldiag/"'%s' is an unknown bound type in regex; marked by <-- HERE in m/%s/">
+
+You used C<\b{...}> or C<\B{...}> and the C<...> is not known to
+Perl.  The current valid ones are given in
+L<perlrebackslash/\b{}, \b, \B{}, \B>.
+
+=item *
+
+L<Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale|perldiag/"Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale">
+
+You are matching a regular expression using locale rules,
+and a Unicode boundary is being matched, but the locale is not a Unicode
+one.  This doesn't make sense.  Perl will continue, assuming a Unicode
+(UTF-8) locale, but the results could well be wrong except if the locale
+happens to be ISO-8859-1 (Latin1) where this message is spurious and can
+be ignored.
+
+=item *
+
+L<< Using E<sol>u for '%s' instead of E<sol>%s in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Using E<sol>u for '%s' instead of E<sol>%s in regex; marked by <-- HERE in mE<sol>%sE<sol>" >>
+
+You used a Unicode boundary (C<\b{...}> or C<\B{...}>) in a
+portion of a regular expression where the character set modifiers C</a>
+or C</aa> are in effect.  These two modifiers indicate an ASCII
+interpretation, and this doesn't make sense for a Unicode definition.
+The generated regular expression will compile so that the boundary uses
+all of Unicode.  No other portion of the regular expression is affected.
+
+=item *
+
+L<The bitwise feature is experimental|perldiag/"The bitwise feature is experimental">
+
+This warning is emitted if you use bitwise
+operators (C<& | ^ ~ &. |. ^. ~.>) with the "bitwise" feature enabled.
+Simply suppress the warning if you want to use the feature, but know
+that in doing so you are taking the risk of using an experimental
+feature which may change or be removed in a future Perl version:
+
+    no warnings "experimental::bitwise";
+    use feature "bitwise";
+    $x |.= $y;
+
+=back
+
+=head2 Changes to Existing Diagnostics
+
+=over 4
+
+=item *
+
+B<Unusual use of %s in void context> has been removed. It might
+come back in a future release.
+
+=item *
+
+L<Argument "%s" isn't numeric%s|perldiag/"Argument "%s" isn't numeric%s">
+now adds the following note:
+
+    Note that for the C<Inf> and C<NaN> (infinity and not-a-number) the
+    definition of "numeric" is somewhat unusual: the strings themselves
+    (like "Inf") are considered numeric, and anything following them is
+    considered non-numeric.
+
+=item *
+
+B<Possible precedence problem on bitwise %c operator> reworded as
+L<Possible precedence problem on bitwise %s operator|perldiag/"Possible precedence problem on bitwise %s operator">.
+
+=back
+
+=head1 Utility Changes
+
+=head2 L<h2ph>
+
+=over 4
+
+=item *
+
+F<h2ph> now handles hexadecimal constants in the compiler's predefined
+macro definitions, as visible in C<$Config{cppsymbols}>.  [rt.perl.org
+#123784]
+
+=back
+
+=head2 L<encguess>
+
+=over 4
+
+=item *
+
+No longer depends on non-core module anymore.
+
+=back
+
+=head1 Configuration and Compilation
+
+=over 4
+
+=item *
+
+F<Configure> now checks for F<lrintl>, F<lroundl>, F<llrintl>, and F<llroundl>.
+
+=back
+
+=head1 Testing
+
+=over 4
+
+=item *
+
+Added F<t/op/dump.t> for testing C<dump>.
+
+=back
+
+=head1 Deprecations
+
+=head2 Support for new warnings categories outside of "all"
+
+The new option for warnings outside the B<all> category in the L<warnings>
+pragma has been removed for now.
+
+For more context, you can refer to the following
+L<discussion thread|http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg225066.html>.
+
+=head1 Platform Support
+
+=head2 Platform-Specific Notes
+
+=head3 Win32
+
+=over 4
+
+=item *
+
+Perl can now be built in C++ mode on Windows by setting the makefile macro
+C<USE_CPLUSPLUS> to the value "define".
+
+=item *
+
+List form pipe open no longer falls back to the shell.
+
+=item *
+
+In release 5.21.8 compiling on VC with dmake was broken. Fixed.
+
+=item *
+
+New C<DebugSymbols> and C<DebugFull> configuration options added to
+Windows makefiles.
+
+=item *
+
+L<B> now compiles again on Windows.
+
+=back
+
+=head3 Solaris
+
+Look for the Sun Studio compiler in both F</opt/solstudio*> and
+F</opt/solarisstudio*>.
+
+=head3 VMS
+
+=over 4
+
+=item *
+
+When spawning a subprocess without waiting, the return value is now
+the correct PID.
+
+=item *
+
+Fix a prototype so linking doesn't fail under the VMS C++ compiler.
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+Patterns starting with C</.*/> are now fast again. [rt.perl.org #123743]
+
+=item *
+
+The original visible value of C<$/> is now preserved when it is set to
+an invalid value.  Previously if you set C<$/> to a reference to an
+array, for example, perl would produce a runtime error and not set
+C<PL_rs>, but perl code that checked C<$/> would see the array
+reference.  [rt.perl.org #123218]
+
+=item *
+
+In a regular expression pattern, a POSIX class, like C<[:ascii:]>, must
+be inside a bracketed character class, like C</qr[[:ascii:]]>.  A
+warning is issued when something looking like a POSIX class is not
+inside a bracketed class.  That warning wasn't getting generated when
+the POSIX class was negated: C<[:^ascii:]>.  This is now fixed.
+
+=item *
+
+Fix a couple of other size calculation overflows.  [rt.perl.org #123554]
+
+=item *
+
+A bug introduced in 5.21.6, C<dump LABEL> acted the same as C<goto
+LABEL>.  This has been fixed.  [rt.perl.org #123836]
+
+=item *
+
+Perl 5.14.0 introduced a bug whereby C<eval { LABEL: }> would crash.  This
+has been fixed.  [rt.perl.org #123652]
+
+=item *
+
+Various crashes due to the parser getting confused by syntax errors have
+been fixed.  [rt.perl.org #123617] [rt.perl.org #123737]
+[rt.perl.org #123753] [rt.perl.org #123677]
+
+=item *
+
+Code like C</$a[/> used to read the next line of input and treat it as
+though it came immediately after the opening bracket.  Some invalid code
+consequently would parse and run, but some code caused crashes, so this is
+now disallowed.  [rt.perl.org #123712]
+
+=item *
+
+Fix argument underflow for C<pack>.  [rt.perl.org #123874]
+
+=item *
+
+Fix handling of non-strict C<\x{}>. Now C<\x{}> is equivalent to C<\x{0}>
+instead of faulting.
+
+=item *
+
+C<stat -t> is now no longer treated as stackable, just like C<-t stat>.
+[rt.perl.org #123816]
+
+=item *
+
+The following no longer causes a SEGV: C<qr{x+(y(?0))*}>.
+
+=item *
+
+Fixed infinite loop in parsing backrefs in regexp patterns.
+
+=item *
+
+Several minor bug fixes in behavior of Inf and NaN, including
+warnings when stringifying Inf-like or NaN-like strings. For example,
+"NaNcy" doesn't numify to NaN anymore.
+
+=item *
+
+Only stringy classnames are now shared. This fixes some failures in L<autobox>.  [rt.cpan.org #100819]
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.21.9 represents approximately 4 weeks of development since Perl 5.21.8
+and contains approximately 170,000 lines of changes across 520 files from 32
+authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 160,000 lines of changes to 270 .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.9:
+
+Chad Granum, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari
+Mannsåker, Daniel Dragan, David Golden, David Mitchell, Father Chrysostomos,
+H.Merijn Brand, Hugo van der Sanden, James E Keenan, James Raspass, Jarkko
+Hietaniemi, Karen Etheridge, Karl Williamson, Kent Fredric, Lajos Veres, Leon
+Timmermans, Lukas Mai, Mathieu Arnold, Matthew Horsfall, Peter Martini, Petr
+Písař, Randy Stauner, Ricardo Signes, Sawyer X, Shlomi Fish, Sisyphus, Steve
+Hay, Tony Cook, Yves Orton, Ævar Arnfjörð Bjarmason.
+
+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.
+
+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.
+
+=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 c5fb455..b366c7f 100644 (file)
@@ -203,15 +203,26 @@ C<toUPPER_uni>, as described in L<perlapi/Character case changing>.)
  Instead Of:                 Use:
 
  atof(s)                     Atof(s)
- atoi(s)                     grok_atou(s, &e)
- atol(s)                     grok_atou(s, &e)
+ atoi(s)                     grok_atoUV(s, &uv, &e)
+ atol(s)                     grok_atoUV(s, &uv, &e)
  strtod(s, &p)               Nothing.  Just don't use it.
- strtol(s, &p, n)            grok_atou(s, &e)
- strtoul(s, &p, n)           grok_atou(s, &e)
+ strtol(s, &p, n)            grok_atoUV(s, &uv, &e)
+ strtoul(s, &p, n)           grok_atoUV(s, &uv, &e)
+
+Typical use is to do range checks on C<uv> before casting:
+
+  int i; UV uv; char* end_ptr;
+  if (grok_atoUV(input, &uv, &end_ptr)
+      && uv <= INT_MAX)
+    i = (int)uv;
+    ... /* continue parsing from end_ptr */
+  } else {
+    ... /* parse error: not a decimal integer in range 0 .. MAX_IV */
+  }
 
 Notice also the C<grok_bin>, C<grok_hex>, and C<grok_oct> functions in
 F<numeric.c> for converting strings representing numbers in the respective
-bases into C<NV>s.  Note that grok_atou() doesn't handle negative inputs,
+bases into C<NV>s.  Note that grok_atoUV() doesn't handle negative inputs,
 or leading whitespace (being purposefully strict).
 
 Note that strtol() and strtoul() may be disguised as Strtol(), Strtoul(),
index 5316fe2..3af3f0b 100644 (file)
@@ -502,6 +502,37 @@ anything more complicated in the subscript will be interpreted as an
 expression.  This means for example that C<$version{2.0}++> is
 equivalent to C<$version{2}++>, not to C<$version{'2.0'}++>.
 
+=head3 Special floating point: infinity (Inf) and not-a-number (NaN)
+
+Floating point values include the special values C<Inf> and C<NaN>,
+for infinity and not-a-number.  The infinity can be also negative.
+
+The infinity is the result of certain math operations that overflow
+the floating point range, like 9**9**9.  The not-a-number is the
+result when the result is undefined or unrepresentable.  Though note
+that you cannot get C<NaN> from some common "undefined" or
+"out-of-range" operations like dividing by zero, or square root of
+a negative number, since Perl generates fatal errors for those.
+
+The infinity and not-a-number have their own special arithmetic rules.
+The general rule is that they are "contagious": C<Inf> plus one is
+C<Inf>, and C<NaN> plus one is C<NaN>.  Where things get interesting
+is when you combine infinities and not-a-numbers: C<Inf> minus C<Inf>
+and C<Inf> divided by C<INf> are C<NaN> (while C<Inf> plus C<Inf> is
+C<Inf> and C<Inf> times C<Inf> is C<Inf>).  C<NaN> is also curious
+in that it does not equal any number, I<including> itself:
+C<NaN> != C<NaN>.
+
+Perl doesn't understand C<Inf> and C<NaN> as numeric literals, but
+you can have them as strings, and Perl will convert them as needed:
+"Inf" + 1.  (You can, however, import them from the POSIX extension;
+C<use POSIX qw(Inf NaN);> and then use them as literals.)
+
+Note that on input (string to number) Perl accepts C<Inf> and C<NaN>
+in many forms.   Case is ignored, and the Win32-specific forms like
+C<1.#INF> are understood, but on output the values are normalized to
+C<Inf> and C<NaN>.
+
 =head3 Version Strings
 X<version string> X<vstring> X<v-string>
 
index 591e69b..2b5561d 100644 (file)
@@ -572,24 +572,22 @@ will be lost.
  GPOS            no         Matches where last m//g left off.
 
  # Word Boundary Opcodes:
- BOUND           no         Match "" at any word boundary using native
-                            charset rules for non-utf8, otherwise
-                            Unicode rules
- BOUNDL          no         Match "" at any boundary of a given type
-                            using locale rules
+ BOUND           no         Like BOUNDA for non-utf8, otherwise match ""
+                            between any Unicode \w\W or \W\w
+ BOUNDL          no         Like BOUND/BOUNDU, but \w and \W are defined
+                            by current locale
  BOUNDU          no         Match "" at any boundary of a given type
                             using Unicode rules
- BOUNDA          no         Match "" at any boundary of a given type
-                            using ASCII rules
- NBOUND          no         Match "" at any word non-boundary using
-                            native charset rules for non-utf8, otherwise
-                            Unicode rules
- NBOUNDL         no         Match "" at any boundary of a given type
-                            using locale rules
- NBOUNDU         no         Match "" at any boundary of a given type
+ BOUNDA          no         Match "" at any boundary between \w\W or
+                            \W\w, where \w is [_a-zA-Z0-9]
+ NBOUND          no         Like NBOUNDA for non-utf8, otherwise match
+                            "" between any Unicode \w\w or \W\W
+ NBOUNDL         no         Like NBOUND/NBOUNDU, but \w and \W are
+                            defined by current locale
+ NBOUNDU         no         Match "" at any non-boundary of a given type
                             using using Unicode rules
- NBOUNDA         no         Match "" at any boundary of a given type
-                            using using ASCII rules
+ NBOUNDA         no         Match "" betweeen any \w\w or \W\W, where \w
+                            is [_a-zA-Z0-9]
 
  # [Special] alternatives:
  REG_ANY         no         Match any one character (except newline).
index 3d8c330..75d366a 100644 (file)
 
 =head1 NAME
 
-perldelta - what is new for perl v5.21.9
+perldelta - what is new for perl v5.21.10
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.21.8 release and the 5.21.9
+This document describes differences between the 5.21.9 release and the 5.21.10
 release.
 
-If you are upgrading from an earlier release such as 5.21.7, first read
-L<perl5218delta>, which describes differences between 5.21.7 and 5.21.8.
-
-=head1 Notice
-
-With this release we are now in the user-visible changes portion of the code
-freeze as we prepare for the next stable release of Perl 5.
-
-=head1 Core Enhancements
-
-=head2 qr/\b{gcb}/ is now handled in regular expressions
-
-C<gcb> stands for Grapheme Cluster Boundary.  It is a Unicode property
-that finds the boundary between sequences of characters that look like a
-single character to a native speaker of a language.  Perl has long had
-the ability to deal with these through the C<\X> regular escape
-sequence.  Now, there is an alternative way of handling these.  See
-L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
-
-=head2 qr/\b{wb}/ is now handled in regular expressions
-
-C<wb> stands for Word Boundary.  It is a Unicode property
-that finds the boundary between words.  This is similar to the plain
-C<\b> (without braces) but is more suitable for natural language
-processing.  It knows, for example that apostrophes can occur in the
-middle of words.  See L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
-
-=head2 qr/\b{sb}/ is now handled in regular expressions
-
-C<sb> stands for Sentence Boundary.  It is a Unicode property
-to aid in parsing natural language sentences.
-See L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
-
-=head2 New bitwise operators
-
-A new experimental facility has been added that makes the four standard
-bitwise operators (C<& | ^ ~>) treat their operands consistently as
-numbers, and introduces four new dotted operators (C<&. |. ^. ~.>) that
-treat their operands consistently as strings.  The same applies to the
-assignment variants (C<&= |= ^= &.= |.= ^.=>).
-
-To use this, enable the "bitwise" feature and disable the
-"experimental::bitwise" warnings category.  See L<perlop/Bitwise String
-Operators> for details.  [rt.perl.org #123466]
-
-=head2 C<no re> covers more and is lexical
-
-Previously running C<no re> would only turn off a few things. Now it
-turns off all the enabled things. For example, previously, you
-couldn't turn off debugging, once enabled, inside the same block.
+If you are upgrading from an earlier release such as 5.21.8, first read
+L<perl5219delta>, which describes differences between 5.21.8 and 5.21.9.
 
 =head1 Incompatible Changes
 
-There are no changes intentionally incompatible with 5.21.8.
-If any exist, they are bugs, and we request that you submit a
-report.  See L</Reporting Bugs> below.
-
-=head1 Modules and Pragmata
-
-=head2 Updated Modules and Pragmata
-
-=over 4
-
-=item *
-
-L<attributes> has been upgraded from version 0.25 to 0.26.
-
-=item *
-
-L<B> has been upgraded from version 1.55 to 1.56.
-
-=item *
-
-L<B::Debug> has been upgraded from version 1.22 to 1.23.
+=head2 C<(?[...])> operators now follow standard Perl precedence
 
-=item *
+This experimental feature allows set operations in regular expression patterns.
+Prior to this, the intersection operator had the same precedence as the other
+binary operators.  Now it has higher precedence.  This could lead to different
+outcomes than existing code expects (though the documentation has always noted
+that this change might happen, recommending fully parenthesizing the
+expressions).  See L<perlrecharclass/Extended Bracketed Character Classes>.
 
-L<B::Deparse> has been upgraded from version 1.32 to 1.33.
+=head1 Performance Enhancements
 
 =over 4
 
 =item *
 
-Deparse now provides a defined state sub in inner subs.
-
-=item *
-
-Since version Perl 5.21.6, Deparse would croak on special constants, but
-this has now been fixed.
+The functions C<utf8::native_to_unicode()> and C<utf8::unicode_to_native()>
+(see L<utf8>) are now optimized out on ASCII platforms.  There is now not even
+a minimal performance hit in writing code portable between ASCII and EBCDIC
+platforms.
 
 =back
 
-=item *
-
-L<Benchmark> has been upgraded from version 1.19 to 1.20.
-
-=item *
-
-L<bigint>, L<bignum>, L<bigrat> have been upgraded to version 0.39.
-
-Document in CAVEATS that using strings as numbers won't always invoke
-the big number overloading, and how to invoke it.  [rt.perl.org #123064]
-
-=item *
-
-L<bignum> has been upgraded from version 0.38 to 0.39.
-
-=item *
+=head1 Modules and Pragmata
 
-L<Carp> has been upgraded from version 1.34 to 1.35.
+=head2 Updated Modules and Pragmata
 
 =over 4
 
 =item *
 
-Carp now handles non-ASCII platforms better.
-
-=item *
-
-Off-by-one error fix for Perl E<lt> 5.14.
-
-=back
+L<B> has been upgraded from version 1.56 to 1.57.
 
 =item *
 
-L<Config::Perl::V> has been upgraded from version 0.22 to 0.23.
+L<B::Deparse> has been upgraded from version 1.33 to 1.34.
 
-=item *
-
-L<constant> has been upgraded from version 1.32 to 1.33.
+Deparse C<$#_> as that instead of as C<$#{_}>.
+L<[perl #123947]|https://rt.perl.org/Ticket/Display.html?id=123947>
 
 =item *
 
-L<CPAN::Meta::Requirements> has been upgraded from version 2.131 to 2.132
+L<Carp> has been upgraded from version 1.35 to 1.36.
 
 =item *
 
-L<Data::Dumper> has been upgraded from version 2.156 to 2.157.
-
-=item *
+L<CPAN> has been upgraded from version 2.05 to 2.10.
 
-L<Devel::Peek> has been upgraded from version 1.21 to 1.22.
+=over 4
 
 =item *
 
-L<DynaLoader> has been upgraded from version 1.30 to 1.31.
+Add support for C<Cwd::getdcwd()> and introduce workaround for a misbehaviour
+seen on Strawberry Perl 5.20.1.
 
 =item *
 
-L<Encode> has been upgraded from version 2.67 to 2.70.
-
-Building in C++ mode on Windows now works.
+Fix C<chdir()> after building dependencies bug.
 
 =item *
 
-L<encoding> has been upgraded from version 2.12 to 2.13.
+Introduce experimental support for plugins/hooks.
 
 =item *
 
-L<Errno> has been upgraded from version 1.22 to 1.23.
-
-Add C<-P> to the preprocessor command-line on GCC 5.  GCC added extra
-line directives, breaking parsing of error code definitions.  [rt.perl.org
-#123784]
+Integrate the App::Cpan sources.
 
 =item *
 
-L<ExtUtils::Miniperl> has been upgraded from version 1.03 to 1.04.
+Do not check recursion on optional dependencies.
 
 =item *
 
-L<feature> has been upgraded from version 1.39 to 1.40.
-
-=item *
+Sanity check META.yml to contain a hash.
+L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271>
 
-L<HTTP::Tiny> has been upgraded from version 0.053 to 0.054.
+=back
 
 =item *
 
-L<Opcode> has been upgraded from version 1.31 to 1.32.
+L<CPAN::Meta> has been upgraded from version 2.143240 to 2.150001.
 
 =item *
 
-L<overload> has been upgraded from version 1.24 to 1.25.
+L<Data::Dumper> has been upgraded from version 2.157 to 2.158.
 
 =item *
 
-L<Perl::OSType> has been upgraded from version 1.007 to 1.008.
+L<DB> has been upgraded from version 1.07 to 1.08.
 
 =item *
 
-L<perlfaq> has been upgraded from version 5.0150046 to 5.021009.
+L<Devel::PPPort> has been upgraded from version 3.28 to 3.31.
 
 =item *
 
-L<PerlIO::scalar> has been upgraded from version 0.21 to 0.22.
-
-Attempting to write at file positions impossible for the platform now
-fail early rather than wrapping at 4GB.
+L<DynaLoader> has been upgraded from version 1.31 to 1.32.
 
 =item *
 
-L<Pod::Parser> has been upgraded from version 1.62 to 1.63.
+L<Encode> has been upgraded from version 2.70 to 2.72.
 
 =item *
 
-L<Pod::Perldoc> has been upgraded from version 3.24 to 3.25.
+L<encoding> has been upgraded from version 2.13 to 2.14.
 
 =item *
 
-L<POSIX> has been upgraded from version 1.49 to 1.51.
+L<Getopt::Long> has been upgraded from version 2.43 to 2.45.
 
 =item *
 
-L<re> has been upgraded from version 0.30 to 0.31.
+L<locale> has been upgraded from version 1.05 to 1.06.
 
 =item *
 
-L<Socket> has been upgraded from version 2.016 to 2.018.
+L<Locale::Codes> has been upgraded from version 3.33 to 3.34.
 
 =item *
 
-L<Storable> has been upgraded from version 2.52 to 2.53.
+L<Module::CoreList> has been upgraded from version 5.20150220 to 5.20150320.
 
 =item *
 
-L<Test::Simple> has been upgraded from version 1.301001_097 to 1.301001_098.
-
-=item *
+L<parent> has been upgraded from version 0.228 to 0.232.
 
-L<threads::shared> has been upgraded from version 1.47 to 1.48.
+No changes to installed files other than the version bump.
 
 =item *
 
-L<Unicode::Collate> has been upgraded from version 1.10 to 1.11.
+The PathTools modules have been upgraded from version 3.54 to 3.55.
 
 =item *
 
-L<Unicode::UCD> has been upgraded from version 0.59 to 0.61.
-
-=over 4
+L<Pod::Functions> has been upgraded from version 1.08 to 1.09.
 
 =item *
 
-A new function L<property_values()|Unicode::UCD/prop_values()>
-has been added to return a given property's possible values.
+L<POSIX> has been upgraded from version 1.51 to 1.52.
 
 =item *
 
-A new function L<charprop()|Unicode::UCD/charprop()>
-has been added to return the value of a given property for a given code
-point.
+L<re> has been upgraded from version 0.31 to 0.32.
 
 =item *
 
-A new function L<charprops_all()|Unicode::UCD/charprops_all()>
-has been added to return the values of all Unicode properties for a
-given code point.
+L<sigtrap> has been upgraded from version 1.07 to 1.08.
 
 =item *
 
-A bug has been fixed so that L<propaliases()|Unicode::UCD/prop_aliases()>
-returns the correct short and long names for the Perl extensions where
-it was incorrect.
+L<Term::Complete> has been upgraded from version 1.402 to 1.403.
 
 =item *
 
-A bug has been fixed so that
-L<prop_value_aliases()|Unicode::UCD/prop_value_aliases()>
-returns C<undef> instead of a wrong result for properties that are Perl
-extensions.
+L<Test::Simple> has been reverted from version 1.301001_098 to 1.001014.
 
 =item *
 
-This module now works on EBCDIC platforms.
+L<Text::Balanced> has been upgraded from version 2.02 to 2.03.
 
-=back
+No changes to installed files other than the version bump.
 
 =item *
 
-L<VMS::Stdio> has been upgraded from version 2.4 to 2.41.
+L<Text::ParseWords> has been upgraded from version 3.29 to 3.30.
 
 =item *
 
-L<warnings> has been upgraded from version 1.30 to 1.31.
+L<threads> has been upgraded from version 1.96_001 to 2.01.
 
 =item *
 
-L<Win32> has been upgraded from version 0.49 to 0.51.
-
-GetOSName() now supports Windows 8.1, and building in C++ mode now works.
+L<Unicode::Collate> has been upgraded from version 1.11 to 1.12.
 
 =item *
 
-L<Win32API::File> has been upgraded from version 0.1201 to 0.1202
-
-Building in C++ mode now works.
+L<utf8> has been upgraded from version 1.14 to 1.15.
 
 =back
 
 =head1 Documentation
 
-=head2 New Documentation
-
-=head3 L<perlrebackslash>
-
-=over 4
-
-=item *
-
-Added documentation of C<\b{sb}>, C<\b{wb}>, C<\b{gcb}>, and C<\b{g}>.
-
-=back
-
-=head3 L<perlrequick>
-
-=over 4
-
-=item *
-
-Added example for C<\b{wb}>.
-
-=back
-
-=head3 L<perlretut>
-
-=over 4
-
-=item *
-
-Added example for C<\b{wb}>.
-
-=back
-
 =head2 Changes to Existing Documentation
 
-=head3 L<perlunicode>
+=head3 L<perldata>
 
 =over 4
 
 =item *
 
-Update B<Default Word Boundaries> under
-L<perlunicode/"Unicode Regular Expression Support Level">'s
-B<Extended Unicode Support>.
+Documentation has been added regarding the special floating point values C<Inf>
+and C<NaN>.
 
 =back
 
-=head3 L<perlunicook>
+=head3 L<perlexperiment>
 
 =over 4
 
 =item *
 
-Clarify that autodie E<gt>= 2.26 works with C<use open>.
+Removed note about C<\s> matching C<VT> now that it is no longer experimental.
 
 =item *
 
-Correct warning message for C<use autodie> and C<use open>.
+Added note that C<use re 'strict'> has been introduced experimentally.
 
 =back
 
-=head3 L<perlfaq>
+=head3 L<perlpolicy>
 
 =over 4
 
 =item *
 
-L<perlfaq> has been synchronized with version 5.021009 from CPAN.
-
-=back
-
-=head3 L<perlop>
-
-=over 4
-
-=item *
-
-Correct the version number which removes C<m?PATTERN?>. It was Perl 5.22.0.
-
-=back
-
-=head3 L<perlvar>
-
-=over 4
-
-=item *
-
-Further clarify version number representations and usage.
-
-=back
-
-=head3 L<perlmodstyle>
-
-=over 4
-
-=item *
-
-Instead of pointing to the module list, we are now pointing to
-L<PrePAN|http://prepan.org/>.
+The documentation of what to expect to see in future maintenance releases has
+been updated.  Essentially the same types of changes will be included as before
+but with fewer changes that don't affect the installation or execution of perl.
 
 =back
 
@@ -420,301 +242,205 @@ diagnostic messages, see L<perldiag>.
 
 =head2 New Diagnostics
 
-=head3 New Warnings
+=head3 New Errors
 
 =over 4
 
 =item *
 
-L<'%s' is an unknown bound type in regex|perldiag/"'%s' is an unknown bound type in regex; marked by <-- HERE in m/%s/">
-
-You used C<\b{...}> or C<\B{...}> and the C<...> is not known to
-Perl.  The current valid ones are given in
-L<perlrebackslash/\b{}, \b, \B{}, \B>.
-
-=item *
-
-L<Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale|perldiag/"Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale">
-
-You are matching a regular expression using locale rules,
-and a Unicode boundary is being matched, but the locale is not a Unicode
-one.  This doesn't make sense.  Perl will continue, assuming a Unicode
-(UTF-8) locale, but the results could well be wrong except if the locale
-happens to be ISO-8859-1 (Latin1) where this message is spurious and can
-be ignored.
-
-=item *
-
-L<< Using E<sol>u for '%s' instead of E<sol>%s in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Using E<sol>u for '%s' instead of E<sol>%s in regex; marked by <-- HERE in mE<sol>%sE<sol>" >>
+L<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/">
 
-You used a Unicode boundary (C<\b{...}> or C<\B{...}>) in a
-portion of a regular expression where the character set modifiers C</a>
-or C</aa> are in effect.  These two modifiers indicate an ASCII
-interpretation, and this doesn't make sense for a Unicode definition.
-The generated regular expression will compile so that the boundary uses
-all of Unicode.  No other portion of the regular expression is affected.
-
-=item *
-
-L<The bitwise feature is experimental|perldiag/"The bitwise feature is experimental">
-
-This warning is emitted if you use bitwise
-operators (C<& | ^ ~ &. |. ^. ~.>) with the "bitwise" feature enabled.
-Simply suppress the warning if you want to use the feature, but know
-that in doing so you are taking the risk of using an experimental
-feature which may change or be removed in a future Perl version:
-
-    no warnings "experimental::bitwise";
-    use feature "bitwise";
-    $x |.= $y;
+(F) The pattern looks like a {min,max} quantifier, but the min or max could not
+be parsed as a valid number - either it has leading zeroes, or it represents
+too big a number to cope with.  The S<<-- HERE> shows where in the regular
+expression the problem was discovered.  See L<perlre>.
 
 =back
 
-=head2 Changes to Existing Diagnostics
+=head1 Testing
 
 =over 4
 
 =item *
 
-B<Unusual use of %s in void context> has been removed. It might
-come back in a future release.
-
-=item *
-
-L<Argument "%s" isn't numeric%s|perldiag/"Argument "%s" isn't numeric%s">
-now adds the following note:
-
-    Note that for the C<Inf> and C<NaN> (infinity and not-a-number) the
-    definition of "numeric" is somewhat unusual: the strings themselves
-    (like "Inf") are considered numeric, and anything following them is
-    considered non-numeric.
-
-=item *
-
-B<Possible precedence problem on bitwise %c operator> reworded as
-L<Possible precedence problem on bitwise %s operator|perldiag/"Possible precedence problem on bitwise %s operator">.
+Tests for performance issues have been added in the file F<t/perf/taint.t>.
 
 =back
 
-=head1 Utility Changes
+=head1 Platform Support
 
-=head2 L<h2ph>
+=head2 New Platforms
 
 =over 4
 
-=item *
+=item z/OS running EBCDIC Code Page 1047
 
-F<h2ph> now handles hexadecimal constants in the compiler's predefined
-macro definitions, as visible in C<$Config{cppsymbols}>.  [rt.perl.org
-#123784]
+Core perl now works on this EBCDIC platform.  Early perls also worked, but,
+even though support wasn't officially withdrawn, recent perls would not compile
+and run well.  Perl 5.20 would work, but had many bugs which have now been
+fixed.  Many CPAN modules that ship with Perl still fail tests, including
+Pod::Simple.  However the version of Pod::Simple currently on CPAN should work;
+it was fixed too late to include in Perl 5.22.  Work is under way to fix many
+of the still-broken CPAN modules, which likely will be installed on CPAN when
+completed, so that you may not have to wait until Perl 5.24 to get a working
+version.
 
 =back
 
-=head2 L<encguess>
+=head2 Platform-Specific Notes
 
 =over 4
 
-=item *
+=item HP-UX
 
-No longer depends on non-core module anymore.
+The archname now distinguishes use64bitint from use64bitall.
 
 =back
 
-=head1 Configuration and Compilation
+=head1 Internal Changes
 
 =over 4
 
 =item *
 
-F<Configure> now checks for F<lrintl>, F<lroundl>, F<llrintl>, and F<llroundl>.
-
-=back
-
-=head1 Testing
-
-=over 4
+Macros have been created to allow XS code to better manipulate the POSIX locale
+category C<LC_NUMERIC>.  See L<perlapi/Locale-related functions and macros>.
 
 =item *
 
-Added F<t/op/dump.t> for testing C<dump>.
+The previous C<atoi> et al replacement function, C<grok_atou>, has now been
+superseded by C<grok_atoUV>.  See L<perlclib> for details.
 
 =back
 
-=head1 Deprecations
-
-=head2 Support for new warnings categories outside of "all"
-
-The new option for warnings outside the B<all> category in the L<warnings>
-pragma has been removed for now.
-
-For more context, you can refer to the following
-L<discussion thread|http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg225066.html>.
-
-=head1 Platform Support
-
-=head2 Platform-Specific Notes
-
-=head3 Win32
+=head1 Selected Bug Fixes
 
 =over 4
 
 =item *
 
-Perl can now be built in C++ mode on Windows by setting the makefile macro
-C<USE_CPLUSPLUS> to the value "define".
+Repeated global pattern matches in scalar context on large tainted strings were
+exponentially slow depending on the current match position in the string.
+L<[perl #123202]|https://rt.perl.org/Ticket/Display.html?id=123202>
 
 =item *
 
-List form pipe open no longer falls back to the shell.
+Various crashes due to the parser getting confused by syntax errors have been
+fixed.
+L<[perl #123801]|https://rt.perl.org/Ticket/Display.html?id=123801>
+L<[perl #123802]|https://rt.perl.org/Ticket/Display.html?id=123802>
+L<[perl #123955]|https://rt.perl.org/Ticket/Display.html?id=123955>
+L<[perl #123995]|https://rt.perl.org/Ticket/Display.html?id=123995>
 
 =item *
 
-In release 5.21.8 compiling on VC with dmake was broken. Fixed.
+C<split> in the scope of lexical $_ has been fixed not to fail assertions.
+L<[perl #123763]|https://rt.perl.org/Ticket/Display.html?id=123763>
 
 =item *
 
-New C<DebugSymbols> and C<DebugFull> configuration options added to
-Windows makefiles.
+C<my $x : attr> syntax inside various list operators no longer fails
+assertions.
+L<[perl #123817]|https://rt.perl.org/Ticket/Display.html?id=123817>
 
 =item *
 
-L<B> now compiles again on Windows.
-
-=back
-
-=head3 Solaris
-
-Look for the Sun Studio compiler in both F</opt/solstudio*> and
-F</opt/solarisstudio*>.
-
-=head3 VMS
-
-=over 4
+An @ sign in quotes followed by a non-ASCII digit (which is not a valid
+identifier) would cause the parser to crash, instead of simply trying the @ as
+literal.  This has been fixed.
+L<[perl #123963]|https://rt.perl.org/Ticket/Display.html?id=123963>
 
 =item *
 
-When spawning a subprocess without waiting, the return value is now
-the correct PID.
+C<*bar::=*foo::=*glob_with_hash> has been crashing since Perl 5.14, but no
+longer does.
+L<[perl #123847]|https://rt.perl.org/Ticket/Display.html?id=123847>
 
 =item *
 
-Fix a prototype so linking doesn't fail under the VMS C++ compiler.
-
-=back
-
-=head1 Selected Bug Fixes
-
-=over 4
-
-=item *
-
-Patterns starting with C</.*/> are now fast again. [rt.perl.org #123743]
-
-=item *
-
-The original visible value of C<$/> is now preserved when it is set to
-an invalid value.  Previously if you set C<$/> to a reference to an
-array, for example, perl would produce a runtime error and not set
-C<PL_rs>, but perl code that checked C<$/> would see the array
-reference.  [rt.perl.org #123218]
-
-=item *
-
-In a regular expression pattern, a POSIX class, like C<[:ascii:]>, must
-be inside a bracketed character class, like C</qr[[:ascii:]]>.  A
-warning is issued when something looking like a POSIX class is not
-inside a bracketed class.  That warning wasn't getting generated when
-the POSIX class was negated: C<[:^ascii:]>.  This is now fixed.
+C<foreach> in scalar context was not pushing an item on to the stack, resulting
+in bugs.  (C<print 4, scalar do { foreach(@x){} } + 1> would print 5.)  It has
+been fixed to return C<undef>.
+L<[perl #124004]|https://rt.perl.org/Ticket/Display.html?id=124004>
 
 =item *
 
-Fix a couple of other size calculation overflows.  [rt.perl.org #123554]
+A memory leak introduced in Perl 5.21.6 has been fixed.
+L<[perl #123922]|https://rt.perl.org/Ticket/Display.html?id=123922>
 
 =item *
 
-A bug introduced in 5.21.6, C<dump LABEL> acted the same as C<goto
-LABEL>.  This has been fixed.  [rt.perl.org #123836]
+A regression in the behaviour of the C<readline> built-in function, caused by
+the introduction of the C<< <<>> >> operator, has been fixed.
+L<[perl #123990]|https://rt.perl.org/Ticket/Display.html?id=123990>
 
 =item *
 
-Perl 5.14.0 introduced a bug whereby C<eval { LABEL: }> would crash.  This
-has been fixed.  [rt.perl.org #123652]
+Several cases of data used to store environment variable contents in core C
+code being potentially overwritten before being used have been fixed.
+L<[perl #123748]|https://rt.perl.org/Ticket/Display.html?id=123748>
 
-=item *
-
-Various crashes due to the parser getting confused by syntax errors have
-been fixed.  [rt.perl.org #123617] [rt.perl.org #123737]
-[rt.perl.org #123753] [rt.perl.org #123677]
+=back
 
-=item *
+=head1 Known Problems
 
-Code like C</$a[/> used to read the next line of input and treat it as
-though it came immediately after the opening bracket.  Some invalid code
-consequently would parse and run, but some code caused crashes, so this is
-now disallowed.  [rt.perl.org #123712]
+=over 4
 
 =item *
 
-Fix argument underflow for C<pack>.  [rt.perl.org #123874]
+A goal is for Perl to be able to be recompiled to work reasonably well on any
+Unicode version.  In Perl 5.22, though, the earliest such version is Unicode
+5.1 (current is 7.0).
 
 =item *
 
-Fix handling of non-strict C<\x{}>. Now C<\x{}> is equivalent to C<\x{0}>
-instead of faulting.
+EBCDIC platforms
 
-=item *
-
-C<stat -t> is now no longer treated as stackable, just like C<-t stat>.
-[rt.perl.org #123816]
+=over 4
 
 =item *
 
-The following no longer causes a SEGV: C<qr{x+(y(?0))*}>.
+Encode and encoding are mostly broken.
 
 =item *
 
-Fixed infinite loop in parsing backrefs in regexp patterns.
+Many cpan modules that are shipped with core show failing tests.
 
 =item *
 
-Several minor bug fixes in behavior of Inf and NaN, including
-warnings when stringifying Inf-like or NaN-like strings. For example,
-"NaNcy" doesn't numify to NaN anymore.
+C<pack>/C<unpack> with C<"U0"> format may not work properly.
 
-=item *
-
-Only stringy classnames are now shared. This fixes some failures in L<autobox>.  [rt.cpan.org #100819]
+=back
 
 =back
 
 =head1 Acknowledgements
 
-Perl 5.21.9 represents approximately 4 weeks of development since Perl 5.21.8
-and contains approximately 170,000 lines of changes across 520 files from 32
+Perl 5.21.10 represents approximately 4 weeks of development since Perl 5.21.9
+and contains approximately 170,000 lines of changes across 860 files from 27
 authors.
 
 Excluding auto-generated files, documentation and release tools, there were
-approximately 160,000 lines of changes to 270 .pm, .t, .c and .h files.
+approximately 170,000 lines of changes to 610 .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.9:
+of users and developers.  The following people are known to have contributed
+the improvements that became Perl 5.21.10:
 
-Chad Granum, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari
-Mannsåker, Daniel Dragan, David Golden, David Mitchell, Father Chrysostomos,
-H.Merijn Brand, Hugo van der Sanden, James E Keenan, James Raspass, Jarkko
-Hietaniemi, Karen Etheridge, Karl Williamson, Kent Fredric, Lajos Veres, Leon
-Timmermans, Lukas Mai, Mathieu Arnold, Matthew Horsfall, Peter Martini, Petr
-Písař, Randy Stauner, Ricardo Signes, Sawyer X, Shlomi Fish, Sisyphus, Steve
-Hay, Tony Cook, Yves Orton, Ævar Arnfjörð Bjarmason.
+Chris 'BinGOs' Williams, David Golden, David Mitchell, David Wheeler, Father
+Chrysostomos, H.Merijn Brand, Hugo van der Sanden, James E Keenan, Jarkko
+Hietaniemi, Jasmine Ngan, Jerry D. Hedden, John Goodyear, Karen Etheridge, Karl
+Williamson, Lukas Mai, Matthew Horsfall, Nicholas Clark, Petr Písař, Rafael
+Garcia-Suarez, Reini Urban, Ricardo Signes, Sawyer X, Steffen Müller, Steve
+Hay, Sullivan Beck, Tony Cook, Vincent Pit.
 
 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
+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.
 
 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
+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
@@ -724,8 +450,8 @@ the F<AUTHORS> file in the Perl source distribution.
 
 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.
+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
index 770b8ef..14f1cac 100644 (file)
@@ -2802,6 +2802,13 @@ character (U+FFFD).
 with the B<-D> option with no flags to see the list of acceptable values.
 See also L<perlrun/-Dletters>.
 
+=item Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/
+
+(F) The pattern looks like a {min,max} quantifier, but the min or max
+could not be parsed as a valid number - either it has leading zeroes,
+or it represents too big a number to cope with.  The S<<-- HERE> shows
+where in the regular expression the problem was discovered.  See L<perlre>.
+
 =item Invalid [] range "%s" in regex; marked by S<<-- HERE> in m/%s/
 
 (F) The range specified in a character class had a minimum character
@@ -3806,7 +3813,7 @@ find the name of the file to which to write data destined for stdout.
 
 (F) Fully qualified variable names are not allowed in "our"
 declarations, because that doesn't make much sense under existing
-semantics.  Such syntax is reserved for future extensions.
+rules.  Such syntax is reserved for future extensions.
 
 =item No Perl script found in input
 
@@ -4061,7 +4068,7 @@ the C<fallback> overloading key is specified to be true.  See L<overload>.
 
 =item Operation "%s" returns its argument for non-Unicode code point 0x%X
 
-(S non_unicode) You performed an operation requiring Unicode semantics
+(S non_unicode) You performed an operation requiring Unicode rules
 on a code point that is not in Unicode, so what it should do is not
 defined.  Perl has chosen to have it do nothing, and warn you.
 
@@ -4074,9 +4081,9 @@ C<no warnings 'non_unicode';>.
 =item Operation "%s" returns its argument for UTF-16 surrogate U+%X
 
 (S surrogate) You performed an operation requiring Unicode
-semantics on a Unicode surrogate.  Unicode frowns upon the use
+rules on a Unicode surrogate.  Unicode frowns upon the use
 of surrogates for anything but storing strings in UTF-16, but
-semantics are (reluctantly) defined for the surrogates, and
+rules are (reluctantly) defined for the surrogates, and
 they are to do nothing for this operation.  Because the use of
 surrogates can be dangerous, Perl warns.
 
index 98e1aa9..1e7dd27 100644 (file)
@@ -87,10 +87,6 @@ See also: L<perlrecharclass/Extended Bracketed Character Classes>
 Using this feature triggers warnings in the category
 C<experimental::regex_sets>.
 
-=item C<\s> in regexp matches vertical tab
-
-Introduced in Perl 5.18
-
 =item Subroutine signatures
 
 Introduced in Perl 5.20.0
@@ -135,6 +131,15 @@ L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
 
 See also: L<perlsub/Constant Functions>
 
+=item use re 'strict';
+
+Introduced in Perl 5.22.0
+
+Using this feature triggers warnings in the category
+C<experimental::re_strict>.
+
+See L<re/'strict' mode>
+
 =item String- and number-specific bitwise operators
 
 Introduced in: Perl 5.22.0
@@ -261,6 +266,10 @@ See also L<perlrun>
 
 Accepted in Perl 5.20.0
 
+=item C<\s> in regexp matches vertical tab
+
+Accepted in Perl 5.22.0
+
 =back
 
 =head2 Removed features
index 9dc4cc6..c46f8c5 100644 (file)
@@ -884,7 +884,7 @@ $INPUT_RECORD_SEPARATOR in the C<English> module).  It returns the total
 number of characters removed from all its arguments.  It's often used to
 remove the newline from the end of an input record when you're worried
 that the final record may be missing its newline.  When in paragraph
-mode (C<$/ = "">), it removes all trailing newlines from the string.
+mode (C<$/ = ''>), it removes all trailing newlines from the string.
 When in slurp mode (C<$/ = undef>) or fixed-length record mode (C<$/> is
 a reference to an integer or the like; see L<perlvar>) chomp() won't
 remove anything.
index 2c04a33..7af5369 100644 (file)
@@ -1962,7 +1962,7 @@ C<op_first> field but also an C<op_last> field.  The most complex type of
 op is a C<LISTOP>, which has any number of children.  In this case, the
 first child is pointed to by C<op_first> and the last child by
 C<op_last>.  The children in between can be found by iteratively
-following the C<op_sibling> pointer from the first child to the last 9but
+following the C<op_sibling> pointer from the first child to the last (but
 see below).
 
 There are also some other op types: a C<PMOP> holds a regular expression,
@@ -1988,7 +1988,8 @@ C<op_sibling> chain. This frees up the C<op_sibling> field on the last
 sibling to point back to the parent op. The macro C<OpSIBLING(o)> wraps
 this special behaviour, and always returns NULL on the last sibling.
 With this build the C<op_parent(o)> function can be used to find the
-parent of any op.
+parent of any op. Thus for forward compatibility, you should always use
+the C<OpSIBLING(o)> macro rather than accessing C<op_sibling> directly.
 
 Another way to examine the tree is to use a compiler back-end module, such
 as L<B::Concise>.
index 943bdfb..7b34516 100644 (file)
@@ -641,7 +641,7 @@ L<https://sourceware.org/bugzilla/show_bug.cgi?id=6530>.
 
 Do not use atoi()
 
-Use grok_atou() instead.  atoi() has ill-defined behavior on overflows,
+Use grok_atoUV() instead.  atoi() has ill-defined behavior on overflows,
 and cannot be used for incremental parsing.  It is also affected by locale,
 which is bad.
 
@@ -649,7 +649,7 @@ which is bad.
 
 Do not use strtol() or strtoul()
 
-Use grok_atou() instead.  strtol() or strtoul() (or their IV/UV-friendly
+Use grok_atoUV() instead.  strtol() or strtoul() (or their IV/UV-friendly
 macro disguises, Strtol() and Strtoul(), or Atol() and Atoul() are
 affected by locale, which is bad.
 
index 4f343d7..62ed09a 100644 (file)
@@ -551,6 +551,7 @@ the strings?).
  Max M     5.21.7       2014-Dec-20
  Matthew H 5.21.8       2015-Jan-20
  Sawyer X  5.21.9       2015-Feb-20
+ Steve     5.21.10      2015-Mar-20
 
 =head2 SELECTED RELEASE SIZES
 
index fdf524f..2db9185 100644 (file)
@@ -104,7 +104,8 @@ deficiencies, so keep reading.
 
 =head1 PREPARING TO USE LOCALES
 
-Perl itself will not use locales unless specifically requested to (but
+Perl itself (outside the L<POSIX> module) will not use locales unless
+specifically requested to (but
 again note that Perl may interact with code that does use them).  Even
 if there is such a request, B<all> of the following must be true
 for it to work properly:
@@ -162,7 +163,8 @@ L<The setlocale function>.
 
 =head2 The C<"use locale"> pragma
 
-By default, Perl itself ignores the current locale.  The S<C<use locale>>
+By default, Perl itself (outside the L<POSIX> module)
+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 are optional parameters to this pragma,
 described below, which restrict which operations are affected by it.
@@ -215,6 +217,15 @@ underlying locale.  For more discussion, see L<perlxs/CAVEATS>.
 
 =back
 
+Note that all C programs (including the perl interpreter, which is
+written in C) always have an underlying locale.  That locale is the "C"
+locale unless changed by a call to L<setlocale()|/The setlocale
+function>.  When Perl starts up, it changes the underlying locale to the
+one which is indicated by the L</ENVIRONMENT>.  When using the L<POSIX>
+module or writing XS code, it is important to keep in mind that the
+underlying locale may be something other than "C", even if the program
+hasn't explicitly changed it.
+
 =for comment
 The nbsp below makes this look better (though not great)
 
@@ -556,7 +567,7 @@ 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 C<PERL_BADLANG> to a zero value, for example "0".
+environment variable C<PERL_BADLANG> to "0" or "".
 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.
@@ -1183,8 +1194,8 @@ of a match involving C<\w> while C<use locale> is in effect.
 
 =item PERL_SKIP_LOCALE_INIT
 
-This environment variable, available starting in Perl v5.20, and if it
-evaluates to a TRUE value, tells Perl to not use the rest of the
+This environment variable, available starting in Perl v5.20, if set
+(to any value), tells Perl to not use the rest of the
 environment variables to initialize with.  Instead, Perl uses whatever
 the current locale settings are.  This is particularly useful in
 embedded environments, see
@@ -1196,9 +1207,8 @@ A string that can suppress Perl's warning about failed locale settings
 at startup.  Failure can occur if the locale support in the operating
 system is lacking (broken) in some way--or if you mistyped the name of
 a locale when you set up your environment.  If this environment
-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.
+variable is absent, or has a value other than "0" or "", Perl will
+complain about locale setting failures.
 
 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,
index 12b156b..41053af 100644 (file)
@@ -286,7 +286,8 @@ users won't need this; but if your encoding isn't US-ASCII,
 then put a C<=encoding I<encodingname>> command very early in the document so
 that pod formatters will know how to decode the document.  For
 I<encodingname>, use a name recognized by the L<Encode::Supported>
-module.  Some pod formatters may try to guess between a Latin-1 versus
+module.  Some pod formatters may try to guess between a Latin-1 or
+CP-1252 versus
 UTF-8 encoding, but they may guess wrong.  It's best to be explicit if
 you use anything besides strict ASCII.  Examples:
 
@@ -505,7 +506,7 @@ in decimal, as in C<EE<lt>181E<gt>>.
 Note that older Pod formatters might not recognize octal or
 hex numeric escapes, and that many formatters cannot reliably
 render characters above 255.  (Some formatters may even have
-to use compromised renderings of Latin-1 characters, like
+to use compromised renderings of Latin-1/CP-1252 characters, like
 rendering C<EE<lt>eacuteE<gt>> as just a plain "e".)
 
 =back
index f2af63e..c3d172f 100644 (file)
@@ -607,7 +607,8 @@ as signaling that the file is Unicode encoded as in UTF-16 (whether
 big-endian or little-endian) or UTF-8, Pod parsers should do the
 same.  Otherwise, the character encoding should be understood as
 being UTF-8 if the first highbit byte sequence in the file seems
-valid as a UTF-8 sequence, or otherwise as Latin-1.
+valid as a UTF-8 sequence, or otherwise as CP-1252 (earlier versions of
+this specification used Latin-1 instead of CP-1252).
 
 Future versions of this specification may specify
 how Pod can accept other encodings.  Presumably treatment of other
@@ -641,7 +642,7 @@ I<and> whether the next byte is in the range
 0x80 - 0xBF.  If so, the parser may conclude that this file is in
 UTF-8, and all highbit sequences in the file should be assumed to
 be UTF-8.  Otherwise the parser should treat the file as being
-in Latin-1.  (A better check is to pass a copy of the sequence to
+in CP-1252.  (A better check is to pass a copy of the sequence to
 L<utf8::decode()|utf8> which performs a full validity check on the
 sequence and returns TRUE if it is valid UTF-8, FALSE otherwise.  This
 function is always pre-loaded, is fast because it is written in C, and
@@ -841,17 +842,19 @@ Pod::Parser, comes with modern versions of Perl.
 
 Characters in Pod documents may be conveyed either as literals, or by
 number in EE<lt>n> codes, or by an equivalent mnemonic, as in
-EE<lt>eacute> which is exactly equivalent to EE<lt>233>.
-
-Characters in the range 32-126 refer to those well known US-ASCII
-characters (also defined there by Unicode, with the same meaning),
-which all Pod formatters must render faithfully.  Characters
-in the ranges 0-31 and 127-159 should not be used (neither as
-literals, nor as EE<lt>number> codes), except for the
-literal byte-sequences for newline (13, 13 10, or 10), and tab (9).
-
-Characters in the range 160-255 refer to Latin-1 characters (also
-defined there by Unicode, with the same meaning).  Characters above
+EE<lt>eacute> which is exactly equivalent to EE<lt>233>.  The numbers
+are the Latin1/Unicode values, even on EBCDIC platforms.
+
+When referring to characters by using a EE<lt>n> numeric code, numbers
+in the range 32-126 refer to those well known US-ASCII characters (also
+defined there by Unicode, with the same meaning), which all Pod
+formatters must render faithfully.  Numbers in the ranges 0-31 and
+127-159 should not be used (neither as literals, nor as EE<lt>number>
+codes), except for the literal byte-sequences for newline (13, 13 10, or
+10), and tab (9).
+
+Numbers in the range 160-255 refer to Latin-1 characters (also
+defined there by Unicode, with the same meaning).  Numbers above
 255 should be understood to refer to Unicode characters.
 
 =item *
index 195ef5d..0bf828c 100644 (file)
@@ -250,78 +250,104 @@ no longer ship with Perl, but will continue to be available on CPAN.
 
 =head1 MAINTENANCE BRANCHES
 
+New releases of maintenance branches should only contain changes that fall into
+one of the "acceptable" categories set out below, but must not contain any
+changes that fall into one of the "unacceptable" categories.  (For example, a
+fix for a crashing bug must not be included if it breaks binary compatibility.)
+
+It is not necessary to include every change meeting these criteria, and in
+general the focus should be on addressing security issues, crashing bugs,
+regressions and serious installation issues.  The temptation to include a
+plethora of minor changes that don't affect the installation or execution of
+perl (e.g. spelling corrections in documentation) should be resisted in order
+to reduce the overall risk of overlooking something.  The intention is to
+create maintenance releases which are both worthwhile and which users can have
+full confidence in the stability of.  (A secondary concern is to avoid burning
+out the maint-pumpking or overwhelming other committers voting on changes to be
+included (see L</"Getting changes into a maint branch"> below).)
+
+The following types of change may be considered acceptable, as long as they do
+not also fall into any of the "unacceptable" categories set out below:
+
 =over
 
 =item *
 
-New releases of maint should contain as few changes as possible.
-If there is any question about whether a given patch might merit
-inclusion in a maint release, then it almost certainly should not
-be included.
+Patches that fix CVEs or security issues.  These changes should
+be run through the perl5-security-report@perl.org mailing list
+rather than applied directly.
 
 =item *
 
-Portability fixes, such as changes to Configure and the files in
-hints/ are acceptable. Ports of Perl to a new platform, architecture
-or OS release that involve changes to the implementation are NOT
-acceptable.
+Patches that fix crashing bugs, assertion failures and
+memory corruption but which do not otherwise change perl's
+functionality or negatively impact performance.
 
 =item *
 
-Acceptable documentation updates are those that correct factual errors,
-explain significant bugs or deficiencies in the current implementation,
-or fix broken markup.
+Patches that fix regressions in perl's behavior relative to previous
+releases, no matter how old the regression, since some people may
+upgrade from very old versions of perl to the latest version.
 
 =item *
 
-Patches that add new warnings or errors or deprecate features
-are not acceptable.
+Patches that fix anything which prevents or seriously impacts the build
+or installation of perl.
 
 =item *
 
-Patches that fix crashing bugs, assertion failures and
-memory corruption that do not otherwise change Perl's
-functionality or negatively impact performance are acceptable.
+Portability fixes, such as changes to Configure and the files in
+the hints/ folder.
 
 =item *
 
-Patches that fix CVEs or security issues are acceptable, but should
-be run through the perl5-security-report@perl.org mailing list
-rather than applied directly.
+Minimal patches that fix platform-specific test failures.
 
 =item *
 
-Patches that fix regressions in perl's behavior relative to previous
-releases are acceptable.
+Documentation updates that correct factual errors, explain significant
+bugs or deficiencies in the current implementation, or fix broken markup.
 
 =item *
 
 Updates to dual-life modules should consist of minimal patches to
-fix crashing or security issues (as above).
+fix crashing bugs or security issues (as above).  Any changes made to
+dual-life modules for which CPAN is canonical should be coordinated with
+the upstream author.
+
+=back
+
+The following types of change are NOT acceptable:
+
+=over
 
 =item *
 
-Minimal patches that fix platform-specific test failures or build or
-installation issues are acceptable. When these changes are made
-to dual-life modules for which CPAN is canonical, any changes
-should be coordinated with the upstream author.
+Patches that break binary compatibility.  (Please talk to a pumpking.)
 
 =item *
 
-New versions of dual-life modules should NOT be imported into maint.
-Those belong in the next stable series.
+Patches that add or remove features.
 
 =item *
 
-Patches that add or remove features are not acceptable.
+Patches that add new warnings or errors or deprecate features.
 
 =item *
 
-Patches that break binary compatibility are not acceptable.  (Please
-talk to a pumpking.)
+Ports of Perl to a new platform, architecture or OS release that
+involve changes to the implementation.
+
+=item *
+
+New versions of dual-life modules should NOT be imported into maint.
+Those belong in the next stable series.
 
 =back
 
+If there is any question about whether a given patch might merit
+inclusion in a maint release, then it almost certainly should not
+be included.
 
 =head2 Getting changes into a maint branch
 
@@ -337,6 +363,17 @@ a specific commit along with a rationale for doing so and at least two
 other committers respond to the list giving their assent. (This policy
 applies to current and former pumpkings, as well as other committers.)
 
+Other voting mechanisms may be used instead, as long as the same number of
+votes is gathered in a transparent manner.  Specifically, proposals of
+which changes to cherry-pick must be visible to everyone on perl5-porters
+so that the views of everyone interested may be heard.
+
+It is not necessary for voting to be held on cherry-picking perldelta
+entries associated with changes that have already been cherry-picked, nor
+for the maint-pumpking to obtain votes on changes required by the
+F<Porting/release_managers_guide.pod> where such changes can be applied by
+the means of cherry-picking from blead.
+
 =head1 CONTRIBUTED MODULES
 
 
index 90858b1..2cf00fb 100644 (file)
@@ -429,8 +429,8 @@ When it appears singly, it causes the sequences C<\d>, C<\s>, C<\w>, and
 the Posix character classes to match only in the ASCII range.  They thus
 revert to their pre-5.6, pre-Unicode meanings.  Under C</a>,  C<\d>
 always means precisely the digits C<"0"> to C<"9">; C<\s> means the five
-characters C<[ \f\n\r\t]>, and starting in Perl v5.18, experimentally,
-the vertical tab; C<\w> means the 63 characters
+characters C<[ \f\n\r\t]>, and starting in Perl v5.18, the vertical tab;
+C<\w> means the 63 characters
 C<[A-Za-z0-9_]>; and likewise, all the Posix classes such as
 C<[[:print:]]> match only the appropriate ASCII-range characters.
 
index 876d874..b9664aa 100644 (file)
@@ -298,7 +298,7 @@ beginning with a "0".
 =head3 Hexadecimal escapes
 
 Like octal escapes, there are two forms of hexadecimal escapes, but both start
-with the same thing, C<\x>.  This is followed by either exactly two hexadecimal
+with the sequence C<\x>.  This is followed by either exactly two hexadecimal
 digits forming a number, or a hexadecimal number of arbitrary length surrounded
 by curly braces. The hexadecimal number is the code point of the character you
 want to express.
@@ -558,8 +558,10 @@ non-word characters nor for string ends.  It may help to understand how
     \b really means    (?:(?<=\w)(?!\w)|(?<!\w)(?=\w))
     \B really means    (?:(?<=\w)(?=\w)|(?<!\w)(?!\w))
 
-In contrast, C<\b{...}> may or may not match at the beginning and end of
-the line depending on the boundary type (and C<\B{...}> never does).
+In contrast, C<\b{...}> and C<\B{...}> may or may not match at the
+beginning and end of the line, depending on the boundary type.  These
+implement the Unicode default boundaries, specified in
+L<http://www.unicode.org/reports/tr29/>.
 The boundary types currently available are:
 
 =over
@@ -577,18 +579,52 @@ whichever is most convenient for your situation.
 This matches a Unicode "Sentence Boundary".  This is an aid to parsing
 natural language sentences.  It gives good, but imperfect results.  For
 example, it thinks that "Mr. Smith" is two sentences.  More details are
-at L<http://www.unicode.org/reports/tr29/>.
+at L<http://www.unicode.org/reports/tr29/>.  Note also that it thinks
+that anything matching L</\R> (except form feed and vertical tab) is a
+sentence boundary.  C<\b{sb}> works with text designed for
+word-processors which wrap lines
+automatically for display, but hard-coded line boundaries are considered
+to be essentially the ends of text blocks (paragraphs really), and hence
+the ends of sententces.  C<\b{sb}> doesn't do well with text containing
+embedded newlines, like the source text of the document you are reading.
+Such text needs to be preprocessed to get rid of the line separators
+before looking for sentence boundaries.  Some people view this as a bug
+in the Unicode standard.
 
 =item C<\b{wb}>
 
 This matches a Unicode "Word Boundary".  This gives better (though not
 perfect) results for natural language processing than plain C<\b>
 (without braces) does.  For example, it understands that apostrophes can
-be in the middle of words.   More details are at
-L<http://www.unicode.org/reports/tr29/>.
+be in the middle of words and that parentheses aren't (see the examples
+below).   More details are at L<http://www.unicode.org/reports/tr29/>.
 
 =back
 
+It is important to realize when you use these Unicode boundaries,
+that you are taking a risk that a future version of Perl which contains
+a later version of the Unicode Standard will not work precisely the same
+way as it did when your code was written.  These rules are not
+considered stable and have been somewhat more subject to change than the
+rest of the Standard.  Unicode reserves the right to change them at
+will, and Perl reserves the right to update its implementation to
+Unicode's new rules.  In the past, some changes have been because new
+characters have been added to the Standard which have different
+characteristics than all previous characters, so new rules are
+formulated for handling them.  These should not cause any backward
+compatibility issues.  But some changes have changed the treatment of
+existing characters because the Unicode Technical Committee has decided
+that the change is warranted for whatever reason.  This could be to fix
+a bug, or because they think better results are obtained with the new
+rule.
+
+It is also important to realize that these are default boundary
+definitions, and that implementations may wish to tailor the results for
+particular purposes and locales.
+
+Unicode defines a fourth boundary type, accessible through the
+L<Unicode::LineBreak> module.
+
 Mnemonic: I<b>oundary.
 
 =back
@@ -612,9 +648,12 @@ Mnemonic: I<b>oundary.
       print $1;           # Prints 'cat'
   }
 
-  print join "\n", "I don't care" =~ m/ ( .+? \b{wb} ) /xg;
+  my $s = "He said, \"Is pi 3.14? (I'm not sure).\"";
+  print join("|", $s =~ m/ ( .+? \b     ) /xg), "\n";
+  print join("|", $s =~ m/ ( .+? \b{wb} ) /xg), "\n";
  prints
-  I, ,don't, ,care
+  He| |said|, "|Is| |pi| |3|.|14|? (|I|'|m| |not| |sure
+  He| |said|,| |"|Is| |pi| |3.14|?| |(|I'm| |not| |sure|)|.|"
 
 =head2 Misc
 
index 0d00a39..20a439a 100644 (file)
@@ -214,7 +214,7 @@ C<\s> matches any single character considered whitespace.
 In all Perl versions, C<\s> matches the 5 characters [\t\n\f\r ]; that
 is, the horizontal tab,
 the newline, the form feed, the carriage return, and the space.
-Starting in Perl v5.18, experimentally, it also matches the vertical tab, C<\cK>.
+Starting in Perl v5.18, it also matches the vertical tab, C<\cK>.
 See note C<[1]> below for a discussion of this.
 
 =item otherwise ...
@@ -241,7 +241,7 @@ table below.
 
 =item otherwise ...
 
-C<\s> matches [\t\n\f\r ] and, starting, experimentally in Perl
+C<\s> matches [\t\n\f\r ] and, starting in Perl
 v5.18, the vertical tab, C<\cK>.
 (See note C<[1]> below for a discussion of this.)
 Note that this list doesn't include the non-breaking space.
@@ -271,9 +271,9 @@ They use the platform's native character set, and do not consider any
 locale that may otherwise be in use.
 
 C<\R> matches anything that can be considered a newline under Unicode
-rules. It's not a character class, as it can match a multi-character
-sequence. Therefore, it cannot be used inside a bracketed character
-class; use C<\v> instead (vertical whitespace).  It uses the platform's
+rules. It can match a multi-character sequence. It cannot be used inside
+a bracketed character class; use C<\v> instead (vertical whitespace).
+It uses the platform's
 native character set, and does not consider any locale that may
 otherwise be in use.
 Details are discussed in L<perlrebackslash>.
@@ -324,13 +324,8 @@ effect that changes the C<\s> matching).
 
 =item [1]
 
-Prior to Perl v5.18, C<\s> did not match the vertical tab.  The change
-in v5.18 is considered an experiment, which means it could be backed out
-in v5.22 if experience indicates that it breaks too much
-existing code.  If this change adversely affects you, send email to
-C<perlbug@perl.org>; if it affects you positively, email
-C<perlthanks@perl.org>.  In the meantime, C<[^\S\cK]> (obscurely)
-matches what C<\s> traditionally did.
+Prior to Perl v5.18, C<\s> did not match the vertical tab.
+C<[^\S\cK]> (obscurely) matches what C<\s> traditionally did.
 
 =item [2]
 
@@ -862,7 +857,7 @@ Unicode considers symbols.
 
 C<\p{XPerlSpace}> and C<\p{Space}> match identically starting with Perl
 v5.18.  In earlier versions, these differ only in that in non-locale
-matching, C<\p{XPerlSpace}> does not match the vertical tab, C<\cK>.
+matching, C<\p{XPerlSpace}> did not match the vertical tab, C<\cK>.
 Same for the two ASCII-only range forms.
 
 =back
@@ -1030,14 +1025,11 @@ There is one unary operator:
 
  !    complement
 
-All the binary operators left associate, and are of equal precedence.
-The unary operator right associates, and has higher precedence.  Use
-parentheses to override the default associations.  Some feedback we've
-received indicates a desire for intersection to have higher precedence
-than union.  This is something that feedback from the field may cause us
-to change in future releases; you may want to parenthesize copiously to
-avoid such changes affecting your code, until this feature is no longer
-considered experimental.
+All the binary operators left associate; C<"&"> is higher precedence
+than the others, which all have equal precedence.  The unary operator
+right associates, and has highest precedence.  Thus this follows the
+normal Perl precedence rules for logical operators.  Use parentheses to
+override the default precedence and associativity.
 
 The main restriction is that everything is a metacharacter.  Thus,
 you cannot refer to single characters by doing something like this:
index bc4bef7..de1b0d6 100644 (file)
@@ -245,6 +245,7 @@ There is no quantifier C<{,n}>. That's interpreted as a literal string.
    (?<name>...)      Named capture
    (?'name'...)      Named capture
    (?P<name>...)     Named capture (python syntax)
+   (?[...])          Extended bracketed character class
    (?{ code })       Embedded code, return value becomes $^R
    (??{ code })      Dynamic regex, return value used as regex
    (?N)              Recurse into subpattern number N
index f74f4f7..869d9a5 100644 (file)
@@ -725,7 +725,7 @@ This is a synonym for C<\p{Present_In=*}>
 =item B<C<\p{PerlSpace}>>
 
 This is the same as C<\s>, restricted to ASCII, namely C<S<[ \f\n\r\t]>>
-and starting in Perl v5.18, experimentally, a vertical tab.
+and starting in Perl v5.18, a vertical tab.
 
 Mnemonic: Perl's (original) space
 
@@ -784,7 +784,7 @@ This matches any character that is graphical or blank, except controls.
 This is the same as C<\s>, including beyond ASCII.
 
 Mnemonic: Space, as modified by Perl.  (It doesn't include the vertical tab
-which both the Posix standard and Unicode consider white space.)
+until v5.18, which both the Posix standard and Unicode consider white space.)
 
 =item B<C<\p{Title}>> and  B<C<\p{Titlecase}>>
 
@@ -1710,7 +1710,7 @@ a valid UTF-8 character.
 
 C<UTF8SKIP(buf)> will return the number of bytes in the UTF-8 encoded
 character in the buffer.  C<UNISKIP(chr)> will return the number of bytes
-required to UTF-8-encode the Unicode character code point.  C<UTF8SKIP()>
+required to UTF-8-encode the code point.  C<UTF8SKIP()>
 is useful for example for iterating over the characters of a UTF-8
 encoded buffer; C<UNISKIP()> is useful, for example, in computing
 the size required for a UTF-8 encoded buffer.
index 19eadd4..4135fba 100644 (file)
@@ -203,14 +203,12 @@ These are alternate syntaxes for C<decode('utf8', ...)> and C<encode('utf8',
 
 =head2 What is a "wide character"?
 
-This is a term used both for characters with an ordinal value greater than 127,
-characters with an ordinal value greater than 255, or any character occupying
-more than one byte, depending on the context.
-
-The Perl warning "Wide character in ..." is caused by a character with an
-ordinal value greater than 255. With no specified encoding layer, Perl tries to
-fit things in ISO-8859-1 for backward compatibility reasons. When it can't, it
-emits this warning (if warnings are enabled), and outputs UTF-8 encoded data
+This is a term used for characters occupying more than one byte.
+
+The Perl warning "Wide character in ..." is caused by such a character.
+With no specified encoding layer, Perl tries to
+fit things into a single byte.  When it can't, it
+emits this warning (if warnings are enabled), and uses UTF-8 encoded data
 instead.
 
 To avoid this warning and to avoid having different output encodings in a single
index 244cd38..e426666 100644 (file)
@@ -654,7 +654,7 @@ How Do I Know Whether My String Is In Unicode?
 
 You shouldn't have to care.  But you may if your Perl is before 5.14.0
 or you haven't specified C<use feature 'unicode_strings'> or C<use
-5.012> (or higher) because otherwise the semantics of the code points
+5.012> (or higher) because otherwise the rules for the code points
 in the range 128 to 255 are different depending on
 whether the string they are contained within is in Unicode or not.
 (See L<perlunicode/When Unicode Does Not Happen>.)
index 9e5af04..0ac91e0 100644 (file)
@@ -56,8 +56,8 @@ the same thing, but they're not. There are more Unicode encodings, but much of
 the world has standardized on UTF-8. 
 
 UTF-8 treats the first 128 codepoints, 0..127, the same as ASCII. They take
-only one byte per character. All other characters are encoded as two or more
-(up to six) bytes using a complex scheme. Fortunately, Perl handles this for
+only one byte per character. All other characters are encoded as two to
+four bytes using a complex scheme. Fortunately, Perl handles this for
 us, so we don't have to worry about this.
 
 =head3 Text strings (character strings)
diff --git a/pp.c b/pp.c
index c9d9e1a..ec0f9d3 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -1717,17 +1717,19 @@ PP(pp_repeat)
 
     if (GIMME_V == G_ARRAY && PL_op->op_private & OPpREPEAT_DOLIST) {
        dMARK;
-       static const char* const oom_list_extend = "Out of memory during list extend";
-       const I32 items = SP - MARK;
-       const I32 max = items * count;
+       const Size_t items = SP - MARK;
        const U8 mod = PL_op->op_flags & OPf_MOD;
 
-       MEM_WRAP_CHECK_1(max, SV*, oom_list_extend);
-       /* Did the max computation overflow? */
-       if (items > 0 && max > 0 && (max < items || max < count))
-          Perl_croak(aTHX_ "%s", oom_list_extend);
-       MEXTEND(MARK, max);
        if (count > 1) {
+           Size_t max;
+
+            if (  items > MEM_SIZE_MAX / (UV)count   /* max would overflow */
+               || items > (U32)I32_MAX / sizeof(SV *) /* repeatcpy would overflow */
+            )
+               Perl_croak(aTHX_ "%s","Out of memory during list extend");
+            max = items * count;
+            MEXTEND(MARK, max);
+
            while (SP > MARK) {
                 if (*SP) {
                    if (mod && SvPADTMP(*SP)) {
@@ -1749,8 +1751,6 @@ PP(pp_repeat)
        SV * const tmpstr = POPs;
        STRLEN len;
        bool isutf;
-       static const char* const oom_string_extend =
-         "Out of memory during string extend";
 
        if (TARG != tmpstr)
            sv_setsv_nomg(TARG, tmpstr);
@@ -1760,11 +1760,16 @@ PP(pp_repeat)
            if (count < 1)
                SvCUR_set(TARG, 0);
            else {
-               const STRLEN max = (UV)count * len;
-               if (len > MEM_SIZE_MAX / count)
-                    Perl_croak(aTHX_ "%s", oom_string_extend);
-               MEM_WRAP_CHECK_1(max, char, oom_string_extend);
-               SvGROW(TARG, max + 1);
+               STRLEN max;
+
+               if (   len > (MEM_SIZE_MAX-1) / (UV)count /* max would overflow */
+                   || len > (U32)I32_MAX  /* repeatcpy would overflow */
+                )
+                    Perl_croak(aTHX_ "%s",
+                                        "Out of memory during string extend");
+               max = (UV)count * len + 1;
+               SvGROW(TARG, max);
+
                repeatcpy(SvPVX(TARG) + len, SvPVX(TARG), len, count - 1);
                SvCUR_set(TARG, SvCUR(TARG) * count);
            }
@@ -5435,7 +5440,7 @@ PP(pp_push)
        ENTER_with_name("call_PUSH");
        call_sv(SV_CONST(PUSH),G_SCALAR|G_DISCARD|G_METHOD_NAMED);
        LEAVE_with_name("call_PUSH");
-       SPAGAIN;
+       /* SPAGAIN; not needed: SP is assigned to immediately below */
     }
     else {
        if (SvREADONLY(ary) && MARK < SP) Perl_croak_no_modify();
@@ -5488,7 +5493,7 @@ PP(pp_unshift)
        ENTER_with_name("call_UNSHIFT");
        call_sv(SV_CONST(UNSHIFT),G_SCALAR|G_DISCARD|G_METHOD_NAMED);
        LEAVE_with_name("call_UNSHIFT");
-       SPAGAIN;
+       /* SPAGAIN; not needed: SP is assigned to immediately below */
     }
     else {
        SSize_t i = 0;
index f7cb216..6726802 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -824,7 +824,8 @@ PP(pp_formline)
            {
                 Size_t max = SvLEN(PL_formtarget) - (t - SvPVX(PL_formtarget));
                 int len;
-                DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED();
+                DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+                STORE_LC_NUMERIC_SET_TO_NEEDED();
                 arg &= ~(FORM_NUM_POINT|FORM_NUM_BLANK);
 #ifdef USE_QUADMATH
                 {
@@ -4507,6 +4508,7 @@ STATIC bool
 S_matcher_matches_sv(pTHX_ PMOP *matcher, SV *sv)
 {
     dSP;
+    bool result;
 
     PERL_ARGS_ASSERT_MATCHER_MATCHES_SV;
     
@@ -4515,7 +4517,10 @@ S_matcher_matches_sv(pTHX_ PMOP *matcher, SV *sv)
     PUTBACK;
     (void) Perl_pp_match(aTHX);
     SPAGAIN;
-    return (SvTRUEx(POPs));
+    result = SvTRUEx(POPs);
+    PUTBACK;
+
+    return result;
 }
 
 STATIC void
@@ -4577,7 +4582,7 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other, const bool copied)
     }
 
     SP -= 2;   /* Pop the values */
-
+    PUTBACK;
 
     /* ~~ undef */
     if (!SvOK(e)) {
@@ -4774,11 +4779,14 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other, const bool copied)
                (void) hv_iterinit(hv);
                while ( (he = hv_iternext(hv)) ) {
                    DEBUG_M(Perl_deb(aTHX_ "        testing key against pattern...\n"));
+                    PUTBACK;
                    if (matcher_matches_sv(matcher, hv_iterkeysv(he))) {
+                        SPAGAIN;
                        (void) hv_iterinit(hv);
                        destroy_matcher(matcher);
                        RETPUSHYES;
                    }
+                    SPAGAIN;
                }
                destroy_matcher(matcher);
                RETPUSHNO;
@@ -4883,10 +4891,13 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other, const bool copied)
                for(i = 0; i <= this_len; ++i) {
                    SV * const * const svp = av_fetch(MUTABLE_AV(SvRV(e)), i, FALSE);
                    DEBUG_M(Perl_deb(aTHX_ "        testing element against pattern...\n"));
+                    PUTBACK;
                    if (svp && matcher_matches_sv(matcher, *svp)) {
+                        SPAGAIN;
                        destroy_matcher(matcher);
                        RETPUSHYES;
                    }
+                    SPAGAIN;
                }
                destroy_matcher(matcher);
                RETPUSHNO;
@@ -4947,12 +4958,13 @@ S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other, const bool copied)
        }
        else {
            PMOP * const matcher = make_matcher((REGEXP*) SvRV(e));
+            bool result;
 
            DEBUG_M(Perl_deb(aTHX_ "    applying rule Any-Regex\n"));
            PUTBACK;
-           PUSHs(matcher_matches_sv(matcher, d)
-                   ? &PL_sv_yes
-                   : &PL_sv_no);
+           result = matcher_matches_sv(matcher, d);
+            SPAGAIN;
+           PUSHs(result ? &PL_sv_yes : &PL_sv_no);
            destroy_matcher(matcher);
            RETURN;
        }
index 7578811..6a3b6e0 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1790,8 +1790,7 @@ PP(pp_helem)
     const bool localizing = PL_op->op_private & OPpLVAL_INTRO;
     bool preeminent = TRUE;
 
-    if (SvTYPE(hv) != SVt_PVHV)
-       RETPUSHUNDEF;
+    assert(SvTYPE(hv) == SVt_PVHV);
 
     if (localizing) {
        MAGIC *mg;
@@ -1878,14 +1877,14 @@ S_softref2xv_lite(pTHX_ SV *const sv, const char *const what,
 }
 
 
-/* handle one or more derefs and array/hash indexings, e.g.
- * $h->{foo} or $a[0]{$key}[$i] or f()->[1]
+/* Handle one or more aggregate derefs and array/hash indexings, e.g.
+ * $h->{foo}  or  $a[0]{$key}[$i]  or  f()->[1]
  *
  * op_aux points to an array of unions of UV / IV / SV* / PADOFFSET.
- * Each of these either contains an action, or an argument, such as
- * a UV to use as an array index, or a lexical var to retrieve.
- * In fact, several actions re stored per UV; we keep shifting new actions
- * of the one UV, and only reload when it becomes zero.
+ * Each of these either contains a set of actions, or an argument, such as
+ * an IV to use as an array index, or a lexical var to retrieve.
+ * Several actions re stored per UV; we keep shifting new actions off the
+ * one UV, and only reload when it becomes zero.
  */
 
 PP(pp_multideref)
index e2f8edf..2a9e24c 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -3340,6 +3340,7 @@ PP(pp_fttty)
     GV *gv;
     char *name = NULL;
     STRLEN namelen;
+    UV uv;
 
     tryAMAGICftest_MG('t');
 
@@ -3355,8 +3356,8 @@ PP(pp_fttty)
 
     if (GvIO(gv) && IoIFP(GvIOp(gv)))
        fd = PerlIO_fileno(IoIFP(GvIOp(gv)));
-    else if (name && isDIGIT(*name))
-        fd = grok_atou(name, NULL);
+    else if (name && isDIGIT(*name) && grok_atoUV(name, &uv, NULL) && uv <= PERL_INT_MAX)
+        fd = (int)uv;
     else
        FT_RETURNUNDEF;
     if (fd < 0) {
@@ -4805,7 +4806,7 @@ S_space_join_names_mortal(pTHX_ char *const *array)
 
     PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL;
 
-    if (array && *array) {
+    if (*array) {
        target = newSVpvs_flags("", SVs_TEMP);
        while (1) {
            sv_catpv(target, *array);
diff --git a/proto.h b/proto.h
index a8803b0..f45a4a3 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -986,10 +986,9 @@ PERL_CALLCONV void Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp)
        assert(sv); assert(delim); assert(mark); assert(sp)
 
 PERL_CALLCONV void     Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
-                       __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_3);
+                       __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_DO_MAGIC_DUMP \
-       assert(file); assert(mg)
+       assert(file)
 
 PERL_CALLCONV I32      Perl_do_ncmp(pTHX_ SV *const left, SV *const right)
                        __attribute__warn_unused_result__
@@ -1340,10 +1339,11 @@ PERL_CALLCONV int       Perl_getcwd_sv(pTHX_ SV* sv)
 
 PERL_CALLCONV void     Perl_gp_free(pTHX_ GV* gv);
 PERL_CALLCONV GP*      Perl_gp_ref(pTHX_ GP* gp);
-PERL_CALLCONV UV       Perl_grok_atou(const char* pv, const char** endptr)
-                       __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_GROK_ATOU     \
-       assert(pv)
+PERL_CALLCONV bool     Perl_grok_atoUV(const char* pv, UV* valptr, const char** endptr)
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_GROK_ATOUV    \
+       assert(pv); assert(valptr)
 
 PERL_CALLCONV UV       Perl_grok_bin(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result)
                        __attribute__nonnull__(pTHX_1)
@@ -1426,11 +1426,7 @@ PERL_CALLCONV SV*        Perl_gv_const_sv(pTHX_ GV* gv)
 #define PERL_ARGS_ASSERT_GV_CONST_SV   \
        assert(gv)
 
-PERL_CALLCONV void     Perl_gv_dump(pTHX_ GV* gv)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_DUMP       \
-       assert(gv)
-
+PERL_CALLCONV void     Perl_gv_dump(pTHX_ GV* gv);
 PERL_CALLCONV void     Perl_gv_efullname(pTHX_ SV* sv, const GV* gv)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -2774,10 +2770,9 @@ PERL_CALLCONV SV*        Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta,
        assert(smeta); assert(which); assert(data)
 
 PERL_CALLCONV SV*      Perl_multideref_stringify(pTHX_ const OP* o, CV *cv)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
+                       __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY  \
-       assert(o); assert(cv)
+       assert(o)
 
 PERL_CALLCONV NV       Perl_my_atof(pTHX_ const char *s)
                        __attribute__nonnull__(pTHX_1);
@@ -4475,6 +4470,11 @@ PERL_CALLCONV NV Perl_sv_nv(pTHX_ SV* sv)
 #define PERL_ARGS_ASSERT_SV_NV \
        assert(sv)
 
+PERL_STATIC_INLINE bool        S_sv_only_taint_gmagic(SV *sv)
+                       __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC  \
+       assert(sv)
+
 PERL_CALLCONV char*    Perl_sv_peek(pTHX_ SV* sv);
 PERL_CALLCONV void     Perl_sv_pos_b2u(pTHX_ SV *const sv, I32 *const offsetp)
                        __attribute__nonnull__(pTHX_2);
@@ -6940,9 +6940,9 @@ PERL_STATIC_INLINE STRLEN*        S_get_invlist_iter_addr(SV* invlist)
 #define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \
        assert(invlist)
 
-STATIC STRLEN  S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** nodep, UV *valuep, I32 *flagp, U32 depth, SV** substitute_parse)
+STATIC bool    S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** nodep, UV *code_point_p, int* cp_count, I32 *flagp, const U32 depth)
                        __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_4);
+                       __attribute__nonnull__(pTHX_5);
 #define PERL_ARGS_ASSERT_GROK_BSLASH_N \
        assert(pRExC_state); assert(flagp)
 
@@ -7100,6 +7100,9 @@ STATIC regnode*   S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 dept
 #define PERL_ARGS_ASSERT_REGCLASS      \
        assert(pRExC_state); assert(flagp)
 
+STATIC unsigned int    S_regex_set_precedence(const U8 my_operator)
+                       __attribute__pure__;
+
 STATIC void    S_reginsert(pTHX_ RExC_state_t *pRExC_state, U8 op, regnode *opnd, U32 depth)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_3);
@@ -7414,28 +7417,28 @@ PERL_CALLCONV SV*       Perl__swash_to_invlist(pTHX_ SV* const swash)
 
 #endif
 #if defined(PERL_IN_REGEXEC_C)
-STATIC PL_SB_enum      S_advance_one_SB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
+STATIC SB_enum S_advance_one_SB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_ADVANCE_ONE_SB        \
        assert(curpos); assert(strend)
 
-STATIC PL_WB_enum      S_advance_one_WB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
+STATIC WB_enum S_advance_one_WB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_ADVANCE_ONE_WB        \
        assert(curpos); assert(strend)
 
-STATIC PL_SB_enum      S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+STATIC SB_enum S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_BACKUP_ONE_SB \
        assert(strbeg); assert(curpos)
 
-STATIC PL_WB_enum      S_backup_one_WB(pTHX_ PL_WB_enum * previous, const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+STATIC WB_enum S_backup_one_WB(pTHX_ WB_enum * previous, const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
@@ -7461,10 +7464,10 @@ STATIC bool     S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8* character)
 #define PERL_ARGS_ASSERT_ISFOO_UTF8_LC \
        assert(character)
 
-STATIC bool    S_isGCB(const PL_GCB_enum before, const PL_GCB_enum after)
+STATIC bool    S_isGCB(const GCB_enum before, const GCB_enum after)
                        __attribute__warn_unused_result__;
 
-STATIC bool    S_isSB(pTHX_ PL_SB_enum before, PL_SB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
+STATIC bool    S_isSB(pTHX_ SB_enum before, SB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_3)
                        __attribute__nonnull__(pTHX_4)
@@ -7472,7 +7475,7 @@ STATIC bool       S_isSB(pTHX_ PL_SB_enum before, PL_SB_enum after, const U8 * const s
 #define PERL_ARGS_ASSERT_ISSB  \
        assert(strbeg); assert(curpos); assert(strend)
 
-STATIC bool    S_isWB(pTHX_ PL_WB_enum previous, PL_WB_enum before, PL_WB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
+STATIC bool    S_isWB(pTHX_ WB_enum previous, WB_enum before, WB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_4)
                        __attribute__nonnull__(pTHX_5)
index 9f9c828..27cf8ea 100644 (file)
 #endif /* H_REGCHARCLASS */
 
 /* Generated from:
- * 76d3d07dadbba1440342f5ab3701db8c9f6df5a851b1cfd08f7b09014d4efc52 regen/regcharclass.pl
+ * 083180df694deb1fc173361406c1a75619fb8376403db3a76dc585c1e3951eca lib/Unicode/UCD.pm
+ * 827aa7ee45ca9fe09f3e0969a5a27a69ce58a6c7134548125266210018d27b49 lib/unicore/ArabicShaping.txt
+ * 3748fbbe9d280a9da700bfd0c28beaaf6f32a67ec263a124fcb0a4095a30fae5 lib/unicore/BidiBrackets.txt
+ * 3925329c2432fa7248b2e180cddcedb9a4f9eafbbb10ab9e105eaf833043b2fb lib/unicore/BidiMirroring.txt
+ * 7f5a1b4a346c6cdbe948d3baf50fc31fff29c26bcd4ad422dc1fbcc1c23b0bde lib/unicore/Blocks.txt
+ * 82f3cc8217455f22d294d7df767a62906baf31456ea8902336ae7fee943a2538 lib/unicore/CaseFolding.txt
+ * 8be553529f7dd22e3e0ffa25eb3f1743f5243bbfe868559be73bf3a163c21913 lib/unicore/CompositionExclusions.txt
+ * ab64278818411762311b9d5974438ac5cf14e98c79b44a6373022f0780de38a7 lib/unicore/DAge.txt
+ * f2ff892add5e6624cee8300c297373216df7f1a596c6e74510afe5e8b96c8d91 lib/unicore/DCoreProperties.txt
+ * 656aa2c6996a049e84c6d38676bc73c3245c808869d64073b812690ae475d534 lib/unicore/DNormalizationProps.txt
+ * e064b066e555cbace95951fcba9b5336a4d04c88c5949a1ff7615190eaa67682 lib/unicore/EastAsianWidth.txt
+ * 2aa574984e9cea6980eddd6e36044168d543b7f0449266fa3248aca28790cf06 lib/unicore/HangulSyllableType.txt
+ * e7122c4d4d598854b5fbefeb2b1ee9f05aef6a8d6e718b5f56c2a8ea31145f12 lib/unicore/IndicMatraCategory.txt
+ * 478ca00ea86b47209f0b27eb3959ad83cb2b76f5159213d242390d07d5af2b8d lib/unicore/IndicSyllabicCategory.txt
+ * 0aa8af5cbb4d0570b1006aefffc021c6ef637dffb15572a5a85e7f7e7778fe22 lib/unicore/Jamo.txt
+ * 3b359eeff325f7e773ea9d5feb8af053b94c579844f0db7ce648f418c9d136d8 lib/unicore/LineBreak.txt
+ * af85d961d0ed6055271ca6e0174451a8dc1822e31de9e07e1246535318b9341a lib/unicore/NameAliases.txt
+ * 1c379b9c1b0f6cd14208b766f74fc92ff5a9528aee66083db307f1fc9a615729 lib/unicore/NamedSequences.txt
+ * 0df343d93293f14e9ff0b0a721d8b8e6c23c86dbad7be18d362d6bf1281590d9 lib/unicore/PropList.txt
+ * 6c14f474761b8db46f95cf2d1e235ce40abf3382226c5b1a2210df83775fe6fa lib/unicore/PropValueAliases.txt
+ * 3f3dd77644faa905ce02de7c0e3167fdc4afdf94748f074192bd70821c8341ea lib/unicore/PropertyAliases.txt
+ * 2767531dec8c525a317ab488b95eed73461fe9c6fbb8088594f3886964724475 lib/unicore/ScriptExtensions.txt
+ * a638f9f0eb3c521ed6c7755fce93c04bf6e4ba89f23ac3d1bd4c4e486c400118 lib/unicore/Scripts.txt
+ * 35496d45fc8babd8deb866491ea82ff7b3d2d49ad4c9c656685cd14833101e25 lib/unicore/SpecialCasing.txt
+ * bfa3da58ea982199829e1107ac5a9a544b83100470a2d0cc28fb50ec234cb840 lib/unicore/UnicodeData.txt
+ * 916289f471c4a337fb1e0715985a11e6bc8bb205736e84164849d601d265d9e0 lib/unicore/auxiliary/GCBTest.txt
+ * 3d7ffae56e506d595f3e0e5d36978bc6721d53470e5ca9666ad7cdfc4a46cb3d lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 370ddf3ba9b337819cf21795c2bd7cda578ac5ff4700d1a3ac923e8be988b57e lib/unicore/auxiliary/SBTest.txt
+ * 28356f6912113a9fe8244d9396e9786115dbc10b3ffb5e31b08969122e91d3f3 lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 3f56d3ccfc35c6dac44d143a4d6087af4e4ee9f1bdbae482c12f6149b60dec3b lib/unicore/auxiliary/WBTest.txt
+ * 82f7304030e6866ef8e02cdfb0485c52c18a661282bfce9c259cc6300abd79ad lib/unicore/auxiliary/WordBreakProperty.txt
+ * b88801b4a469207892a0401697c6b1c5fd64042ae0ef867f4ad0ec04942b415c lib/unicore/extracted/DBidiClass.txt
+ * 074d33ea6c7349eab840d690369dffb3568e2f7b039552b7c10480274d321545 lib/unicore/extracted/DBinaryProperties.txt
+ * 8ad457aef3525aedce823b9177dad33e0088df536dff11e3df405ecefc92ba08 lib/unicore/extracted/DCombiningClass.txt
+ * 59ec46c1e30458ffff50d41196fd45e3bbaf3172a8111117af1b930199be2d96 lib/unicore/extracted/DDecompositionType.txt
+ * cf7c07557ae915a7508c6c7fc8c2e8c900782364ec62e8a5d2813f3b97449ee0 lib/unicore/extracted/DEastAsianWidth.txt
+ * 56a5b47331a7ec784e848bcaae1ddc08cbf72aab583ca82dcc98ecf2851a3d43 lib/unicore/extracted/DGeneralCategory.txt
+ * c14e83161e56eb15d78b1589352d6c0bd8feb7889a5d17f70a2ebb2a43cab86d lib/unicore/extracted/DJoinGroup.txt
+ * 8c9405c54d8b1dd3fe2f2d691b30c0816ca15481995152ed07fc9b844dfd0ad4 lib/unicore/extracted/DJoinType.txt
+ * a9791f08281d7b0a417e4ad882cf64463f6815db8156932acd85228ac717fd94 lib/unicore/extracted/DLineBreak.txt
+ * a17a0330e57d774343a53c019f1bc69827c2676982a1bf48e0898a76710e8877 lib/unicore/extracted/DNumType.txt
+ * c2cb810a67cc5fb4a8d236b6c1bc6dd4d89733d8603881997e8aae2c816a3db1 lib/unicore/extracted/DNumValues.txt
+ * 808d76136d9952faf581347e9bc040dbab5158f143f243a6de455a4af39b7401 lib/unicore/mktables
+ * 746472de66b936ac885ca6d6e68058242b4e909e3260c6317f3ec719f78f76cc lib/unicore/version
+ * 3eaedce3745bef6219cff3b5f63e5f8622c58dc66736281a82df991636d54451 regen/regcharclass.pl
  * ex: set ro: */
index 68f1c49..8c3dffd 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -180,6 +180,9 @@ struct RExC_state_t {
     I32                contains_locale;
     I32                contains_i;
     I32                override_recoding;
+#ifdef EBCDIC
+    I32                recode_x_to_native;
+#endif
     I32                in_multi_char_class;
     struct reg_code_block *code_blocks;        /* positions of literal (?{})
                                            within pattern */
@@ -255,6 +258,9 @@ struct RExC_state_t {
 #define RExC_contains_locale   (pRExC_state->contains_locale)
 #define RExC_contains_i (pRExC_state->contains_i)
 #define RExC_override_recoding (pRExC_state->override_recoding)
+#ifdef EBCDIC
+#   define RExC_recode_x_to_native (pRExC_state->recode_x_to_native)
+#endif
 #define RExC_in_multi_char_class (pRExC_state->in_multi_char_class)
 #define RExC_frame_head (pRExC_state->frame_head)
 #define RExC_frame_last (pRExC_state->frame_last)
@@ -5637,7 +5643,7 @@ PerlIO_printf(Perl_debug_log, "LHS=%"UVuf" RHS=%"UVuf"\n",
         }
         return final_minlen;
     }
-    NOT_REACHED;
+    NOT_REACHED; /* NOTREACHED */
 }
 
 STATIC U32
@@ -6629,6 +6635,9 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count,
     RExC_seen_zerolen = *exp == '^' ? -1 : 0;
     RExC_extralen = 0;
     RExC_override_recoding = 0;
+#ifdef EBCDIC
+    RExC_recode_x_to_native = 0;
+#endif
     RExC_in_multi_char_class = 0;
 
     /* First pass: determine size, legality. */
@@ -7891,7 +7900,7 @@ S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags)
             Perl_croak(aTHX_ "panic: bad flag %lx in reg_scan_name",
                       (unsigned long) flags);
         }
-        NOT_REACHED; /* NOT REACHED */
+        NOT_REACHED; /* NOTREACHED */
     }
     return NULL;
 }
@@ -10095,14 +10104,14 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                 if (RExC_parse == RExC_end || *RExC_parse != ')')
                     vFAIL("Sequence (?&... not terminated");
                 goto gen_recurse_regop;
-                /* NOT REACHED */
+                /* NOTREACHED */
             case '+':
                 if (!(RExC_parse[0] >= '1' && RExC_parse[0] <= '9')) {
                     RExC_parse++;
                     vFAIL("Illegal pattern");
                 }
                 goto parse_recursion;
-                /* NOT REACHED*/
+                /* NOTREACHED*/
             case '-': /* (?-1) */
                 if (!(RExC_parse[0] >= '1' && RExC_parse[0] <= '9')) {
                     RExC_parse--; /* rewind to let it be handled later */
@@ -10121,10 +10130,13 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                         RExC_parse++;
                         is_neg = TRUE;
                     }
-                    unum = grok_atou(RExC_parse, &endptr);
-                    num = (unum > I32_MAX) ? I32_MAX : (I32)unum;
-                    if (endptr)
-                       RExC_parse = (char*)endptr;
+                    if (grok_atoUV(RExC_parse, &unum, &endptr)
+                        && unum <= I32_MAX
+                    ) {
+                        num = (I32)unum;
+                        RExC_parse = (char*)endptr;
+                    } else
+                        num = I32_MAX;
                     if (is_neg) {
                         /* Some limit for num? */
                         num = -num;
@@ -10175,7 +10187,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                 nextchar(pRExC_state);
                 return ret;
 
-            /* NOT REACHED */
+            /* NOTREACHED */
 
            case '?':           /* (??...) */
                is_logical = 1;
@@ -10308,9 +10320,14 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                    RExC_parse++;
                    parno = 0;
                    if (RExC_parse[0] >= '1' && RExC_parse[0] <= '9' ) {
-                       parno = grok_atou(RExC_parse, &endptr);
-                       if (endptr)
+                        UV uv;
+                        if (grok_atoUV(RExC_parse, &uv, &endptr)
+                            && uv <= I32_MAX
+                        ) {
+                            parno = (I32)uv;
                             RExC_parse = (char*)endptr;
+                        }
+                        /* else "Switch condition not recognized" below */
                    } else if (RExC_parse[0] == '&') {
                        SV *sv_dat;
                        RExC_parse++;
@@ -10327,9 +10344,14 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                     /* (?(1)...) */
                    char c;
                    char *tmp;
-                   parno = grok_atou(RExC_parse, &endptr);
-                    if (endptr)
-                       RExC_parse = (char*)endptr;
+                    UV uv;
+                    if (grok_atoUV(RExC_parse, &uv, &endptr)
+                        && uv <= I32_MAX
+                    ) {
+                        parno = (I32)uv;
+                        RExC_parse = (char*)endptr;
+                    }
+                    /* XXX else what? */
                     ret = reganode(pRExC_state, GROUPP, parno);
 
                  insert_if_check_paren:
@@ -10772,6 +10794,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
     char *parse_start;
 #endif
     const char *maxpos = NULL;
+    UV uv;
 
     /* Save the original in case we change the emitted regop to a FAIL. */
     regnode * const orig_emit = RExC_emit;
@@ -10813,16 +10836,28 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
            if (!maxpos)
                maxpos = next;
            RExC_parse++;
-           min = grok_atou(RExC_parse, &endptr);
+            if (isDIGIT(*RExC_parse)) {
+                if (!grok_atoUV(RExC_parse, &uv, &endptr))
+                    vFAIL("Invalid quantifier in {,}");
+                if (uv >= REG_INFTY)
+                    vFAIL2("Quantifier in {,} bigger than %d", REG_INFTY - 1);
+                min = (I32)uv;
+            } else {
+                min = 0;
+            }
            if (*maxpos == ',')
                maxpos++;
            else
                maxpos = RExC_parse;
-           max = grok_atou(maxpos, &endptr);
-           if (!max && *maxpos != '0')
+            if (isDIGIT(*maxpos)) {
+                if (!grok_atoUV(maxpos, &uv, &endptr))
+                    vFAIL("Invalid quantifier in {,}");
+                if (uv >= REG_INFTY)
+                    vFAIL2("Quantifier in {,} bigger than %d", REG_INFTY - 1);
+                max = (I32)uv;
+            } else {
                max = REG_INFTY;                /* meaning "infinity" */
-           else if (max >= REG_INFTY)
-               vFAIL2("Quantifier in {,} bigger than %d", REG_INFTY - 1);
+            }
            RExC_parse = next;
            nextchar(pRExC_state);
             if (max < min) {    /* If can't match, warn and optimize to fail
@@ -10992,95 +11027,94 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
     return(ret);
 }
 
-STATIC STRLEN
-S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** node_p,
-                      UV *valuep, I32 *flagp, U32 depth, SV** substitute_parse
+STATIC bool
+S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state,
+                regnode ** node_p,
+                UV * code_point_p,
+                int * cp_count,
+                I32 * flagp,
+                const U32 depth
     )
 {
-
- /* This is expected to be called by a parser routine that has recognized '\N'
-   and needs to handle the rest. RExC_parse is expected to point at the first
-   char following the N at the time of the call.  On successful return,
-   RExC_parse has been updated to point to just after the sequence identified
-   by this routine, <*flagp> has been updated, and the non-NULL input pointers
-   have been set appropriately.
-
-   The typical case for this is \N{some character name}.  This is usually
-   called while parsing the input, filling in or ready to fill in an EXACTish
-   node, and the code point for the character should be returned, so that it
-   can be added to the node, and parsing continued with the next input
-   character.  But it may be that instead of a single character the \N{}
-   expands to more than one, a named sequence.  In this case any following
-   quantifier applies to the whole sequence, and it is easier, given the code
-   structure that calls this, to handle it from a different area of the code.
-   For this reason, the input parameters can be set so that it returns valid
-   only on one or the other of these cases.
-
-   Another possibility is for the input to be an empty \N{}, which for
-   backwards compatibility we accept, but generate a NOTHING node which should
-   later get optimized out.  This is handled from the area of code which can
-   handle a named sequence, so if called with the parameters for the other, it
-   fails.
-
-   Still another possibility is for the \N to mean [^\n], and not a single
-   character or explicit sequence at all.  This is determined by context.
-   Again, this is handled from the area of code which can handle a named
-   sequence, so if called with the parameters for the other, it also fails.
-
-   And the final possibility is for the \N to be called from within a bracketed
-   character class.  In this case the [^\n] meaning makes no sense, and so is
-   an error.  Other anomalous situations are left to the calling code to handle.
-
-   For non-single-quoted regexes, the tokenizer has attempted to decide which
-   of the above applies, and in the case of a named sequence, has converted it
-   into one of the forms: \N{} (if the sequence is null), or \N{U+c1.c2...},
-   where c1... are the characters in the sequence.  For single-quoted regexes,
-   the tokenizer passes the \N sequence through unchanged; this code will not
-   attempt to determine this nor expand those, instead raising a syntax error.
-   The net effect is that if the beginning of the passed-in pattern isn't '{U+'
-   or there is no '}', it signals that this \N occurrence means to match a
-   non-newline. (This mostly was done because of [perl #56444].)
-
-   The API is somewhat convoluted due to historical and the above reasons.
-
-   The function raises an error (via vFAIL), and doesn't return for various
-   syntax errors.  For other failures, it returns (STRLEN) -1.  For successes,
-   it returns a count of how many characters were accounted for by it.  (This
-   can be 0 for \N{}; 1 for it meaning [^\n]; and otherwise the number of code
-   points in the sequence.  It sets <node_p>, <valuep>, and/or
-   <substitute_parse> on success.
-
-   If <valuep> is non-null, it means the caller can accept an input sequence
-   consisting of just a single code point; <*valuep> is set to the value of the
-   only or first code point in the input.
-
-   If <substitute_parse> is non-null, it means the caller can accept an input
-   sequence consisting of one or more code points; <*substitute_parse> is a
-   newly created mortal SV* in this case, containing \x{} escapes representing
-   those code points.
-
-   Both <valuep> and <substitute_parse> can be non-NULL.
-
-   If <node_p> is non-null, <substitute_parse> must be NULL.  This signifies
-   that the caller can accept any legal sequence other than a single code
-   point.  To wit, <*node_p> is set as follows:
-    1) \N means not-a-NL: points to a newly created REG_ANY node; return is 1
-    2) \N{}:              points to a new NOTHING node; return is 0
-    3) otherwise:         points to a new EXACT node containing the resolved
-                          string; return is the number of code points in the
-                          string.  This will never be 1.
-   Note that failure is returned for single code point sequences if <valuep> is
-   null and <node_p> is not.
- */
-
-    char * endbrace;    /* '}' following the name */
-    char* p;
+ /* This routine teases apart the various meanings of \N and returns
+  * accordingly.  The input parameters constrain which meaning(s) is/are valid
+  * in the current context.
+  *
+  * Exactly one of <node_p> and <code_point_p> must be non-NULL.
+  *
+  * If <code_point_p> is not NULL, the context is expecting the result to be a
+  * single code point.  If this \N instance turns out to a single code point,
+  * the function returns TRUE and sets *code_point_p to that code point.
+  *
+  * If <node_p> is not NULL, the context is expecting the result to be one of
+  * the things representable by a regnode.  If this \N instance turns out to be
+  * one such, the function generates the regnode, returns TRUE and sets *node_p
+  * to point to that regnode.
+  *
+  * If this instance of \N isn't legal in any context, this function will
+  * generate a fatal error and not return.
+  *
+  * On input, RExC_parse should point to the first char following the \N at the
+  * time of the call.  On successful return, RExC_parse will have been updated
+  * to point to just after the sequence identified by this routine.  Also
+  * *flagp has been updated as needed.
+  *
+  * When there is some problem with the current context and this \N instance,
+  * the function returns FALSE, without advancing RExC_parse, nor setting
+  * *node_p, nor *code_point_p, nor *flagp.
+  *
+  * If <cp_count> is not NULL, the caller wants to know the length (in code
+  * points) that this \N sequence matches.  This is set even if the function
+  * returns FALSE, as detailed below.
+  *
+  * There are 5 possibilities here, as detailed in the next 5 paragraphs.
+  *
+  * Probably the most common case is for the \N to specify a single code point.
+  * *cp_count will be set to 1, and *code_point_p will be set to that code
+  * point.
+  *
+  * Another possibility is for the input to be an empty \N{}, which for
+  * backwards compatibility we accept.  *cp_count will be set to 0. *node_p
+  * will be set to a generated NOTHING node.
+  *
+  * Still another possibility is for the \N to mean [^\n]. *cp_count will be
+  * set to 0. *node_p will be set to a generated REG_ANY node.
+  *
+  * The fourth possibility is that \N resolves to a sequence of more than one
+  * code points.  *cp_count will be set to the number of code points in the
+  * sequence. *node_p * will be set to a generated node returned by this
+  * function calling S_reg().
+  *
+  * The final possibility, which happens only when the fourth one would
+  * otherwise be in effect, is that one of those code points requires the
+  * pattern to be recompiled as UTF-8.  The function returns FALSE, and sets
+  * the RESTART_UTF8 flag in *flagp.  When this happens, the caller needs to
+  * desist from continuing parsing, and return this information to its caller.
+  * This is not set for when there is only one code point, as this can be
+  * called as part of an ANYOF node, and they can store above-Latin1 code
+  * points without the pattern having to be in UTF-8.
+  *
+  * For non-single-quoted regexes, the tokenizer has resolved character and
+  * sequence names inside \N{...} into their Unicode values, normalizing the
+  * result into what we should see here: '\N{U+c1.c2...}', where c1... are the
+  * hex-represented code points in the sequence.  This is done there because
+  * the names can vary based on what charnames pragma is in scope at the time,
+  * so we need a way to take a snapshot of what they resolve to at the time of
+  * the original parse. [perl #56444].
+  *
+  * That parsing is skipped for single-quoted regexes, so we may here get
+  * '\N{NAME}'.  This is a fatal error.  These names have to be resolved by the
+  * parser.  But if the single-quoted regex is something like '\N{U+41}', that
+  * is legal and handled here.  The code point is Unicode, and has to be
+  * translated into the native character set for non-ASCII platforms.
+  * the tokenizer passes the \N sequence through unchanged; this code will not
+  * attempt to determine this nor expand those, instead raising a syntax error.
+  */
+
+    char * endbrace;    /* points to '}' following the name */
     char *endchar;     /* Points to '.' or '}' ending cur char in the input
                            stream */
-    bool has_multiple_chars; /* true if the input stream contains a sequence of
-                                more than one character */
-    bool in_char_class = substitute_parse != NULL;
-    STRLEN count = 0;   /* Number of characters in this sequence */
+    char* p;            /* Temporary */
 
     GET_RE_DEBUG_FLAGS_DECL;
 
@@ -11088,11 +11122,15 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** node_p,
 
     GET_RE_DEBUG_FLAGS;
 
-    assert(cBOOL(node_p) ^ cBOOL(valuep));  /* Exactly one should be set */
-    assert(! (node_p && substitute_parse)); /* At most 1 should be set */
+    assert(cBOOL(node_p) ^ cBOOL(code_point_p));  /* Exactly one should be set */
+    assert(! (node_p && cp_count));               /* At most 1 should be set */
+
+    if (cp_count) {     /* Initialize return for the most common case */
+        *cp_count = 1;
+    }
 
     /* The [^\n] meaning of \N ignores spaces and comments under the /x
-     * modifier.  The other meaning does not, so use a temporary until we find
+     * modifier.  The other meanings do not, so use a temporary until we find
      * out which we are being called with */
     p = (RExC_flags & RXf_PMf_EXTENDED)
        ? regpatws(pRExC_state, RExC_parse,
@@ -11100,15 +11138,16 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** node_p,
        : RExC_parse;
 
     /* Disambiguate between \N meaning a named character versus \N meaning
-     * [^\n].  The former is assumed when it can't be the latter. */
+     * [^\n].  The latter is assumed when the {...} following the \N is a legal
+     * quantifier, or there is no a '{' at all */
     if (*p != '{' || regcurly(p)) {
        RExC_parse = p;
+        if (cp_count) {
+            *cp_count = -1;
+        }
+
        if (! node_p) {
-           /* no bare \N allowed in a charclass */
-            if (in_char_class) {
-                vFAIL("\\N in a character class must be a named character: \\N{...}");
-            }
-            return (STRLEN) -1;
+            return FALSE;
         }
         RExC_parse--;   /* Need to back off so nextchar() doesn't skip the
                            current char */
@@ -11117,7 +11156,7 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** node_p,
        *flagp |= HASWIDTH|SIMPLE;
        MARK_NAUGHTY(1);
         Set_Node_Length(*node_p, 1); /* MJD */
-       return 1;
+       return TRUE;
     }
 
     /* Here, we have decided it should be a named character or sequence */
@@ -11145,14 +11184,16 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** node_p,
     RExC_uni_semantics = 1; /* Unicode named chars imply Unicode semantics */
 
     if (endbrace == RExC_parse) {   /* empty: \N{} */
-       if (node_p) {
-           *node_p = reg_node(pRExC_state,NOTHING);
-       }
-        else if (! in_char_class) {
-            return (STRLEN) -1;
+        if (cp_count) {
+            *cp_count = 0;
         }
         nextchar(pRExC_state);
-        return 0;
+       if (! node_p) {
+            return FALSE;
+        }
+
+        *node_p = reg_node(pRExC_state,NOTHING);
+        return TRUE;
     }
 
     RExC_parse += 2;   /* Skip past the 'U+' */
@@ -11161,116 +11202,128 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** node_p,
 
     /* Code points are separated by dots.  If none, there is only one code
      * point, and is terminated by the brace */
-    has_multiple_chars = (endchar < endbrace);
 
-    /* We get the first code point if we want it, and either there is only one,
-     * or we can accept both cases of one and there is more than one */
-    if (valuep && (substitute_parse || ! has_multiple_chars)) {
-       STRLEN length_of_hex = (STRLEN)(endchar - RExC_parse);
-       I32 grok_hex_flags = PERL_SCAN_ALLOW_UNDERSCORES
+    if (endchar >= endbrace) {
+       STRLEN length_of_hex;
+       I32 grok_hex_flags;
+
+        /* Here, exactly one code point.  If that isn't what is wanted, fail */
+        if (! code_point_p) {
+            RExC_parse = p;
+            return FALSE;
+        }
+
+        /* Convert code point from hex */
+       length_of_hex = (STRLEN)(endchar - RExC_parse);
+       grok_hex_flags = PERL_SCAN_ALLOW_UNDERSCORES
                            | PERL_SCAN_DISALLOW_PREFIX
 
                              /* No errors in the first pass (See [perl
                               * #122671].)  We let the code below find the
                               * errors when there are multiple chars. */
-                           | ((SIZE_ONLY || has_multiple_chars)
+                           | ((SIZE_ONLY)
                               ? PERL_SCAN_SILENT_ILLDIGIT
                               : 0);
 
-       *valuep = grok_hex(RExC_parse, &length_of_hex, &grok_hex_flags, NULL);
+        /* This routine is the one place where both single- and double-quotish
+         * \N{U+xxxx} are evaluated.  The value is a Unicode code point which
+         * must be converted to native. */
+       *code_point_p = UNI_TO_NATIVE(grok_hex(RExC_parse,
+                                         &length_of_hex,
+                                         &grok_hex_flags,
+                                         NULL));
 
        /* The tokenizer should have guaranteed validity, but it's possible to
          * bypass it by using single quoting, so check.  Don't do the check
          * here when there are multiple chars; we do it below anyway. */
-        if (! has_multiple_chars) {
-            if (length_of_hex == 0
-                || length_of_hex != (STRLEN)(endchar - RExC_parse) )
-            {
-                RExC_parse += length_of_hex;   /* Includes all the valid */
-                RExC_parse += (RExC_orig_utf8) /* point to after 1st invalid */
-                                ? UTF8SKIP(RExC_parse)
-                                : 1;
-                /* Guard against malformed utf8 */
-                if (RExC_parse >= endchar) {
-                    RExC_parse = endchar;
-                }
-                vFAIL("Invalid hexadecimal number in \\N{U+...}");
+        if (length_of_hex == 0
+            || length_of_hex != (STRLEN)(endchar - RExC_parse) )
+        {
+            RExC_parse += length_of_hex;       /* Includes all the valid */
+            RExC_parse += (RExC_orig_utf8)     /* point to after 1st invalid */
+                            ? UTF8SKIP(RExC_parse)
+                            : 1;
+            /* Guard against malformed utf8 */
+            if (RExC_parse >= endchar) {
+                RExC_parse = endchar;
             }
-
-            RExC_parse = endbrace + 1;
-            return 1;
+            vFAIL("Invalid hexadecimal number in \\N{U+...}");
         }
-    }
 
-    /* Here, we should have already handled the case where a single character
-     * is expected and found.  So it is a failure if we aren't expecting
-     * multiple chars and got them; or didn't get them but wanted them.  We
-     * fail without advancing the parse, so that the caller can try again with
-     * different acceptance criteria */
-    if ((! node_p && ! substitute_parse) || ! has_multiple_chars) {
-        RExC_parse = p;
-        return (STRLEN) -1;
+        RExC_parse = endbrace + 1;
+        return TRUE;
     }
-
-    {
-       /* What is done here is to convert this to a sub-pattern of the form
-        * \x{char1}\x{char2}...
-         * and then either return it in <*substitute_parse> if non-null; or
-         * call reg recursively to parse it (enclosing in "(?: ... )" ).  That
-         * way, it retains its atomicness, while not having to worry about
-         * special handling that some code points may have.  toke.c has
-         * converted the original Unicode values to native, so that we can just
-         * pass on the hex values unchanged.  We do have to set a flag to keep
-         * recoding from happening in the recursion */
-
-       SV * dummy = NULL;
+    else {  /* Is a multiple character sequence */
+       SV * substitute_parse;
        STRLEN len;
        char *orig_end = RExC_end;
         I32 flags;
 
-        if (substitute_parse) {
-            *substitute_parse = newSVpvs("");
+        /* Count the code points, if desired, in the sequence */
+        if (cp_count) {
+            *cp_count = 0;
+            while (RExC_parse < endbrace) {
+                /* Point to the beginning of the next character in the sequence. */
+                RExC_parse = endchar + 1;
+                endchar = RExC_parse + strcspn(RExC_parse, ".}");
+                (*cp_count)++;
+            }
         }
-        else {
-            substitute_parse = &dummy;
-            *substitute_parse = newSVpvs("?:");
+
+        /* Fail if caller doesn't want to handle a multi-code-point sequence.
+         * But don't backup up the pointer if the caller want to know how many
+         * code points there are (they can then handle things) */
+        if (! node_p) {
+            if (! cp_count) {
+                RExC_parse = p;
+            }
+            return FALSE;
         }
-        *substitute_parse = sv_2mortal(*substitute_parse);
+
+       /* What is done here is to convert this to a sub-pattern of the form
+         * \x{char1}\x{char2}...  and then call reg recursively to parse it
+         * (enclosing in "(?: ... )" ).  That way, it retains its atomicness,
+         * while not having to worry about special handling that some code
+         * points may have. */
+
+       substitute_parse = newSVpvs("?:");
 
        while (RExC_parse < endbrace) {
 
            /* Convert to notation the rest of the code understands */
-           sv_catpv(*substitute_parse, "\\x{");
-           sv_catpvn(*substitute_parse, RExC_parse, endchar - RExC_parse);
-           sv_catpv(*substitute_parse, "}");
+           sv_catpv(substitute_parse, "\\x{");
+           sv_catpvn(substitute_parse, RExC_parse, endchar - RExC_parse);
+           sv_catpv(substitute_parse, "}");
 
            /* Point to the beginning of the next character in the sequence. */
            RExC_parse = endchar + 1;
            endchar = RExC_parse + strcspn(RExC_parse, ".}");
 
-            count++;
        }
-        if (! in_char_class) {
-            sv_catpv(*substitute_parse, ")");
-        }
+        sv_catpv(substitute_parse, ")");
 
-       RExC_parse = SvPV(*substitute_parse, len);
+       RExC_parse = SvPV(substitute_parse, len);
 
        /* Don't allow empty number */
-       if (len < (STRLEN) ((substitute_parse) ? 6 : 8)) {
+       if (len < (STRLEN) 8) {
             RExC_parse = endbrace;
            vFAIL("Invalid hexadecimal number in \\N{U+...}");
        }
        RExC_end = RExC_parse + len;
 
-       /* The values are Unicode, and therefore not subject to recoding */
+        /* The values are Unicode, and therefore not subject to recoding, but
+         * have to be converted to native on a non-Unicode (meaning non-ASCII)
+         * platform. */
        RExC_override_recoding = 1;
+#ifdef EBCDIC
+        RExC_recode_x_to_native = 1;
+#endif
 
         if (node_p) {
             if (!(*node_p = reg(pRExC_state, 1, &flags, depth+1))) {
                 if (flags & RESTART_UTF8) {
                     *flagp = RESTART_UTF8;
-                    return (STRLEN) -1;
+                    return FALSE;
                 }
                 FAIL2("panic: reg returned NULL to grok_bslash_N, flags=%#"UVxf"",
                     (UV) flags);
@@ -11278,14 +11331,19 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** node_p,
             *flagp |= flags&(HASWIDTH|SPSTART|SIMPLE|POSTPONED);
         }
 
+        /* Restore the saved values */
        RExC_parse = endbrace;
        RExC_end = orig_end;
        RExC_override_recoding = 0;
+#ifdef EBCDIC
+        RExC_recode_x_to_native = 0;
+#endif
 
+        SvREFCNT_dec_NN(substitute_parse);
         nextchar(pRExC_state);
-    }
 
-    return count;
+        return TRUE;
+    }
 }
 
 
@@ -11516,10 +11574,10 @@ static I32
 S_backref_value(char *p)
 {
     const char* endptr;
-    UV val = grok_atou(p, &endptr);
-    if (endptr == p || endptr == NULL || val > I32_MAX)
-        return I32_MAX;
-    return (I32)val;
+    UV val;
+    if (grok_atoUV(p, &val, &endptr) && val <= I32_MAX)
+        return (I32)val;
+    return I32_MAX;
 }
 
 
@@ -11969,26 +12027,35 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
            }
            break;
         case 'N':
-            /* Handle \N and \N{NAME} with multiple code points here and not
-             * below because it can be multicharacter. join_exact() will join
-             * them up later on.  Also this makes sure that things like
-             * /\N{BLAH}+/ and \N{BLAH} being multi char Just Happen. dmq.
-             * The options to the grok function call causes it to fail if the
-             * sequence is just a single code point.  We then go treat it as
-             * just another character in the current EXACT node, and hence it
-             * gets uniform treatment with all the other characters.  The
-             * special treatment for quantifiers is not needed for such single
-             * character sequences */
+            /* Handle \N, \N{} and \N{NAMED SEQUENCE} (the latter meaning the
+             * \N{...} evaluates to a sequence of more than one code points).
+             * The function call below returns a regnode, which is our result.
+             * The parameters cause it to fail if the \N{} evaluates to a
+             * single code point; we handle those like any other literal.  The
+             * reason that the multicharacter case is handled here and not as
+             * part of the EXACtish code is because of quantifiers.  In
+             * /\N{BLAH}+/, the '+' applies to the whole thing, and doing it
+             * this way makes that Just Happen. dmq.
+             * join_exact() will join this up with adjacent EXACTish nodes
+             * later on, if appropriate. */
             ++RExC_parse;
-            if ((STRLEN) -1 == grok_bslash_N(pRExC_state, &ret, NULL, flagp,
-                                             depth, FALSE))
-            {
-                if (*flagp & RESTART_UTF8)
-                    return NULL;
-                RExC_parse--;
-                goto defchar;
+            if (grok_bslash_N(pRExC_state,
+                              &ret,     /* Want a regnode returned */
+                              NULL,     /* Fail if evaluates to a single code
+                                           point */
+                              NULL,     /* Don't need a count of how many code
+                                           points */
+                              flagp,
+                              depth)
+            ) {
+                break;
             }
-            break;
+
+            if (*flagp & RESTART_UTF8)
+                return NULL;
+            RExC_parse--;
+            goto defchar;
+
        case 'k':    /* Handle \k<NAME> and \k'NAME' */
       parse_named_seq:
         {
@@ -12297,18 +12364,24 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
                        p++;
                        break;
                    case 'N': /* Handle a single-code point named character. */
-                        /* The options cause it to fail if a multiple code
-                         * point sequence.  Handle those in the switch() above
-                         * */
                         RExC_parse = p + 1;
-                        if ((STRLEN) -1 == grok_bslash_N(pRExC_state, NULL,
-                                                         &ender,
-                                                         flagp,
-                                                         depth,
-                                                         FALSE
-                        )) {
+                        if (! grok_bslash_N(pRExC_state,
+                                            NULL,   /* Fail if evaluates to
+                                                       anything other than a
+                                                       single code point */
+                                            &ender, /* The returned single code
+                                                       point */
+                                            NULL,   /* Don't need a count of
+                                                       how many code points */
+                                            flagp,
+                                            depth)
+                        ) {
                             if (*flagp & RESTART_UTF8)
                                 FAIL("panic: grok_bslash_N set RESTART_UTF8");
+
+                            /* Here, it wasn't a single code point.  Go close
+                             * up this EXACTish node.  The switch() prior to
+                             * this switch handles the other cases */
                             RExC_parse = p = oldp;
                             goto loopdone;
                         }
@@ -12387,10 +12460,18 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
                            }
                             ender = result;
 
-                           if (IN_ENCODING && ender < 0x100) {
-                               goto recode_encoding;
+                            if (ender < 0x100) {
+#ifdef EBCDIC
+                                if (RExC_recode_x_to_native) {
+                                    ender = LATIN1_TO_NATIVE(ender);
+                                }
+                                else
+#endif
+                                if (IN_ENCODING) {
+                                    goto recode_encoding;
+                                }
                            }
-                           if (ender > 0xff) {
+                            else {
                                REQUIRE_UTF8;
                            }
                            break;
@@ -13051,7 +13132,7 @@ S_regpposixcc(pTHX_ RExC_state_t *pRExC_state, I32 value, const bool strict)
                            break;
                        case 'e':
                            if (memEQ(posixcc, "spac", 4)) /* space */
-                               namedclass = ANYOF_PSXSPC;
+                               namedclass = ANYOF_SPACE;
                            break;
                        case 'h':
                            if (memEQ(posixcc, "grap", 4)) /* graph */
@@ -13185,6 +13266,34 @@ S_could_it_be_a_POSIX_class(RExC_state_t *pRExC_state)
             && first_char == *(p - 1));
 }
 
+STATIC unsigned  int
+S_regex_set_precedence(const U8 my_operator) {
+
+    /* Returns the precedence in the (?[...]) construct of the input operator,
+     * specified by its character representation.  The precedence follows
+     * general Perl rules, but it extends this so that ')' and ']' have (low)
+     * precedence even though they aren't really operators */
+
+    switch (my_operator) {
+        case '!':
+            return 5;
+        case '&':
+            return 4;
+        case '^':
+        case '|':
+        case '+':
+        case '-':
+            return 3;
+        case ')':
+            return 2;
+        case ']':
+            return 1;
+    }
+
+    NOT_REACHED; /* NOTREACHED */
+    return 0;   /* Silence compiler warning */
+}
+
 STATIC regnode *
 S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                     I32 *flagp, U32 depth,
@@ -13192,24 +13301,35 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
 {
     /* Handle the (?[...]) construct to do set operations */
 
-    U8 curchar;
-    UV start, end;     /* End points of code point ranges */
-    SV* result_string;
-    char *save_end, *save_parse;
-    SV* final;
-    STRLEN len;
-    regnode* node;
-    AV* stack;
-    const bool save_fold = FOLD;
+    U8 curchar;                     /* Current character being parsed */
+    UV start, end;                 /* End points of code point ranges */
+    SV* final = NULL;               /* The end result inversion list */
+    SV* result_string;              /* 'final' stringified */
+    AV* stack;                      /* stack of operators and operands not yet
+                                       resolved */
+    AV* fence_stack = NULL;         /* A stack containing the positions in
+                                       'stack' of where the undealt-with left
+                                       parens would be if they were actually
+                                       put there */
+    IV fence = 0;                   /* Position of where most recent undealt-
+                                       with left paren in stack is; -1 if none.
+                                     */
+    STRLEN len;                     /* Temporary */
+    regnode* node;                  /* Temporary, and final regnode returned by
+                                       this function */
+    const bool save_fold = FOLD;    /* Temporary */
+    char *save_end, *save_parse;    /* Temporaries */
 
     GET_RE_DEBUG_FLAGS_DECL;
 
     PERL_ARGS_ASSERT_HANDLE_REGEX_SETS;
 
-    if (LOC) {
+    if (LOC) {  /* XXX could make valid in UTF-8 locales */
         vFAIL("(?[...]) not valid in locale");
     }
-    RExC_uni_semantics = 1;
+    RExC_uni_semantics = 1;     /* The use of this operator implies /u.  This
+                                   is required so that the compile time values
+                                   are valid in all runtime cases */
 
     /* This will return only an ANYOF regnode, or (unlikely) something smaller
      * (such as EXACT).  Thus we can skip most everything if just sizing.  We
@@ -13218,16 +13338,7 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
      * upon an unescaped ']' that isn't one ending a regclass.  To do both
      * these things, we need to realize that something preceded by a backslash
      * is escaped, so we have to keep track of backslashes */
-    if (PASS2) {
-        Perl_ck_warner_d(aTHX_
-            packWARN(WARN_EXPERIMENTAL__REGEX_SETS),
-            "The regex_sets feature is experimental" REPORT_LOCATION,
-                UTF8fARG(UTF, (RExC_parse - RExC_precomp), RExC_precomp),
-                UTF8fARG(UTF,
-                         RExC_end - RExC_start - (RExC_parse - RExC_precomp),
-                         RExC_precomp + (RExC_parse - RExC_precomp)));
-    }
-    else {
+    if (SIZE_ONLY) {
         UV depth = 0; /* how many nested (?[...]) constructs */
 
         while (RExC_parse < RExC_end) {
@@ -13273,8 +13384,8 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                                   TRUE, /* strict */
                                   &current
                                  ))
-                        FAIL2("panic: regclass returned NULL to handle_sets, flags=%#"UVxf"",
-                              (UV) *flagp);
+                        FAIL2("panic: regclass returned NULL to handle_sets, "
+                              "flags=%#"UVxf"", (UV) *flagp);
 
                     /* function call leaves parse pointing to the ']', except
                      * if we faked it */
@@ -13308,69 +13419,124 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
         FAIL("Syntax error in (?[...])");
     }
 
-    /* Pass 2 only after this.  Everything in this construct is a
-     * metacharacter.  Operands begin with either a '\' (for an escape
-     * sequence), or a '[' for a bracketed character class.  Any other
-     * character should be an operator, or parenthesis for grouping.  Both
-     * types of operands are handled by calling regclass() to parse them.  It
-     * is called with a parameter to indicate to return the computed inversion
-     * list.  The parsing here is implemented via a stack.  Each entry on the
-     * stack is a single character representing one of the operators, or the
-     * '('; or else a pointer to an operand inversion list. */
+    /* Pass 2 only after this. */
+    Perl_ck_warner_d(aTHX_
+        packWARN(WARN_EXPERIMENTAL__REGEX_SETS),
+        "The regex_sets feature is experimental" REPORT_LOCATION,
+            UTF8fARG(UTF, (RExC_parse - RExC_precomp), RExC_precomp),
+            UTF8fARG(UTF,
+                     RExC_end - RExC_start - (RExC_parse - RExC_precomp),
+                     RExC_precomp + (RExC_parse - RExC_precomp)));
+
+    /* Everything in this construct is a metacharacter.  Operands begin with
+     * either a '\' (for an escape sequence), or a '[' for a bracketed
+     * character class.  Any other character should be an operator, or
+     * parenthesis for grouping.  Both types of operands are handled by calling
+     * regclass() to parse them.  It is called with a parameter to indicate to
+     * return the computed inversion list.  The parsing here is implemented via
+     * a stack.  Each entry on the stack is a single character representing one
+     * of the operators; or else a pointer to an operand inversion list. */
 
 #define IS_OPERAND(a)  (! SvIOK(a))
 
-    /* The stack starts empty.  It is a syntax error if the first thing parsed
-     * is a binary operator; everything else is pushed on the stack.  When an
-     * operand is parsed, the top of the stack is examined.  If it is a binary
-     * operator, the item before it should be an operand, and both are replaced
-     * by the result of doing that operation on the new operand and the one on
-     * the stack.   Thus a sequence of binary operands is reduced to a single
-     * one before the next one is parsed.
+    /* The stack is kept in Łukasiewicz order.  (That's pronounced similar
+     * to luke-a-shave-itch (or -itz), but people who didn't want to bother
+     * with prounouncing it called it Reverse Polish instead, but now that YOU
+     * know how to prounounce it you can use the correct term, thus giving due
+     * credit to the person who invented it, and impressing your geek friends.
+     * Wikipedia says that the pronounciation of "Ł" has been changing so that
+     * it is now more like an English initial W (as in wonk) than an L.)
+     *
+     * This means that, for example, 'a | b & c' is stored on the stack as
      *
-     * A unary operator may immediately follow a binary in the input, for
-     * example
+     * c  [4]
+     * b  [3]
+     * &  [2]
+     * a  [1]
+     * |  [0]
+     *
+     * where the numbers in brackets give the stack [array] element number.
+     * In this implementation, parentheses are not stored on the stack.
+     * Instead a '(' creates a "fence" so that the part of the stack below the
+     * fence is invisible except to the corresponding ')' (this allows us to
+     * replace testing for parens, by using instead subtraction of the fence
+     * position).  As new operands are processed they are pushed onto the stack
+     * (except as noted in the next paragraph).  New operators of higher
+     * precedence than the current final one are inserted on the stack before
+     * the lhs operand (so that when the rhs is pushed next, everything will be
+     * in the correct positions shown above.  When an operator of equal or
+     * lower precedence is encountered in parsing, all the stacked operations
+     * of equal or higher precedence are evaluated, leaving the result as the
+     * top entry on the stack.  This makes higher precedence operations
+     * evaluate before lower precedence ones, and causes operations of equal
+     * precedence to left associate.
+     *
+     * The only unary operator '!' is immediately pushed onto the stack when
+     * encountered.  When an operand is encountered, if the top of the stack is
+     * a '!", the complement is immediately performed, and the '!' popped.  The
+     * resulting value is treated as a new operand, and the logic in the
+     * previous paragraph is executed.  Thus in the expression
      *      [a] + ! [b]
-     * When an operand is parsed and the top of the stack is a unary operator,
-     * the operation is performed, and then the stack is rechecked to see if
-     * this new operand is part of a binary operation; if so, it is handled as
-     * above.
+     * the stack looks like
+     *
+     * !
+     * a
+     * +
+     *
+     * as 'b' gets parsed, the latter gets evaluated to '!b', and the stack
+     * becomes
+     *
+     * !b
+     * a
+     * +
+     *
+     * A ')' is treated as an operator with lower precedence than all the
+     * aforementioned ones, which causes all operations on the stack above the
+     * corresponding '(' to be evaluated down to a single resultant operand.
+     * Then the fence for the '(' is removed, and the operand goes through the
+     * algorithm above, without the fence.
+     *
+     * A separate stack is kept of the fence positions, so that the position of
+     * the latest so-far unbalanced '(' is at the top of it.
      *
-     * A '(' is simply pushed on the stack; it is valid only if the stack is
-     * empty, or the top element of the stack is an operator or another '('
-     * (for which the parenthesized expression will become an operand).  By the
-     * time the corresponding ')' is parsed everything in between should have
-     * been parsed and evaluated to a single operand (or else is a syntax
-     * error), and is handled as a regular operand */
+     * The ']' ending the construct is treated as the lowest operator of all,
+     * so that everything gets evaluated down to a single operand, which is the
+     * result */
 
     sv_2mortal((SV *)(stack = newAV()));
+    sv_2mortal((SV *)(fence_stack = newAV()));
 
     while (RExC_parse < RExC_end) {
-        I32 top_index = av_tindex(stack);
-        SV** top_ptr;
-        SV* current = NULL;
+        I32 top_index;              /* Index of top-most element in 'stack' */
+        SV** top_ptr;               /* Pointer to top 'stack' element */
+        SV* current = NULL;         /* To contain the current inversion list
+                                       operand */
+        SV* only_to_avoid_leaks;
 
         /* 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 '(?[ ])'");
         }
-        if ((curchar = UCHARAT(RExC_parse)) == ']') {
-            break;
-        }
+
+        curchar = UCHARAT(RExC_parse);
+
+redo_curchar:
+
+        top_index = av_tindex(stack);
 
         switch (curchar) {
+            SV** stacked_ptr;       /* Ptr to something already on 'stack' */
+            char stacked_operator;  /* The topmost operator on the 'stack'. */
+            SV* lhs;                /* Operand to the left of the operator */
+            SV* rhs;                /* Operand to the right of the operator */
+            SV* fence_ptr;          /* Pointer to top element of the fence
+                                       stack */
 
-            case '?':
-                if (av_tindex(stack) >= 0   /* This makes sure that we can
-                                               safely subtract 1 from
-                                               RExC_parse in the next clause.
-                                               If we have something on the
-                                               stack, we have parsed something
-                                             */
-                    && UCHARAT(RExC_parse - 1) == '('
-                    && RExC_parse < RExC_end)
+            case '(':
+
+                if (RExC_parse < RExC_end && (UCHARAT(RExC_parse + 1) == '?'))
                 {
                     /* If is a '(?', could be an embedded '(?flags:(?[...])'.
                      * This happens when we have some thing like
@@ -13385,14 +13551,18 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                      * interpolated expression evaluates to.  We use the flags
                      * from the interpolated pattern. */
                     U32 save_flags = RExC_flags;
-                    const char * const save_parse = ++RExC_parse;
+                    const char * save_parse;
 
+                    RExC_parse += 2;        /* Skip past the '(?' */
+                    save_parse = RExC_parse;
+
+                    /* Parse any flags for the '(?' */
                     parse_lparen_question_flags(pRExC_state);
 
                     if (RExC_parse == save_parse  /* Makes sure there was at
-                                                     least one flag (or this
-                                                     embedding wasn't compiled)
-                                                   */
+                                                     least one flag (or else
+                                                     this embedding wasn't
+                                                     compiled) */
                         || RExC_parse >= RExC_end - 4
                         || UCHARAT(RExC_parse) != ':'
                         || UCHARAT(++RExC_parse) != '('
@@ -13412,25 +13582,50 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                         }
                         vFAIL("Expecting '(?flags:(?[...'");
                     }
+
+                    /* Recurse, with the meat of the embedded expression */
                     RExC_parse++;
                     (void) handle_regex_sets(pRExC_state, &current, flagp,
                                                     depth+1, oregcomp_parse);
 
                     /* Here, 'current' contains the embedded expression's
                      * inversion list, and RExC_parse points to the trailing
-                     * ']'; the next character should be the ')' which will be
-                     * paired with the '(' that has been put on the stack, so
-                     * the whole embedded expression reduces to '(operand)' */
+                     * ']'; the next character should be the ')' */
                     RExC_parse++;
+                    assert(RExC_parse < RExC_end && UCHARAT(RExC_parse) == ')');
 
+                    /* Then the ')' matching the original '(' handled by this
+                     * case: statement */
+                    RExC_parse++;
+                    assert(RExC_parse < RExC_end && UCHARAT(RExC_parse) == ')');
+
+                    RExC_parse++;
                     RExC_flags = save_flags;
                     goto handle_operand;
                 }
-                /* FALLTHROUGH */
 
-            default:
-                RExC_parse += (UTF) ? UTF8SKIP(RExC_parse) : 1;
-                vFAIL("Unexpected character");
+                /* A regular '('.  Look behind for illegal syntax */
+                if (top_index - fence >= 0) {
+                    /* If the top entry on the stack is an operator, it had
+                     * better be a '!', otherwise the entry below the top
+                     * operand should be an operator */
+                    if ( ! (top_ptr = av_fetch(stack, top_index, FALSE))
+                        || (! IS_OPERAND(*top_ptr) && SvUV(*top_ptr) != '!')
+                        || top_index - fence < 1
+                        || ! (stacked_ptr = av_fetch(stack,
+                                                     top_index - 1,
+                                                     FALSE))
+                        || IS_OPERAND(*stacked_ptr))
+                    {
+                        RExC_parse++;
+                        vFAIL("Unexpected '(' with no preceding operator");
+                    }
+                }
+
+                /* Stack the position of this undealt-with left paren */
+                fence = top_index + 1;
+                av_push(fence_stack, newSViv(fence));
+                break;
 
             case '\\':
                 /* regclass() can only return RESTART_UTF8 if multi-char
@@ -13440,10 +13635,12 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                               FALSE, /* don't allow multi-char folds */
                               FALSE, /* don't silence non-portable warnings.  */
                               TRUE,  /* strict */
-                              &current
-                             ))
-                    FAIL2("panic: regclass returned NULL to handle_sets, flags=%#"UVxf"",
-                          (UV) *flagp);
+                              &current))
+                {
+                    FAIL2("panic: regclass returned NULL to handle_sets, "
+                          "flags=%#"UVxf"", (UV) *flagp);
+                }
+
                 /* regclass() will return with parsing just the \ sequence,
                  * leaving the parse pointer at the next thing to parse */
                 RExC_parse--;
@@ -13467,8 +13664,11 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                              TRUE,   /* strict */
                              &current
                             ))
-                    FAIL2("panic: regclass returned NULL to handle_sets, flags=%#"UVxf"",
-                          (UV) *flagp);
+                {
+                    FAIL2("panic: regclass returned NULL to handle_sets, "
+                          "flags=%#"UVxf"", (UV) *flagp);
+                }
+
                 /* function call leaves parse pointing to the ']', except if we
                  * faked it */
                 if (is_posix_class) {
@@ -13478,147 +13678,237 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                 goto handle_operand;
             }
 
+            case ']':
+                if (top_index >= 1) {
+                    goto join_operators;
+                }
+
+                /* Only a single operand on the stack: are done */
+                goto done;
+
+            case ')':
+                if (av_tindex(fence_stack) < 0) {
+                    RExC_parse++;
+                    vFAIL("Unexpected ')'");
+                }
+
+                 /* If at least two thing on the stack, treat this as an
+                  * operator */
+                if (top_index - fence >= 1) {
+                    goto join_operators;
+                }
+
+                /* Here only a single thing on the fenced stack, and there is a
+                 * fence.  Get rid of it */
+                fence_ptr = av_pop(fence_stack);
+                assert(fence_ptr);
+                fence = SvIV(fence_ptr) - 1;
+                SvREFCNT_dec_NN(fence_ptr);
+                fence_ptr = NULL;
+
+                if (fence < 0) {
+                    fence = 0;
+                }
+
+                /* Having gotten rid of the fence, we pop the operand at the
+                 * stack top and process it as a newly encountered operand */
+                current = av_pop(stack);
+                assert(IS_OPERAND(current));
+                goto handle_operand;
+
             case '&':
             case '|':
             case '+':
             case '-':
             case '^':
-                if (top_index < 0
+
+                /* These binary operators should have a left operand already
+                 * parsed */
+                if (   top_index - fence < 0
+                    || top_index - fence == 1
                     || ( ! (top_ptr = av_fetch(stack, top_index, FALSE)))
                     || ! IS_OPERAND(*top_ptr))
                 {
-                    RExC_parse++;
-                    vFAIL2("Unexpected binary operator '%c' with no preceding operand", curchar);
+                    goto unexpected_binary;
                 }
-                av_push(stack, newSVuv(curchar));
-                break;
 
-            case '!':
-                av_push(stack, newSVuv(curchar));
-                break;
+                /* If only the one operand is on the part of the stack visible
+                 * to us, we just place this operator in the proper position */
+                if (top_index - fence < 2) {
 
-            case '(':
-                if (top_index >= 0) {
-                    top_ptr = av_fetch(stack, top_index, FALSE);
-                    assert(top_ptr);
-                    if (IS_OPERAND(*top_ptr)) {
-                        RExC_parse++;
-                        vFAIL("Unexpected '(' with no preceding operator");
-                    }
+                    /* Place the operator before the operand */
+
+                    SV* lhs = av_pop(stack);
+                    av_push(stack, newSVuv(curchar));
+                    av_push(stack, lhs);
+                    break;
                 }
-                av_push(stack, newSVuv(curchar));
-                break;
 
-            case ')':
-            {
-                SV* lparen;
-                if (top_index < 1
-                    || ! (current = av_pop(stack))
-                    || ! IS_OPERAND(current)
-                    || ! (lparen = av_pop(stack))
-                    || IS_OPERAND(lparen)
-                    || SvUV(lparen) != '(')
+                /* But if there is something else on the stack, we need to
+                 * process it before this new operator if and only if the
+                 * stacked operation has equal or higher precedence than the
+                 * new one */
+
+             join_operators:
+
+                /* The operator on the stack is supposed to be below both its
+                 * operands */
+                if (   ! (stacked_ptr = av_fetch(stack, top_index - 2, FALSE))
+                    || IS_OPERAND(*stacked_ptr))
                 {
-                    SvREFCNT_dec(current);
+                    /* But if not, it's legal and indicates we are completely
+                     * done if and only if we're currently processing a ']',
+                     * which should be the final thing in the expression */
+                    if (curchar == ']') {
+                        goto done;
+                    }
+
+                  unexpected_binary:
                     RExC_parse++;
-                    vFAIL("Unexpected ')'");
+                    vFAIL2("Unexpected binary operator '%c' with no "
+                           "preceding operand", curchar);
                 }
-                top_index -= 2;
-                SvREFCNT_dec_NN(lparen);
+                stacked_operator = (char) SvUV(*stacked_ptr);
 
-                /* FALLTHROUGH */
-            }
+                if (regex_set_precedence(curchar)
+                    > regex_set_precedence(stacked_operator))
+                {
+                    /* Here, the new operator has higher precedence than the
+                     * stacked one.  This means we need to add the new one to
+                     * the stack to await its rhs operand (and maybe more
+                     * stuff).  We put it before the lhs operand, leaving
+                     * untouched the stacked operator and everything below it
+                     * */
+                    lhs = av_pop(stack);
+                    assert(IS_OPERAND(lhs));
 
-              handle_operand:
+                    av_push(stack, newSVuv(curchar));
+                    av_push(stack, lhs);
+                    break;
+                }
 
-                /* Here, we have an operand to process, in 'current' */
+                /* Here, the new operator has equal or lower precedence than
+                 * what's already there.  This means the operation already
+                 * there should be performed now, before the new one. */
+                rhs = av_pop(stack);
+                lhs = av_pop(stack);
 
-                if (top_index < 0) {    /* Just push if stack is empty */
-                    av_push(stack, current);
-                }
-                else {
-                    SV* top = av_pop(stack);
-                    SV *prev = NULL;
-                    char current_operator;
-
-                    if (IS_OPERAND(top)) {
-                        SvREFCNT_dec_NN(top);
-                        SvREFCNT_dec_NN(current);
-                        vFAIL("Operand with no preceding operator");
+                assert(IS_OPERAND(rhs));
+                assert(IS_OPERAND(lhs));
+
+                switch (stacked_operator) {
+                    case '&':
+                        _invlist_intersection(lhs, rhs, &rhs);
+                        break;
+
+                    case '|':
+                    case '+':
+                        _invlist_union(lhs, rhs, &rhs);
+                        break;
+
+                    case '-':
+                        _invlist_subtract(lhs, rhs, &rhs);
+                        break;
+
+                    case '^':   /* The union minus the intersection */
+                    {
+                        SV* i = NULL;
+                        SV* u = NULL;
+                        SV* element;
+
+                        _invlist_union(lhs, rhs, &u);
+                        _invlist_intersection(lhs, rhs, &i);
+                        /* _invlist_subtract will overwrite rhs
+                            without freeing what it already contains */
+                        element = rhs;
+                        _invlist_subtract(u, i, &rhs);
+                        SvREFCNT_dec_NN(i);
+                        SvREFCNT_dec_NN(u);
+                        SvREFCNT_dec_NN(element);
+                        break;
                     }
-                    current_operator = (char) SvUV(top);
-                    switch (current_operator) {
-                        case '(':   /* Push the '(' back on followed by the new
-                                       operand */
-                            av_push(stack, top);
-                            av_push(stack, current);
-                            SvREFCNT_inc(top);  /* Counters the '_dec' done
-                                                   just after the 'break', so
-                                                   it doesn't get wrongly freed
-                                                 */
-                            break;
+                }
+                SvREFCNT_dec(lhs);
+
+                /* Here, the higher precedence operation has been done, and the
+                 * result is in 'rhs'.  We overwrite the stacked operator with
+                 * the result.  Then we redo this code to either push the new
+                 * operator onto the stack or perform any higher precedence
+                 * stacked operation */
+                only_to_avoid_leaks = av_pop(stack);
+                SvREFCNT_dec(only_to_avoid_leaks);
+                av_push(stack, rhs);
+                goto redo_curchar;
+
+            case '!':   /* Highest priority, right associative, so just push
+                           onto stack */
+                av_push(stack, newSVuv(curchar));
+                break;
 
-                        case '!':
-                            _invlist_invert(current);
-
-                            /* Unlike binary operators, the top of the stack,
-                             * now that this unary one has been popped off, may
-                             * legally be an operator, and we now have operand
-                             * for it. */
-                            top_index--;
-                            SvREFCNT_dec_NN(top);
-                            goto handle_operand;
-
-                        case '&':
-                            prev = av_pop(stack);
-                            _invlist_intersection(prev,
-                                                   current,
-                                                   &current);
-                            av_push(stack, current);
-                            break;
+            default:
+                RExC_parse += (UTF) ? UTF8SKIP(RExC_parse) : 1;
+                vFAIL("Unexpected character");
 
-                        case '|':
-                        case '+':
-                            prev = av_pop(stack);
-                            _invlist_union(prev, current, &current);
-                            av_push(stack, current);
-                            break;
+          handle_operand:
+
+            /* Here 'current' is the operand.  If something is already on the
+             * stack, we have to check if it is a !. */
+            top_index = av_tindex(stack);   /* Code above may have altered the
+                                             * stack in the time since we
+                                             * earlier set 'top_index'. */
+            if (top_index - fence >= 0) {
+                /* If the top entry on the stack is an operator, it had better
+                 * be a '!', otherwise the entry below the top operand should
+                 * be an operator */
+                top_ptr = av_fetch(stack, top_index, FALSE);
+                assert(top_ptr);
+                if (! IS_OPERAND(*top_ptr)) {
+
+                    /* The only permissible operator at the top of the stack is
+                     * '!', which is applied immediately to this operand. */
+                    curchar = (char) SvUV(*top_ptr);
+                    if (curchar != '!') {
+                        SvREFCNT_dec(current);
+                        vFAIL2("Unexpected binary operator '%c' with no "
+                                "preceding operand", curchar);
+                    }
 
-                        case '-':
-                            prev = av_pop(stack);;
-                            _invlist_subtract(prev, current, &current);
-                            av_push(stack, current);
-                            break;
+                    _invlist_invert(current);
 
-                        case '^':   /* The union minus the intersection */
-                        {
-                            SV* i = NULL;
-                            SV* u = NULL;
-                            SV* element;
-
-                            prev = av_pop(stack);
-                            _invlist_union(prev, current, &u);
-                            _invlist_intersection(prev, current, &i);
-                            /* _invlist_subtract will overwrite current
-                                without freeing what it already contains */
-                            element = current;
-                            _invlist_subtract(u, i, &current);
-                            av_push(stack, current);
-                            SvREFCNT_dec_NN(i);
-                            SvREFCNT_dec_NN(u);
-                            SvREFCNT_dec_NN(element);
-                            break;
-                        }
+                    only_to_avoid_leaks = av_pop(stack);
+                    SvREFCNT_dec(only_to_avoid_leaks);
+                    top_index = av_tindex(stack);
 
-                        default:
-                            Perl_croak(aTHX_ "panic: Unexpected item on '(?[ ])' stack");
+                    /* And we redo with the inverted operand.  This allows
+                     * handling multiple ! in a row */
+                    goto handle_operand;
+                }
+                          /* Single operand is ok only for the non-binary ')'
+                           * operator */
+                else if ((top_index - fence == 0 && curchar != ')')
+                         || (top_index - fence > 0
+                             && (! (stacked_ptr = av_fetch(stack,
+                                                           top_index - 1,
+                                                           FALSE))
+                                 || IS_OPERAND(*stacked_ptr))))
+                {
+                    SvREFCNT_dec(current);
+                    vFAIL("Operand with no preceding operator");
                 }
-                SvREFCNT_dec_NN(top);
-                SvREFCNT_dec(prev);
             }
-        }
+
+            /* Here there was nothing on the stack or the top element was
+             * another operand.  Just add this new one */
+            av_push(stack, current);
+
+        } /* End of switch on next parse token */
 
         RExC_parse += (UTF) ? UTF8SKIP(RExC_parse) : 1;
+    } /* End of loop parsing through the construct */
+
+  done:
+    if (av_tindex(fence_stack) >= 0) {
+        vFAIL("Unmatched (");
     }
 
     if (av_tindex(stack) < 0   /* Was empty */
@@ -13626,6 +13916,7 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
         || ! IS_OPERAND(final)
         || av_tindex(stack) >= 0)  /* More left on stack */
     {
+        SvREFCNT_dec(final);
         vFAIL("Incomplete expression within '(?[ ])'");
     }
 
@@ -13650,6 +13941,8 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
         }
     }
 
+    /* About to generate an ANYOF (or similar) node from the inversion list we
+     * have calculated */
     save_parse = RExC_parse;
     RExC_parse = SvPV(result_string, len);
     save_end = RExC_end;
@@ -14066,14 +14359,24 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
            case 'H':   namedclass = ANYOF_NHORIZWS;    break;
             case 'N':  /* Handle \N{NAME} in class */
                 {
-                    SV *as_text;
-                    STRLEN cp_count = grok_bslash_N(pRExC_state, NULL, &value,
-                                                    flagp, depth, &as_text);
-                    if (*flagp & RESTART_UTF8)
-                        FAIL("panic: grok_bslash_N set RESTART_UTF8");
-                    if (cp_count != 1) {    /* The typical case drops through */
-                        assert(cp_count != (STRLEN) -1);
-                        if (cp_count == 0) {
+                    const char * const backslash_N_beg = RExC_parse - 2;
+                    int cp_count;
+
+                    if (! grok_bslash_N(pRExC_state,
+                                        NULL,      /* No regnode */
+                                        &value,    /* Yes single value */
+                                        &cp_count, /* Multiple code pt count */
+                                        flagp,
+                                        depth)
+                    ) {
+
+                        if (*flagp & RESTART_UTF8)
+                            FAIL("panic: grok_bslash_N set RESTART_UTF8");
+
+                        if (cp_count < 0) {
+                            vFAIL("\\N in a character class must be a named character: \\N{...}");
+                        }
+                        else if (cp_count == 0) {
                             if (strict) {
                                 RExC_parse++;   /* Position after the "}" */
                                 vFAIL("Zero length \\N{}");
@@ -14093,16 +14396,18 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                                     else if (PASS2) {
                                         ckWARNreg(RExC_parse, "Using just the first character returned by \\N{} in character class");
                                     }
+                                    break; /* <value> contains the first code
+                                              point. Drop out of the switch to
+                                              process it */
                                 }
                                 else {
+                                    SV * multi_char_N = newSVpvn(backslash_N_beg,
+                                                 RExC_parse - backslash_N_beg);
                                     multi_char_matches
                                         = add_multi_match(multi_char_matches,
-                                                          as_text,
+                                                          multi_char_N,
                                                           cp_count);
                                 }
-                                break; /* <value> contains the first code
-                                          point. Drop out of the switch to
-                                          process it */
                             }
                         } /* End of cp_count != 1 */
 
@@ -14614,7 +14919,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                 vFAIL2utf8f(
                     "Invalid [] range \"%"UTF8f"\"",
                     UTF8fARG(UTF, w, rangebegin));
-                NOT_REACHED; /* NOT REACHED */
+                NOT_REACHED; /* NOTREACHED */
            }
        }
        else {
@@ -14788,9 +15093,18 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                          * same element, neither should be a digit. */
                         if (index_start == index_final) {
                             assert(! ELEMENT_RANGE_MATCHES_INVLIST(index_start)
-                            || invlist_array(PL_XPosix_ptrs[_CC_DIGIT])[index_start+1]
-                            - invlist_array(PL_XPosix_ptrs[_CC_DIGIT])[index_start]
-                            == 10);
+                            || (invlist_array(PL_XPosix_ptrs[_CC_DIGIT])[index_start+1]
+                               - invlist_array(PL_XPosix_ptrs[_CC_DIGIT])[index_start]
+                               == 10)
+                               /* But actually Unicode did have one group of 11
+                                * 'digits' in 5.2, so in case we are operating
+                                * on that version, let that pass */
+                            || (invlist_array(PL_XPosix_ptrs[_CC_DIGIT])[index_start+1]
+                               - invlist_array(PL_XPosix_ptrs[_CC_DIGIT])[index_start]
+                                == 11
+                               && invlist_array(PL_XPosix_ptrs[_CC_DIGIT])[index_start]
+                                == 0x19D0)
+                            );
                         }
                         else if ((index_start >= 0
                                   && ELEMENT_RANGE_MATCHES_INVLIST(index_start))
@@ -16481,8 +16795,7 @@ Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_
     || _CC_UPPER != 4 || _CC_PUNCT != 5 || _CC_PRINT != 6                   \
     || _CC_ALPHANUMERIC != 7 || _CC_GRAPH != 8 || _CC_CASED != 9            \
     || _CC_SPACE != 10 || _CC_BLANK != 11 || _CC_XDIGIT != 12               \
-    || _CC_PSXSPC != 13 || _CC_CNTRL != 14 || _CC_ASCII != 15               \
-    || _CC_VERTSPACE != 16
+    || _CC_CNTRL != 13 || _CC_ASCII != 14 || _CC_VERTSPACE != 15
   #error Need to adjust order of anyofs[]
 #endif
         "\\w",
@@ -16511,8 +16824,6 @@ Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_
         "[:^blank:]",
         "[:xdigit:]",
         "[:^xdigit:]",
-        "[:space:]",
-        "[:^space:]",
         "[:cntrl:]",
         "[:^cntrl:]",
         "[:ascii:]",
index ebcf2fb..244c72f 100644 (file)
--- a/regcomp.h
+++ b/regcomp.h
@@ -474,8 +474,6 @@ struct regnode_ssc {
 #define ANYOF_NLOWER   ((ANYOF_LOWER) + 1)
 #define ANYOF_PRINT    ((_CC_PRINT) * 2)
 #define ANYOF_NPRINT   ((ANYOF_PRINT) + 1)
-#define ANYOF_PSXSPC   ((_CC_PSXSPC) * 2)    /* POSIX space: \s plus the vertical tab */
-#define ANYOF_NPSXSPC  ((ANYOF_PSXSPC) + 1)
 #define ANYOF_PUNCT    ((_CC_PUNCT) * 2)
 #define ANYOF_NPUNCT   ((ANYOF_PUNCT) + 1)
 #define ANYOF_SPACE    ((_CC_SPACE) * 2)     /* \s */
index 7daa241..f79b874 100644 (file)
@@ -43,15 +43,15 @@ GPOS        GPOS,       no        ; Matches where last m//g left off.
 # in regcomp.c uses the enum value of the modifier as an offset from the /d
 # version.  The complements must come after the non-complements.
 # BOUND, POSIX and their complements are affected, as well as EXACTF.
-BOUND       BOUND,      no        ; Match "" at any word boundary using native charset rules for non-utf8, otherwise Unicode rules
-BOUNDL      BOUND,      no        ; Match "" at any boundary of a given type using locale rules
+BOUND       BOUND,      no        ; Like BOUNDA for non-utf8, otherwise match "" between any Unicode \w\W or \W\w
+BOUNDL      BOUND,      no        ; Like BOUND/BOUNDU, but \w and \W are defined by current locale
 BOUNDU      BOUND,      no        ; Match "" at any boundary of a given type using Unicode rules
-BOUNDA      BOUND,      no        ; Match "" at any boundary of a given type using ASCII rules
+BOUNDA      BOUND,      no        ; Match "" at any boundary between \w\W or \W\w, where \w is [_a-zA-Z0-9]
 # All NBOUND nodes are required by code in regexec.c to be greater than all BOUND ones
-NBOUND      NBOUND,     no        ; Match "" at any word non-boundary using native charset rules for non-utf8, otherwise Unicode rules
-NBOUNDL     NBOUND,     no        ; Match "" at any boundary of a given type using locale rules
-NBOUNDU     NBOUND,     no        ; Match "" at any boundary of a given type using using Unicode rules
-NBOUNDA     NBOUND,     no        ; Match "" at any boundary of a given type using using ASCII rules
+NBOUND      NBOUND,     no        ; Like NBOUNDA for non-utf8, otherwise match "" between any Unicode \w\w or \W\W
+NBOUNDL     NBOUND,     no        ; Like NBOUND/NBOUNDU, but \w and \W are defined by current locale
+NBOUNDU     NBOUND,     no        ; Match "" at any non-boundary of a given type using using Unicode rules
+NBOUNDA     NBOUND,     no        ; Match "" betweeen any \w\w or \W\W, where \w is [_a-zA-Z0-9]
 
 #* [Special] alternatives:
 REG_ANY     REG_ANY,    no 0 S    ; Match any one character (except newline).
index 8a682dc..4b46bd0 100644 (file)
@@ -38,7 +38,6 @@ my @properties = qw(
     LOWER
     NON_FINAL_FOLD
     PRINT
-    PSXSPC
     PUNCT
     QUOTEMETA
     SPACE
@@ -219,8 +218,6 @@ for my $ord (0..255) {
             $re = qr/\p{XPerlSpace}/;
         } elsif ($name eq 'IDFIRST') {
             $re = qr/[_\p{Alpha}]/;
-        } elsif ($name eq 'PSXSPC') {
-            $re = qr/[\v\p{Space}]/;
         } elsif ($name eq 'WORDCHAR') {
             $re = qr/\p{XPosixWord}/;
         } elsif ($name eq 'ALPHANUMERIC') {
index 93bdc29..48215c4 100644 (file)
@@ -56,6 +56,68 @@ my %exceptions_to_where_to_define =
                           _Perl_IDStart              => 'PERL_IN_UTF8_C',
                         );
 
+# This hash contains the properties with enums that have hard-coded references
+# to them in C code.  Its only use is to make sure that if perl is compiled
+# with an older Unicode data set, that all the enum values the code is
+# expecting will still be in the enum typedef.  Thus the code doesn't have to
+# change.  The Unicode version won't have any code points that have these enum
+# values, so the code that handles them will not get exercised.  This is far
+# better than having to #ifdef things.
+my %hard_coded_enums =
+ ( gcb => [
+            'Control',
+            'CR',
+            'Extend',
+            'L',
+            'LF',
+            'LV',
+            'LVT',
+            'Other',
+            'Prepend',
+            'Regional_Indicator',
+            'SpacingMark',
+            'T',
+            'V',
+        ],
+   sb  => [
+            'ATerm',
+            'Close',
+            'CR',
+            'Extend',
+            'Format',
+            'LF',
+            'Lower',
+            'Numeric',
+            'OLetter',
+            'Other',
+            'SContinue',
+            'Sep',
+            'Sp',
+            'STerm',
+            'Upper',
+        ],
+   wb  => [
+            'ALetter',
+            'CR',
+            'Double_Quote',
+            'Extend',
+            'ExtendNumLet',
+            'Format',
+            'Hebrew_Letter',
+            'Katakana',
+            'LF',
+            'MidLetter',
+            'MidNum',
+            'MidNumLet',
+            'Newline',
+            'Numeric',
+            'Other',
+            'Regional_Indicator',
+            'Single_Quote',
+            'UNKNOWN',
+        ],
+);
+
 my @a2n;
 
 sub uniques {
@@ -174,14 +236,31 @@ sub output_invmap ($$$$$$$) {
 
     if ($input_format eq 's') {
         $prop_name = (prop_aliases($prop_name))[1]; # Get full name
+        my $short_name = (prop_aliases($prop_name))[0];
             my @enums = prop_values($prop_name);
             if (! @enums) {
                 die "Only enum properties are currently handled; '$prop_name' isn't one";
             }
             else {
 
-                # Convert short names to long, add in the extras, and sort.
+                # Convert short names to long
                 @enums = map { (prop_value_aliases($prop_name, $_))[1] } @enums;
+
+                my @expected_enums = @{$hard_coded_enums{lc $short_name}};
+                die 'You need to update %hard_coded_enums to reflect new entries in this Unicode version'
+                    if @expected_enums < @enums;
+
+                # Remove the enums found in the input from the ones we expect
+                for (my $i = @expected_enums - 1; $i >= 0; $i--) {
+                    splice(@expected_enums, $i, 1)
+                                if grep { $expected_enums[$i] eq $_ } @enums;
+                }
+
+                # The ones remaining must be because we're using an older
+                # Unicode version.  Add them to the list.
+                push @enums, @expected_enums;
+
+                # Add in the extra values coded into this program, and sort.
                 push @enums, split /,/, $extra_enums if $extra_enums ne "";
                 @enums = sort @enums;
 
@@ -199,13 +278,11 @@ sub output_invmap ($$$$$$$) {
             switch_pound_if($name, 'PERL_IN_REGEXEC_C');
         {
 
-            my $short_name = (prop_aliases($prop_name))[0];
-
             # The short names tend to be two lower case letters, but it looks
             # better for those if they are upper. XXX
             $short_name = uc($short_name) if length($short_name) < 3
                                              || substr($short_name, 0, 1) =~ /[[:lower:]]/;
-            $name_prefix = "PL_${short_name}_";
+            $name_prefix = "${short_name}_";
             my $enum_count = keys %enums;
             print $out_fh "\n#define ${name_prefix}ENUM_COUNT ", scalar keys %enums, "\n";
 
@@ -710,16 +787,22 @@ for my $charset (get_supported_code_pages()) {
     print $out_fh "\n" . get_conditional_compile_line_end();
 }
 
-my @sources = ($0, "lib/Unicode/UCD.pm");
+my $sources_list = "lib/unicore/mktables.lst";
+my @sources = ($0, qw(lib/unicore/mktables lib/Unicode/UCD.pm));
 {
     # Depend on mktables’ own sources.  It’s a shorter list of files than
     # those that Unicode::UCD uses.
-    open my $mktables_list, "lib/unicore/mktables.lst"
-        or die "$0 cannot open lib/unicore/mktables.lst: $!";
-    while(<$mktables_list>) {
-        last if /===/;
-        chomp;
-        push @sources, "lib/unicore/$_" if /^[^#]/;
+    if (! open my $mktables_list, $sources_list) {
+
+          # This should force a rebuild once $sources_list exists
+          push @sources, $sources_list;
+    }
+    else {
+        while(<$mktables_list>) {
+            last if /===/;
+            chomp;
+            push @sources, "lib/unicore/$_" if /^[^#]/;
+        }
     }
 }
 read_only_bottom_close_and_rename($out_fh, \@sources)
index e47f5d3..06ebca6 100644 (file)
@@ -381,7 +381,7 @@ addbits($_, 4 => qw(OPpTARGET_MY TARGMY))
     for ops_with_flag('T'),
     # This flag is also used to indicate matches against implicit $_,
     # where $_ is lexical; e.g. my $_; ....; /foo/
-    qw(match subst trans transr);
+    qw(match subst pushre qr trans transr);
 ;
 
 
index 9a83e54..0e12d8e 100755 (executable)
@@ -1456,7 +1456,26 @@ EOF
     if($path eq '-') {
        print $out_fh "/* ex: set ro: */\n";
     } else {
-       read_only_bottom_close_and_rename($out_fh, [$0])
+        # Some of the sources for these macros come from Unicode tables
+        my $sources_list = "lib/unicore/mktables.lst";
+        my @sources = ($0, qw(lib/unicore/mktables lib/Unicode/UCD.pm));
+        {
+            # Depend on mktables’ own sources.  It’s a shorter list of files than
+            # those that Unicode::UCD uses.
+            if (! open my $mktables_list, $sources_list) {
+
+                # This should force a rebuild once $sources_list exists
+                push @sources, $sources_list;
+            }
+            else {
+                while(<$mktables_list>) {
+                    last if /===/;
+                    chomp;
+                    push @sources, "lib/unicore/$_" if /^[^#]/;
+                }
+            }
+        }
+        read_only_bottom_close_and_rename($out_fh, \@sources)
     }
 }
 
index abeecba..81069fa 100644 (file)
@@ -182,7 +182,13 @@ sub read_only_bottom_close_and_rename {
     if ($sources) {
        $comment = "Generated from:\n";
        foreach my $file (sort @$sources) {
-           my $digest = digest($file);
+            my $digest = (-e $file)
+                         ? digest($file)
+                           # Use a random number that won't match the real
+                           # digest, so will always show as out-of-date, so
+                           # Porting tests likely will fail drawing attention
+                           # to the problem.
+                         : int(rand(1_000_000));
            $comment .= "$digest $file\n";
        }
     }
index 2bb7122..cd03a4a 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -38,7 +38,7 @@
 #endif
 
 #define B_ON_NON_UTF8_LOCALE_IS_WRONG            \
-      "Use of \\b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale"
+      "Use of \\b{} or \\B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale"
 
 /*
  * pregcomp and pregexec -- regsub and regerror are not used in perl
@@ -456,7 +456,6 @@ S_isFOO_lc(pTHX_ const U8 classnum, const U8 character)
         case _CC_ENUM_GRAPH:     return isGRAPH_LC(character);
         case _CC_ENUM_LOWER:     return isLOWER_LC(character);
         case _CC_ENUM_PRINT:     return isPRINT_LC(character);
-        case _CC_ENUM_PSXSPC:    return isPSXSPC_LC(character);
         case _CC_ENUM_PUNCT:     return isPUNCT_LC(character);
         case _CC_ENUM_SPACE:     return isSPACE_LC(character);
         case _CC_ENUM_UPPER:     return isUPPER_LC(character);
@@ -513,9 +512,7 @@ S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8* character)
     }
 
     switch ((_char_class_number) classnum) {
-        case _CC_ENUM_SPACE:
-        case _CC_ENUM_PSXSPC:    return is_XPERLSPACE_high(character);
-
+        case _CC_ENUM_SPACE:     return is_XPERLSPACE_high(character);
         case _CC_ENUM_BLANK:     return is_HORIZWS_high(character);
         case _CC_ENUM_XDIGIT:    return is_XDIGIT_high(character);
         case _CC_ENUM_VERTSPACE: return is_VERTWS_high(character);
@@ -859,7 +856,7 @@ Perl_re_intuit_start(pTHX_
                 "  At restart: rx_origin=%"IVdf" Check offset min: %"IVdf
                 " Start shift: %"IVdf" End shift %"IVdf
                 " Real end Shift: %"IVdf"\n",
-                (IV)(rx_origin - strpos),
+                (IV)(rx_origin - strbeg),
                 (IV)prog->check_offset_min,
                 (IV)start_shift,
                 (IV)end_shift,
@@ -907,16 +904,16 @@ Perl_re_intuit_start(pTHX_
             }
         }
 
-       DEBUG_OPTIMISE_MORE_r({
-            PerlIO_printf(Perl_debug_log, "  fbm_instr len=%d str=<%.*s>\n",
-                (int)(end_point - start_point),
-                (int)(end_point - start_point) > 20 ? 20 : (int)(end_point - start_point), 
-                start_point);
-        });
-
        check_at = fbm_instr( start_point, end_point,
                      check, multiline ? FBMrf_MULTILINE : 0);
 
+       DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
+            "  doing 'check' fbm scan, [%"IVdf"..%"IVdf"] gave %"IVdf"\n",
+            (IV)((char*)start_point - strbeg),
+            (IV)((char*)end_point   - strbeg),
+            (IV)(check_at ? check_at - strbeg : -1)
+        ));
+
         /* Update the count-of-usability, remove useless subpatterns,
             unshift s.  */
 
@@ -934,9 +931,6 @@ Perl_re_intuit_start(pTHX_
 
         if (!check_at)
             goto fail_finish;
-        /* Finish the diagnostic message */
-        DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log, "%ld...\n", (long)(check_at - strpos)) );
-
         /* set rx_origin to the minimum position where the regex could start
          * matching, given the constraint of the just-matched check substring.
          * But don't set it lower than previously.
@@ -944,6 +938,12 @@ Perl_re_intuit_start(pTHX_
 
         if (check_at - rx_origin > prog->check_offset_max)
             rx_origin = HOP3c(check_at, -prog->check_offset_max, rx_origin);
+        /* Finish the diagnostic message */
+        DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
+            "%ld (rx_origin now %"IVdf")...\n",
+            (long)(check_at - strbeg),
+            (IV)(rx_origin - strbeg)
+        ));
     }
 
 
@@ -1047,12 +1047,34 @@ Perl_re_intuit_start(pTHX_
 
         must = utf8_target ? other->utf8_substr : other->substr;
         assert(SvPOK(must));
-        s = fbm_instr(
-            (unsigned char*)s,
-            (unsigned char*)last + SvCUR(must) - (SvTAIL(must)!=0),
-            must,
-            multiline ? FBMrf_MULTILINE : 0
-        );
+        {
+            char *from = s;
+            char *to   = last + SvCUR(must) - (SvTAIL(must)!=0);
+
+            if (from > to) {
+                s = NULL;
+                DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
+                    "  skipping 'other' fbm scan: %"IVdf" > %"IVdf"\n",
+                    (IV)(from - strbeg),
+                    (IV)(to   - strbeg)
+                ));
+            }
+            else {
+                s = fbm_instr(
+                    (unsigned char*)from,
+                    (unsigned char*)to,
+                    must,
+                    multiline ? FBMrf_MULTILINE : 0
+                );
+                DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
+                    "  doing 'other' fbm scan, [%"IVdf"..%"IVdf"] gave %"IVdf"\n",
+                    (IV)(from - strbeg),
+                    (IV)(to   - strbeg),
+                    (IV)(s ? s - strbeg : -1)
+                ));
+            }
+        }
+
         DEBUG_EXECUTE_r({
             RE_PV_QUOTED_DECL(quoted, utf8_target, PERL_DEBUG_PAD_ZERO(0),
                 SvPVX_const(must), RE_SV_DUMPLEN(must), 30);
@@ -1068,29 +1090,27 @@ Perl_re_intuit_start(pTHX_
              * find it before there, we never will */
             if (last >= last1) {
                 DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
-                                        ", giving up...\n"));
+                                        "; giving up...\n"));
                 goto fail_finish;
             }
 
             /* try to find the check substr again at a later
              * position. Maybe next time we'll find the "other" substr
              * in range too */
-            DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
-                ", trying %s at offset %ld...\n",
-                (other_ix ? "floating" : "anchored"),
-                (long)(HOP3c(check_at, 1, strend) - strpos)));
-
             other_last = HOP3c(last, 1, strend) /* highest failure */;
             rx_origin =
                 other_ix /* i.e. if other-is-float */
                     ? HOP3c(rx_origin, 1, strend)
                     : HOP4c(last, 1 - other->min_offset, strbeg, strend);
+            DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
+                "; about to retry %s at offset %ld (rx_origin now %"IVdf")...\n",
+                (other_ix ? "floating" : "anchored"),
+                (long)(HOP3c(check_at, 1, strend) - strbeg),
+                (IV)(rx_origin - strbeg)
+            ));
             goto restart;
         }
         else {
-            DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log, " at offset %ld...\n",
-                  (long)(s - strpos)));
-
             if (other_ix) { /* if (other-is-float) */
                 /* other_last is set to s, not s+1, since its possible for
                  * a floating substr to fail first time, then succeed
@@ -1106,6 +1126,12 @@ Perl_re_intuit_start(pTHX_
                 rx_origin = HOP3c(s, -other->min_offset, strbeg);
                 other_last = HOP3c(s, 1, strend);
             }
+            DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
+                " at offset %ld (rx_origin now %"IVdf")...\n",
+                  (long)(s - strbeg),
+                (IV)(rx_origin - strbeg)
+              ));
+
         }
     }
     else {
@@ -1113,13 +1139,13 @@ Perl_re_intuit_start(pTHX_
             PerlIO_printf(Perl_debug_log,
                 "  Check-only match: offset min:%"IVdf" max:%"IVdf
                 " check_at:%"IVdf" rx_origin:%"IVdf" rx_origin-check_at:%"IVdf
-                " strend-strpos:%"IVdf"\n",
+                " strend:%"IVdf"\n",
                 (IV)prog->check_offset_min,
                 (IV)prog->check_offset_max,
-                (IV)(check_at-strpos),
-                (IV)(rx_origin-strpos),
+                (IV)(check_at-strbeg),
+                (IV)(rx_origin-strbeg),
                 (IV)(rx_origin-check_at),
-                (IV)(strend-strpos)
+                (IV)(strend-strbeg)
             )
         );
     }
@@ -1140,7 +1166,7 @@ Perl_re_intuit_start(pTHX_
          * scanning ahead for the next \n or the next substr is debatable.
          * On the one hand you'd expect rare substrings to appear less
          * often than \n's. On the other hand, searching for \n means
-         * we're effectively flipping been check_substr and "\n" on each
+         * we're effectively flipping between check_substr and "\n" on each
          * iteration as the current "rarest" string candidate, which
          * means for example that we'll quickly reject the whole string if
          * hasn't got a \n, rather than trying every substr position
@@ -1169,8 +1195,8 @@ Perl_re_intuit_start(pTHX_
              * check was anchored (and thus has no wiggle room),
              * or check was float and rx_origin is above the float range */
             DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
-                "  Found /%s^%s/m, restarting lookup for check-string at offset %ld...\n",
-                PL_colors[0], PL_colors[1], (long)(rx_origin - strpos)));
+                "  Found /%s^%s/m, about to restart lookup for check-string with rx_origin %ld...\n",
+                PL_colors[0], PL_colors[1], (long)(rx_origin - strbeg)));
             goto restart;
         }
 
@@ -1185,18 +1211,19 @@ Perl_re_intuit_start(pTHX_
              * didn't contradict, so just retry the anchored "other"
              * substr */
             DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
-                "  Found /%s^%s/m at offset %ld, rescanning for anchored from offset %ld...\n",
+                "  Found /%s^%s/m, rescanning for anchored from offset %ld (rx_origin now %"IVdf")...\n",
                 PL_colors[0], PL_colors[1],
-                (long)(rx_origin - strpos),
-                (long)(rx_origin - strpos + prog->anchored_offset)));
+                (long)(rx_origin - strbeg + prog->anchored_offset),
+                (long)(rx_origin - strbeg)
+            ));
             goto do_other_substr;
         }
 
         /* success: we don't contradict the found floating substring
          * (and there's no anchored substr). */
         DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
-            "  Found /%s^%s/m at offset %ld...\n",
-            PL_colors[0], PL_colors[1], (long)(rx_origin - strpos)));
+            "  Found /%s^%s/m with rx_origin %ld...\n",
+            PL_colors[0], PL_colors[1], (long)(rx_origin - strbeg)));
     }
     else {
         DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
@@ -1288,11 +1315,15 @@ Perl_re_intuit_start(pTHX_
                          * The condition above is in bytes rather than
                          * chars for efficiency. It's conservative, in
                          * that it errs on the side of doing 'goto
-                         * do_other_substr', where a more accurate
-                         * char-based calculation will be done */
+                         * do_other_substr'. In this case, at worst,
+                         * an extra anchored search may get done, but in
+                         * practice the extra fbm_instr() is likely to
+                         * get skipped anyway. */
                         DEBUG_EXECUTE_r( PerlIO_printf(Perl_debug_log,
-                                  "  Looking for anchored substr starting at offset %ld...\n",
-                                  (long)(other_last - strpos)) );
+                            "  about to retry anchored at offset %ld (rx_origin now %"IVdf")...\n",
+                            (long)(other_last - strbeg),
+                            (IV)(rx_origin - strbeg)
+                        ));
                         goto do_other_substr;
                     }
                 }
@@ -1310,9 +1341,9 @@ Perl_re_intuit_start(pTHX_
                      * search for the next \n if any, its safe here */
                     rx_origin++;
                     DEBUG_EXECUTE_r( PerlIO_printf(Perl_debug_log,
-                              "  Looking for /%s^%s/m starting at offset %ld...\n",
+                              "  about to look for /%s^%s/m starting at rx_origin %ld...\n",
                               PL_colors[0], PL_colors[1],
-                              (long)(rx_origin - strpos)) );
+                              (long)(rx_origin - strbeg)) );
                     goto postprocess_substr_matches;
                 }
 
@@ -1338,9 +1369,11 @@ Perl_re_intuit_start(pTHX_
                 goto fail;
             }
             DEBUG_EXECUTE_r( PerlIO_printf(Perl_debug_log,
-                "  Looking for %s substr starting at offset %ld...\n",
+                "  about to look for %s substr starting at offset %ld (rx_origin now %"IVdf")...\n",
                 (prog->substrs->check_ix ? "floating" : "anchored"),
-                (long)(rx_origin + start_shift - strpos)) );
+                (long)(rx_origin + start_shift - strbeg),
+                (IV)(rx_origin - strbeg)
+            ));
             goto restart;
        }
 
@@ -1349,7 +1382,7 @@ Perl_re_intuit_start(pTHX_
        if (rx_origin != s) {
             DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
                        "  By STCLASS: moving %ld --> %ld\n",
-                                  (long)(rx_origin - strpos), (long)(s - strpos))
+                                  (long)(rx_origin - strbeg), (long)(s - strbeg))
                    );
         }
         else {
@@ -1401,7 +1434,7 @@ Perl_re_intuit_start(pTHX_
 
     DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log,
             "Intuit: %sSuccessfully guessed:%s match at offset %ld\n",
-             PL_colors[4], PL_colors[5], (long)(rx_origin - strpos)) );
+             PL_colors[4], PL_colors[5], (long)(rx_origin - strbeg)) );
 
     return rx_origin;
 
@@ -1971,8 +2004,10 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
     case BOUNDL:
         _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
         if (FLAGS(c) != TRADITIONAL_BOUND) {
-            Perl_ck_warner(aTHX_ packWARN(WARN_LOCALE),
+            if (! IN_UTF8_CTYPE_LOCALE) {
+                Perl_ck_warner(aTHX_ packWARN(WARN_LOCALE),
                                                 B_ON_NON_UTF8_LOCALE_IS_WRONG);
+            }
             goto do_boundu;
         }
 
@@ -1982,8 +2017,10 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
     case NBOUNDL:
         _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
         if (FLAGS(c) != TRADITIONAL_BOUND) {
-            Perl_ck_warner(aTHX_ packWARN(WARN_LOCALE),
+            if (! IN_UTF8_CTYPE_LOCALE) {
+                Perl_ck_warner(aTHX_ packWARN(WARN_LOCALE),
                                                 B_ON_NON_UTF8_LOCALE_IS_WRONG);
+            }
             goto do_nboundu;
         }
 
@@ -2047,12 +2084,12 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
                 }
 
                 if (utf8_target) {
-                    PL_GCB_enum before = getGCB_VAL_UTF8(
+                    GCB_enum before = getGCB_VAL_UTF8(
                                                reghop3((U8*)s, -1,
                                                        (U8*)(reginfo->strbeg)),
                                                (U8*) reginfo->strend);
                     while (s < strend) {
-                        PL_GCB_enum after = getGCB_VAL_UTF8((U8*) s,
+                        GCB_enum after = getGCB_VAL_UTF8((U8*) s,
                                                         (U8*) reginfo->strend);
                         if (to_complement ^ isGCB(before, after)) {
                             if (reginfo->intuit || regtry(reginfo, &s)) {
@@ -2095,12 +2132,12 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
                 }
 
                 if (utf8_target) {
-                    PL_SB_enum before = getSB_VAL_UTF8(reghop3((U8*)s,
+                    SB_enum before = getSB_VAL_UTF8(reghop3((U8*)s,
                                                         -1,
                                                         (U8*)(reginfo->strbeg)),
                                                       (U8*) reginfo->strend);
                     while (s < strend) {
-                        PL_SB_enum after = getSB_VAL_UTF8((U8*) s,
+                        SB_enum after = getSB_VAL_UTF8((U8*) s,
                                                          (U8*) reginfo->strend);
                         if (to_complement ^ isSB(before,
                                                  after,
@@ -2118,9 +2155,9 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
                     }
                 }
                 else {  /* Not utf8. */
-                    PL_SB_enum before = getSB_VAL_CP((U8) *(s -1));
+                    SB_enum before = getSB_VAL_CP((U8) *(s -1));
                     while (s < strend) {
-                        PL_SB_enum after = getSB_VAL_CP((U8) *s);
+                        SB_enum after = getSB_VAL_CP((U8) *s);
                         if (to_complement ^ isSB(before,
                                                  after,
                                                  (U8*) reginfo->strbeg,
@@ -2164,14 +2201,14 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
                      * loop through the line.   Context may be needed to make a
                      * determination, and if so, this can save having to
                      * recalculate it */
-                    PL_WB_enum previous = PL_WB_UNKNOWN;
-                    PL_WB_enum before = getWB_VAL_UTF8(
+                    WB_enum previous = WB_UNKNOWN;
+                    WB_enum before = getWB_VAL_UTF8(
                                               reghop3((U8*)s,
                                                       -1,
                                                       (U8*)(reginfo->strbeg)),
                                               (U8*) reginfo->strend);
                     while (s < strend) {
-                        PL_WB_enum after = getWB_VAL_UTF8((U8*) s,
+                        WB_enum after = getWB_VAL_UTF8((U8*) s,
                                                         (U8*) reginfo->strend);
                         if (to_complement ^ isWB(previous,
                                                  before,
@@ -2191,10 +2228,10 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
                     }
                 }
                 else {  /* Not utf8. */
-                    PL_WB_enum previous = PL_WB_UNKNOWN;
-                    PL_WB_enum before = getWB_VAL_CP((U8) *(s -1));
+                    WB_enum previous = WB_UNKNOWN;
+                    WB_enum before = getWB_VAL_CP((U8) *(s -1));
                     while (s < strend) {
-                        PL_WB_enum after = getWB_VAL_CP((U8) *s);
+                        WB_enum after = getWB_VAL_CP((U8) *s);
                         if (to_complement ^ isWB(previous,
                                                  before,
                                                  after,
@@ -2318,11 +2355,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
             }
             else switch (classnum) {    /* These classes are implemented as
                                            macros */
-                case _CC_ENUM_SPACE: /* XXX would require separate code if we
-                                        revert the change of \v matching this */
-                    /* FALLTHROUGH */
-
-                case _CC_ENUM_PSXSPC:
+                case _CC_ENUM_SPACE:
                     REXEC_FBC_UTF8_CLASS_SCAN(
                                         to_complement ^ cBOOL(isSPACE_utf8(s)));
                     break;
@@ -2790,7 +2823,7 @@ Perl_regexec_flags(pTHX_ REGEXP * const rx, char *stringarg, char *strend,
     PERL_UNUSED_ARG(data);
 
     /* Be paranoid... */
-    if (prog == NULL || stringarg == NULL) {
+    if (prog == NULL) {
        Perl_croak(aTHX_ "NULL regexp parameter");
     }
 
@@ -2809,7 +2842,7 @@ Perl_regexec_flags(pTHX_ REGEXP * const rx, char *stringarg, char *strend,
         reginfo->ganch =
             (flags & REXEC_IGNOREPOS)
             ? stringarg /* use start pos rather than pos() */
-            : (sv && (mg = mg_find_mglob(sv)) && mg->mg_len >= 0)
+            : ((mg = mg_find_mglob(sv)) && mg->mg_len >= 0)
               /* Defined pos(): */
             ? strbeg + MgBYTEPOS(mg, sv, strbeg, strend-strbeg)
             : strbeg; /* pos() not defined; use start of string */
@@ -4157,10 +4190,10 @@ S_setup_EXACTISH_ST_c1_c2(pTHX_ const regnode * const text_node, int *c1p,
 /* This creates a single number by combining two, with 'before' being like the
  * 10's digit, but this isn't necessarily base 10; it is base however many
  * elements of the enum there are */
-#define GCBcase(before, after) ((PL_GCB_ENUM_COUNT * before) + after)
+#define GCBcase(before, after) ((GCB_ENUM_COUNT * before) + after)
 
 STATIC bool
-S_isGCB(const PL_GCB_enum before, const PL_GCB_enum after)
+S_isGCB(const GCB_enum before, const GCB_enum after)
 {
     /* returns a boolean indicating if there is a Grapheme Cluster Boundary
      * between the inputs.  See http://www.unicode.org/reports/tr29/ */
@@ -4182,82 +4215,82 @@ S_isGCB(const PL_GCB_enum before, const PL_GCB_enum after)
 
         /* Do not break between a CR and LF.
             GB3.  CR  ×  LF */
-        case GCBcase(PL_GCB_CR, PL_GCB_LF):
+        case GCBcase(GCB_CR, GCB_LF):
             return FALSE;
 
         /* Do not break Hangul syllable sequences.
             GB6.  L  ×  ( L | V | LV | LVT ) */
-        case GCBcase(PL_GCB_L, PL_GCB_L):
-        case GCBcase(PL_GCB_L, PL_GCB_V):
-        case GCBcase(PL_GCB_L, PL_GCB_LV):
-        case GCBcase(PL_GCB_L, PL_GCB_LVT):
+        case GCBcase(GCB_L, GCB_L):
+        case GCBcase(GCB_L, GCB_V):
+        case GCBcase(GCB_L, GCB_LV):
+        case GCBcase(GCB_L, GCB_LVT):
             return FALSE;
 
         /*  GB7.  ( LV | V )  ×  ( V | T ) */
-        case GCBcase(PL_GCB_LV, PL_GCB_V):
-        case GCBcase(PL_GCB_LV, PL_GCB_T):
-        case GCBcase(PL_GCB_V, PL_GCB_V):
-        case GCBcase(PL_GCB_V, PL_GCB_T):
+        case GCBcase(GCB_LV, GCB_V):
+        case GCBcase(GCB_LV, GCB_T):
+        case GCBcase(GCB_V, GCB_V):
+        case GCBcase(GCB_V, GCB_T):
             return FALSE;
 
         /*  GB8.  ( LVT | T)  ×  T */
-        case GCBcase(PL_GCB_LVT, PL_GCB_T):
-        case GCBcase(PL_GCB_T, PL_GCB_T):
+        case GCBcase(GCB_LVT, GCB_T):
+        case GCBcase(GCB_T, GCB_T):
             return FALSE;
 
         /* Do not break between regional indicator symbols.
             GB8a.  Regional_Indicator  ×  Regional_Indicator */
-        case GCBcase(PL_GCB_Regional_Indicator, PL_GCB_Regional_Indicator):
+        case GCBcase(GCB_Regional_Indicator, GCB_Regional_Indicator):
             return FALSE;
 
         /* Do not break before extending characters.
             GB9.     ×  Extend */
-        case GCBcase(PL_GCB_Other, PL_GCB_Extend):
-        case GCBcase(PL_GCB_Extend, PL_GCB_Extend):
-        case GCBcase(PL_GCB_L, PL_GCB_Extend):
-        case GCBcase(PL_GCB_LV, PL_GCB_Extend):
-        case GCBcase(PL_GCB_LVT, PL_GCB_Extend):
-        case GCBcase(PL_GCB_Prepend, PL_GCB_Extend):
-        case GCBcase(PL_GCB_Regional_Indicator, PL_GCB_Extend):
-        case GCBcase(PL_GCB_SpacingMark, PL_GCB_Extend):
-        case GCBcase(PL_GCB_T, PL_GCB_Extend):
-        case GCBcase(PL_GCB_V, PL_GCB_Extend):
+        case GCBcase(GCB_Other, GCB_Extend):
+        case GCBcase(GCB_Extend, GCB_Extend):
+        case GCBcase(GCB_L, GCB_Extend):
+        case GCBcase(GCB_LV, GCB_Extend):
+        case GCBcase(GCB_LVT, GCB_Extend):
+        case GCBcase(GCB_Prepend, GCB_Extend):
+        case GCBcase(GCB_Regional_Indicator, GCB_Extend):
+        case GCBcase(GCB_SpacingMark, GCB_Extend):
+        case GCBcase(GCB_T, GCB_Extend):
+        case GCBcase(GCB_V, GCB_Extend):
             return FALSE;
 
         /* Do not break before SpacingMarks, or after Prepend characters.
             GB9a.     ×  SpacingMark */
-        case GCBcase(PL_GCB_Other, PL_GCB_SpacingMark):
-        case GCBcase(PL_GCB_Extend, PL_GCB_SpacingMark):
-        case GCBcase(PL_GCB_L, PL_GCB_SpacingMark):
-        case GCBcase(PL_GCB_LV, PL_GCB_SpacingMark):
-        case GCBcase(PL_GCB_LVT, PL_GCB_SpacingMark):
-        case GCBcase(PL_GCB_Prepend, PL_GCB_SpacingMark):
-        case GCBcase(PL_GCB_Regional_Indicator, PL_GCB_SpacingMark):
-        case GCBcase(PL_GCB_SpacingMark, PL_GCB_SpacingMark):
-        case GCBcase(PL_GCB_T, PL_GCB_SpacingMark):
-        case GCBcase(PL_GCB_V, PL_GCB_SpacingMark):
+        case GCBcase(GCB_Other, GCB_SpacingMark):
+        case GCBcase(GCB_Extend, GCB_SpacingMark):
+        case GCBcase(GCB_L, GCB_SpacingMark):
+        case GCBcase(GCB_LV, GCB_SpacingMark):
+        case GCBcase(GCB_LVT, GCB_SpacingMark):
+        case GCBcase(GCB_Prepend, GCB_SpacingMark):
+        case GCBcase(GCB_Regional_Indicator, GCB_SpacingMark):
+        case GCBcase(GCB_SpacingMark, GCB_SpacingMark):
+        case GCBcase(GCB_T, GCB_SpacingMark):
+        case GCBcase(GCB_V, GCB_SpacingMark):
             return FALSE;
 
         /* GB9b.  Prepend  ×   */
-        case GCBcase(PL_GCB_Prepend, PL_GCB_Other):
-        case GCBcase(PL_GCB_Prepend, PL_GCB_L):
-        case GCBcase(PL_GCB_Prepend, PL_GCB_LV):
-        case GCBcase(PL_GCB_Prepend, PL_GCB_LVT):
-        case GCBcase(PL_GCB_Prepend, PL_GCB_Prepend):
-        case GCBcase(PL_GCB_Prepend, PL_GCB_Regional_Indicator):
-        case GCBcase(PL_GCB_Prepend, PL_GCB_T):
-        case GCBcase(PL_GCB_Prepend, PL_GCB_V):
+        case GCBcase(GCB_Prepend, GCB_Other):
+        case GCBcase(GCB_Prepend, GCB_L):
+        case GCBcase(GCB_Prepend, GCB_LV):
+        case GCBcase(GCB_Prepend, GCB_LVT):
+        case GCBcase(GCB_Prepend, GCB_Prepend):
+        case GCBcase(GCB_Prepend, GCB_Regional_Indicator):
+        case GCBcase(GCB_Prepend, GCB_T):
+        case GCBcase(GCB_Prepend, GCB_V):
             return FALSE;
     }
 
-    NOT_REACHED;
+    NOT_REACHED; /* NOTREACHED */
 }
 
 #define SBcase(before, after) ((SB_ENUM_COUNT * before) + after)
 
 STATIC bool
-S_isSB(pTHX_ PL_SB_enum before,
-             PL_SB_enum after,
+S_isSB(pTHX_ SB_enum before,
+             SB_enum after,
              const U8 * const strbeg,
              const U8 * const curpos,
              const U8 * const strend,
@@ -4268,37 +4301,37 @@ S_isSB(pTHX_ PL_SB_enum before,
 
     U8 * lpos = (U8 *) curpos;
     U8 * temp_pos;
-    PL_SB_enum backup;
+    SB_enum backup;
 
     PERL_ARGS_ASSERT_ISSB;
 
     /* Break at the start and end of text.
         SB1.  sot  ÷
         SB2.  ÷  eot */
-    if (before == PL_SB_EDGE || after == PL_SB_EDGE) {
+    if (before == SB_EDGE || after == SB_EDGE) {
         return TRUE;
     }
 
     /* SB 3: Do not break within CRLF. */
-    if (before == PL_SB_CR && after == PL_SB_LF) {
+    if (before == SB_CR && after == SB_LF) {
         return FALSE;
     }
 
     /* Break after paragraph separators.  (though why CR and LF are considered
      * so is beyond me (khw)
        SB4.  Sep | CR | LF  ÷ */
-    if (before == PL_SB_Sep || before == PL_SB_CR || before == PL_SB_LF) {
+    if (before == SB_Sep || before == SB_CR || before == SB_LF) {
         return TRUE;
     }
 
     /* Ignore Format and Extend characters, except after sot, Sep, CR, or LF.
      * (See Section 6.2, Replacing Ignore Rules.)
         SB5.  X (Extend | Format)*  →  X */
-    if (after == PL_SB_Extend || after == PL_SB_Format) {
+    if (after == SB_Extend || after == SB_Format) {
         return FALSE;
     }
 
-    if (before == PL_SB_Extend || before == PL_SB_Format) {
+    if (before == SB_Extend || before == SB_Format) {
         before = backup_one_SB(strbeg, &lpos, utf8_target);
     }
 
@@ -4311,14 +4344,14 @@ S_isSB(pTHX_ PL_SB_enum before,
      * not mark the end of a sentence.
 
      * SB6. ATerm  ×  Numeric */
-    if (before == PL_SB_ATerm && after == PL_SB_Numeric) {
+    if (before == SB_ATerm && after == SB_Numeric) {
         return FALSE;
     }
 
     /* SB7.  Upper ATerm  ×  Upper */
-    if (before == PL_SB_ATerm && after == PL_SB_Upper) {
+    if (before == SB_ATerm && after == SB_Upper) {
         temp_pos = lpos;
-        if (PL_SB_Upper == backup_one_SB(strbeg, &temp_pos, utf8_target)) {
+        if (SB_Upper == backup_one_SB(strbeg, &temp_pos, utf8_target)) {
             return FALSE;
         }
     }
@@ -4327,43 +4360,43 @@ S_isSB(pTHX_ PL_SB_enum before,
      * SB10.  (STerm | ATerm) Close* Sp*  ×  ( Sp | Sep | CR | LF )      */
     backup = before;
     temp_pos = lpos;
-    while (backup == PL_SB_Sp) {
+    while (backup == SB_Sp) {
         backup = backup_one_SB(strbeg, &temp_pos, utf8_target);
     }
-    while (backup == PL_SB_Close) {
+    while (backup == SB_Close) {
         backup = backup_one_SB(strbeg, &temp_pos, utf8_target);
     }
-    if ((backup == PL_SB_STerm || backup == PL_SB_ATerm)
-        && (   after == PL_SB_SContinue
-            || after == PL_SB_STerm
-            || after == PL_SB_ATerm
-            || after == PL_SB_Sp
-            || after == PL_SB_Sep
-            || after == PL_SB_CR
-            || after == PL_SB_LF))
+    if ((backup == SB_STerm || backup == SB_ATerm)
+        && (   after == SB_SContinue
+            || after == SB_STerm
+            || after == SB_ATerm
+            || after == SB_Sp
+            || after == SB_Sep
+            || after == SB_CR
+            || after == SB_LF))
     {
         return FALSE;
     }
 
     /* SB8.  ATerm Close* Sp*  ×  ( ¬(OLetter | Upper | Lower | Sep | CR | LF |
      *                                              STerm | ATerm) )* Lower */
-    if (backup == PL_SB_ATerm) {
+    if (backup == SB_ATerm) {
         U8 * rpos = (U8 *) curpos;
-        PL_SB_enum later = after;
-
-        while (    later != PL_SB_OLetter
-                && later != PL_SB_Upper
-                && later != PL_SB_Lower
-                && later != PL_SB_Sep
-                && later != PL_SB_CR
-                && later != PL_SB_LF
-                && later != PL_SB_STerm
-                && later != PL_SB_ATerm
-                && later != PL_SB_EDGE)
+        SB_enum later = after;
+
+        while (    later != SB_OLetter
+                && later != SB_Upper
+                && later != SB_Lower
+                && later != SB_Sep
+                && later != SB_CR
+                && later != SB_LF
+                && later != SB_STerm
+                && later != SB_ATerm
+                && later != SB_EDGE)
         {
             later = advance_one_SB(&rpos, strend, utf8_target);
         }
-        if (later == PL_SB_Lower) {
+        if (later == SB_Lower) {
             return FALSE;
         }
     }
@@ -4374,15 +4407,15 @@ S_isSB(pTHX_ PL_SB_enum before,
      * SB9.  ( STerm | ATerm ) Close*  ×  ( Close | Sp | Sep | CR | LF ) */
     backup = before;
     temp_pos = lpos;
-    while (backup == PL_SB_Close) {
+    while (backup == SB_Close) {
         backup = backup_one_SB(strbeg, &temp_pos, utf8_target);
     }
-    if ((backup == PL_SB_STerm || backup == PL_SB_ATerm)
-        && (   after == PL_SB_Close
-            || after == PL_SB_Sp
-            || after == PL_SB_Sep
-            || after == PL_SB_CR
-            || after == PL_SB_LF))
+    if ((backup == SB_STerm || backup == SB_ATerm)
+        && (   after == SB_Close
+            || after == SB_Sp
+            || after == SB_Sep
+            || after == SB_CR
+            || after == SB_LF))
     {
         return FALSE;
     }
@@ -4391,22 +4424,22 @@ S_isSB(pTHX_ PL_SB_enum before,
     /* SB11.  ( STerm | ATerm ) Close* Sp* ( Sep | CR | LF )?  ÷ */
     temp_pos = lpos;
     backup = backup_one_SB(strbeg, &temp_pos, utf8_target);
-    if (   backup == PL_SB_Sep
-        || backup == PL_SB_CR
-        || backup == PL_SB_LF)
+    if (   backup == SB_Sep
+        || backup == SB_CR
+        || backup == SB_LF)
     {
         lpos = temp_pos;
     }
     else {
         backup = before;
     }
-    while (backup == PL_SB_Sp) {
+    while (backup == SB_Sp) {
         backup = backup_one_SB(strbeg, &lpos, utf8_target);
     }
-    while (backup == PL_SB_Close) {
+    while (backup == SB_Close) {
         backup = backup_one_SB(strbeg, &lpos, utf8_target);
     }
-    if (backup == PL_SB_STerm || backup == PL_SB_ATerm) {
+    if (backup == SB_STerm || backup == SB_ATerm) {
         return TRUE;
     }
 
@@ -4416,54 +4449,54 @@ S_isSB(pTHX_ PL_SB_enum before,
     return FALSE;
 }
 
-STATIC PL_SB_enum
+STATIC SB_enum
 S_advance_one_SB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
 {
-    PL_SB_enum sb;
+    SB_enum sb;
 
     PERL_ARGS_ASSERT_ADVANCE_ONE_SB;
 
     if (*curpos >= strend) {
-        return PL_SB_EDGE;
+        return SB_EDGE;
     }
 
     if (utf8_target) {
         do {
             *curpos += UTF8SKIP(*curpos);
             if (*curpos >= strend) {
-                return PL_SB_EDGE;
+                return SB_EDGE;
             }
             sb = getSB_VAL_UTF8(*curpos, strend);
-        } while (sb == PL_SB_Extend || sb == PL_SB_Format);
+        } while (sb == SB_Extend || sb == SB_Format);
     }
     else {
         do {
             (*curpos)++;
             if (*curpos >= strend) {
-                return PL_SB_EDGE;
+                return SB_EDGE;
             }
             sb = getSB_VAL_CP(**curpos);
-        } while (sb == PL_SB_Extend || sb == PL_SB_Format);
+        } while (sb == SB_Extend || sb == SB_Format);
     }
 
     return sb;
 }
 
-STATIC PL_SB_enum
+STATIC SB_enum
 S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
 {
-    PL_SB_enum sb;
+    SB_enum sb;
 
     PERL_ARGS_ASSERT_BACKUP_ONE_SB;
 
     if (*curpos < strbeg) {
-        return PL_SB_EDGE;
+        return SB_EDGE;
     }
 
     if (utf8_target) {
         U8 * prev_char_pos = reghopmaybe3(*curpos, -1, strbeg);
         if (! prev_char_pos) {
-            return PL_SB_EDGE;
+            return SB_EDGE;
         }
 
         /* Back up over Extend and Format.  curpos is always just to the right
@@ -4479,30 +4512,30 @@ S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_tar
             }
             else {
                 *curpos = (U8 *) strbeg;
-                return PL_SB_EDGE;
+                return SB_EDGE;
             }
-        } while (sb == PL_SB_Extend || sb == PL_SB_Format);
+        } while (sb == SB_Extend || sb == SB_Format);
     }
     else {
         do {
             if (*curpos - 2 < strbeg) {
                 *curpos = (U8 *) strbeg;
-                return PL_SB_EDGE;
+                return SB_EDGE;
             }
             (*curpos)--;
             sb = getSB_VAL_CP(*(*curpos - 1));
-        } while (sb == PL_SB_Extend || sb == PL_SB_Format);
+        } while (sb == SB_Extend || sb == SB_Format);
     }
 
     return sb;
 }
 
-#define WBcase(before, after) ((PL_WB_ENUM_COUNT * before) + after)
+#define WBcase(before, after) ((WB_ENUM_COUNT * before) + after)
 
 STATIC bool
-S_isWB(pTHX_ PL_WB_enum previous,
-             PL_WB_enum before,
-             PL_WB_enum after,
+S_isWB(pTHX_ WB_enum previous,
+             WB_enum before,
+             WB_enum after,
              const U8 * const strbeg,
              const U8 * const curpos,
              const U8 * const strend,
@@ -4512,7 +4545,7 @@ S_isWB(pTHX_ PL_WB_enum previous,
      *  a Unicode word break, using their published algorithm.  Context may be
      *  needed to make this determination.  If the value for the character
      *  before 'before' is known, it is passed as 'previous'; otherwise that
-     *  should be set to PL_WB_UNKNOWN.  The other input parameters give the
+     *  should be set to WB_UNKNOWN.  The other input parameters give the
      *  boundaries and current position in the matching of the string.  That
      *  is, 'curpos' marks the position where the character whose wb value is
      *  'after' begins.  See http://www.unicode.org/reports/tr29/ */
@@ -4523,19 +4556,19 @@ S_isWB(pTHX_ PL_WB_enum previous,
     PERL_ARGS_ASSERT_ISWB;
 
     /* WB1 and WB2: Break at the start and end of text. */
-    if (before == PL_WB_EDGE || after == PL_WB_EDGE) {
+    if (before == WB_EDGE || after == WB_EDGE) {
         return TRUE;
     }
 
     /* WB 3: Do not break within CRLF. */
-    if (before == PL_WB_CR && after == PL_WB_LF) {
+    if (before == WB_CR && after == WB_LF) {
         return FALSE;
     }
 
     /* WB 3a and WB 3b: Otherwise break before and after Newlines (including CR
      * and LF) */
-    if (   before == PL_WB_CR || before == PL_WB_LF || before == PL_WB_Newline
-        || after ==  PL_WB_CR || after ==  PL_WB_LF || after ==  PL_WB_Newline)
+    if (   before == WB_CR || before == WB_LF || before == WB_Newline
+        || after ==  WB_CR || after ==  WB_LF || after ==  WB_Newline)
     {
         return TRUE;
     }
@@ -4544,11 +4577,11 @@ S_isWB(pTHX_ PL_WB_enum previous,
      * beginning of a region of text.
      * WB4.  X (Extend | Format)*  →  X. */
 
-    if (after == PL_WB_Extend || after == PL_WB_Format) {
+    if (after == WB_Extend || after == WB_Format) {
         return FALSE;
     }
 
-    if (before == PL_WB_Extend || before == PL_WB_Format) {
+    if (before == WB_Extend || before == WB_Format) {
         before = backup_one_WB(&previous, strbeg, &before_pos, utf8_target);
     }
 
@@ -4560,126 +4593,126 @@ S_isWB(pTHX_ PL_WB_enum previous,
 
             /* Do not break between most letters.
                 WB5.  (ALetter | Hebrew_Letter) × (ALetter | Hebrew_Letter) */
-            case WBcase(PL_WB_ALetter, PL_WB_ALetter):
-            case WBcase(PL_WB_ALetter, PL_WB_Hebrew_Letter):
-            case WBcase(PL_WB_Hebrew_Letter, PL_WB_ALetter):
-            case WBcase(PL_WB_Hebrew_Letter, PL_WB_Hebrew_Letter):
+            case WBcase(WB_ALetter, WB_ALetter):
+            case WBcase(WB_ALetter, WB_Hebrew_Letter):
+            case WBcase(WB_Hebrew_Letter, WB_ALetter):
+            case WBcase(WB_Hebrew_Letter, WB_Hebrew_Letter):
                 return FALSE;
 
             /* Do not break letters across certain punctuation.
                 WB6.  (ALetter | Hebrew_Letter)
                         × (MidLetter | MidNumLet | Single_Quote) (ALetter
                                                             | Hebrew_Letter) */
-            case WBcase(PL_WB_ALetter, PL_WB_MidLetter):
-            case WBcase(PL_WB_ALetter, PL_WB_MidNumLet):
-            case WBcase(PL_WB_ALetter, PL_WB_Single_Quote):
-            case WBcase(PL_WB_Hebrew_Letter, PL_WB_MidLetter):
-            case WBcase(PL_WB_Hebrew_Letter, PL_WB_MidNumLet):
-            /*case WBcase(PL_WB_Hebrew_Letter, PL_WB_Single_Quote):*/
+            case WBcase(WB_ALetter, WB_MidLetter):
+            case WBcase(WB_ALetter, WB_MidNumLet):
+            case WBcase(WB_ALetter, WB_Single_Quote):
+            case WBcase(WB_Hebrew_Letter, WB_MidLetter):
+            case WBcase(WB_Hebrew_Letter, WB_MidNumLet):
+            /*case WBcase(WB_Hebrew_Letter, WB_Single_Quote):*/
                 after = advance_one_WB(&after_pos, strend, utf8_target);
-                return after != PL_WB_ALetter && after != PL_WB_Hebrew_Letter;
+                return after != WB_ALetter && after != WB_Hebrew_Letter;
 
             /* WB7.  (ALetter | Hebrew_Letter) (MidLetter | MidNumLet |
              *                    Single_Quote) ×  (ALetter | Hebrew_Letter) */
-            case WBcase(PL_WB_MidLetter, PL_WB_ALetter):
-            case WBcase(PL_WB_MidLetter, PL_WB_Hebrew_Letter):
-            case WBcase(PL_WB_MidNumLet, PL_WB_ALetter):
-            case WBcase(PL_WB_MidNumLet, PL_WB_Hebrew_Letter):
-            case WBcase(PL_WB_Single_Quote, PL_WB_ALetter):
-            case WBcase(PL_WB_Single_Quote, PL_WB_Hebrew_Letter):
+            case WBcase(WB_MidLetter, WB_ALetter):
+            case WBcase(WB_MidLetter, WB_Hebrew_Letter):
+            case WBcase(WB_MidNumLet, WB_ALetter):
+            case WBcase(WB_MidNumLet, WB_Hebrew_Letter):
+            case WBcase(WB_Single_Quote, WB_ALetter):
+            case WBcase(WB_Single_Quote, WB_Hebrew_Letter):
                 before
                   = backup_one_WB(&previous, strbeg, &before_pos, utf8_target);
-                return before != PL_WB_ALetter && before != PL_WB_Hebrew_Letter;
+                return before != WB_ALetter && before != WB_Hebrew_Letter;
 
             /* WB7a.  Hebrew_Letter  ×  Single_Quote */
-            case WBcase(PL_WB_Hebrew_Letter, PL_WB_Single_Quote):
+            case WBcase(WB_Hebrew_Letter, WB_Single_Quote):
                 return FALSE;
 
             /* WB7b.  Hebrew_Letter  ×  Double_Quote Hebrew_Letter */
-            case WBcase(PL_WB_Hebrew_Letter, PL_WB_Double_Quote):
+            case WBcase(WB_Hebrew_Letter, WB_Double_Quote):
                 return advance_one_WB(&after_pos, strend, utf8_target)
-                                                        != PL_WB_Hebrew_Letter;
+                                                        != WB_Hebrew_Letter;
 
             /* WB7c.  Hebrew_Letter Double_Quote  ×  Hebrew_Letter */
-            case WBcase(PL_WB_Double_Quote, PL_WB_Hebrew_Letter):
+            case WBcase(WB_Double_Quote, WB_Hebrew_Letter):
                 return backup_one_WB(&previous, strbeg, &before_pos, utf8_target)
-                                                        != PL_WB_Hebrew_Letter;
+                                                        != WB_Hebrew_Letter;
 
             /* Do not break within sequences of digits, or digits adjacent to
              * letters (“3a”, or “A3”).
                 WB8.  Numeric  ×  Numeric */
-            case WBcase(PL_WB_Numeric, PL_WB_Numeric):
+            case WBcase(WB_Numeric, WB_Numeric):
                 return FALSE;
 
             /* WB9.  (ALetter | Hebrew_Letter)  ×  Numeric */
-            case WBcase(PL_WB_ALetter, PL_WB_Numeric):
-            case WBcase(PL_WB_Hebrew_Letter, PL_WB_Numeric):
+            case WBcase(WB_ALetter, WB_Numeric):
+            case WBcase(WB_Hebrew_Letter, WB_Numeric):
                 return FALSE;
 
             /* WB10.  Numeric  ×  (ALetter | Hebrew_Letter) */
-            case WBcase(PL_WB_Numeric, PL_WB_ALetter):
-            case WBcase(PL_WB_Numeric, PL_WB_Hebrew_Letter):
+            case WBcase(WB_Numeric, WB_ALetter):
+            case WBcase(WB_Numeric, WB_Hebrew_Letter):
                 return FALSE;
 
             /* Do not break within sequences, such as “3.2” or “3,456.789”.
                 WB11.   Numeric (MidNum | MidNumLet | Single_Quote)  ×  Numeric
              */
-            case WBcase(PL_WB_MidNum, PL_WB_Numeric):
-            case WBcase(PL_WB_MidNumLet, PL_WB_Numeric):
-            case WBcase(PL_WB_Single_Quote, PL_WB_Numeric):
+            case WBcase(WB_MidNum, WB_Numeric):
+            case WBcase(WB_MidNumLet, WB_Numeric):
+            case WBcase(WB_Single_Quote, WB_Numeric):
                 return backup_one_WB(&previous, strbeg, &before_pos, utf8_target)
-                                                               != PL_WB_Numeric;
+                                                               != WB_Numeric;
 
             /*  WB12.   Numeric  ×  (MidNum | MidNumLet | Single_Quote) Numeric
              *  */
-            case WBcase(PL_WB_Numeric, PL_WB_MidNum):
-            case WBcase(PL_WB_Numeric, PL_WB_MidNumLet):
-            case WBcase(PL_WB_Numeric, PL_WB_Single_Quote):
+            case WBcase(WB_Numeric, WB_MidNum):
+            case WBcase(WB_Numeric, WB_MidNumLet):
+            case WBcase(WB_Numeric, WB_Single_Quote):
                 return advance_one_WB(&after_pos, strend, utf8_target)
-                                                               != PL_WB_Numeric;
+                                                               != WB_Numeric;
 
             /* Do not break between Katakana.
                WB13.  Katakana  ×  Katakana */
-            case WBcase(PL_WB_Katakana, PL_WB_Katakana):
+            case WBcase(WB_Katakana, WB_Katakana):
                 return FALSE;
 
             /* Do not break from extenders.
                WB13a.  (ALetter | Hebrew_Letter | Numeric | Katakana |
                                             ExtendNumLet)  ×  ExtendNumLet */
-            case WBcase(PL_WB_ALetter, PL_WB_ExtendNumLet):
-            case WBcase(PL_WB_Hebrew_Letter, PL_WB_ExtendNumLet):
-            case WBcase(PL_WB_Numeric, PL_WB_ExtendNumLet):
-            case WBcase(PL_WB_Katakana, PL_WB_ExtendNumLet):
-            case WBcase(PL_WB_ExtendNumLet, PL_WB_ExtendNumLet):
+            case WBcase(WB_ALetter, WB_ExtendNumLet):
+            case WBcase(WB_Hebrew_Letter, WB_ExtendNumLet):
+            case WBcase(WB_Numeric, WB_ExtendNumLet):
+            case WBcase(WB_Katakana, WB_ExtendNumLet):
+            case WBcase(WB_ExtendNumLet, WB_ExtendNumLet):
                 return FALSE;
 
             /* WB13b.  ExtendNumLet  ×  (ALetter | Hebrew_Letter | Numeric
              *                                                 | Katakana) */
-            case WBcase(PL_WB_ExtendNumLet, PL_WB_ALetter):
-            case WBcase(PL_WB_ExtendNumLet, PL_WB_Hebrew_Letter):
-            case WBcase(PL_WB_ExtendNumLet, PL_WB_Numeric):
-            case WBcase(PL_WB_ExtendNumLet, PL_WB_Katakana):
+            case WBcase(WB_ExtendNumLet, WB_ALetter):
+            case WBcase(WB_ExtendNumLet, WB_Hebrew_Letter):
+            case WBcase(WB_ExtendNumLet, WB_Numeric):
+            case WBcase(WB_ExtendNumLet, WB_Katakana):
                 return FALSE;
 
             /* Do not break between regional indicator symbols.
                WB13c.  Regional_Indicator  ×  Regional_Indicator */
-            case WBcase(PL_WB_Regional_Indicator, PL_WB_Regional_Indicator):
+            case WBcase(WB_Regional_Indicator, WB_Regional_Indicator):
                 return FALSE;
 
     }
 
-    NOT_REACHED;
+    NOT_REACHED; /* NOTREACHED */
 }
 
-STATIC PL_WB_enum
+STATIC WB_enum
 S_advance_one_WB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
 {
-    PL_WB_enum wb;
+    WB_enum wb;
 
     PERL_ARGS_ASSERT_ADVANCE_ONE_WB;
 
     if (*curpos >= strend) {
-        return PL_WB_EDGE;
+        return WB_EDGE;
     }
 
     if (utf8_target) {
@@ -4688,52 +4721,52 @@ S_advance_one_WB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_ta
         do {
             *curpos += UTF8SKIP(*curpos);
             if (*curpos >= strend) {
-                return PL_WB_EDGE;
+                return WB_EDGE;
             }
             wb = getWB_VAL_UTF8(*curpos, strend);
-        } while (wb == PL_WB_Extend || wb == PL_WB_Format);
+        } while (wb == WB_Extend || wb == WB_Format);
     }
     else {
         do {
             (*curpos)++;
             if (*curpos >= strend) {
-                return PL_WB_EDGE;
+                return WB_EDGE;
             }
             wb = getWB_VAL_CP(**curpos);
-        } while (wb == PL_WB_Extend || wb == PL_WB_Format);
+        } while (wb == WB_Extend || wb == WB_Format);
     }
 
     return wb;
 }
 
-STATIC PL_WB_enum
-S_backup_one_WB(pTHX_ PL_WB_enum * previous, const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+STATIC WB_enum
+S_backup_one_WB(pTHX_ WB_enum * previous, const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
 {
-    PL_WB_enum wb;
+    WB_enum wb;
 
     PERL_ARGS_ASSERT_BACKUP_ONE_WB;
 
     /* If we know what the previous character's break value is, don't have
         * to look it up */
-    if (*previous != PL_WB_UNKNOWN) {
+    if (*previous != WB_UNKNOWN) {
         wb = *previous;
-        *previous = PL_WB_UNKNOWN;
+        *previous = WB_UNKNOWN;
         /* XXX Note that doesn't change curpos, and maybe should */
 
         /* But we always back up over these two types */
-        if (wb != PL_WB_Extend && wb != PL_WB_Format) {
+        if (wb != WB_Extend && wb != WB_Format) {
             return wb;
         }
     }
 
     if (*curpos < strbeg) {
-        return PL_WB_EDGE;
+        return WB_EDGE;
     }
 
     if (utf8_target) {
         U8 * prev_char_pos = reghopmaybe3(*curpos, -1, strbeg);
         if (! prev_char_pos) {
-            return PL_WB_EDGE;
+            return WB_EDGE;
         }
 
         /* Back up over Extend and Format.  curpos is always just to the right
@@ -4750,19 +4783,19 @@ S_backup_one_WB(pTHX_ PL_WB_enum * previous, const U8 * const strbeg, U8 ** curp
             }
             else {
                 *curpos = (U8 *) strbeg;
-                return PL_WB_EDGE;
+                return WB_EDGE;
             }
-        } while (wb == PL_WB_Extend || wb == PL_WB_Format);
+        } while (wb == WB_Extend || wb == WB_Format);
     }
     else {
         do {
             if (*curpos - 2 < strbeg) {
                 *curpos = (U8 *) strbeg;
-                return PL_WB_EDGE;
+                return WB_EDGE;
             }
             (*curpos)--;
             wb = getWB_VAL_CP(*(*curpos - 1));
-        } while (wb == PL_WB_Extend || wb == PL_WB_Format);
+        } while (wb == WB_Extend || wb == WB_Format);
     }
 
     return wb;
@@ -4921,14 +4954,14 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
            rex->offs[0].start = locinput - reginfo->strbeg;
            PUSH_STATE_GOTO(KEEPS_next, next, locinput);
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case KEEPS_next_fail:
            /* rollback the start point change */
            rex->offs[0].start = st->u.keeper.val;
            sayNO_SILENT;
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case MEOL: /* /..$/m  */
            if (!NEXTCHR_IS_EOS && nextchr != '\n')
@@ -4978,7 +5011,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                 );
                 sayNO_SILENT;
                 /* NOTREACHED */
-                NOT_REACHED;
+                NOT_REACHED; /* NOTREACHED */
             }
             /* FALLTHROUGH */
        case TRIE:  /* (ab|cd)  */
@@ -5179,7 +5212,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                goto trie_first_try; /* jump into the fail handler */
            }}
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case TRIE_next_fail: /* we failed - try next alternative */
         {
@@ -5294,7 +5327,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
            if (ST.accepted > 1 || has_cutgroup) {
                PUSH_STATE_GOTO(TRIE_next, scan, (char*)uc);
                 /* NOTREACHED */
-               NOT_REACHED;
+               NOT_REACHED; /* NOTREACHED */
            }
            /* only one choice left - just continue */
            DEBUG_EXECUTE_r({
@@ -5596,7 +5629,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                         n = (NEXTCHR_IS_EOS)
                             ? isWORDCHAR_L1('\n')
                             : isWORDCHAR_utf8((U8*)locinput);
-                        match = ln != n;
+                        match = cBOOL(ln != n);
                         break;
                     case GCB_BOUND:
                         if (locinput == reginfo->strbeg || NEXTCHR_IS_EOS) {
@@ -5640,7 +5673,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                             match = TRUE;
                         }
                         else {
-                            match = isWB(PL_WB_UNKNOWN,
+                            match = isWB(WB_UNKNOWN,
                                          getWB_VAL_UTF8(
                                                 reghop3((U8*)locinput,
                                                         -1,
@@ -5665,7 +5698,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                         n = (NEXTCHR_IS_EOS)
                             ? isWORDCHAR_L1('\n')
                             : isWORDCHAR_L1(nextchr);
-                        match = ln != n;
+                        match = cBOOL(ln != n);
                         break;
 
                     case GCB_BOUND:
@@ -5699,7 +5732,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                             match = TRUE;
                         }
                         else {
-                            match = isWB(PL_WB_UNKNOWN,
+                            match = isWB(WB_UNKNOWN,
                                          getWB_VAL_CP(UCHARAT(locinput -1)),
                                          getWB_VAL_CP(UCHARAT(locinput)),
                                          (U8*) reginfo->strbeg,
@@ -5870,10 +5903,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                 }
                 else {  /* Here, uses macros to find above Latin-1 code points */
                     switch (classnum) {
-                        case _CC_ENUM_SPACE:    /* XXX would require separate
-                                                   code if we revert the change
-                                                   of \v matching this */
-                        case _CC_ENUM_PSXSPC:
+                        case _CC_ENUM_SPACE:
                             if (! (to_complement
                                         ^ cBOOL(is_XPERLSPACE_high(locinput))))
                             {
@@ -5933,7 +5963,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
            else {
 
                 /* Get the gcb type for the current character */
-                PL_GCB_enum prev_gcb = getGCB_VAL_UTF8((U8*) locinput,
+                GCB_enum prev_gcb = getGCB_VAL_UTF8((U8*) locinput,
                                                        (U8*) reginfo->strend);
 
                 /* Then scan through the input until we get to the first
@@ -5942,7 +5972,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                  * end-of-input) */
                 locinput += UTF8SKIP(locinput);
                 while (locinput < reginfo->strend) {
-                    PL_GCB_enum cur_gcb = getGCB_VAL_UTF8((U8*) locinput,
+                    GCB_enum cur_gcb = getGCB_VAL_UTF8((U8*) locinput,
                                                          (U8*) reginfo->strend);
                     if (isGCB(prev_gcb, cur_gcb)) {
                         break;
@@ -6418,7 +6448,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                /* now continue from first node in postoned RE */
                PUSH_YES_STATE_GOTO(EVAL_AB, startpoint, locinput);
                 /* NOTREACHED */
-               NOT_REACHED;
+               NOT_REACHED; /* NOTREACHED */
        }
 
        case EVAL_AB: /* cleanup after a successful (??{A})B */
@@ -6678,21 +6708,21 @@ NULL
 
            PUSH_YES_STATE_GOTO(CURLYX_end, PREVOPER(next), locinput);
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
        }
 
        case CURLYX_end: /* just finished matching all of A*B */
            cur_curlyx = ST.prev_curlyx;
            sayYES;
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case CURLYX_end_fail: /* just failed to match all of A*B */
            regcpblow(ST.cp);
            cur_curlyx = ST.prev_curlyx;
            sayNO;
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
 
 #undef ST
@@ -6731,7 +6761,7 @@ NULL
 
                PUSH_STATE_GOTO(WHILEM_A_pre, A, locinput);
                 /* NOTREACHED */
-               NOT_REACHED;
+               NOT_REACHED; /* NOTREACHED */
            }
 
            /* If degenerate A matches "", assume A done. */
@@ -6844,7 +6874,7 @@ NULL
                PUSH_YES_STATE_GOTO(WHILEM_B_min, ST.save_curlyx->u.curlyx.B,
                                     locinput);
                 /* NOTREACHED */
-               NOT_REACHED;
+               NOT_REACHED; /* NOTREACHED */
            }
 
            /* Prefer A over B for maximal matching. */
@@ -6856,19 +6886,19 @@ NULL
                REGCP_SET(ST.lastcp);
                PUSH_STATE_GOTO(WHILEM_A_max, A, locinput);
                 /* NOTREACHED */
-               NOT_REACHED;
+               NOT_REACHED; /* NOTREACHED */
            }
            goto do_whilem_B_max;
        }
         /* NOTREACHED */
-       NOT_REACHED;
+       NOT_REACHED; /* NOTREACHED */
 
        case WHILEM_B_min: /* just matched B in a minimal match */
        case WHILEM_B_max: /* just matched B in a maximal match */
            cur_curlyx = ST.save_curlyx;
            sayYES;
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case WHILEM_B_max_fail: /* just failed to match B in a maximal match */
            cur_curlyx = ST.save_curlyx;
@@ -6876,7 +6906,7 @@ NULL
            cur_curlyx->u.curlyx.count--;
            CACHEsayNO;
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case WHILEM_A_min_fail: /* just failed to match A in a minimal match */
            /* FALLTHROUGH */
@@ -6887,7 +6917,7 @@ NULL
            cur_curlyx->u.curlyx.count--;
            CACHEsayNO;
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case WHILEM_A_max_fail: /* just failed to match A in a maximal match */
            REGCP_UNWIND(ST.lastcp);
@@ -6914,7 +6944,7 @@ NULL
            PUSH_YES_STATE_GOTO(WHILEM_B_max, ST.save_curlyx->u.curlyx.B,
                                 locinput);
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case WHILEM_B_min_fail: /* just failed to match B in a minimal match */
            cur_curlyx = ST.save_curlyx;
@@ -6949,7 +6979,7 @@ NULL
                /*A*/ NEXTOPER(ST.save_curlyx->u.curlyx.me) + EXTRA_STEP_2ARGS,
                 locinput);
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
 #undef  ST
 #define ST st->u.branch
@@ -6975,14 +7005,14 @@ NULL
                PUSH_STATE_GOTO(BRANCH_next, scan, locinput);
            }
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
         case CUTGROUP:  /*  /(*THEN)/  */
             sv_yes_mark = st->u.mark.mark_name = scan->flags ? NULL :
                 MUTABLE_SV(rexi->data->data[ ARG( scan ) ]);
             PUSH_STATE_GOTO(CUTGROUP_next, next, locinput);
             /* NOTREACHED */
-            NOT_REACHED;
+            NOT_REACHED; /* NOTREACHED */
 
         case CUTGROUP_next_fail:
             do_cutgroup = 1;
@@ -6991,12 +7021,12 @@ NULL
                 sv_commit = st->u.mark.mark_name;
             sayNO;         
             /* NOTREACHED */
-            NOT_REACHED;
+            NOT_REACHED; /* NOTREACHED */
 
         case BRANCH_next:
             sayYES;
             /* NOTREACHED */
-            NOT_REACHED;
+            NOT_REACHED; /* NOTREACHED */
 
        case BRANCH_next_fail: /* that branch failed; try the next, if any */
            if (do_cutgroup) {
@@ -7063,7 +7093,7 @@ NULL
          curlym_do_A: /* execute the A in /A{m,n}B/  */
            PUSH_YES_STATE_GOTO(CURLYM_A, ST.A, locinput); /* match A */
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case CURLYM_A: /* we've just matched an A */
            ST.count++;
@@ -7200,7 +7230,7 @@ NULL
            
            PUSH_STATE_GOTO(CURLYM_B, ST.B, locinput); /* match B */
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case CURLYM_B_fail: /* just failed to match a B */
            REGCP_UNWIND(ST.cp);
@@ -7379,7 +7409,7 @@ NULL
                goto curly_try_B_max;
            }
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case CURLY_B_min_known_fail:
            /* failed to find B in a non-greedy match where c1,c2 valid */
@@ -7455,7 +7485,7 @@ NULL
                PUSH_STATE_GOTO(CURLY_B_min_known, ST.B, locinput);
            }
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case CURLY_B_min_fail:
            /* failed to find B in a non-greedy match where c1,c2 invalid */
@@ -7488,7 +7518,7 @@ NULL
            }
             sayNO;
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
           curly_try_B_max:
            /* a successful greedy match: now try to match B */
@@ -7519,7 +7549,7 @@ NULL
                    CURLY_SETPAREN(ST.paren, ST.count);
                    PUSH_STATE_GOTO(CURLY_B_max, ST.B, locinput);
                     /* NOTREACHED */
-                   NOT_REACHED;
+                   NOT_REACHED; /* NOTREACHED */
                }
            }
            /* FALLTHROUGH */
@@ -7639,7 +7669,7 @@ NULL
            /* execute body of (?...A) */
            PUSH_YES_STATE_GOTO(IFMATCH_A, NEXTOPER(NEXTOPER(scan)), newstart);
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
         }
 
        case IFMATCH_A_fail: /* body of (?...A) failed */
@@ -7680,7 +7710,7 @@ NULL
                sv_yes_mark = sv_commit = MUTABLE_SV(rexi->data->data[ ARG( scan ) ]);
            PUSH_STATE_GOTO(COMMIT_next, next, locinput);
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
        case COMMIT_next_fail:
            no_final = 1;    
@@ -7689,7 +7719,7 @@ NULL
        case OPFAIL:   /* (*FAIL)  */
            sayNO;
             /* NOTREACHED */
-           NOT_REACHED;
+           NOT_REACHED; /* NOTREACHED */
 
 #define ST st->u.mark
         case MARKPOINT: /*  (*MARK:foo)  */
@@ -7700,13 +7730,13 @@ NULL
             ST.mark_loc = locinput;
             PUSH_YES_STATE_GOTO(MARKPOINT_next, next, locinput);
             /* NOTREACHED */
-            NOT_REACHED;
+            NOT_REACHED; /* NOTREACHED */
 
         case MARKPOINT_next:
             mark_state = ST.prev_mark;
             sayYES;
             /* NOTREACHED */
-            NOT_REACHED;
+            NOT_REACHED; /* NOTREACHED */
 
         case MARKPOINT_next_fail:
             if (popmark && sv_eq(ST.mark_name,popmark)) 
@@ -7728,7 +7758,7 @@ NULL
                 mark_state->u.mark.mark_name : NULL;
             sayNO;
             /* NOTREACHED */
-            NOT_REACHED;
+            NOT_REACHED; /* NOTREACHED */
 
         case SKIP:  /*  (*SKIP)  */
             if (scan->flags) {
@@ -7774,7 +7804,7 @@ NULL
             no_final = 1; 
             sayNO;
             /* NOTREACHED */
-            NOT_REACHED;
+            NOT_REACHED; /* NOTREACHED */
 #undef ST
 
         case LNBREAK: /* \R */
@@ -7862,7 +7892,7 @@ NULL
     Perl_croak(aTHX_ "corrupted regexp pointers");
     /* NOTREACHED */
     sayNO;
-    NOT_REACHED;
+    NOT_REACHED; /* NOTREACHED */
 
   yes:
     if (yes_state) {
@@ -8014,7 +8044,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
     char *loceol = reginfo->strend;   /* local version */
     I32 hardcount = 0;  /* How many matches so far */
     bool utf8_target = reginfo->is_utf8_target;
-    int to_complement = 0;  /* Invert the result? */
+    unsigned int to_complement = 0;  /* Invert the result? */
     UV utf8_flags;
     _char_class_number classnum;
 #ifndef DEBUGGING
@@ -8388,11 +8418,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
                  * code is written for making the loops as tight as possible.
                  * It could be refactored to save space instead */
                 switch (classnum) {
-                    case _CC_ENUM_SPACE:    /* XXX would require separate code
-                                               if we revert the change of \v
-                                               matching this */
-                        /* FALLTHROUGH */
-                    case _CC_ENUM_PSXSPC:
+                    case _CC_ENUM_SPACE:
                         while (hardcount < max
                                && scan < loceol
                                && (to_complement ^ cBOOL(isSPACE_utf8(scan))))
@@ -8510,7 +8536,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
     default:
         Perl_croak(aTHX_ "panic: regrepeat() called with unrecognized node type %d='%s'", OP(p), PL_reg_name[OP(p)]);
         /* NOTREACHED */
-        NOT_REACHED;
+        NOT_REACHED; /* NOTREACHED */
 
     }
 
index 144d6f6..3c9b991 100644 (file)
 #define        MEOL                    5       /* 0x05 Same, assuming multiline: /$/m */
 #define        EOS                     6       /* 0x06 Match "" at end of string: /\z/ */
 #define        GPOS                    7       /* 0x07 Matches where last m//g left off. */
-#define        BOUND                   8       /* 0x08 Match "" at any word boundary using native charset rules for non-utf8, otherwise Unicode rules */
-#define        BOUNDL                  9       /* 0x09 Match "" at any boundary of a given type using locale rules */
+#define        BOUND                   8       /* 0x08 Like BOUNDA for non-utf8, otherwise match "" between any Unicode \w\W or \W\w */
+#define        BOUNDL                  9       /* 0x09 Like BOUND/BOUNDU, but \w and \W are defined by current locale */
 #define        BOUNDU                  10      /* 0x0a Match "" at any boundary of a given type using Unicode rules */
-#define        BOUNDA                  11      /* 0x0b Match "" at any boundary of a given type using ASCII rules */
-#define        NBOUND                  12      /* 0x0c Match "" at any word non-boundary using native charset rules for non-utf8, otherwise Unicode rules */
-#define        NBOUNDL                 13      /* 0x0d Match "" at any boundary of a given type using locale rules */
-#define        NBOUNDU                 14      /* 0x0e Match "" at any boundary of a given type using using Unicode rules */
-#define        NBOUNDA                 15      /* 0x0f Match "" at any boundary of a given type using using ASCII rules */
+#define        BOUNDA                  11      /* 0x0b Match "" at any boundary between \w\W or \W\w, where \w is [_a-zA-Z0-9] */
+#define        NBOUND                  12      /* 0x0c Like NBOUNDA for non-utf8, otherwise match "" between any Unicode \w\w or \W\W */
+#define        NBOUNDL                 13      /* 0x0d Like NBOUND/NBOUNDU, but \w and \W are defined by current locale */
+#define        NBOUNDU                 14      /* 0x0e Match "" at any non-boundary of a given type using using Unicode rules */
+#define        NBOUNDA                 15      /* 0x0f Match "" betweeen any \w\w or \W\W, where \w is [_a-zA-Z0-9] */
 #define        REG_ANY                 16      /* 0x10 Match any one character (except newline). */
 #define        SANY                    17      /* 0x11 Match any one character. */
 #define        CANY                    18      /* 0x12 Match any one byte. */
diff --git a/sv.c b/sv.c
index 182176a..341d591 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -1425,6 +1425,7 @@ Perl_sv_upgrade(pTHX_ SV *const sv, svtype new_type)
           no route from NV to PVIV, NOK can never be true  */
        assert(!SvNOKp(sv));
        assert(!SvNOK(sv));
+        /* FALLTHROUGH */
     case SVt_PVIO:
     case SVt_PVFM:
     case SVt_PVGV:
@@ -3159,7 +3160,8 @@ Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
 #else
                 {
                     bool local_radix;
-                    DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED();
+                    DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+                    STORE_LC_NUMERIC_SET_TO_NEEDED();
 
                     local_radix =
                         PL_numeric_local &&
@@ -6305,8 +6307,6 @@ Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN l
 
     PERL_ARGS_ASSERT_SV_INSERT_FLAGS;
 
-    if (!bigstr)
-       Perl_croak(aTHX_ "Can't modify nonexistent substring");
     SvPV_force_flags(bigstr, curlen, flags);
     (void)SvPOK_only_UTF8(bigstr);
     if (offset + len > curlen) {
@@ -6520,7 +6520,8 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
     SV* iter_sv = NULL;
     SV* next_sv = NULL;
     SV *sv = orig_sv;
-    STRLEN hash_index;
+    STRLEN hash_index = 0; /* initialise to make Coverity et al happy.
+                              Not strictly necessary */
 
     PERL_ARGS_ASSERT_SV_CLEAR;
 
@@ -6611,17 +6612,19 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
                PL_last_swash_hv = NULL;
            }
            if (HvTOTALKEYS((HV*)sv) > 0) {
-               const char *name;
+               const HEK *hek;
                /* this statement should match the one at the beginning of
                 * hv_undef_flags() */
                if (   PL_phase != PERL_PHASE_DESTRUCT
-                   && (name = HvNAME((HV*)sv)))
+                   && (hek = HvNAME_HEK((HV*)sv)))
                {
                    if (PL_stashcache) {
-                    DEBUG_o(Perl_deb(aTHX_ "sv_clear clearing PL_stashcache for '%"SVf"'\n",
-                                     SVfARG(sv)));
+                       DEBUG_o(Perl_deb(aTHX_
+                           "sv_clear clearing PL_stashcache for '%"HEKf
+                           "'\n",
+                            HEKfARG(hek)));
                        (void)hv_deletehek(PL_stashcache,
-                                          HvNAME_HEK((HV*)sv), G_DISCARD);
+                                           hek, G_DISCARD);
                     }
                    hv_name_set((HV*)sv, NULL, 0, 0);
                }
@@ -6672,6 +6675,7 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
            else if (LvTYPE(sv) != 't') /* unless tie: unrefcnted fake SV**  */
                SvREFCNT_dec(LvTARG(sv));
            if (isREGEXP(sv)) goto freeregexp;
+            /* FALLTHROUGH */
        case SVt_PVGV:
            if (isGV_with_GP(sv)) {
                if(GvCVu((const GV *)sv) && (stash = GvSTASH(MUTABLE_GV(sv)))
@@ -6696,6 +6700,7 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
                PL_statgv = NULL;
             else if ((const GV *)sv == PL_stderrgv)
                 PL_stderrgv = NULL;
+            /* FALLTHROUGH */
        case SVt_PVMG:
        case SVt_PVNV:
        case SVt_PVIV:
@@ -11201,7 +11206,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
     bool no_redundant_warning = FALSE; /* did we use any explicit format parameter index? */
     bool hexfp = FALSE; /* hexadecimal floating point? */
 
-    DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED;
+    DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
 
     PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS;
     PERL_UNUSED_ARG(maybe_tainted);
@@ -13877,17 +13882,22 @@ Perl_cx_dup(pTHX_ PERL_CONTEXT *cxs, I32 ix, I32 max, CLONE_PARAMS* param)
            case CXt_LOOP_LAZYSV:
                ncx->blk_loop.state_u.lazysv.end
                    = sv_dup_inc(ncx->blk_loop.state_u.lazysv.end, param);
-               /* We are taking advantage of av_dup_inc and sv_dup_inc
-                  actually being the same function, and order equivalence of
-                  the two unions.
+                /* Fallthrough: duplicate lazysv.cur by using the ary.ary
+                   duplication code instead.
+                   We are taking advantage of (1) av_dup_inc and sv_dup_inc
+                   actually being the same function, and (2) order
+                   equivalence of the two unions.
                   We can assert the later [but only at run time :-(]  */
                assert ((void *) &ncx->blk_loop.state_u.ary.ary ==
                        (void *) &ncx->blk_loop.state_u.lazysv.cur);
+                /* FALLTHROUGH */
            case CXt_LOOP_FOR:
                ncx->blk_loop.state_u.ary.ary
                    = av_dup_inc(ncx->blk_loop.state_u.ary.ary, param);
+                /* FALLTHROUGH */
            case CXt_LOOP_LAZYIV:
            case CXt_LOOP_PLAIN:
+                /* code common to all CXt_LOOP_* types */
                if (CxPADLOOP(ncx)) {
                    ncx->blk_loop.itervar_u.oldcomppad
                        = (PAD*)ptr_table_fetch(PL_ptr_table,
@@ -15341,7 +15351,7 @@ Perl_sv_cat_decode(pTHX_ SV *dsv, SV *encoding,
 
     PERL_ARGS_ASSERT_SV_CAT_DECODE;
 
-    if (SvPOK(ssv) && SvPOK(dsv) && SvROK(encoding) && offset) {
+    if (SvPOK(ssv) && SvPOK(dsv) && SvROK(encoding)) {
        SV *offsv;
        dSP;
        ENTER;
diff --git a/t/TEST b/t/TEST
index 9fa708c..6b137b6 100755 (executable)
--- a/t/TEST
+++ b/t/TEST
@@ -409,6 +409,11 @@ sub _tests_from_manifest {
            if (m!^((?:cpan|dist|ext)/(\S+)/+(?:[^/\s]+\.t|test\.pl)|lib/\S+?(?:\.t|test\.pl))\s!) {
                my $t = $1;
                my $extension = $2;
+
+               # XXX Generates way too many error lines currently.  Skip for
+               # v5.22
+               next if $t =~ /^cpan/ && ord("A") != 65;
+
                if (!$::core || $t =~ m!^lib/[a-z]!) {
                    if (defined $extension) {
                        $extension =~ s!/t(:?/\S+)*$!!;
@@ -665,7 +670,10 @@ EOT
                }
            }
        }
+       my  @junk = <$results>;  # dump remaining output to prevent SIGPIPE
+                                # (so far happens only on os390)
        close $results;
+       undef @junk;
 
        if (not defined $failure) {
            $failure = 'FAILED--no leader found' unless $seen_leader;
index 5449b46..0a07ab7 100644 (file)
@@ -251,8 +251,9 @@ print ((exists $str{xyz::bar} ? "" : "not ")."ok $test\n"); ++$test;
 sub foo::::::bar { print "ok $test\n"; $test++ }
 foo::::::bar;
 
-eval "\$x =\xE2foo";
-if ($@ =~ /Unrecognized character \\xE2; marked by <-- HERE after \$x =<-- HERE near column 5/) { print "ok $test\n"; } else { print "not ok $test\n"; }
+# \xDF is a non-ASCII alpha on both ASCII and EBCDIC.
+eval "\$x =\xDFfoo";
+if ($@ =~ /Unrecognized character \\xDF; marked by <-- HERE after \$x =<-- HERE near column 5/) { print "ok $test\n"; } else { print "not ok $test\n"; }
 $test++;
 
 # Is "[~" scanned correctly?
@@ -383,7 +384,7 @@ eval "package v10::foo; sub test2 { return 'v10::foo' }
 print "not " unless $output eq 'v10::foo';
 print "ok $test - call a function in package v10::foo\n"; $test++;
 
-print "not " unless (1?v65:"bar") eq 'A';
+print "not " unless (1?v65:"bar") eq chr(65);
 print "ok $test - colon detection after vstring does not break ? vstring :\n"; $test++;
 if (ord("\t") == 9) {
     print v35;
@@ -486,11 +487,22 @@ print "ok $test - map{sub :lvalue...}\n"; $test++;
 # Used to crash [perl #123711]
 0-5x-l{0};
 
-# Used to fail an assertion [perl #123617]
+# Used to fail an assertion [perl #123617] [perl #123955]
 eval '"$a{ 1 m// }"; //';
+eval '"@0{0s 000";eval"$"';
 
 # Pending token stack overflow [perl #123677]
 {
  local $SIG{__WARN__}=sub{};
  eval q|s)$0{0h());qx(@0);qx(@0);qx(@0)|;
 }
+
+# Used to crash [perl #123801]
+eval q|s##[}#e|;
+
+# Used to fail an assertion [perl #123763]
+{
+ local $SIG{__WARN__}=sub{};
+ eval q|my($_);0=split|;
+ eval q|my $_; @x = split|;
+}
index a84cfc2..a4ae052 100644 (file)
@@ -534,6 +534,12 @@ eval{$1=eval{a:}};
 eval "map+map";
 eval "grep+grep";
 
+# ALso failed an assertion [perl #123848]
+{
+ local $SIG{__WARN__} = sub{};
+ eval 'my $_; m// ~~ 0';
+}
+
 # Add new tests HERE (above this line)
 
 # bug #74022: Loop on characters in \p{OtherIDContinue}
index ea569ad..be43c63 100644 (file)
@@ -346,9 +346,9 @@ if (defined &DynaLoader::boot_DynaLoader) {
 # Add generic tests before this point.   #
 ##########################################
 
-# UTF-encoded things - skipped on EBCDIC machines and on UTF-8 input
+# UTF-encoded things - skipped on UTF-8 input
 
-if ($Is_EBCDIC || $Is_UTF8) { exit; }
+if ($Is_UTF8) { exit; }
 
 my %templates = (
                 'UTF-8'    => 'C0U',
index 03440a2..a9da09f 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
 
 BEGIN { require "./test.pl"; }
 
-plan(tests => 36);
+plan(tests => 37);
 
 my ($devnull, $no_devnull);
 
@@ -39,6 +39,15 @@ is($x, "1a line\n2a line\n", '<> from two files');
     );
     is($x, "a line\nfoo\n", '<> from a file and STDIN');
 
+    # readline should behave as <>, not <<>>
+    $x = runperl(
+        prog   => 'while (readline) { print $_; }',
+        stdin  => "foo\n",
+        stderr         => 1,
+        args   => [ '-' ],
+    );
+    is($x, "foo\n", 'readline() from STDIN');
+
     $x = runperl(
        prog    => 'while (<>) { print $_; }',
        stdin   => "foo\n",
@@ -91,7 +100,7 @@ close TRY or die "Could not close: $!";
 @ARGV = ('Io_argv1.tmp', 'Io_argv2.tmp');
 $^I = '_bak';   # not .bak which confuses VMS
 $/ = undef;
-my $i = 10;
+my $i = 11;
 while (<>) {
     s/^/ok $i\n/;
     ++$i;
@@ -116,7 +125,7 @@ open STDIN, 'Io_argv1.tmp' or die $!;
 @ARGV = ();
 ok( !eof(),     'STDIN has something' );
 
-is( <>, "ok 10\n" );
+is( <>, "ok 11\n" );
 
 SKIP: {
     skip_if_miniperl($no_devnull, 4);
@@ -196,13 +205,13 @@ like($x, qr/^Can't open -: .* at -e line 1/, '<<>> does not treat - as STDIN');
         prog   => 'push @ARGV,q//;print while <>',
         stderr => 1,
     );
-    like($x, qr/^Can't open : .* at -e line 1/, '<<>> does not treat - as STDIN');
+    like($x, qr/^Can't open : .* at -e line 1/, '<> does not open empty string in ARGV');
 
     $x = runperl(
         prog   => 'push @ARGV,q//;print while <<>>',
         stderr => 1,
     );
-    like($x, qr/^Can't open : .* at -e line 1/, '<<>> does not treat - as STDIN');
+    like($x, qr/^Can't open : .* at -e line 1/, '<<>> does not open empty string in ARGV');
 }
 
 SKIP: {
index ea138fa..9331068 100644 (file)
@@ -3,7 +3,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = qw(. ../lib);
-    require "./test.pl";
+    require "./test.pl"; require "charset_tools.pl";
     skip_all_without_perlio();
 }
 
@@ -11,6 +11,8 @@ use Config;
 
 
 my $file = tempfile();
+my $crlf = uni_to_native("\015\012");
+my $crcr = uni_to_native("\x0d\x0d");
 
 my $ungetc_count = 8200;    # Somewhat over the likely buffer size
 
@@ -22,13 +24,13 @@ my $ungetc_count = 8200;    # Somewhat over the likely buffer size
 
     my $text;
     { local $/; $text = <FOO> }
-    is(count_chars($text, "\015\012"), 0);
+    is(count_chars($text, $crlf), 0);
     is(count_chars($text, "\n"), 2000);
 
     binmode(FOO);
     seek(FOO,0,0);
     { local $/; $text = <FOO> }
-    is(count_chars($text, "\015\012"), 2000);
+    is(count_chars($text, $crlf), 2000);
 
     SKIP:
     {
@@ -37,7 +39,7 @@ my $ungetc_count = 8200;    # Somewhat over the likely buffer size
        skip("no PerlIO::scalar", 2 * $ungetc_count + 1)
            unless $Config{extensions} =~ m!\bPerlIO/scalar\b!;
        require PerlIO::scalar;
-       my $fcontents = join "", map {"$_\015\012"} "a".."zzz";
+       my $fcontents = join "", map {"$_$crlf"} "a".."zzz";
        open my $fh, "<:crlf", \$fcontents;
        local $/ = "xxx";
        local $_ = <$fh>;
@@ -80,8 +82,8 @@ my $ungetc_count = 8200;    # Somewhat over the likely buffer size
            close FOO;
            print join(" ", "#", map { sprintf("%02x", $_) } unpack("C*", $foo)),
            "\n";
-           like($foo, qr/\x0d\x0a$/);
-           unlike($foo, qr/\x0d\x0d/);
+           like($foo, qr/$crlf$/);
+           unlike($foo, qr/$crcr/);
        }
     }
 }
index 315de90..eaf9bc0 100644 (file)
@@ -72,10 +72,20 @@ sub testpipe ($$$$$$) {
     open $fh, '-|', qq[$Perl -we "$set_out;print for grep length, split /(.{1,$write_c})/s, qq($quoted)"] or die "open: $!";
   } elsif ($how_w eq 'print/flush') {
     # shell-neutral and miniperl-enabled autoflush? qq(\x24\x7c) eq '$|'
-    open $fh, '-|', qq[$Perl -we "$set_out;eval qq(\\x24\\x7c = 1) or die;print for grep length, split /(.{1,$write_c})/s, qq($quoted)"] or die "open: $!";
+    if ($::IS_ASCII) {
+        open $fh, '-|', qq[$Perl -we "$set_out;eval qq(\\x24\\x7c = 1) or die;print for grep length, split /(.{1,$write_c})/s, qq($quoted)"] or die "open: $!";
+    }
+    else {
+        open $fh, '-|', qq[$Perl -we "$set_out;eval qq(\\x5b\\x4f = 1) or die;print for grep length, split /(.{1,$write_c})/s, qq($quoted)"] or die "open: $!";
+    }
   } elsif ($how_w eq 'syswrite') {
     ### How to protect \$_
-    open $fh, '-|', qq[$Perl -we "$set_out;eval qq(sub w {syswrite STDOUT, \\x24_} 1) or die; w() for grep length, split /(.{1,$write_c})/s, qq($quoted)"] or die "open: $!";
+    if ($::IS_ASCII) {
+        open $fh, '-|', qq[$Perl -we "$set_out;eval qq(sub w {syswrite STDOUT, \\x24_} 1) or die; w() for grep length, split /(.{1,$write_c})/s, qq($quoted)"] or die "open: $!";
+    }
+    else {
+        open $fh, '-|', qq[$Perl -we "$set_out;eval qq(sub w {syswrite STDOUT, \\x5B_} 1) or die; w() for grep length, split /(.{1,$write_c})/s, qq($quoted)"] or die "open: $!";
+    }
   } else {
     die "Unrecognized write: '$how_w'";
   }
@@ -112,7 +122,13 @@ sub testfile ($$$$$$) {
 }
 
 # shell-neutral and miniperl-enabled autoflush? qq(\x24\x7c) eq '$|'
-open my $fh, '-|', qq[$Perl -we "eval qq(\\x24\\x7c = 1) or die; binmode STDOUT; sleep 1, print for split //, qq(a\nb\n\nc\n\n\n)"] or die "open: $!";
+my $fh;
+if ($::IS_ASCII) {
+    open $fh, '-|', qq[$Perl -we "eval qq(\\x24\\x7c = 1) or die; binmode STDOUT; sleep 1, print for split //, qq(a\nb\n\nc\n\n\n)"] or die "open: $!";
+}
+else {
+    open $fh, '-|', qq[$Perl -we "eval qq(\\x5B\\x4f = 1) or die; binmode STDOUT; sleep 1, print for split //, qq(a\nb\n\nc\n\n\n)"] or die "open: $!";
+}
 ok(1, 'open pipe');
 binmode $fh, q(:crlf);
 ok(1, 'binmode');
@@ -121,7 +137,16 @@ my @c;
 push @c, ord $c while $c = getc $fh;
 ok(1, 'got chars');
 is(scalar @c, 9, 'got 9 chars');
-is("@c", '97 10 98 10 10 99 10 10 10', 'got expected chars');
+is("@c", join(" ", utf8::unicode_to_native(97),
+                   utf8::unicode_to_native(10),
+                   utf8::unicode_to_native(98),
+                   utf8::unicode_to_native(10),
+                   utf8::unicode_to_native(10),
+                   utf8::unicode_to_native(99),
+                   utf8::unicode_to_native(10),
+                   utf8::unicode_to_native(10),
+                   utf8::unicode_to_native(10)),
+         'got expected chars');
 ok(close($fh), 'close');
 
 for my $s (1..2) {
index 4f96dcc..756f307 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_without_perlio();
 }
 
@@ -27,17 +27,18 @@ is( getc(F), "
 is( getc(F), "\n" );
 seek(F,0,0);
 binmode(F,":bytes");
-my $chr = chr(0xc4);
-if (ord($a_file) == 193) { $chr = chr(0x8c); } # EBCDIC
+
+# Byte representation of these characters
+my $U_100 = byte_utf8a_to_utf8n("\xc4\x80");
+my $POUND_SIGN = byte_utf8a_to_utf8n("\xc2\xa3");
+
+my $chr = substr($U_100, 0, 1);
 is( getc(F), $chr );
-$chr = chr(0x80);
-if (ord($a_file) == 193) { $chr = chr(0x41); } # EBCDIC
+$chr = substr($U_100, 1, 1);
 is( getc(F), $chr );
-$chr = chr(0xc2);
-if (ord($a_file) == 193) { $chr = chr(0x80); } # EBCDIC
+$chr = substr($POUND_SIGN, 0, 1);
 is( getc(F), $chr );
-$chr = chr(0xa3);
-if (ord($a_file) == 193) { $chr = chr(0x44); } # EBCDIC
+$chr = substr($POUND_SIGN, 1, 1);
 is( getc(F), $chr );
 is( getc(F), "\n" );
 seek(F,0,0);
@@ -68,7 +69,7 @@ close(F);
     $x = <F>;
     chomp($x);
     $chr = chr(196).chr(172);
-    if (ord($a_file) == 193) { $chr = chr(141).chr(83); } # EBCDIC
+    if ($::IS_EBCDIC) { $chr = chr(141).chr(83); } # EBCDIC
     is( $x, $chr );
     close F;
 
@@ -96,7 +97,7 @@ close(F);
 
     {
        my $x = tell(F);
-       { use bytes; if (ord('A')==193){$y += 2;}else{$y += 3;}} # EBCDIC ASCII
+       { use bytes; if ($::IS_EBCDIC){$y += 2;}else{$y += 3;}} # EBCDIC ASCII
        cmp_ok( $x, '==', $y );
     }
 
@@ -107,7 +108,7 @@ close(F);
     $x = <F>;
     chomp($x);
     $chr = v196.172.194.130;
-    if (ord('A') == 193) { $chr = v141.83.130; } # EBCDIC
+    if ($::IS_EBCDIC) { $chr = v141.83.130; } # EBCDIC
     is( $x, $chr, sprintf('(%vd)', $x) );
 
     open F, "<:utf8", $a_file or die $!;
@@ -141,7 +142,7 @@ open F, "<", $a_file or die $!;
 binmode(F, ":bytes");
 $x = <F>; chomp $x;
 $chr = v196.172.130;
-if (ord('A') == 193) { $chr = v141.83.130; } # EBCDIC
+if ($::IS_EBCDIC) { $chr = v141.83.130; } # EBCDIC
 is( $x, $chr );
 
 # Right.
@@ -165,7 +166,7 @@ SKIP: {
 # Now we have a deformed file.
 
 SKIP: {
-    if (ord('A') == 193) {
+    if ($::IS_EBCDIC) {
        skip("EBCDIC doesn't complain", 2);
     } else {
        my @warnings;
@@ -330,7 +331,7 @@ is($failed, undef);
     open F, ">$a_file";
     binmode F;
     my ($chrE4, $chrF6) = (chr(0xE4), chr(0xF6));
-    if (ord('A') == 193)       # EBCDIC
+    if ($::IS_EBCDIC)  # EBCDIC
     { ($chrE4, $chrF6) = (chr(0x43), chr(0xEC)); }
     print F "foo", $chrE4, "\n";
     print F "foo", $chrF6, "\n";
@@ -339,7 +340,7 @@ is($failed, undef);
     undef $@;
     my $line = <F>;
     my ($chrE4, $chrF6) = ("E4", "F6");
-    if (ord('A') == 193) { ($chrE4, $chrF6) = ("43", "EC"); } # EBCDIC
+    if ($::IS_EBCDIC) { ($chrE4, $chrF6) = ("43", "EC"); } # EBCDIC
     like( $@, qr/utf8 "\\x$chrE4" does not map to Unicode .+ <F> line 1/,
          "<:utf8 readline must warn about bad utf8");
     undef $@;
@@ -393,7 +394,7 @@ is($failed, undef);
 SKIP: {
     skip "no PerlIO::scalar on miniperl", 2, if is_miniperl();
     open my $fh, "<:raw",  \($buf = chr 255);
-    open my $uh, "<:utf8", \($uuf = "\xc4\x80");
+    open my $uh, "<:utf8", \($uuf = $U_100);
     for([$uh,chr 256], [$fh,chr 255]) {
        is getc $$_[0], $$_[1],
          'getc returning non-utf8 after utf8';
index 5652beb..2d2887d 100644 (file)
@@ -11,13 +11,14 @@ EXPECT
 Can't use global $! in "my" at - line 1, near "my $!"
 Execution of - aborted due to compilation errors.
 ########
-# NAME my $<latin1>
+# NAME my $<non-ASCII> doesn't output garbage
+# \xB6 is same character in all three EBCDIC pages and Latin1
 use open ":std", ":utf8";
-eval qq|my \$\xe9;|; # é in Latin-1
+eval qq|my \$\xb6;|; # ¶ in Latin-1, and EBCDIC 1047, 037, POSIX-BC
 print $@;
 exit 1;
 EXPECT
-Can't use global $é in "my" at (eval 1) line 1, near "my $é"
+Can't use global $¶ in "my" at (eval 1) line 1, near "my $¶"
 ########
 # NAME OP_HELEM fields
 package Foo;
index 429e68e..a5a6784 100644 (file)
@@ -9,20 +9,20 @@ Helloworld
 ########
 # Standard feature bundle, no 5.11
 use feature ":5.10";
-say ord uc chr 233;
+say utf8::native_to_unicode(ord uc chr utf8::unicode_to_native(233));
 EXPECT
 233
 ########
 # Standard feature bundle, 5.11
 use feature ":5.11";
-say ord uc chr 233;
+say utf8::native_to_unicode(ord uc chr utf8::unicode_to_native(233));
 EXPECT
 201
 ########
 # Standard feature bundle, 5.11
 use feature ":5.11";
 use utf8;
-say ord "\ué"; # this is utf8
+say utf8::native_to_unicode(ord "\ué"); # this is utf8
 EXPECT
 201
 ########
index a741421..79f1bf8 100644 (file)
@@ -107,18 +107,21 @@ b
 ########
 # Implicit unicode_string feature
 use v5.14;
-print 'ss' =~ /\xdf/i ? "ok\n" : "nok\n";
+my $sharp_s = chr utf8::unicode_to_native(0xdf);
+print 'ss' =~ /$sharp_s/i ? "ok\n" : "nok\n";
 use v5.8.8;
-print 'ss' =~ /\xdf/i ? "ok\n" : "nok\n";
+print 'ss' =~ /$sharp_s/i ? "ok\n" : "nok\n";
 EXPECT
 ok
 nok
 ########
 # Implicit unicode_eval feature
 use v5.15;
-print eval "use utf8; q|\xc5\xbf|" eq "\xc5\xbf" ? "ok\n" : "nok\n";
+require '../../t/charset_tools.pl';
+my $long_s = byte_utf8a_to_utf8n("\xc5\xbf");
+print eval "use utf8; q|$long_s|" eq $long_s ? "ok\n" : "nok\n";
 use v5.8.8;
-print eval "use utf8; q|\xc5\xbf|" eq "\x{17f}" ? "ok\n" : "nok\n";
+print eval "use utf8; q|$long_s|" eq "\x{17f}" ? "ok\n" : "nok\n";
 EXPECT
 ok
 ok
index bb0eb9e..477fdad 100644 (file)
@@ -764,10 +764,23 @@ Useless use of a constant (undef) in void context at - line 8.
 Useless use of a constant ("\"\t\n") in void context at - line 9.
 ########
 # op.c
+BEGIN {
+    if (ord('A') == 193) {
+        print "SKIPPED\n# Result varies depending on EBCDIC code page";
+        exit 0;
+    }
+}
 use utf8;
 use open qw( :utf8 :std );
 use warnings 'void' ;
 "àḆc"; # OP_CONST
+EXPECT
+Useless use of a constant ("\340\x{1e06}c") in void context at - line 11.
+########
+# op.c
+use utf8;
+use open qw( :utf8 :std );
+use warnings 'void' ;
 "Ẋ" . "ƴ"; # optimized to OP_CONST
 FOO;     # Bareword optimized to OP_CONST
 use constant ů => undef;
@@ -778,10 +791,9 @@ no warnings 'void' ;
 "àḆc"; # OP_CONST
 "Ẋ" . "ƴ"; # optimized to OP_CONST
 EXPECT
-Useless use of a constant ("\340\x{1e06}c") in void context at - line 5.
-Useless use of a constant ("\x{1e8a}\x{1b4}") in void context at - line 6.
-Useless use of a constant ("\x{ff26}\x{ff2f}\x{ff2f}") in void context at - line 7.
-Useless use of a constant (undef) in void context at - line 9.
+Useless use of a constant ("\x{1e8a}\x{1b4}") in void context at - line 5.
+Useless use of a constant ("\x{ff26}\x{ff2f}\x{ff2f}") in void context at - line 6.
+Useless use of a constant (undef) in void context at - line 8.
 ########
 # op.c
 #
@@ -1148,6 +1160,12 @@ Prototype after '@' for main::foo : @\0 at (eval 1) line 1.
 Illegal character in prototype for main::foo : @\0 at (eval 1) line 1.
 ########
 # op.c
+BEGIN {
+    if (ord('A') == 193) {
+        print "SKIPPED\n# Different results on EBCDIC";
+        exit 0;
+    }
+}
 use utf8;
 use open qw( :utf8 :std );
 use warnings;
index f62f5f1..b9943a0 100644 (file)
@@ -21,6 +21,12 @@ Non-octal character '8'.  Resolved as "\o{123}" at - line 3.
 Non-octal character '8'.  Resolved as "\o{654}" at - line 4.
 ########
 # regcomp.c.c
+BEGIN {
+    if (ord('A') == 193) {
+        print "SKIPPED\n# Different results on EBCDIC";
+        exit 0;
+    }
+}
 use warnings;
 $a = qr/\c,/;
 $a = qr/[\c,]/;
@@ -28,5 +34,5 @@ no warnings 'syntax';
 $a = qr/\c,/;
 $a = qr/[\c,]/;
 EXPECT
-"\c," is more clearly written simply as "l" at - line 3.
-"\c," is more clearly written simply as "l" at - line 4.
+"\c," is more clearly written simply as "l" at - line 9.
+"\c," is more clearly written simply as "l" at - line 10.
index 3f15db0..b62ff6e 100644 (file)
@@ -119,6 +119,10 @@ EXPECT
 
 ########
 # NAME Wide character in non-UTF-8 locale
+require '../loc_tools.pl';
+unless (locales_enabled()) {
+    print("SKIPPED\n# locales not available\n"),exit;
+}
 eval { require POSIX; POSIX->import("locale_h") };
 if ($@) {
     print("SKIPPED\n# no POSIX\n"),exit;
@@ -133,16 +137,16 @@ setlocale(&POSIX::LC_CTYPE, "C");
 "\x{100}" =~ /[\x{100}\x{102}]/l;
 no warnings 'locale';
 EXPECT
-Wide character (U+100) in pattern match (m//) at - line 8.
-Wide character (U+100) in pattern match (m//) at - line 8.
-Wide character (U+100) in pattern match (m//) at - line 9.
-Wide character (U+100) in pattern match (m//) at - line 9.
-Wide character (U+100) in pattern match (m//) at - line 9.
-Wide character (U+100) in pattern match (m//) at - line 10.
-Wide character (U+100) in pattern match (m//) at - line 10.
-Wide character (U+100) in pattern match (m//) at - line 11.
 Wide character (U+100) in pattern match (m//) at - line 12.
 Wide character (U+100) in pattern match (m//) at - line 12.
+Wide character (U+100) in pattern match (m//) at - line 13.
+Wide character (U+100) in pattern match (m//) at - line 13.
+Wide character (U+100) in pattern match (m//) at - line 13.
+Wide character (U+100) in pattern match (m//) at - line 14.
+Wide character (U+100) in pattern match (m//) at - line 14.
+Wide character (U+100) in pattern match (m//) at - line 15.
+Wide character (U+100) in pattern match (m//) at - line 16.
+Wide character (U+100) in pattern match (m//) at - line 16.
 ########
 # NAME \b{} in non-UTF-8 locale
 eval { require POSIX; POSIX->import("locale_h") };
@@ -156,5 +160,32 @@ setlocale(&POSIX::LC_CTYPE, "C");
 no warnings 'locale';
 "a" =~ /\b{gcb}/l;
 EXPECT
-Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 8.
-Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 8.
+Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 8.
+Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 8.
+########
+# NAME \b{} in UTF-8 locale
+require '../loc_tools.pl';
+unless (locales_enabled()) {
+    print("SKIPPED\n# locales not available\n"),exit;
+}
+eval { require POSIX; POSIX->import("locale_h") };
+if ($@) {
+    print("SKIPPED\n# no POSIX\n"),exit;
+}
+my $utf8_locale = find_utf8_ctype_locale();
+unless ($utf8_locale) {
+    print("SKIPPED\n# No UTF-8 locale available\n"),exit;
+}
+use warnings 'locale';
+use locale;
+setlocale(&POSIX::LC_CTYPE, "C");
+ "abc def" =~ /\b{wb}.*?/;
+ "abc def" =~ /\B{wb}.*?/;
+setlocale(&POSIX::LC_CTYPE, $utf8_locale);
+ "abc def" =~ /\b{wb}.*?/;
+ "abc def" =~ /\B{wb}.*?/;
+EXPECT
+Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 16.
+Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 16.
+Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 17.
+Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 17.
index 4e15f75..5d31104 100644 (file)
@@ -1355,6 +1355,12 @@ syntax error at - line 3, near "=~ ?"
 Execution of - aborted due to compilation errors.
 ########
 # toke.c
+BEGIN {
+    if (ord('A') == 193) {
+        print "SKIPPED\n# result varies depending on which ebcdic platform";
+        exit 0;
+    }
+}
 use warnings;
 $a = "\c,";
 $a = "\c`";
@@ -1362,8 +1368,8 @@ no warnings 'syntax';
 $a = "\c,";
 $a = "\c`";
 EXPECT
-"\c," is more clearly written simply as "l" at - line 3.
-"\c`" is more clearly written simply as "\ " at - line 4.
+"\c," is more clearly written simply as "l" at - line 9.
+"\c`" is more clearly written simply as "\ " at - line 10.
 ########
 # toke.c
 BEGIN {
index 75f3f25..d8f301d 100644 (file)
@@ -17,7 +17,7 @@ __END__
 # utf8.c [utf8_to_uvchr_buf] -W
 BEGIN {
     if (ord('A') == 193) {
-        print "SKIPPED\n# ebcdic platforms do not generate Malformed UTF-8 warnings.";
+        print "SKIPPED\n# ebcdic platforms generates different Malformed UTF-8 warnings.";
         exit 0;
     }
 }
@@ -583,6 +583,10 @@ close $fh;
 EXPECT
 ########
 # NAME Case change crosses 255/256 under non-UTF8 locale
+require '../loc_tools.pl';
+unless (locales_enabled('LC_CTYPE')) {
+    print("SKIPPED\n# locales not available\n"),exit;
+}
 eval { require POSIX; POSIX->import("locale_h") };
 if ($@) {
     print("SKIPPED\n# no POSIX\n"),exit;
@@ -606,14 +610,18 @@ $a = uc("\x{FB00}");
 $a = ucfirst("\x{149}");
 $a = lcfirst("\x{178}");
 EXPECT
-Can't do lc("\x{178}") on non-UTF-8 locale; resolved to "\x{178}". at - line 10.
-Can't do fc("\x{1E9E}") on non-UTF-8 locale; resolved to "\x{17F}\x{17F}". at - line 11.
-Can't do fc("\x{FB05}") on non-UTF-8 locale; resolved to "\x{FB06}". at - line 12.
-Can't do uc("\x{FB00}") on non-UTF-8 locale; resolved to "\x{FB00}". at - line 13.
-Can't do ucfirst("\x{149}") on non-UTF-8 locale; resolved to "\x{149}". at - line 14.
-Can't do lcfirst("\x{178}") on non-UTF-8 locale; resolved to "\x{178}". at - line 15.
+Can't do lc("\x{178}") on non-UTF-8 locale; resolved to "\x{178}". at - line 14.
+Can't do fc("\x{1E9E}") on non-UTF-8 locale; resolved to "\x{17F}\x{17F}". at - line 15.
+Can't do fc("\x{FB05}") on non-UTF-8 locale; resolved to "\x{FB06}". at - line 16.
+Can't do uc("\x{FB00}") on non-UTF-8 locale; resolved to "\x{FB00}". at - line 17.
+Can't do ucfirst("\x{149}") on non-UTF-8 locale; resolved to "\x{149}". at - line 18.
+Can't do lcfirst("\x{178}") on non-UTF-8 locale; resolved to "\x{178}". at - line 19.
 ########
 # NAME Wide character in non-UTF-8 locale
+require '../loc_tools.pl';
+unless (locales_enabled('LC_CTYPE')) {
+    print("SKIPPED\n# locales not available\n"),exit;
+}
 eval { require POSIX; POSIX->import("locale_h") };
 if ($@) {
     print("SKIPPED\n# no POSIX\n"),exit;
@@ -635,8 +643,8 @@ $a = fc("\x{102}");
 $a = uc("\x{103}");
 $a = ucfirst("\x{104}");
 EXPECT
-Wide character (U+100) in lc at - line 10.
-Wide character (U+101) in lcfirst at - line 11.
-Wide character (U+102) in fc at - line 12.
-Wide character (U+103) in uc at - line 13.
-Wide character (U+104) in ucfirst at - line 14.
+Wide character (U+100) in lc at - line 14.
+Wide character (U+101) in lcfirst at - line 15.
+Wide character (U+102) in fc at - line 16.
+Wide character (U+103) in uc at - line 17.
+Wide character (U+104) in ucfirst at - line 18.
index 6a6cdf4..44bf555 100644 (file)
@@ -73,6 +73,74 @@ sub _decode_encodings {
     return @enc;
 }
 
+# Initialize this hash so that it looks like e.g.,
+#   6 => 'CTYPE',
+# where 6 is the value of &POSIX::LC_CTYPE
+my %category_name;
+eval { require POSIX; import POSIX 'locale_h'; };
+unless ($@) {
+    my $number_for_missing_category = 0;
+    foreach my $name (qw(ALL COLLATE CTYPE MESSAGES MONETARY NUMERIC TIME)) {
+        my $number = eval "&POSIX::LC_$name";
+
+        # Use a negative number if the platform doesn't support this category,
+        # so we have an entry for all ones that might be specified in calls to
+        # us.
+        $number = --$number_for_missing_category if $@;
+
+        $category_name{$number} = "$name";
+    }
+}
+
+sub locales_enabled(;$) {
+    # Returns 0 if no locale handling is available on this platform; otherwise
+    # 1.
+    #
+    # The optional parameter is a reference to a list of individual POSIX
+    # locale categories.  If present, this function also returns 0 if any of
+    # them are individually not available on this platform; otherwise 1.
+    # Actually, it is acceptable for the list to be just a simple scalar
+    # denoting a single category.
+    #
+    # If any of the individual categories specified by the optional parameter
+    # is all digits, it is taken to be the C enum for the category (e.g.,
+    # &POSIX::LC_CTYPE).  Otherwise it should be a string name of the
+    # category, like 'LC_TIME'.  The initial 'LC_' is optional.  It is a fatal
+    # error to call this with something that isn't a known category
+
+    use Config;;
+
+    return 0 unless    $Config{d_setlocale}
+                        # I (khw) cargo-culted the '?' in the pattern on the
+                        # next line.
+                    && $Config{ccflags} !~ /\bD?NO_LOCALE\b/;
+
+    # Done with the global possibilities.  Now check if any passed in category
+    # is disabled.
+    my $categories_ref = shift;
+    if (defined $categories_ref) {
+        $categories_ref = [ $categories_ref ] if ! ref $categories_ref;
+        my @local_categories_copy = @$categories_ref;
+        for my $category (@local_categories_copy) {
+            if ($category =~ / ^ -? \d+ $ /x) {
+                die "Invalid locale category number '$category'"
+                    unless grep { $category == $_ } keys %category_name;
+                $category = $category_name{$category};
+            }
+            else {
+                $category =~ s/ ^ LC_ //x;
+                die "Invalid locale category name '$category'"
+                    unless grep { $category eq $_ } values %category_name;
+            }
+
+            return 0 if $Config{ccflags} =~ /\bD?NO_LOCALE_$category\b/;
+        }
+    }
+
+    return 1;
+}
+
+
 sub find_locales ($;$) {  # Returns an array of all the locales we found on the
                           # system.  If the optional 2nd parameter is
                           # non-zero, the list is restricted to those locales
@@ -84,8 +152,7 @@ sub find_locales ($;$) {  # Returns an array of all the locales we found on the
     my $categories = shift;
     my $only_plays_well = shift // 0;
 
-    use Config;;
-    my $have_setlocale = $Config{d_setlocale};
+    return unless locales_enabled($categories);
 
     # Visual C's CRT goes silly on strings of the form "en_US.ISO8859-1"
     # and mingw32 uses said silly CRT
@@ -93,13 +160,11 @@ sub find_locales ($;$) {  # Returns an array of all the locales we found on the
     # so re-enable the tests for Windows XP onwards.
     my $winxp = ($^O eq 'MSWin32' && defined &Win32::GetOSVersion &&
                     join('.', (Win32::GetOSVersion())[1..2]) >= 5.1);
-    $have_setlocale = 0 if ((($^O eq 'MSWin32' && !$winxp) || $^O eq 'NetWare') &&
-                    $Config{cc} =~ /^(cl|gcc|g\+\+|ici)/i);
+    return if ((($^O eq 'MSWin32' && !$winxp) || $^O eq 'NetWare')
+                && $Config{cc} =~ /^(cl|gcc|g\+\+|ici)/i);
 
     # UWIN seems to loop after taint tests, just skip for now
-    $have_setlocale = 0 if ($^O =~ /^uwin/);
-
-    return unless $have_setlocale;
+    return if ($^O =~ /^uwin/);
 
     # Done this way in case this is 'required' in the caller before seeing if
     # this is miniperl.
@@ -229,6 +294,7 @@ sub is_locale_utf8 ($) { # Return a boolean as to if core Perl thinks the input
 
     eval { require POSIX; import POSIX 'locale_h'; };
     return 0 if ! defined &POSIX::LC_CTYPE;
+    return 0 if ! locales_enabled('LC_CTYPE');
 
     my $locale = shift;
 
index b93ed74..16e1fce 100644 (file)
@@ -415,4 +415,17 @@ is $ProtoTest::Proto, '$', 'prototypes are visible in attr handlers';
         'applying const attr via attributes.pm';
 }
 
+# [perl #123817] Attributes in list-type operators
+# These tests used to fail an assertion because the list op generated by
+# the lexical attribute declaration was converted to another op type with
+# the OPpLVAL_INTRO flag still set.  These op types were not expecting that
+# flag to be set, though it was harmless for non-debugging builds.
+package _123817 {
+    sub MODIFY_SCALAR_ATTRIBUTES {()}
+    eval '{my $x : m}';
+    eval '[(my $x : m)]';
+    eval 'formline my $x : m';
+    eval 'return my $x : m';
+}
+
 done_testing();
index abcfc26..09f2be9 100644 (file)
@@ -7,7 +7,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    require "./test.pl";
+    require "./test.pl"; require "./charset_tools.pl";
     require Config;
 }
 
@@ -63,19 +63,25 @@ is (($foo | $bar), ($Aoz x 75 . $zap));
 # ^ does not truncate
 is (($foo ^ $bar), ($Axz x 75 . $zap));
 
-# string constants
-sub _and($) { $_[0] & "+0" }
-sub _oar($) { $_[0] | "+0" }
-sub _xor($) { $_[0] ^ "+0" }
-is _and "waf", '# ',  'str var & const str'; # These three
-is _and  0,    '0',   'num var & const str';    # are from
-is _and "waf", '# ',  'str var & const str again'; # [perl #20661]
-is _oar "yit", '{yt', 'str var | const str';
-is _oar  0,    '0',   'num var | const str';
-is _oar "yit", '{yt', 'str var | const str again';
-is _xor "yit", 'RYt', 'str var ^ const str';
-is _xor  0,    '0',   'num var ^ const str';
-is _xor "yit", 'RYt', 'str var ^ const str again';
+# string constants.  These tests expect the bit patterns of these strings in
+# ASCII, so convert to that.
+sub _and($) { $_[0] & native_to_uni("+0") }
+sub _oar($) { $_[0] | native_to_uni("+0") }
+sub _xor($) { $_[0] ^ native_to_uni("+0") }
+is _and native_to_uni("waf"), native_to_uni('# '),  'str var & const str'; # [perl #20661]
+is _and native_to_uni("waf"), native_to_uni('# '),  'str var & const str again'; # [perl #20661]
+is _oar native_to_uni("yit"), native_to_uni('{yt'), 'str var | const str';
+is _oar native_to_uni("yit"), native_to_uni('{yt'), 'str var | const str again';
+is _xor native_to_uni("yit"), native_to_uni('RYt'), 'str var ^ const str';
+is _xor native_to_uni("yit"), native_to_uni('RYt'), 'str var ^ const str again';
+
+SKIP: {
+    skip "Converting a numeric doesn't work with EBCDIC unlike the above tests",
+         3 if $::IS_EBCDIC;
+    is _and  0, '0',   'num var & const str';     # [perl #20661]
+    is _oar  0, '0',   'num var | const str';
+    is _xor  0, '0',   'num var ^ const str';
+}
 
 # But don’t mistake a COW for a constant when assigning to it
 %h=(150=>1);
@@ -126,68 +132,54 @@ is (sprintf("%vd", $a), '248.444');
 # UTF8 ~ behaviour
 #
 
-my $Is_EBCDIC = (ord('A') == 193) ? 1 : 0;
+SKIP: {
+    skip "Complements exceed maximum representable on EBCDIC ", 5 if $::IS_EBCDIC;
 
-my @not36;
+    my @not36;
 
-for (0x100...0xFFF) {
-  $a = ~(chr $_);
-  if ($Is_EBCDIC) {
-      push @not36, sprintf("%#03X", $_)
-          if $a ne chr(~$_) or length($a) != 1;
-  }
-  else {
-      push @not36, sprintf("%#03X", $_)
-          if $a ne chr(~$_) or length($a) != 1 or ~$a ne chr($_);
-  }
-}
-is (join (', ', @not36), '');
+    for (0x100...0xFFF) {
+    $a = ~(chr $_);
+        push @not36, sprintf("%#03X", $_)
+            if $a ne chr(~$_) or length($a) != 1 or ~$a ne chr($_);
+    }
+    is (join (', ', @not36), '');
 
-my @not37;
+    my @not37;
 
-for my $i (0xEEE...0xF00) {
-  for my $j (0x0..0x120) {
-    $a = ~(chr ($i) . chr $j);
-    if ($Is_EBCDIC) {
-        push @not37, sprintf("%#03X %#03X", $i, $j)
-           if $a ne chr(~$i).chr(~$j) or
-              length($a) != 2;
-    }
-    else {
-        push @not37, sprintf("%#03X %#03X", $i, $j)
-           if $a ne chr(~$i).chr(~$j) or
-              length($a) != 2 or 
-               ~$a ne chr($i).chr($j);
+    for my $i (0xEEE...0xF00) {
+        for my $j (0x0..0x120) {
+            $a = ~(chr ($i) . chr $j);
+                push @not37, sprintf("%#03X %#03X", $i, $j)
+                    if $a ne chr(~$i).chr(~$j) or
+                    length($a) != 2 or
+                    ~$a ne chr($i).chr($j);
+        }
     }
-  }
-}
-is (join (', ', @not37), '');
+    is (join (', ', @not37), '');
 
-SKIP: {
-  skip "EBCDIC" if $Is_EBCDIC;
-  is (~chr(~0), "\0");
-}
+    is (~chr(~0), "\0");
 
 
-my @not39;
+    my @not39;
 
-for my $i (0x100..0x120) {
-    for my $j (0x100...0x120) {
-       push @not39, sprintf("%#03X %#03X", $i, $j)
-           if ~(chr($i)|chr($j)) ne (~chr($i)&~chr($j));
+    for my $i (0x100..0x120) {
+        for my $j (0x100...0x120) {
+            push @not39, sprintf("%#03X %#03X", $i, $j)
+                if ~(chr($i)|chr($j)) ne (~chr($i)&~chr($j));
+        }
     }
-}
-is (join (', ', @not39), '');
+    is (join (', ', @not39), '');
 
-my @not40;
+    my @not40;
 
-for my $i (0x100..0x120) {
-    for my $j (0x100...0x120) {
-       push @not40, sprintf("%#03X %#03X", $i, $j)
-           if ~(chr($i)&chr($j)) ne (~chr($i)|~chr($j));
+    for my $i (0x100..0x120) {
+        for my $j (0x100...0x120) {
+            push @not40, sprintf("%#03X %#03X", $i, $j)
+                if ~(chr($i)&chr($j)) ne (~chr($i)|~chr($j));
+        }
     }
+    is (join (', ', @not40), '');
 }
-is (join (', ', @not40), '');
 
 
 # More variations on 19 and 22.
@@ -441,7 +433,7 @@ SKIP: {
 # update to pp_complement() via Coverity
 SKIP: {
   # UTF-EBCDIC is limited to 0x7fffffff and can't encode ~0.
-  skip "EBCDIC" if $Is_EBCDIC;
+  skip "Complements exceed maximum representable on EBCDIC ", 2 if $::IS_EBCDIC;
 
   my $str = "\x{10000}\x{800}";
   # U+10000 is four bytes in UTF-8/UTF-EBCDIC.
@@ -484,7 +476,14 @@ SKIP: {
   is 22 &. 66, 22,     '&. with numbers';
   is 22 |. 66, 66,     '|. with numbers';
   is 22 ^. 66, "\4\4", '^. with numbers';
-  is ~.22, "\xcd\xcd", '~. with number';
+  if ($::IS_EBCDIC) {
+    # ord('2') is 0xF2 on EBCDIC
+    is ~.22, "\x0d\x0d", '~. with number';
+  }
+  else {
+    # ord('2') is 0x32 on ASCII
+    is ~.22, "\xcd\xcd", '~. with number';
+  }
   $_ = "22";
   is $_ &= "66", 2,  'numeric &= with strings';
   $_ = "22";
@@ -617,5 +616,7 @@ $strval = "z";
 is("$obj", "z", "|= doesn't break string overload");
 
 # [perl #29070]
-$^A .= new version ~$_ for "\xce", v205, "\xcc";
+$^A .= new version ~$_ for eval sprintf('"\\x%02x"', 0xff - ord("1")),
+                           $::IS_EBCDIC ? v13 : v205, # 255 - ord('2')
+                           eval sprintf('"\\x%02x"', 0xff - ord("3"));
 is $^A, "123", '~v0 clears vstring magic on retval';
index 3fa9b8f..5eef677 100644 (file)
@@ -76,15 +76,13 @@ $c = "\c^";
 is (ord($c), 30, '\c^');
 $c = "\c_";
 is (ord($c), 31, '\c_');
-$c = "\c?";
 
 # '\c?' is an outlier, and is treated differently on each platform.
 # It's DEL on ASCII, and APC on EBCDIC
-is (ord($c), ((ord('^') == 95 || ord('^') == 175) # 1047 or 0037
-               ? 255
-               : ord('^') == 106    # Posix-BC
-                 ? 95
-                 : 127),
+$c = "\c?";
+is (ord($c), ($::IS_ASCII)
+             ? 127
+             : utf8::unicode_to_native(0x9F),
               '\c?');
 $c = '';
 is (ord($c), 0, 'ord("") is 0');
index 91c4fbe..bdeaf0d 100644 (file)
@@ -6,7 +6,9 @@ BEGIN {
     require './test.pl'; require './charset_tools.pl';
 }
 
-plan tests => 148;
+my $tests_count = 148;
+$tests_count -= 2 if $::IS_EBCDIC;
+plan tests => $tests_count;
 
 $_ = 'abc';
 $c = foo();
@@ -183,7 +185,10 @@ ok($@ =~ /Can\'t modify.*chop.*in.*assignment/);
 eval 'chomp($x, $y) = (1, 2);';
 ok($@ =~ /Can\'t modify.*chom?p.*in.*assignment/);
 
-my @chars = ("N", uni_to_native("\xd3"), substr ("\xd4\x{100}", 0, 1), chr 1296);
+my @chars = ("N",
+             uni_to_native("\xd3"),
+             substr (uni_to_native("\xd4") . "\x{100}", 0, 1),
+             chr 1296);
 foreach my $start (@chars) {
   foreach my $end (@chars) {
     local $/ = $end;
@@ -244,23 +249,31 @@ foreach my $start (@chars) {
     ok(1, "extend sp in pp_chomp");
 }
 
-{
+SKIP: {
     # [perl #73246] chop doesn't support utf8
     # the problem was UTF8_IS_START() didn't handle perl's extended UTF8
-    my $utf = "\x{80000001}\x{80000000}";
+    skip("Not representable in EBCDIC", 2) if $::IS_EBCDIC;
+
+    # We use hex constants instead of literal chars to avoid compilation
+    # errors in EBCDIC.
+    my $first_char =  0x80000001;
+    my $second_char = 0x80000000;
+    my $utf = chr($first_char) . chr($second_char);
     my $result = chop($utf);
-    is($utf, "\x{80000001}", "chopping high 'unicode'- remnant");
-    is($result, "\x{80000000}", "chopping high 'unicode' - result");
+    is($utf, chr $first_char, "chopping high 'unicode'- remnant");
+    is($result, chr $second_char, "chopping high 'unicode' - result");
 
     SKIP: {
         no warnings 'overflow'; # avoid compile-time warnings below on 32-bit architectures
         use Config;
         $Config{ivsize} >= 8
          or skip("this build can't handle very large characters", 2);
-        my $utf = "\x{ffffffffffffffff}\x{fffffffffffffffe}";
+        my $first_char =  0xffffffffffffffff;
+        my $second_char = 0xfffffffffffffffe;
+        my $utf = chr($first_char) . chr($second_char);
         my $result = chop $utf;
-        is($utf, "\x{ffffffffffffffff}", "chop even higher 'unicode' - remnant");
-        is($result, "\x{fffffffffffffffe}", "chop even higher 'unicode' - result");
+        is($utf, chr $first_char, "chop even higher 'unicode' - remnant");
+        is($result, chr $second_char, "chop even higher 'unicode' - result");
     }
 }
 
index 9dfcc5b..ef21e88 100644 (file)
@@ -14,6 +14,7 @@ BEGIN {
 plan 3;
 
 SKIP: {
+skip("no encoding pragma in EBCDIC", 1) if $::IS_EBCDIC;
 skip_if_miniperl("no dynamic loading on miniperl, no Encode", 1);
 fresh_perl_is <<'end', "ok\n", {},
     no warnings 'deprecated';
index 9005306..bcc2f1f 100644 (file)
@@ -10,7 +10,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = qw(. ../lib ../dist/if);
-    require "./test.pl";
+    require "./test.pl"; require './charset_tools.pl';
     $^P |= 0x100;
 }
 
@@ -462,7 +462,8 @@ test_proto $_ for qw(
 test_proto 'evalbytes';
 $tests += 4;
 {
-  chop(my $upgraded = "use utf8; '\xc4\x80'" . chr 256);
+  my $U_100_bytes = byte_utf8a_to_utf8n("\xc4\x80");
+  chop(my $upgraded = "use utf8; $U_100_bytes" . chr 256);
   is &myevalbytes($upgraded), chr 256, '&evalbytes';
   # Test hints
   require strict;
@@ -500,7 +501,7 @@ test_proto 'exp';
 test_proto 'fc';
 $tests += 2;
 {
-  my $sharp_s = "\xdf";
+  my $sharp_s = uni_to_native("\xdf");
   is &myfc($sharp_s), $sharp_s, '&fc, no unicode_strings';
   use feature 'unicode_strings';
   is &myfc($sharp_s), "ss", '&fc, unicode_strings';
@@ -632,12 +633,15 @@ close file;
 }
 
 test_proto 'opendir';
-test_proto 'ord', chr(64), 64;
+test_proto 'ord', chr(utf8::unicode_to_native(64)), utf8::unicode_to_native(64);
 
 test_proto 'pack';
 $tests += 2;
-is &mypack("H*", '5065726c'), 'Perl', '&pack';
-lis [&mypack("H*", '5065726c')], ['Perl'], '&pack in list context';
+my $Perl_as_a_hex_string = join "", map
+                                    { sprintf("%2X", utf8::unicode_to_native($_)) }
+                                    0x50, 0x65, 0x72, 0x6c;
+is &mypack("H*", $Perl_as_a_hex_string), 'Perl', '&pack';
+lis [&mypack("H*", $Perl_as_a_hex_string)], ['Perl'], '&pack in list context';
 
 test_proto 'pipe';
 
@@ -949,9 +953,15 @@ undef @_;
 
 test_proto 'unpack';
 $tests += 2;
+my $abcd_as_a_hex_string = join "", map
+                                    { sprintf("%2X", utf8::unicode_to_native($_)) }
+                                    0x61, 0x62, 0x63, 0x64;
+my $bcde_as_a_hex_string = join "", map
+                                    { sprintf("%2X", utf8::unicode_to_native($_)) }
+                                    0x62, 0x63, 0x64, 0x65;
 $_ = 'abcd';
-is &myunpack("H*"), '61626364', '&unpack with one arg';
-is &myunpack("H*", "bcde"), '62636465', '&unpack with two arg';
+is &myunpack("H*"), $abcd_as_a_hex_string, '&unpack with one arg';
+is &myunpack("H*", "bcde"), $bcde_as_a_hex_string, '&unpack with two arg';
 
 
 test_proto 'untie'; # behaviour already tested along with tie(d)
index abcc629..6c51dad 100644 (file)
@@ -62,6 +62,11 @@ fresh_perl_like('delete $::{"AnyDBM_File::"}; ' . $prog,
 { # undef 3rd arg
     local $^W = 1;
     local $SIG{__WARN__} = sub { ++$w };
-    dbmopen(%truffe, 'pleaseletthisfilenotexist', undef);
+    # Files may get created as a side effect of dbmopen, so ensure cleanup.
+    my $leaf = 'pleaseletthisfilenotexist';
+    dbmopen(%truffe, $leaf, undef);
     is $w, 1, '1 warning from dbmopen with undef third arg';
+    unlink $leaf
+        if -e $leaf;
+    1 while unlink glob "$leaf.*";
 }
index a2e320f..a858643 100644 (file)
@@ -19,7 +19,9 @@ skip_all("only tested on devel builds")
 
 # there may be other operating systems where it makes sense, but
 # there are some where it isn't, so limit the platforms we test
-# this on
+# this on. Also this needs to be a platform that fully supports
+# fork() and waitpid().
+
 skip_all("no point in dumping on $^O")
   unless $^O =~ /^(linux|.*bsd|solaris)$/;
 
@@ -33,22 +35,56 @@ chdir $tmp
 
 plan(2);
 
-# depending on how perl is built there may be extra output after
-# the A such as "Aborted".
+# Depending on how perl is built, there may be extraneous stuff on stderr
+# such as "Aborted", which isn't caught by the '2>&1' that
+# fresh_perl_like() does. So execute each dump() in a sub-process.
+#
+# In detail:
+# fresh_perl_like() ends up doing a `` which invokes a shell with 2 args:
+#
+#   "sh", "-c", "perl /tmp/foo 2>&1"
+#
+# When the perl process coredumps after calling dump(), the parent
+# sh sees that the exit of the child flags a coredump and so prints
+# something like the following to stderr:
+#
+#    sh: line 1: 17605 Aborted (core dumped)
+#
+# Note that the '2>&1' only applies to the perl process, not to the sh
+# command itself.
+# By do the dump in a child, the parent perl process exits back to sh with
+# a normal exit value, so sh won't complain.
 
 fresh_perl_like(<<'PROG', qr/\AA(?!B\z)/, {}, "plain dump quits");
 ++$|;
-print qq(A);
-dump;
-print qq(B);
+my $pid = fork;
+die "fork: $!\n" unless defined $pid;
+if ($pid) {
+    # parent
+    waitpid($pid, 0);
+}
+else {
+    # child
+    print qq(A);
+    dump;
+    print qq(B);
+}
 PROG
 
 fresh_perl_like(<<'PROG', qr/A(?!B\z)/, {}, "dump with label quits");
 ++$|;
-print qq(A);
-dump foo;
-foo:
-print qq(B);
+my $pid = fork;
+die "fork: $!\n" unless defined $pid;
+if ($pid) {
+    # parent
+    waitpid($pid, 0);
+}
+else {
+    print qq(A);
+    dump foo;
+    foo:
+    print qq(B);
+}
 PROG
 
 END {
index 9961072..cca7c04 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 => 8);
@@ -27,8 +27,9 @@ is evalbytes($upcode), "\xff\xfe", 'evalbytes on upgraded extra-ASCII';
     use utf8;
     is evalbytes($code), "\xff\xfe", 'evalbytes ignores outer utf8 pragma';
 }
-is evalbytes "use utf8; '\xc4\x80'", chr 256, 'use utf8 within evalbytes';
-chop($upcode = "use utf8; '\xc4\x80'" . chr 256);
+my $U_100 = byte_utf8a_to_utf8n("\xc4\x80");
+is evalbytes "use utf8; $U_100", chr 256, 'use utf8 within evalbytes';
+chop($upcode = "use utf8; $U_100" . chr 256);
 is evalbytes $upcode, chr 256, 'use utf8 within evalbytes on utf8 string';
 eval { evalbytes chr 256 };
 like $@, qr/Wide character/, 'evalbytes croaks on non-bytes';
index 3d06430..1f4cbf3 100644 (file)
@@ -5,7 +5,7 @@ BEGIN {
     require "./test.pl";
 }
 
-plan(108);
+plan(109);
 
 # A lot of tests to check that reversed for works.
 
@@ -592,3 +592,8 @@ for my $x (my $y) {
     ($x, my $z) = (1, $y);
     is $z, 3, 'list assignment after aliasing lexical var via foreach';
 }
+
+@_ = ();
+@_ = (1,2,3,scalar do{for(@_){}} + 1, 4, 5, 6);
+is "@_", "1 2 3 1 4 5 6",
+   '[perl #124004] scalar for(@empty_array) stack bug';
index ccee71b..ca48ac0 100644 (file)
@@ -5,7 +5,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = qw(. ../lib);
-    require "./test.pl";
+    require "./test.pl"; require './charset_tools.pl';
 }
 
 use warnings;
@@ -473,7 +473,7 @@ is sub {
     goto &returnarg;
 }->("quick and easy"), "ick and queasy",
   'goto &foo with *_{ARRAY} replaced';
-my @__ = "\xc4\x80";
+my @__ = byte_utf8a_to_utf8n("\xc4\x80");
 sub { local *_ = \@__; goto &utf8::decode }->("no thinking aloud");
 is "@__", chr 256, 'goto &xsub with replaced *_{ARRAY}';
 
index a563d70..517fa2d 100644 (file)
@@ -320,9 +320,16 @@ is($_, -1, 'regexp--');
     is($_, 1, 'regexp++');
 }
 
-$_ = v97;
-$_++;
-isnt(ref\$_, 'VSTRING', '++ flattens vstrings');
+if ($::IS_EBCDIC) {
+    $_ = v129;
+    $_++;
+    isnt(ref\$_, 'VSTRING', '++ flattens vstrings');
+}
+else {
+    $_ = v97;
+    $_++;
+    isnt(ref\$_, 'VSTRING', '++ flattens vstrings');
+}
 
 sub TIESCALAR {bless\my $x}
 sub STORE { ++$store::called }
index 716cb2a..ffea0ae 100644 (file)
--- a/t/op/lc.t
+++ b/t/op/lc.t
@@ -104,17 +104,17 @@ is(uc($b)         , "\x{100}\x{100}AA",  'uc');
 is(lc($b)         , "\x{101}\x{101}aa",  'lc');
 is(fc($b)         , "\x{101}\x{101}aa",  'fc');
 
+my $sharp_s = uni_to_native("\x{DF}");
 # \x{DF} is LATIN SMALL LETTER SHARP S, its uppercase is SS or \x{53}\x{53};
 # \x{149} is LATIN SMALL LETTER N PRECEDED BY APOSTROPHE, its uppercase is
 # \x{2BC}\x{E4} or MODIFIER LETTER APOSTROPHE and N.
 
-is(uni_to_native("\U\x{DF}aB\x{149}cD"), uni_to_native("SSAB\x{2BC}NCD"),
-       "multicharacter uppercase");
+is("\U${sharp_s}aB\x{149}cD", "SSAB\x{2BC}NCD", "multicharacter uppercase");
 
 # The \x{DF} is its own lowercase, ditto for \x{149}.
 # There are no single character -> multiple characters lowercase mappings.
 
-is(uni_to_native("\L\x{DF}aB\x{149}cD"), uni_to_native("\x{DF}ab\x{149}cd"),
+is("\L${sharp_s}aB\x{149}cD", "${sharp_s}ab\x{149}cd",
        "multicharacter lowercase");
 
 # \x{DF} is LATIN SMALL LETTER SHARP S, its foldcase is ss or \x{73}\x{73};
@@ -122,8 +122,7 @@ is(uni_to_native("\L\x{DF}aB\x{149}cD"), uni_to_native("\x{DF}ab\x{149}cd"),
 # \x{2BC}\x{6E} or MODIFIER LETTER APOSTROPHE and n.
 # Note that is this further tested in t/uni/fold.t
 
-is(uni_to_native("\F\x{DF}aB\x{149}cD"), uni_to_native("ssab\x{2BC}ncd"),
-       "multicharacter foldcase");
+is("\F${sharp_s}aB\x{149}cD", "ssab\x{2BC}ncd", "multicharacter foldcase");
 
 
 # titlecase is used for \u / ucfirst.
@@ -283,15 +282,15 @@ for ("$temp") {
 }
 
 # new in Unicode 5.1.0
-is(lc("\x{1E9E}"), "\x{df}", "lc(LATIN CAPITAL LETTER SHARP S)");
+is(lc("\x{1E9E}"), uni_to_native("\x{df}"), "lc(LATIN CAPITAL LETTER SHARP S)");
 
 {
     use feature 'unicode_strings';
     use bytes;
-    is(lc("\xc0"), "\xc0", "lc of above-ASCII Latin1 is itself under use bytes");
-    is(lcfirst("\xc0"), "\xc0", "lcfirst of above-ASCII Latin1 is itself under use bytes");
-    is(uc("\xe0"), "\xe0", "uc of above-ASCII Latin1 is itself under use bytes");
-    is(ucfirst("\xe0"), "\xe0", "ucfirst of above-ASCII Latin1 is itself under use bytes");
+    is(lc(uni_to_native("\xc0")), uni_to_native("\xc0"), "lc of above-ASCII Latin1 is itself under use bytes");
+    is(lcfirst(uni_to_native("\xc0")), uni_to_native("\xc0"), "lcfirst of above-ASCII Latin1 is itself under use bytes");
+    is(uc(uni_to_native("\xe0")), uni_to_native("\xe0"), "uc of above-ASCII Latin1 is itself under use bytes");
+    is(ucfirst(uni_to_native("\xe0")), uni_to_native("\xe0"), "ucfirst of above-ASCII Latin1 is itself under use bytes");
 }
 
 # Brought up in ticket #117855: Constant folding applied to uc() should use
index 3207198..a4ce65c 100644 (file)
@@ -7,7 +7,7 @@ use warnings;
 
 BEGIN { chdir 't' if -d 't'; require './test.pl'; }
 
-plan(tests => 19);
+plan(tests => 25);
 
 {
     no warnings 'deprecated';
@@ -154,15 +154,58 @@ gibberish
 
 fresh_perl_is(
   '/$a[/<<a',
-  "syntax error at - line 1, next char ;\n" .
-  "Can't find string terminator \"a\" anywhere before EOF at - line 1.\n",
+  "Missing right curly or square bracket at - line 1, within pattern\n" .
+  "syntax error at - line 1, at EOF\n" .
+  "Execution of - aborted due to compilation errors.\n",
    { stderr => 1 },
   '/$a[/<<a with no newline [perl #123712]'
 );
 fresh_perl_is(
   '/$a[m||/<<a',
-  "syntax error at - line 1, next char ;\n" .
+  "Missing right curly or square bracket at - line 1, within pattern\n" .
+  "syntax error at - line 1, at EOF\n" .
   "Execution of - aborted due to compilation errors.\n",
    { stderr => 1 },
   '/$a[m||/<<a with no newline [perl #123712]'
 );
+
+fresh_perl_is(
+  '"@{"',
+  "Missing right curly or square bracket at - line 1, within string\n" .
+  "syntax error at - line 1, at EOF\n" .
+  "Execution of - aborted due to compilation errors.\n",
+   { stderr => 1 },
+  '"@{" [perl #123712]'
+);
+
+fresh_perl_is(
+  '/$0{}/',
+  'syntax error at - line 1, near "{}"' . "\n" .
+  "Execution of - aborted due to compilation errors.\n",
+   { stderr => 1 },
+  '/$0{}/ with no newline [perl #123802]'
+);
+fresh_perl_is(
+  '"\L\L"',
+  'syntax error at - line 1, near "\L\L"' . "\n" .
+  "Execution of - aborted due to compilation errors.\n",
+   { stderr => 1 },
+  '"\L\L" with no newline [perl #123802]'
+);
+fresh_perl_is(
+  '<\L\L>',
+  'syntax error at - line 1, near "\L\L"' . "\n" .
+  "Execution of - aborted due to compilation errors.\n",
+   { stderr => 1 },
+  '<\L\L> with no newline [perl #123802]'
+);
+
+is eval "qq'@\x{ff13}'", "\@\x{ff13}",
+  '"@<fullwidth digit>" [perl #123963]';
+
+fresh_perl_is(
+  "s;\@{<<a;\n",
+  "Can't find string terminator \"a\" anywhere before EOF at - line 1.\n",
+   { stderr => 1 },
+  's;@{<<a; [perl #123995]'
+);
index a603420..e0e37e4 100644 (file)
@@ -975,7 +975,7 @@ cmp_ok($ok,'==',1,'dynamically scoped');
     for my $x (reverse @a37725) {
        $x = $i++;
     }
-    cmp_ok("@a37725",'eq',"5 4 3 2",'bug 27725: reverse with empty slots bug');
+    cmp_ok("@a37725",'eq',"5 4 3 2",'bug 37725: reverse with empty slots bug');
 }
 
 # [perl #21469] bad things happened with for $x (...) { *x = *y }
index 2bdc26d..3e65198 100644 (file)
@@ -587,3 +587,6 @@ SKIP: {
     \(@a) = \($x,$y);
     goto do_test3;
 }
+
+# Used to fail an assertion [perl #123821]
+eval '\(&$0)=0';
index 3fbec7b..4a8006d 100644 (file)
@@ -26,7 +26,7 @@ BEGIN {
        # avoid using any global vars here:
        if ($v =~ s/^\^(?=.)//) {
            for(substr $v, 0, 1) {
-               $_ = chr ord() - 64;
+               $_ = chr(utf8::native_to_unicode(ord($_)) - 64);
            }
        }
        SKIP:
index ead2606..ff43571 100644 (file)
@@ -184,7 +184,7 @@ like runperl(prog => 'use constant foo=>1; '
 
 is runperl(prog => 'use constant t=>42; '
                   .'BEGIN { *{q|CORE::GLOBAL::time|} = \&{q|t|};1}'
-                  .'print time, chr 10',
+                  .'print time, chr utf8::unicode_to_native(10)',
           stderr => 1),
    "42\n",
    'keywords respect global constant overrides';
index 9416ad6..1b0fd0d 100644 (file)
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
     set_up_inc(qw '../lib ../dist/Math-BigInt/lib');
 }
 
@@ -18,7 +18,6 @@ use strict;
 use warnings qw(FATAL all);
 use Config;
 
-my $Is_EBCDIC = (defined $Config{ebcdic} && $Config{ebcdic} eq 'define');
 my $Perl = which_perl();
 my @valid_errors = (qr/^Invalid type '\w'/);
 
@@ -122,7 +121,7 @@ sub list_eq ($$) {
 
 {
     my $sum = 129; # ASCII
-    $sum = 103 if $Is_EBCDIC;
+    $sum = 103 if $::IS_EBCDIC;
 
     my $x;
     is( ($x = unpack("%32B*", "Now is the time for all good blurfl")), $sum );
@@ -867,7 +866,7 @@ SKIP: {
   foreach (
            ['a/a*/a*', '212ab345678901234567','ab3456789012'],
            ['a/a*/a*', '3012ab345678901234567', 'ab3456789012'],
-           ['a/a*/b*', '212ab', $Is_EBCDIC ? '100000010100' : '100001100100'],
+           ['a/a*/b*', '212ab', $::IS_EBCDIC ? '100000010100' : '100001100100'],
   )
   {
     my ($pat, $in, $expect) = @$_;
@@ -915,15 +914,14 @@ EOP
 }
 
 
-SKIP: {
-    skip("(EBCDIC and) version strings are bad idea", 2) if $Is_EBCDIC;
-
-    is("1.20.300.4000", sprintf "%vd", pack("U*",1,20,300,4000));
-    is("1.20.300.4000", sprintf "%vd", pack("  U*",1,20,300,4000));
+{
+    is("1.20.300.4000", sprintf "%vd", pack("U*",utf8::native_to_unicode(1),utf8::native_to_unicode(20),300,4000));
+    is("1.20.300.4000", sprintf "%vd", pack("  U*",utf8::native_to_unicode(1),utf8::native_to_unicode(20),300,4000));
 }
-isnt(v1.20.300.4000, sprintf "%vd", pack("C0U*",1,20,300,4000));
+isnt(v1.20.300.4000, sprintf "%vd", pack("C0U*",utf8::native_to_unicode(1),utf8::native_to_unicode(20),300,4000));
 
-my $rslt = $Is_EBCDIC ? "156 67" : "199 162";
+my $rslt = join " ", map { ord } split "", byte_utf8a_to_utf8n("\xc7\xa2");
+# The ASCII UTF-8 of U+1E2 is "\xc7\xa2"
 is(join(" ", unpack("U0 C*", chr(0x1e2))), $rslt);
 
 # does pack U create Unicode?
@@ -940,19 +938,26 @@ is("@{[unpack('U*', pack('U*', 100, 200))]}", "100 200");
 
 
 SKIP: {
-    skip "Not for EBCDIC", 4 if $Is_EBCDIC;
+    skip "Two of these still fail on EBCDIC; investigate in v5.23", 3 if $::IS_EBCDIC;
 
     # does pack U0C create Unicode?
-    is("@{[pack('U0C*', 100, 195, 136)]}", v100.v200);
+    my $cp202 = chr(202);
+    utf8::upgrade $cp202;
+    my @bytes202;
+    {   # This is portable across character sets
+        use bytes;
+        @bytes202 = map { ord } split "", $cp202;
+    }
+    is("@{[pack('U0C*', 100, @bytes202)]}", v100.v202);
 
     # does pack C0U create characters?
-    is("@{[pack('C0U*', 100, 200)]}", pack("C*", 100, 195, 136));
+    is("@{[pack('C0U*', 100, 202)]}", pack("C*", 100, @bytes202));
 
     # does unpack U0U on byte data warn?
     {
        use warnings qw(NONFATAL all);;
 
-        my $bad = pack("U0C", 255);
+        my $bad = pack("U0C", 202);
         local $SIG{__WARN__} = sub { $@ = "@_" };
         my @null = unpack('U0U', $bad);
         like($@, qr/^Malformed UTF-8 character /);
@@ -1507,7 +1512,10 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
     local $SIG{__WARN__} = sub {
         $warning = $_[0];
     };
-    my $out = pack("u99", "foo" x 99);
+
+    # This test is looking for the encoding of the bit pattern "\x66\x6f\x6f",
+    # which is ASCII "foo"
+    my $out = pack("u99", native_to_uni("foo") x 99);
     like($warning, qr/Field too wide in 'u' format in pack at /,
          "Warn about too wide uuencode");
     is($out, ("_" . "9F]O" x 21 . "\n") x 4 . "M" . "9F]O" x 15 . "\n",
@@ -1522,34 +1530,29 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
     is($x[1], $y[1], "checksum advance ok");
 
     # verify that the checksum is not overflowed with C0
-    if (ord('A') == 193) {
-       is(unpack("C0%128U", "/bcd"), unpack("U0%128U", "abcd"), "checksum not overflowed");
-    } else {
-       is(unpack("C0%128U", "abcd"), unpack("U0%128U", "abcd"), "checksum not overflowed");
-    }
+    is(unpack("C0%128U", "abcd"), unpack("U0%128U", "abcd"), "checksum not overflowed");
 }
 
+my $U_1FFC_utf8 = byte_utf8a_to_utf8n("\341\277\274");
+my $first_byte = ord uni_to_native("\341");
 {
     # U0 and C0 must be scoped
-    my (@x) = unpack("a(U0)U", "b\341\277\274");
+    my (@x) = unpack("a(U0)U", "b$U_1FFC_utf8");
     is($x[0], 'b', 'before scope');
     is($x[1], 8188, 'after scope');
 
-    is(pack("a(U0)U", "b", 8188), "b\341\277\274");
+    is(pack("a(U0)U", "b", 8188), "b$U_1FFC_utf8");
 }
 
+SKIP:
 {
     # counted length prefixes shouldn't change C0/U0 mode
     # (note the length is actually 0 in this test)
-    if (ord('A') == 193) {
-       is(join(',', unpack("aU0C/UU", "b\0\341\277\274")), 'b,0');
-       is(join(',', unpack("aU0C/CU", "b\0\341\277\274")), 'b,0');
-    } else {
-       is(join(',', unpack("aC/UU",   "b\0\341\277\274")), 'b,8188');
-       is(join(',', unpack("aC/CU",   "b\0\341\277\274")), 'b,8188');
-       is(join(',', unpack("aU0C/UU", "b\0\341\277\274")), 'b,225');
-       is(join(',', unpack("aU0C/CU", "b\0\341\277\274")), 'b,225');
-    }
+    is(join(',', unpack("aC/UU",   "b\0$U_1FFC_utf8")), 'b,8188');
+    is(join(',', unpack("aC/CU",   "b\0$U_1FFC_utf8")), 'b,8188');
+    skip "These two still fail on EBCDIC; investigate in v5.23", 2 if $::IS_EBCDIC;
+    is(join(',', unpack("aU0C/UU", "b\0$U_1FFC_utf8")), "b,$first_byte");
+    is(join(',', unpack("aU0C/CU", "b\0$U_1FFC_utf8")), "b,$first_byte");
 }
 
 {
@@ -1784,19 +1787,19 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
     is(pack("A*", $high), "\xfeb");
     is(pack("Z*", $high), "\xfeb\x00");
 
-    utf8::upgrade($high = "\xc3\xbeb");
-    is(pack("U0a2", $high), "\xfe");
-    is(pack("U0A2", $high), "\xfe");
-    is(pack("U0Z1", $high), "\x00");
-    is(pack("U0a3", $high), "\xfeb");
-    is(pack("U0A3", $high), "\xfeb");
-    is(pack("U0Z3", $high), "\xfe\x00");
-    is(pack("U0a6", $high), "\xfeb\x00\x00\x00");
-    is(pack("U0A6", $high), "\xfeb   ");
-    is(pack("U0Z6", $high), "\xfeb\x00\x00\x00");
-    is(pack("U0a*", $high), "\xfeb");
-    is(pack("U0A*", $high), "\xfeb");
-    is(pack("U0Z*", $high), "\xfeb\x00");
+    utf8::upgrade($high = byte_utf8a_to_utf8n("\xc3\xbe") . "b");
+    is(pack("U0a2", $high), uni_to_native("\xfe"));
+    is(pack("U0A2", $high), uni_to_native("\xfe"));
+    is(pack("U0Z1", $high), uni_to_native("\x00"));
+    is(pack("U0a3", $high), uni_to_native("\xfe") . "b");
+    is(pack("U0A3", $high), uni_to_native("\xfe") . "b");
+    is(pack("U0Z3", $high), uni_to_native("\xfe\x00"));
+    is(pack("U0a6", $high), uni_to_native("\xfe") . "b" . uni_to_native("\x00\x00\x00"));
+    is(pack("U0A6", $high), uni_to_native("\xfe") . "b   ");
+    is(pack("U0Z6", $high), uni_to_native("\xfe") . "b" . uni_to_native("\x00\x00\x00"));
+    is(pack("U0a*", $high), uni_to_native("\xfe") . "b");
+    is(pack("U0A*", $high), uni_to_native("\xfe") . "b");
+    is(pack("U0Z*", $high), uni_to_native("\xfe") . "b" . uni_to_native("\x00"));
 }
 {
     # pack /
@@ -1825,9 +1828,9 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
 }
 {
     # unpack("A*", $unicode) strips general unicode spaces
-    is(unpack("A*", "ab \n\xa0 \0"), "ab \n\xa0",
+    is(unpack("A*", "ab \n" . uni_to_native("\xa0") . " \0"), "ab \n" . uni_to_native("\xa0"),
        'normal A* strip leaves \xa0');
-    is(unpack("U0C0A*", "ab \n\xa0 \0"), "ab \n\xa0",
+    is(unpack("U0C0A*", "ab \n" . uni_to_native("\xa0") . " \0"), "ab \n" . uni_to_native("\xa0"),
        'normal A* strip leaves \xa0 even if it got upgraded for technical reasons');
     is(unpack("A*", pack("a*(U0U)a*", "ab \n", 0xa0, " \0")), "ab",
        'upgraded strings A* removes \xa0');
@@ -1988,7 +1991,8 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
 }
 {
     #50256
-    my ($v) = split //, unpack ('(B)*', 'ab');
+    # This test is for the bit pattern "\x61\x62", which is ASCII "ab"
+    my ($v) = split //, unpack ('(B)*', native_to_uni('ab'));
     is($v, 0); # Doesn't SEGV :-)
 }
 {
index 93aa94a..15f880f 100644 (file)
@@ -13,6 +13,7 @@ fresh_perl_is('$_ = qq{OK\n}; print STDOUT;', "OK\n", {},
               'print with only a filehandle outputs $_');
 SKIP: {
     skip_if_miniperl('no dynamic loading of PerlIO::scalar in miniperl');
+    skip("EBCDIC") if $::IS_EBCDIC;    # Varies depending on code page
 fresh_perl_is(<<'EOF', "\xC1\xAF\xC1\xAF\xC1\xB0\xC1\xB3", {}, "print doesn't launder utf8 overlongs");
 use strict;
 use warnings;
index 7f5705d..35ed2c6 100644 (file)
@@ -5,6 +5,7 @@ BEGIN {
     @INC = qw(../lib .);
     require Config; import Config;
     require "./test.pl";
+    require "./loc_tools.pl";
 }
 
 plan tests => 60;
@@ -19,7 +20,7 @@ if ($Config{ebcdic} eq 'define') {
     # 104 non-backslash characters
     is(tr/\\//cd, 104, "tr count non-backslashed");
 } else { # some ASCII descendant, then.
-    $_ = join "", map chr($_), 32..127;
+    $_ = join "", map chr(utf8::unicode_to_native($_)), 32..127;
 
     # 96 characters - 52 letters - 10 digits - 1 underscore = 33 backslashes
     # 96 characters + 33 backslashes = 129 characters
@@ -64,20 +65,23 @@ utf8::upgrade($char);
 is(quotemeta($char), "\\$char", "quotemeta '\\N{U+D7}' in UTF-8");
 is(length(quotemeta($char)), 2, "quotemeta '\\N{U+D7}'  in UTF-8 length");
 
-$char = "\N{U+D8}";
+$char = "\N{U+DF}";
 utf8::upgrade($char);
-is(quotemeta($char), "$char", "quotemeta '\\N{U+D8}' in UTF-8");
-is(length(quotemeta($char)), 1, "quotemeta '\\N{U+D8}'  in UTF-8 length");
+is(quotemeta($char), "$char", "quotemeta '\\N{U+DF}' in UTF-8");
+is(length(quotemeta($char)), 1, "quotemeta '\\N{U+DF}'  in UTF-8 length");
 
 {
     no feature 'unicode_strings';
-    is(quotemeta("\x{d7}"), "\\\x{d7}", "quotemeta Latin1 no unicode_strings quoted");
-    is(length(quotemeta("\x{d7}")), 2, "quotemeta Latin1 no unicode_strings quoted length");
-    is(quotemeta("\x{d8}"), "\\\x{d8}", "quotemeta Latin1 no unicode_strings quoted");
-    is(length(quotemeta("\x{d8}")), 2, "quotemeta Latin1 no unicode_strings quoted length");
+
+    # BF is chosen because it is NOt alphanumeric in both Latin1 and EBCDIC
+    # DF is chosen because it IS alphanumeric in both Latin1 and EBCDIC
+    is(quotemeta("\x{bf}"), "\\\x{bf}", "quotemeta Latin1 no unicode_strings quoted");
+    is(length(quotemeta("\x{bf}")), 2, "quotemeta Latin1 no unicode_strings quoted length");
+    is(quotemeta("\x{df}"), "\\\x{df}", "quotemeta Latin1 no unicode_strings quoted");
+    is(length(quotemeta("\x{df}")), 2, "quotemeta Latin1 no unicode_strings quoted length");
 
   SKIP: {
-    skip 'No locale testing without d_setlocale', 8 if(!$Config{d_setlocale});
+    skip 'Locales not available', 8 unless locales_enabled('LC_CTYPE');
     use locale;
 
     my $char = ":";
@@ -89,24 +93,24 @@ is(length(quotemeta($char)), 1, "quotemeta '\\N{U+D8}'  in UTF-8 length");
     is(quotemeta($char), "$char", "quotemeta '$char' locale");
     is(length(quotemeta($char)), 1, "quotemeta '$char' locale");
 
-    my $char = "\x{D7}";
-    is(quotemeta($char), "\\$char", "quotemeta '\\x{D7}' locale");
-    is(length(quotemeta($char)), 2, "quotemeta '\\x{D7}' locale length");
+    my $char = "\x{BF}";
+    is(quotemeta($char), "\\$char", "quotemeta '\\x{BF}' locale");
+    is(length(quotemeta($char)), 2, "quotemeta '\\x{BF}' locale length");
 
-    $char = "\x{D8}";  # Every non-ASCII Latin1 is quoted in locale.
-    is(quotemeta($char), "\\$char", "quotemeta '\\x{D8}' locale");
-    is(length(quotemeta($char)), 2, "quotemeta '\\x{D8}' locale length");
+    $char = "\x{DF}";  # Every non-ASCII Latin1 is quoted in locale.
+    is(quotemeta($char), "\\$char", "quotemeta '\\x{DF}' locale");
+    is(length(quotemeta($char)), 2, "quotemeta '\\x{DF}' locale length");
     }
 }
 {
     use feature 'unicode_strings';
-    is(quotemeta("\x{d7}"), "\\\x{d7}", "quotemeta Latin1 unicode_strings quoted");
-    is(length(quotemeta("\x{d7}")), 2, "quotemeta Latin1 unicode_strings quoted length");
-    is(quotemeta("\x{d8}"), "\x{d8}", "quotemeta Latin1 unicode_strings nonquoted");
-    is(length(quotemeta("\x{d8}")), 1, "quotemeta Latin1 unicode_strings nonquoted length");
+    is(quotemeta("\x{bf}"), "\\\x{bf}", "quotemeta Latin1 unicode_strings quoted");
+    is(length(quotemeta("\x{bf}")), 2, "quotemeta Latin1 unicode_strings quoted length");
+    is(quotemeta("\x{df}"), "\x{df}", "quotemeta Latin1 unicode_strings nonquoted");
+    is(length(quotemeta("\x{df}")), 1, "quotemeta Latin1 unicode_strings nonquoted length");
 
   SKIP: {
-    skip 'No locale testing without d_setlocale', 12 if(!$Config{d_setlocale});
+    skip 'Locales not available', 12 unless locales_enabled('LC_CTYPE');
     use locale;
 
     my $char = ":";
@@ -124,10 +128,10 @@ is(length(quotemeta($char)), 1, "quotemeta '\\N{U+D8}'  in UTF-8 length");
     is(quotemeta($char), "\\$char", "quotemeta '\\N{U+D7}' locale in UTF-8");
     is(length(quotemeta($char)), 2, "quotemeta '\\N{U+D7}' locale in UTF-8 length");
 
-    $char = "\N{U+D8}";  # Every non-ASCII Latin1 is quoted in locale.
+    $char = "\N{U+DF}";  # Every non-ASCII Latin1 is quoted in locale.
     utf8::upgrade($char);
-    is(quotemeta($char), "\\$char", "quotemeta '\\N{U+D8}' locale in UTF-8");
-    is(length(quotemeta($char)), 2, "quotemeta '\\N{U+D8}' locale in UTF-8 length");
+    is(quotemeta($char), "\\$char", "quotemeta '\\N{U+DF}' locale in UTF-8");
+    is(length(quotemeta($char)), 2, "quotemeta '\\N{U+DF}' locale in UTF-8 length");
 
     is(quotemeta("\x{263a}"), "\\\x{263a}", "quotemeta locale Unicode quoted");
     is(length(quotemeta("\x{263a}")), 2, "quotemeta locale Unicode quoted length");
index a5f6373..ca019fd 100644 (file)
@@ -10,6 +10,8 @@ use warnings;
 no warnings 'uninitialized';
 no warnings 'experimental::smartmatch';
 
+++$|;
+
 use Tie::Array;
 use Tie::Hash;
 
@@ -74,7 +76,7 @@ my %keyandmore = map { $_ => 0 } @keyandmore;
 my %fooormore = map { $_ => 0 } @fooormore;
 
 # Load and run the tests
-plan tests => 349;
+plan tests => 349+2;
 
 while (<DATA>) {
   SKIP: {
@@ -131,6 +133,55 @@ sub FALSE() { 0 }
 sub TRUE() { 1 }
 sub NOT_DEF() { undef }
 
+{
+  # [perl #123860]
+  # this can but might not crash
+  # This can but might not crash
+  #
+  # The second smartmatch would leave a &PL_sv_no on the stack for
+  # each key it checked in %!, this could then cause various types of
+  # crash or assertion failure.
+  #
+  # This isn't guaranteed to crash, but if the stack issue is
+  # re-introduced it will probably crash in one of the many smoke
+  # builds.
+  fresh_perl_is('print (q(x) ~~ q(x)) | (/x/ ~~ %!)', "1",
+               { switches => [ "-MErrno", "-M-warnings=experimental::smartmatch" ] },
+                "don't fill the stack with rubbish");
+}
+
+{
+    # [perl #123860] continued;
+    # smartmatch was failing to SPAGAIN after pushing an SV and calling
+    # pp_match, which may have resulted in the stack being realloced
+    # in the meantime. Test this by filling the stack with pregressively
+    # larger amounts of data. At some point the stack will get realloced.
+    my @a = qw(x);
+    my %h = qw(x 1);
+    my @args;
+    my $x = 1;
+    my $bad = -1;
+    for (1..1000)  {
+        push @args, $_;
+        my $exp_n  = join '-',  (@args, $x == 0);
+        my $exp_y  = join '-',  (@args, $x == 1);
+
+        my $got_an = join '-',  (@args, (/X/ ~~ @a));
+        my $got_ay = join '-',  (@args, (/x/ ~~ @a));
+        my $got_hn = join '-',  (@args, (/X/ ~~ %h));
+        my $got_hy = join '-',  (@args, (/x/ ~~ %h));
+
+        if (   $exp_n ne $got_an || $exp_n ne $got_hn
+            || $exp_y ne $got_ay || $exp_y ne $got_hy
+        ) {
+            $bad = $_;
+            last;
+        }
+    }
+    is($bad, -1, "RT 123860: stack realloc");
+}
+
+
 # Prefix character :
 #   - expected to match
 # ! - expected to not match
index 5d5c19d..50579bf 100644 (file)
@@ -375,7 +375,7 @@ is($cnt, scalar(@ary));
 
 {
     # LATIN SMALL LETTER A WITH DIAERESIS, CYRILLIC SMALL LETTER I
-    for my $pattern ("\x{e4}", "\x{0437}") {
+    for my $pattern ("\N{U+E4}", "\x{0437}") {
         utf8::upgrade $pattern;
         my @res;
         for my $str ("a${pattern}b", "axb", "a${pattern}b") {
@@ -492,14 +492,16 @@ is($cnt, scalar(@ary));
     my @results;
     my $expr;
     $expr = ' a b c ';
-    @results = split "\x20", $expr;
+    @results = split "\x20", $expr if $::IS_ASCII;
+    @results = split "\x40", $expr if $::IS_EBCDIC;
     is @results, 3,
         "RT #116086: split on string of single hex-20: captured 3 elements";
     is $results[0], 'a',
         "RT #116086: split on string of single hex-20: first element is non-empty";
 
     $expr = " a \tb c ";
-    @results = split "\x20", $expr;
+    @results = split "\x20", $expr if $::IS_ASCII;
+    @results = split "\x40", $expr if $::IS_EBCDIC;
     is @results, 3,
         "RT #116086: split on string of single hex-20: captured 3 elements";
     is $results[0], 'a',
index f534a86..967b5d3 100644 (file)
@@ -32,8 +32,18 @@ if ($^O eq 'VMS') {
 # No %Config.
 my $Is_Ultrix_VAX = $^O eq 'ultrix' && `uname -m` =~ /^VAX$/;
 
+our $IS_EBCDIC = $::IS_EBCDIC;  # Solely to avoid the 'used once' warning
+our $IS_ASCII = $::IS_ASCII;   # Solely to avoid the 'used once' warning
+
 while (<DATA>) {
-    s/^\s*>//; s/<\s*$//;
+    s/<\s*$//;
+
+    # An initial 'a' or 'e' marks the test as being only for ASCII or EBCDIC
+    # platforms respectively.
+    s/^\s* ( [ae] )? >//x;
+    next if defined $1 && $1 eq 'a' && $::IS_EBCDIC;
+    next if defined $1 && $1 eq 'e' && $::IS_ASCII;
+
     ($template, $data, $result, $comment) = split(/<\s*>/, $_, 4);
     if ($^O eq 'os390' || $^O eq 's390') { # non-IEEE (s390 is UTS)
         $data   =~ s/([eE])96$/${1}63/;      # smaller exponents
@@ -713,10 +723,17 @@ __END__
 >%*2147483647$v2d<     >''<    > MISSING<
 >%.3X<         >[11]<                  >00B<           >perl #83194: hex, zero-padded to 3 places<
 >%.*X<         >[3, 11]<               >00B<           >perl #83194: dynamic precision<
->%vX<          >['012']<               >30.31.32<      >perl #83194: vector flag<
->%*vX<         >[':', '012']<          >30:31:32<      >perl #83194: vector flag + custom separator<
->%v.3X<                >['012']<               >030.031.032<   >perl #83194: vector flag + static precision<
->%v.*X<                >[3, '012']<            >030.031.032<   >perl #83194: vector flag + dynamic precision<
->%*v.3X<       >[':', '012']<          >030:031:032<   >perl #83194: vector flag + custom separator + static precision<
->%*v.*X<       >[':', 3, '012']<       >030:031:032<   >perl #83194: vector flag + custom separator + dynamic precision<
->%vd<  >"version"<     >118.101.114.115.105.111.110<   >perl #102586: vector flag + "version"<
+a>%vX<         >['012']<               >30.31.32<      >perl #83194: vector flag<
+e>%vX<         >['012']<               >F0.F1.F2<      >perl #83194: vector flag<
+a>%*vX<                >[':', '012']<          >30:31:32<      >perl #83194: vector flag + custom separator<
+e>%*vX<                >[':', '012']<          >F0:F1:F2<      >perl #83194: vector flag + custom separator<
+a>%v.3X<               >['012']<               >030.031.032<   >perl #83194: vector flag + static precision<
+e>%v.3X<               >['012']<               >0F0.0F1.0F2<   >perl #83194: vector flag + static precision<
+a>%v.*X<               >[3, '012']<            >030.031.032<   >perl #83194: vector flag + dynamic precision<
+e>%v.*X<               >[3, '012']<            >0F0.0F1.0F2<   >perl #83194: vector flag + dynamic precision<
+a>%*v.3X<      >[':', '012']<          >030:031:032<   >perl #83194: vector flag + custom separator + static precision<
+e>%*v.3X<      >[':', '012']<          >0F0:0F1:0F2<   >perl #83194: vector flag + custom separator + static precision<
+a>%*v.*X<      >[':', 3, '012']<       >030:031:032<   >perl #83194: vector flag + custom separator + dynamic precision<
+e>%*v.*X<      >[':', 3, '012']<       >0F0:0F1:0F2<   >perl #83194: vector flag + custom separator + dynamic precision<
+a>%vd< >"version"<     >118.101.114.115.105.111.110<   >perl #102586: vector flag + "version"<
+e>%vd<   >"version"<    >165.133.153.162.137.150.149<   >perl #102586: vector flag + "version"<
index 4c846b7..af218ad 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
 
 BEGIN { require "./test.pl"; }
 
-plan( tests => 50 );
+plan( tests => 51 );
 
 # Used to segfault (bug #15479)
 fresh_perl_like(
@@ -327,3 +327,10 @@ is runperl(
    ),
    "SUPER\n",
    'bareword lookup does not vivify stashes';
+
+is runperl(
+    prog => '%0; *bar::=*foo::=0; print qq|ok\n|',
+    stderr => 1,
+   ),
+   "ok\n",
+   '[perl #123847] no crash from *foo::=*bar::=*glob_with_hash';
index de30a9b..08afc78 100644 (file)
@@ -10,6 +10,7 @@
 BEGIN {
     chdir 't' if -d 't';
     require './test.pl';
+    require './loc_tools.pl';
     set_up_inc('../lib');
 }
 
@@ -298,7 +299,7 @@ my $TEST = 'TEST';
     is($one, 'a',      "$desc: \$1 value");
 
   SKIP: {
-        skip 'No locale testing without d_setlocale', 10 if(!$Config{d_setlocale});
+        skip 'Locales not available', 10 unless locales_enabled('LC_CTYPE');
 
         $desc = "match with pattern tainted via locale";
 
@@ -351,7 +352,7 @@ my $TEST = 'TEST';
     is($one, 'd',      "$desc: \$1 value");
 
   SKIP: {
-        skip 'No locale testing without d_setlocale', 12 if(!$Config{d_setlocale});
+        skip 'Locales not available', 12 unless locales_enabled('LC_CTYPE');
 
         $desc = "match with pattern tainted via locale, list cxt";
 
@@ -503,7 +504,7 @@ my $TEST = 'TEST';
     is($one, 'abcd',   "$desc: \$1 value");
 
   SKIP: {
-        skip 'No locale testing without d_setlocale', 18 if(!$Config{d_setlocale});
+        skip 'Locales not available', 18 unless locales_enabled('LC_CTYPE');
 
         $desc = "substitution with pattern tainted via locale";
 
@@ -687,7 +688,7 @@ my $TEST = 'TEST';
        is($one, 'a',      "$desc: \$1 value");
 
   SKIP: {
-        skip 'No locale testing without d_setlocale', 10 if(!$Config{d_setlocale});
+        skip 'Locales not available', 10 unless locales_enabled('LC_CTYPE');
 
         $desc = "use re 'taint': match with pattern tainted via locale";
 
@@ -740,7 +741,7 @@ my $TEST = 'TEST';
        is($one, 'd',      "$desc: \$1 value");
 
   SKIP: {
-        skip 'No locale testing without d_setlocale', 12 if(!$Config{d_setlocale});
+        skip 'Locales not available', 12 unless locales_enabled('LC_CTYPE');
 
         $desc = "use re 'taint': match with pattern tainted via locale, list cxt";
 
@@ -893,7 +894,7 @@ my $TEST = 'TEST';
        is($one, 'abcd',   "$desc: \$1 value");
 
   SKIP: {
-        skip 'No locale testing without d_setlocale', 18 if(!$Config{d_setlocale});
+        skip 'Locales not available', 18 unless locales_enabled('LC_CTYPE');
 
         $desc = "use re 'taint': substitution with pattern tainted via locale";
 
@@ -2297,7 +2298,7 @@ pass("no death when TARG of ref is tainted");
 }
 
 SKIP: {
-    skip 'No locale testing without d_setlocale', 4 if(!$Config{d_setlocale});
+    skip 'Locales not available', 4 unless locales_enabled('LC_CTYPE');
 
     use feature 'fc';
     use locale;
index 42e7bba..23a9b6f 100644 (file)
@@ -576,7 +576,11 @@ print $h.$h;
 EXPECT
 01
 ########
+# SKIP ? $IS_EBCDIC
+# skipped on EBCDIC because "2" | "8" is 0xFA (not COLON as it is on ASCII),
+# which isn't representable in this file's UTF-8 encoding.
 # Bug 53482 (and maybe others)
+
 sub TIESCALAR { my $foo = $_[1]; bless \$foo, $_[0] }
 sub FETCH { ${$_[0]} }
 tie my $x1, "main", 2;
@@ -1417,6 +1421,9 @@ EXPECT
 main
 ok
 ########
+# SKIP ? $::IS_EBCDIC
+# skipped on EBCDIC because different from ASCII and results vary depending on
+# code page
 
 # &xsub and goto &xsub with tied @_
 use Tie::Array;
index e7484a0..e897587 100644 (file)
@@ -8,6 +8,7 @@ BEGIN {
 }
 
 use strict;
+use Config ();
 
 plan(tests => 16);
 
@@ -27,6 +28,8 @@ my $out = runperl(stderr => 1,
     }
 EOS
 
+$out =~ s/^ALLOCATED at .*\n//m
+    if $Config::Config{ccflags} =~ /-DDEBUG_LEAKING_SCALARS/;
 like($out, qr/\ASV =/, "check we got dump output"); # [perl #121337]
 
 my $utf8magic = qr{ ^ \s+ MAGIC \s = .* \n
index 55e921d..c071664 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 => 6;
@@ -33,6 +33,6 @@ $str2 = "b";
 utf8::encode $str2;
 is $::stored, "a", 'utf8::encode respects get-magic on POK scalars';
 
-tie $str2, "", "\xc4\x80";
+tie $str2, "", byte_utf8a_to_utf8n("\xc4\x80");
 utf8::decode $str2;
 is $::stored, "\x{100}", 'utf8::decode respects set-magic';
index 2f1b688..5200c5b 100644 (file)
@@ -176,13 +176,10 @@ foreach ("\x7f","\xff")
 
 {
     local $/; # Slurp.
-    my $utf8      = <DATA>;
-    my $utfebcdic = <DATA>;
-    if (ord('A') == 65) {
-       eval $utf8;
-    } elsif (ord('A') == 193) {
-       eval $utfebcdic;
-    }
+    my $data = <DATA>;
+    my ($utf8, $utf1047ebcdic) = split /__SPLIT__/, $data;
+    $utf8 = $utf1047ebcdic if $::IS_EBCDIC;
+    eval $utf8;
 }
 __END__
 {
@@ -203,8 +200,8 @@ __END__
     ok !utf8::is_utf8($key), "'$key' shouldn't have utf8 flag";
   }
 }
-__END__
-{
+__SPLIT__
+{   # This is 1047 UTF-EBCDIC; won't work on other code pages.
   # See if utf8 barewords work [perl #22969]
   use utf8; # UTF-EBCDIC, really.
   my %hash = (½ää½âÀ½äâ½ää => 123);
index 1496725..e896e9e 100644 (file)
@@ -4,7 +4,7 @@ BEGIN {
     chdir 't' if -d 't';
     @INC = qw(. ../lib);
     $SIG{'__WARN__'} = sub { warn $_[0] if $DOWARN };
-    require "./test.pl";
+    require "./test.pl"; require "./charset_tools.pl";
 }
 
 $DOWARN = 1; # enable run-time warnings now
@@ -175,7 +175,7 @@ is(sprintf("%vd", join("", map { chr }
 my $vs = v1.20.300.4000;
 is($vs,"\x{1}\x{14}\x{12c}\x{fa0}","v-string ne \\x{}");
 is($vs,chr(1).chr(20).chr(300).chr(4000),"v-string ne chr()");
-is('foo',((chr(193) eq 'A') ? v134.150.150 : v102.111.111),"v-string ne ''");
+is('foo',($::IS_EBCDIC ? v134.150.150 : v102.111.111),"v-string ne ''");
 
 # Chapter 15, pp403
 
@@ -225,7 +225,7 @@ ok( abs($v - $]) < 10**-8 , "\$^V == \$] (numeric)" );
 
 SKIP: {
   skip("In EBCDIC the v-string components cannot exceed 2147483647", 6)
-    if ord "A" == 193;
+    if $::IS_EBCDIC;
 
   # [ID 20010902.001] check if v-strings handle full UV range or not
   if ( $Config{'uvsize'} >= 4 ) {
@@ -270,10 +270,10 @@ ok( exists $h{chr(65).chr(66).chr(67)}, "v-stringness is engaged for X.Y.Z" );
     is $|, 1, 'clobbering vstrings does not clobber all magic';
 }
 
-$a = v102; $a =~ s/f/f/;
+$a = $::IS_EBCDIC ? v134 : v102; $a =~ s/f/f/;
 is ref \$a, 'SCALAR',
   's/// flattens vstrings even when the subst results in the same value';
-$a = v102; $a =~ y/f/g/;
+$a = $::IS_EBCDIC ? v134 : v102; $a =~ y/f/g/;
 is ref \$a, 'SCALAR', 'y/// flattens vstrings';
 
 sub { $_[0] = v3;
index 4d679c2..42b88f8 100644 (file)
@@ -3,7 +3,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
     set_up_inc('../lib');
 }
 
@@ -121,22 +121,25 @@ fresh_perl_like(
 
 SKIP: {
     skip_if_miniperl('miniperl ignores -C', 1);
+   $ee = uni_to_native("\xee");
+   $bytes = byte_utf8a_to_utf8n("\xc3\xae");
 fresh_perl_like(
- '
-   $a = "\xee\n";
-   print STDERR $a; warn $a;
-   utf8::upgrade($a);
-   print STDERR $a; warn $a;
',
-  qr/^\xc3\xae(?:\r?\n\xc3\xae){3}/,
+ "
+   \$a = \"$ee\n\";
+   print STDERR \$a; warn \$a;
+   utf8::upgrade(\$a);
+   print STDERR \$a; warn \$a;
",
+  qr/^$bytes(?:\r?\n$bytes){3}/,
   { switches => ['-CE'] },
  'warn respects :utf8 layer'
 );
 }
 
+$bytes = byte_utf8a_to_utf8n("\xc4\xac");
 fresh_perl_like(
  'warn chr 300',
-  qr/^Wide character in warn .*\n\xc4\xac at /,
+  qr/^Wide character in warn .*\n$bytes at /,
   { switches => [ "-C0" ] },
  'Wide character in warn (not print)'
 );
index 3493968..7992260 100644 (file)
@@ -467,6 +467,7 @@ try $T++,  0.153000e-305 != 0.0,           '0.153000e-305';
 try $T++,  0.1530000e-305 != 0.0,          '0.1530000e-305';
 try $T++,  0.1530001e-305 != 0.0,          '0.1530001e-305';
 try $T++,  1.17549435100e-38 != 0.0,       'min single';
+# For flush-to-zero systems this may flush-to-zero, see PERL_SYS_FPU_INIT
 try $T++,  2.2250738585072014e-308 != 0.0, 'min double';
 
 # string-to-nv should equal float literals
diff --git a/t/perf/taint.t b/t/perf/taint.t
new file mode 100644 (file)
index 0000000..0c3ac82
--- /dev/null
@@ -0,0 +1,43 @@
+#!./perl -T
+#
+# All the tests in this file are ones that run exceptionally slowly
+# (each test taking seconds or even minutes) in the absence of particular
+# optimisations. Thus it is a sort of canary for optimisations being
+# broken.
+#
+# Although it includes a watchdog timeout, this is set to a generous limit
+# to allow for running on slow systems; therefore a broken optimisation
+# might be indicated merely by this test file taking unusually long to
+# run, rather than actually timing out.
+#
+# This is similar to t/perf/speed.t but tests performance regressions specific
+# to taint.
+#
+
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = ('../lib');
+    require Config; import Config;
+    require './test.pl';
+    skip_all_if_miniperl("No Scalar::Util under miniperl");
+}
+
+use strict;
+use warnings;
+use Scalar::Util qw(tainted);
+
+$| = 1;
+
+plan tests => 2;
+
+watchdog(60);
+
+{
+    my $in = substr($ENV{PATH}, 0, 0) . ( "ab" x 200_000 );
+    utf8::upgrade($in);
+    ok(tainted($in), "performance issue only when tainted");
+    while ($in =~ /\Ga+b/g) { }
+    pass("\\G on tainted string");
+}
+
+1;
index fae9d54..01b52b2 100644 (file)
@@ -1,6 +1,7 @@
 #!./perl -w
 use strict;
 require './test.pl';
+skip_all("Sorting order differs under EBCDIC") if $::IS_EBCDIC || $::IS_EBCDIC;
 
 use Config;
 
index 9123735..c52f9e2 100644 (file)
@@ -24,6 +24,7 @@
 use Config;
 BEGIN {
     require "./test.pl";
+    skip_all("Won't ship a release from EBCDIC") if $::IS_EBCDIC;
     @INC = '..' if -f '../TestInit.pm';
 }
 use TestInit qw(T A); # T is chdir to the top level, A makes paths absolute
index b2b33ba..fa37838 100644 (file)
@@ -1,30 +1,16 @@
-CPAN cpan/CPAN/lib/CPAN/Author.pm 792d7c8fbe6ed45e1244e589a8b712878c5dd2a5
-CPAN cpan/CPAN/lib/CPAN/CacheMgr.pm 132adb7f96014ec7ded45457044ed925d3181475
-CPAN cpan/CPAN/lib/CPAN/FTP.pm 3f0d5fc572c8749a566d73ca892c6c89ce3fb676
-CPAN cpan/CPAN/lib/CPAN/HandleConfig.pm e52052b6ef6d1d664f0ffa6cf01d48a8d1321520
-CPAN cpan/CPAN/lib/CPAN/HTTP/Client.pm 242842ca566fd8e3d776deb549ff758a571ca2e3
-CPAN cpan/CPAN/lib/CPAN/Index.pm 73aee30450127c5ac4dc05abc2c10a8accd4b198
-CPAN cpan/CPAN/lib/CPAN/LWP/UserAgent.pm e09525b0c2377c5ac28b7fad1b6d70c57e343913
-CPAN cpan/CPAN/lib/CPAN/Mirrors.pm 580e74746abaf1628d533015d5b529d82a470af4
-Encode cpan/Encode/encoding.pm baa25e197ba4d5fa228dbf7b440afb5ae18ec5ed
 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/pm_to_blib.t 71ebcee355691ce374fcad251b12d8b2412462b3
 PerlIO::via::QuotedPrint cpan/PerlIO-via-QuotedPrint/t/QuotedPrint.t ca39f0146e89de02c746e199c45dcb3e5edad691
-Pod::Parser cpan/Pod-Parser/lib/Pod/PlainText.pm f0b490545b4e52e141450d1192d0ca00bd8d7a82
-Test::Simple cpan/Test-Simple/t/Legacy/exit.t 83edbf569d56d8cdbabea552dfe5602ea1c1822e
-Text::Balanced cpan/Text-Balanced/t/01_compile.t 1598cf491a48fa546260a2ec41142abe84da533d
-Text::Balanced cpan/Text-Balanced/t/02_extbrk.t 6ba1b64a4604e822dc2260b8ffcea6b406339ee8
-Text::Balanced cpan/Text-Balanced/t/03_extcbk.t 3307c980af28963414cab799c427b359ef3b8657
-Text::Balanced cpan/Text-Balanced/t/04_extdel.t be993c5c295b125b4be0ed55f866a249599f5835
-Text::Balanced cpan/Text-Balanced/t/05_extmul.t 4d1bc60add35ac203873f5371d8c6fcc9c8b6d80
-Text::Balanced cpan/Text-Balanced/t/06_extqlk.t 81a5804d392013393a338325b197cea52c4c44e0
-Text::Balanced cpan/Text-Balanced/t/07_exttag.t 5a209ed156387d4614d3003292e5fc412b8541e5
-Text::Balanced cpan/Text-Balanced/t/08_extvar.t 0776ef2cbdad5b1fbefb300541d079212cc24d92
-Text::Balanced cpan/Text-Balanced/t/09_gentag.t 42361b5dfb3bb728bce20f4fb0d92ccfb27c2ba7
 Text::ParseWords cpan/Text-ParseWords/t/ParseWords.t 9bae51c9b944cd5c0bbabe9d397e573976a2be8e
-Text::ParseWords cpan/Text-ParseWords/t/taint.t 3cff0dae812801f7aa1738d6070508f2c5bcc2e5
+Win32API::File cpan/Win32API-File/buffers.h 02d230ac9ac7091365128161a0ed671898baefae
+Win32API::File cpan/Win32API-File/cFile.h fca7e383e76979c3ac3adf12d11d1bcd2618e489
+Win32API::File cpan/Win32API-File/cFile.pc 992421eea7782a5957b64f66764f6ffb5093bee4
+Win32API::File cpan/Win32API-File/const2perl.h 521a12d359f5efb68cf8abe1977689b640bc8b7d
+Win32API::File cpan/Win32API-File/ExtUtils/Myconst2perl.pm ce52544f49ac880e20b6171fe38f6560ed845e97
+Win32API::File cpan/Win32API-File/Makefile.PL 605d0aee31aebe84a99408f9ab5f644db57c61c6
+Win32API::File cpan/Win32API-File/t/file.t 124e64aa77e755235eb297644a87fac5388d3d78
+Win32API::File cpan/Win32API-File/t/tie.t 712ea7edd0cc805ce1c0b8172c01b03dd19b583d
+Win32API::File cpan/Win32API-File/typemap 24bff088babeadac0873e8df390d1666d9d9db4a
 podlators cpan/podlators/scripts/pod2man.PL f81acf53f3ff46cdcc5ebdd661c5d13eb35d20d6
 podlators cpan/podlators/scripts/pod2text.PL b4693fcfe4a0a1b38a215cfb8985a65d5d025d69
-threads dist/threads/lib/threads.pm e1b210ff6d66a0e1d43aa8f040954fc811e3d250
-threads dist/threads/threads.xs f492e1266d30f62faba625bee1d11652eb349955
 version cpan/version/lib/version.pm d0923b895d57f1d669ae36fcf85c87b16db341d1
 version vutil.c 668f17ca43e2527645674d29ba772b86330d5663
index 2061532..45fcafb 100644 (file)
@@ -12,6 +12,7 @@ BEGIN {
     chdir '..' unless -d 't';
     @INC = qw(lib Porting t);
     require 'test.pl';
+    skip_all("pre-computed SHA1 won't match under EBCDIC") if $::IS_EBCDIC;
 }
 
 use strict;
index b1b1ff3..3e2893a 100644 (file)
@@ -321,6 +321,4 @@ lib/config.pod      ? Should you be using L<...> instead of -1
 lib/extutils/embed.pm  Verbatim line length including indents exceeds 79 by    2
 lib/perl5db.pl ? Should you be using L<...> instead of 1
 lib/pod/text/overstrike.pm     Verbatim line length including indents exceeds 79 by    1
-lib/test/stream/subtest.pm     Apparent broken link    1
-lib/test/stream/subtest.pm     There is no NAME        1
 porting/perl5220delta.pod      Pod NAME already used   1
index d97b332..ac9db4b 100644 (file)
@@ -326,8 +326,6 @@ ok($symbols{text}{'Perl_pp_uc'}{'pp.o'}, "has text Perl_pp_uc in pp.o");
 ok(exists $symbols{data}{const}, "has data const symbols");
 ok($symbols{data}{const}{PL_no_mem}{'globals.o'}, "has PL_no_mem");
 
-my $DEBUGGING = $Config{ccflags} =~ /-DDEBUGGING/ ? 1 : 0;
-
 my $GS  = $Config{ccflags} =~ /-DPERL_GLOBAL_STRUCT\b/ ? 1 : 0;
 my $GSP = $Config{ccflags} =~ /-DPERL_GLOBAL_STRUCT_PRIVATE/ ? 1 : 0;
 
index 01cbd1c..e7f205b 100644 (file)
@@ -72,6 +72,7 @@ close $m or die $!;
 
 # Test that MANIFEST is properly sorted
 SKIP: {
+    skip("Sorting order is different under EBCDIC", 1) if $::IS_EBCDIC || $::IS_EBCDIC;
     skip("'Porting/manisort' not found", 1) if (! -f 'Porting/manisort');
 
     my $result = runperl('progfile' => 'Porting/manisort',
index e278e4e..61e0728 100644 (file)
@@ -33,4 +33,9 @@ if ( $Config{usecrosscompile} ) {
     exit 0;
 }
 
+if ( ord("A") == 193) {
+    print "1..0 # EBCDIC sorts differenly than expected\n";
+    exit 0;
+}
+
 system "$^X ext/Pod-Functions/Functions_pm.PL --tap pod/perlfunc.pod";
index 85d044e..e127920 100644 (file)
@@ -52,6 +52,8 @@ eval {
 };
 
 if(@sorted_order) {
+    local $::TODO;
+    $::TODO = "Unicode::Collate not working on EBCDIC" if $::IS_EBCDIC || $::IS_EBCDIC;
     ok(eq_array(\@current_order, \@sorted_order), "Files are referenced in order") or
         print_right_order();
 }
index 27e4abe..5d08518 100644 (file)
@@ -18,6 +18,9 @@ if ( $^O eq "VMS" ) {
 if ($^O eq 'dec_osf') {
     skip_all("$^O cannot handle this test");
 }
+if ( $::IS_EBCDIC || $::IS_EBCDIC) {
+  skip_all( "- We don't regen on EBCDIC." );
+}
 use Config;
 if ( $Config{usecrosscompile} ) {
   skip_all( "Not all files are available during cross-compilation" );
@@ -74,6 +77,7 @@ OUTER: foreach my $file (@files) {
            fail("Bad line in $file: '$_'");
            next OUTER;
        }
+
        my $digest = digest($2);
        note("$digest $2");
        push @bad, $2 unless $digest eq $1;
index e061916..7a5852a 100644 (file)
@@ -18,15 +18,15 @@ plan('no_plan');
 # Each case is a valid element of its hash key.  Choose, where available, an
 # ASCII-range, Latin-1 non-ASCII range, and above Latin1 range code point.
 my %testcases = (
-    '\w' => [ ord("A"), 0xE2, 0x16B ],   # Below expects these to all be alpha
+    '\w' => [ ord("A"), utf8::unicode_to_native(0xE2), 0x16B ],   # Below expects these to all be alpha
     '\d' => [ ord("0"), 0x0662 ],
-    '\s' => [ ord("\t"), 0xA0, 0x1680 ],  # Below expects these to be [:blank:]
-    '[:cntrl:]' => [ 0x00, 0x88 ],
-    '[:graph:]' => [ ord("&"), 0xF7, 0x02C7 ], # Below expects these to be
-                                               # [:print:]
-    '[:lower:]' => [ ord("g"), 0xE3, 0x0127 ],
-    '[:punct:]' => [ ord("!"), 0xBF, 0x055C ],
-    '[:upper:]' => [ ord("G"), 0xC3, 0x0126 ],
+    '\s' => [ ord("\t"), utf8::unicode_to_native(0xA0), 0x1680 ],  # Below expects these to be [:blank:]
+    '[:cntrl:]' => [ utf8::unicode_to_native(0x00), utf8::unicode_to_native(0x88) ],
+    '[:graph:]' => [ ord("&"), utf8::unicode_to_native(0xF7), 0x02C7 ], # Below expects these to be
+                                                                     # [:print:]
+    '[:lower:]' => [ ord("g"), utf8::unicode_to_native(0xE3), 0x0127 ],
+    '[:punct:]' => [ ord('`'), ord('^'), ord('~'), ord('<'), ord('='), ord('>'), ord('|'), ord('-'), ord(','), ord(';'), ord(':'), ord('!'), ord('?'), ord('/'), ord('.'), ord('"'), ord('('), ord(')'), ord('['), ord(']'), ord('{'), ord('}'), ord('@'), ord('$'), ord('*'), ord('\\'), ord('&'), ord('#'), ord('%'), ord('+'), ord("'"), utf8::unicode_to_native(0xBF), 0x055C ],
+    '[:upper:]' => [ ord("G"), utf8::unicode_to_native(0xC3), 0x0126 ],
     '[:xdigit:]' => [ ord("4"), 0xFF15 ],
 );
 
@@ -41,7 +41,7 @@ $testcases{'[:word:]'} = $testcases{'\w'};
 my $utf8_locale;
 
 my @charsets = qw(a d u aa);
-if (! is_miniperl() && $Config{d_setlocale}) {
+if (! is_miniperl() && locales_enabled('LC_CTYPE')) {
     require POSIX;
     my $current_locale = POSIX::setlocale( &POSIX::LC_ALL, "C") // "";
     if ($current_locale eq 'C') {
@@ -55,7 +55,8 @@ if (! is_miniperl() && $Config{d_setlocale}) {
         # legal, but since we don't know what the right answers should be,
         # skip the locale tests in that situation.
         for my $i (128 .. 255) {
-            goto skip_adding_C_locale if chr($i) =~ /[[:print:]]/;
+            goto skip_adding_C_locale
+                              if chr(utf8::unicode_to_native($i)) =~ /[[:print:]]/;
         }
         push @charsets, 'l';
 
@@ -98,7 +99,8 @@ foreach my $charset (@charsets) {
 
             # For each test case
             foreach my $ord (@{$testcases{$class}}) {
-                my $char = display(chr($ord));
+                my $char = chr($ord);
+                $char = ($char eq '$') ? '\$' : display($char);
 
                 # > 255 already implies upgraded.  Skip the ones that don't
                 # have an explicit upgrade.  This shows more clearly in the
@@ -112,7 +114,10 @@ foreach my $charset (@charsets) {
 
                 # 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') {
+                if (utf8::native_to_unicode($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";
                 }
@@ -242,7 +247,7 @@ foreach my $charset (@charsets) {
                     my $other_is_word = 1;
                     my $other_reason = "\"$other\" is a $class under /$charset_display";
                     my $other_neg_reason = "\"$other\" is not a $complement under /$charset_display";
-                    if ($other_ord > 127
+                    if (utf8::native_to_unicode($other_ord) > 127
                         && $charset ne 'u' && $charset ne 'L'
                         && (($charset eq "a" || $charset eq "aa")
                             || ($other_ord < 256 && ($charset eq 'l' || ! $upgrade))))
index a39affb..27f730d 100644 (file)
@@ -26,7 +26,7 @@ use POSIX;
 
 # Special-cased characters in the .c's that we want to make sure get tested.
 my %be_sure_to_test = (
-        "\xDF" => 1, # LATIN_SMALL_LETTER_SHARP_S
+        chr utf8::unicode_to_native(0xDF) => 1, # LATIN_SMALL_LETTER_SHARP_S
         "\x{1E9E}" => 1, # LATIN_CAPITAL_LETTER_SHARP_S
         "\x{390}" => 1, # GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS
         "\x{3B0}" => 1, # GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS
@@ -71,7 +71,7 @@ my $skip_apparently_redundant = ! $ENV{PERL_RUN_SLOW_TESTS};
 sub range_type {
     my $ord = ord shift;
 
-    return $ASCII if $ord < 128;
+    return $ASCII if utf8::native_to_unicode($ord) < 128;
     return $Latin1 if $ord < 256;
     return $Unicode;
 }
@@ -260,7 +260,7 @@ my $file="../lib/unicore/CaseFolding.txt";
 # for), and it is in the modern format (starting in Unicode 3.1.0) and it is
 # available.  This avoids being affected by potential bugs introduced by other
 # layers of Perl
-if (ord('A') == 65
+if ($::IS_ASCII
     && pack("C*", split /\./, Unicode::UCD::UnicodeVersion()) ge v3.1.0
     && open my $fh, "<", $file)
 {
@@ -304,7 +304,8 @@ else {  # Here, can't use the .txt file: read the Unicode rules file and
             $adjust++;
             my @to = map { $_ + $adjust } @{$invmap_ref->[$i]};
             push @{$folds{$j}}, @to;
-            my $folded_str = pack "U0U*", @to;
+            my $folded_str = join "", map { chr } @to;
+            utf8::upgrade($folded_str);
             #note (sprintf "%d: %04X: %s", __LINE__, $j, join " ",
             #    map { sprintf "%04X", $_  + $adjust } @{$invmap_ref->[$i]});
             push @{$inverse_folds{$folded_str}}, chr $j;
@@ -389,8 +390,8 @@ foreach my $to (sort { (length $a == length $b)
 }
 
 # For each range type, test additionally a character that folds to itself
-add_test(chr 0x3A, chr 0x3A);
-add_test(chr 0xF7, chr 0xF7);
+add_test(":", ":");
+add_test(chr utf8::unicode_to_native(0xF7), chr utf8::unicode_to_native(0xF7));
 add_test(chr 0x2C7, chr 0x2C7);
 
 # To cut down on the number of tests
@@ -417,7 +418,7 @@ sub prefix {
 # It doesn't return pairs like (a, a), (b, b).  Change the slice to an array
 # to do that.  This was just to have fewer tests.
 sub pairs (@) {
-    #print __LINE__, ": ", join(" XXX ", map { sprintf "%04X", $_ } @_), "\n";
+    #print STDERR __LINE__, ": ", join(" XXX ", map { sprintf "%04X", $_ } @_), "\n";
     map { prefix $_[$_], @_[0..$_-1, $_+1..$#_] } 0..$#_
 }
 
@@ -434,7 +435,7 @@ if($Config{d_setlocale}) {
         # legal, but since we don't know what the right answers should be,
         # skip the locale tests in that situation.
         for my $i (128 .. 255) {
-            my $char = chr($i);
+            my $char = chr(utf8::unicode_to_native($i));
             goto skip_C_locale_tests if uc($char) ne $char || lc($char) ne $char;
         }
         push @charsets, 'l';
@@ -480,23 +481,21 @@ foreach my $test (sort { numerically } keys %tests) {
     # happens to generate multi/multi, skip.
     next if @target > 1 && @pattern > 1;
 
-    # Have to convert non-utf8 chars to native char set
-    @target = map { utf8::unicode_to_native($_) } @target;
-    @pattern = map { utf8::unicode_to_native($_) } @pattern;
-
     # Get in hex form.
     my @x_target = map { sprintf "\\x{%04X}", $_ } @target;
     my @x_pattern = map { sprintf "\\x{%04X}", $_ } @pattern;
 
     my $target_above_latin1 = grep { $_ > 255 } @target;
     my $pattern_above_latin1 = grep { $_ > 255 } @pattern;
-    my $target_has_ascii = grep { $_ < 128 } @target;
-    my $pattern_has_ascii = grep { $_ < 128 } @pattern;
-    my $target_only_ascii = ! grep { $_ > 127 } @target;
-    my $pattern_only_ascii = ! grep { $_ > 127 } @pattern;
+    my $target_has_ascii = grep { utf8::native_to_unicode($_) < 128 } @target;
+    my $pattern_has_ascii = grep { utf8::native_to_unicode($_) < 128 } @pattern;
+    my $target_only_ascii = ! grep { utf8::native_to_unicode($_) > 127 } @target;
+    my $pattern_only_ascii = ! grep { utf8::native_to_unicode($_) > 127 } @pattern;
     my $target_has_latin1 = grep { $_ < 256 } @target;
-    my $target_has_upper_latin1 = grep { $_ < 256 && $_ > 127 } @target;
-    my $pattern_has_upper_latin1 = grep { $_ < 256 && $_ > 127 } @pattern;
+    my $target_has_upper_latin1
+                = grep { $_ < 256 && utf8::native_to_unicode($_) > 127 } @target;
+    my $pattern_has_upper_latin1
+                = grep { $_ < 256 && utf8::native_to_unicode($_) > 127 } @pattern;
     my $pattern_has_latin1 = grep { $_ < 256 } @pattern;
     my $is_self = @target == 1 && @pattern == 1 && $target[0] == $pattern[0];
 
@@ -699,7 +698,7 @@ foreach my $test (sort { numerically } keys %tests) {
           my $lhs_str = eval qq{"$lhs"}; fail($@) if $@;
           my @rhs = @x_pattern;
           my $rhs = join "", @rhs;
-          my $should_fail = (! $uni_semantics && $ord >= 128 && $ord < 256 && ! $is_self)
+          my $should_fail = (! $uni_semantics && $ord < 256 && ! $is_self && utf8::native_to_unicode($ord) >= 128)
                             || ($charset eq 'aa' && $target_has_ascii != $pattern_has_ascii)
                             || ($charset eq 'l' && $target_has_latin1 != $pattern_has_latin1);
 
index 5dad5ef..64f6487 100644 (file)
@@ -17,7 +17,8 @@ BEGIN {
     chdir 't' if -d 't';
     @INC = ('../lib','.','../ext/re');
     require Config; import Config;
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
+    require './loc_tools.pl';
     skip_all('no re module') unless defined &DynaLoader::boot_DynaLoader;
     skip_all_without_unicode_tables();
 }
@@ -522,7 +523,7 @@ sub run_tests {
         my $locale;
 
       SKIP: {
-            skip 'No locale testing without d_setlocale', 1 if(!$Config{d_setlocale});
+            skip 'Locales not available', 1 unless locales_enabled('LC_CTYPE');
 
             use locale;
             $locale = qr/\b\v$/;
@@ -536,22 +537,21 @@ sub run_tests {
         is(qr/abc$dual/,    '(?^u:abc(?^:\b\v$))', 'Verify retains d meaning when interpolated under locale');
 
       SKIP: {
-            skip 'No locale testing without d_setlocale', 1 if(!$Config{d_setlocale});
+            skip 'Locales not available', 1 unless locales_enabled('LC_CTYPE');
 
             is(qr/abc$locale/,    '(?^u:abc(?^l:\b\v$))', 'Verify retains l when interpolated under unicode_strings');
         }
 
         no feature 'unicode_strings';
       SKIP: {
-            skip 'No locale testing without d_setlocale', 1 if(!$Config{d_setlocale});
-
+            skip 'Locales not available', 1 unless locales_enabled('LC_CTYPE');
             is(qr/abc$locale/,    '(?^:abc(?^l:\b\v$))', 'Verify retains l when interpolated outside locale and unicode strings');
         }
 
         is(qr/def$unicode/,    '(?^:def(?^u:\b\v$))', 'Verify retains u when interpolated outside locale and unicode strings');
 
       SKIP: {
-            skip 'No locale testing without d_setlocale', 2 if(!$Config{d_setlocale});
+            skip 'Locales not available', 2 unless locales_enabled('LC_CTYPE');
 
              use locale;
             is(qr/abc$dual/,    '(?^l:abc(?^:\b\v$))', 'Verify retains d meaning when interpolated under locale');
@@ -1099,7 +1099,7 @@ sub run_tests {
     }
     {
         # we are actually testing that we dont die when executing these patterns
-        my $e = "B\x{f6}ck";
+        my $e = "B" . uni_to_native("\x{f6}") . "ck";
         ok(!utf8::is_utf8($e), "got a latin string - rt75680");
 
         ok($e !~ m/.*?[x]$/, "latin string against /.*?[x]\$/ - rt75680");
@@ -1126,13 +1126,10 @@ sub run_tests {
 
     }
 
-    SKIP: {   # Some constructs with Latin1 characters cause a utf8 string not
-              # to match itself in non-utf8
-        if ($::IS_EBCDIC) {
-            skip "Needs to be customized to run on EBCDIC", 6;
-        }
-        my $c = "\xc0";
-        my $pattern = my $utf8_pattern = qr/((\xc0)+,?)/;
+    {   # Some constructs with Latin1 characters cause a utf8 string not
+        # to match itself in non-utf8
+        my $c = uni_to_native("\xc0");
+        my $pattern = my $utf8_pattern = qr/(($c)+,?)/;
         utf8::upgrade($utf8_pattern);
         ok $c =~ $pattern, "\\xc0 =~ $pattern; Neither pattern nor target utf8";
         ok $c =~ /$pattern/i, "\\xc0 =~ /$pattern/i; Neither pattern nor target utf8";
@@ -1145,13 +1142,10 @@ sub run_tests {
         ok $c =~ /$utf8_pattern/i, "\\xc0 =~ /$pattern/i; Both target and pattern utf8";
     }
 
-    SKIP: {   # Make sure can override the formatting
-        if ($::IS_EBCDIC) {
-            skip "Needs to be customized to run on EBCDIC", 2;
-        }
+    {   # Make sure can override the formatting
         use feature 'unicode_strings';
-        ok "\xc0" =~ /\w/, 'Under unicode_strings: "\xc0" =~ /\w/';
-        ok "\xc0" !~ /(?d:\w)/, 'Under unicode_strings: "\xc0" !~ /(?d:\w)/';
+        ok uni_to_native("\xc0") =~ /\w/, 'Under unicode_strings: "\xc0" =~ /\w/';
+        ok uni_to_native("\xc0") !~ /(?d:\w)/, 'Under unicode_strings: "\xc0" !~ /(?d:\w)/';
     }
 
     {
@@ -1294,7 +1288,8 @@ EOP
 
     { # [perl #111174]
         use re '/u';
-        like "\xe0", qr/(?i:\xc0)/, "(?i: shouldn't lose the passed in /u";
+        my $A_grave = uni_to_native("\xc0");
+        like uni_to_native("\xe0"), qr/(?i:$A_grave)/, "(?i: shouldn't lose the passed in /u";
         use re '/a';
         unlike "\x{100}", qr/(?i:\w)/, "(?i: shouldn't lose the passed in /a";
         use re '/aa';
@@ -1306,7 +1301,7 @@ EOP
        # consider the UTF8ness of the previous and current pattern
        # string, as well as the physical bytes of the pattern string
 
-       for my $s ("\xc4\x80", "\x{100}") {
+       for my $s (byte_utf8a_to_utf8n("\xc4\x80"), "\x{100}") {
            ok($s =~ /^$s$/, "re-compile check is UTF8-aware");
        }
     }
@@ -1365,11 +1360,12 @@ EOP
         # EXACTish node
         ;
         ;
-        ok("\x{017F}\x{017F}" =~ qr/^[\x{00DF}]?$/i, "[] to EXACTish optimization");
+        my $sharp_s = uni_to_native("\xdf");
+        ok("\x{017F}\x{017F}" =~ qr/^[$sharp_s]?$/i, "[] to EXACTish optimization");
     }
 
     {
-        for my $char (":", "\x{f7}", "\x{2010}") {
+        for my $char (":", uni_to_native("\x{f7}"), "\x{2010}") {
             my $utf8_char = $char;
             utf8::upgrade($utf8_char);
             my $display = $char;
@@ -1518,10 +1514,10 @@ EOP
         # Need to use eval, because tries to compile on ASCII platforms even
         # though the tests are skipped, and fails because 0x89-j is an illegal
         # range there.
-        like("\x89", eval "qr/[\x{89}-j]/", '"\x89" should match [\x{89}-j]');
-        like("\x8A", eval "qr/[\x{89}-j]/", '"\x8A" should match [\x{89}-j]');
-        like("\x90", eval "qr/[\x{89}-j]/", '"\x90" should match [\x{89}-j]');
-        like("\x91", eval "qr/[\x{89}-j]/", '"\x91" should match [\x{89}-j]');
+        like("\x89", eval 'qr/[\x{89}-j]/', '"\x89" should match [\x{89}-j]');
+        like("\x8A", eval 'qr/[\x{89}-j]/', '"\x8A" should match [\x{89}-j]');
+        like("\x90", eval 'qr/[\x{89}-j]/', '"\x90" should match [\x{89}-j]');
+        like("\x91", eval 'qr/[\x{89}-j]/', '"\x91" should match [\x{89}-j]');
     }
 
     # These are based on looking at the code in regcomp.c
@@ -1549,7 +1545,9 @@ EOP
         like "\x{AA}", qr/a?[\W_]/d, "\\W with /d synthetic start class works";
     }
 
-    {
+    SKIP: {
+        skip("Tests are ASCII-centric, some would fail on EBCDIC", 12) if $::IS_EBCDIC;
+
         # 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),
index e03b2f4..3eaad63 100644 (file)
@@ -114,12 +114,13 @@ sub run_tests {
     {
         my $message = 'bug id 20001008.001';
 
-        my @x = ("stra\337e 138", "stra\337e 138");
+        my $strasse = "stra" . uni_to_native("\337") . "e";
+        my @x = ("$strasse 138", "$strasse 138");
         for (@x) {
             ok(s/(\d+)\s*([\w\-]+)/$1 . uc $2/e, $message);
             ok(my ($latin) = /^(.+)(?:\s+\d)/, $message);
-            is($latin, "stra\337e", $message);
-           ok($latin =~ s/stra\337e/straße/, $message);
+            is($latin, $strasse, $message);
+           ok($latin =~ s/$strasse/straße/, $message);
             #
             # Previous code follows, but outcommented - there were no tests.
             #
@@ -638,14 +639,10 @@ sub run_tests {
         # More whitespace: U+0085, U+2028, U+2029\n";
 
         # U+0085, U+00A0 need to be forced to be Unicode, the \x{100} does that.
-      SKIP: {
-          skip "EBCDIC platform", 4 if $::IS_EBCDIC;
-          # Do \x{0015} and \x{0041} match \s in EBCDIC?
-          ok "<\x{100}\x{0085}>" =~ /<\x{100}\s>/, '\x{0085} in \s';
-          ok        "<\x{0085}>" =~        /<\v>/, '\x{0085} in \v';
-          ok "<\x{100}\x{00A0}>" =~ /<\x{100}\s>/, '\x{00A0} in \s';
-          ok        "<\x{00A0}>" =~        /<\h>/, '\x{00A0} in \h';
-        }
+        ok "<\x{100}" . uni_to_native("\x{0085}") . ">" =~ /<\x{100}\s>/, '\x{0085} in \s';
+        ok        "<" . uni_to_native("\x{0085}") . ">" =~        /<\v>/, '\x{0085} in \v';
+        ok "<\x{100}" . uni_to_native("\x{00A0}") . ">" =~ /<\x{100}\s>/, '\x{00A0} in \s';
+        ok        "<" . uni_to_native("\x{00A0}") . ">" =~        /<\h>/, '\x{00A0} in \h';
         my @h = map {sprintf "%05x" => $_} 0x01680, 0x02000 .. 0x0200A,
                                            0x0202F, 0x0205F, 0x03000;
         my @v = map {sprintf "%05x" => $_} 0x02028, 0x02029;
@@ -998,7 +995,7 @@ sub run_tests {
         #
         my $w;
         local $SIG {__WARN__} = sub {$w .= "@_"};
-        $result = eval 'q(WARN) =~ /[\N{WARN}]/';
+        $result = eval 'q(WARN) =~ /^[\N{WARN}]$/';
         ok !$@ && $result && ! $w,  '\N{} returning multi-char works';
 
         undef $w;
@@ -1123,7 +1120,7 @@ sub run_tests {
         ok $@ && $@ =~ /Invalid character/, 'Verify that leading digit in name gives error';
         eval 'q() =~ /\N{COM,MA}/';
         ok $@ && $@ =~ /Invalid character/, 'Verify that comma in name gives error';
-        $name = "A\x{D7}O";
+        $name = "A" . uni_to_native("\x{D7}") . "O";
         eval "q(W) =~ /\\N{$name}/";
         ok $@ && $@ =~ /Invalid character/, 'Verify that latin1 symbol in name gives error';
         my $utf8_name = "7 CITIES OF GOLD";
@@ -1134,7 +1131,7 @@ sub run_tests {
         utf8::upgrade($utf8_name);
         eval "use utf8; q(W) =~ /\\N{$utf8_name}/";
         ok $@ && $@ =~ /Invalid character/, 'Verify that ASCII symbol in utf8 name gives error';
-        $utf8_name = "A HOUSE \xF7 AGAINST ITSELF";
+        $utf8_name = "A HOUSE " . uni_to_native("\xF7") . " AGAINST ITSELF";
         utf8::upgrade($utf8_name);
         eval "use utf8; q(W) =~ /\\N{$utf8_name}/";
         ok $@ && $@ =~ /Invalid character/, 'Verify that latin1 symbol in utf8 name gives error';
@@ -1146,7 +1143,7 @@ sub run_tests {
         ok $@ && $@ =~ /Invalid character/, 'Verify that above Latin1 symbol in utf8 name gives error';
 
         undef $w;
-        $name = "A\x{D1}O";
+        $name = "A" . uni_to_native("\x{D1}") . "O";
         eval "q(W) =~ /\\N{$name}/";
         ok ! $w, 'Verify that latin1 letter in name doesnt give warning';
 
@@ -1224,10 +1221,10 @@ sub run_tests {
 
     {
         my @ary = (
-            pack('U', 0x00F1),            # n-tilde
-            '_'.pack('U', 0x00F1),        # _ + n-tilde
+            pack('U', 0x00F1), # n-tilde
+            '_'.pack('U', 0x00F1), # _ + n-tilde
             'c'.pack('U', 0x0327),        # c + cedilla
-            pack('U*', 0x00F1, 0x0327),   # n-tilde + cedilla
+            pack('U*', 0x00F1, 0x0327),# n-tilde + cedilla
             pack('U', 0x0391),            # ALPHA
             pack('U', 0x0391).'2',        # ALPHA + 2
             pack('U', 0x0391).'_',        # ALPHA + _
@@ -1280,7 +1277,7 @@ sub run_tests {
 
         # \c\ followed by other characters
         for my $c ("z", "\0", "!", chr(254), chr(256)) {
-            my $targ = "a\034$c";
+            my $targ = "a" . uni_to_native("\034") . "$c";
             my $reg  = "a\\c\\$c";
             ok eval ("qq/$targ/ =~ /$reg/"), "\\c\\ in pattern";
         }
@@ -1550,27 +1547,27 @@ sub run_tests {
         ok "a" =~ /\p{PosixLower}/,  "a =~ PosixLower";
         ok "a" =~ /\p{PosixLower}/i,  "a =~ PosixLower under /i";
 
-        ok "\xC0" =~ /\p{XPosixUpper}/,  "\\xC0 =~ XPosixUpper";
-        ok "\xC0" =~ /\p{XPosixUpper}/i,  "\\xC0 =~ XPosixUpper under /i";
-        ok "\xC0" !~ /\p{XPosixLower}/,  "\\xC0 !~ XPosixLower";
-        ok "\xC0" =~ /\p{XPosixLower}/i,  "\\xC0 =~ XPosixLower under /i";
-        ok "\xE0" !~ /\p{XPosixUpper}/,  "\\xE0 !~ XPosixUpper";
-        ok "\xE0" =~ /\p{XPosixUpper}/i,  "\\xE0 =~ XPosixUpper under /i";
-        ok "\xE0" =~ /\p{XPosixLower}/,  "\\xE0 =~ XPosixLower";
-        ok "\xE0" =~ /\p{XPosixLower}/i,  "\\xE0 =~ XPosixLower under /i";
-
-        ok "\xC0" =~ /\p{UppercaseLetter}/,  "\\xC0 =~ UppercaseLetter";
-        ok "\xC0" =~ /\p{UppercaseLetter}/i,  "\\xC0 =~ UppercaseLetter under /i";
-        ok "\xC0" !~ /\p{LowercaseLetter}/,  "\\xC0 !~ LowercaseLetter";
-        ok "\xC0" =~ /\p{LowercaseLetter}/i,  "\\xC0 =~ LowercaseLetter under /i";
-        ok "\xC0" !~ /\p{TitlecaseLetter}/,  "\\xC0 !~ TitlecaseLetter";
-        ok "\xC0" =~ /\p{TitlecaseLetter}/i,  "\\xC0 =~ TitlecaseLetter under /i";
-        ok "\xE0" !~ /\p{UppercaseLetter}/,  "\\xE0 !~ UppercaseLetter";
-        ok "\xE0" =~ /\p{UppercaseLetter}/i,  "\\xE0 =~ UppercaseLetter under /i";
-        ok "\xE0" =~ /\p{LowercaseLetter}/,  "\\xE0 =~ LowercaseLetter";
-        ok "\xE0" =~ /\p{LowercaseLetter}/i,  "\\xE0 =~ LowercaseLetter under /i";
-        ok "\xE0" !~ /\p{TitlecaseLetter}/,  "\\xE0 !~ TitlecaseLetter";
-        ok "\xE0" =~ /\p{TitlecaseLetter}/i,  "\\xE0 =~ TitlecaseLetter under /i";
+        ok uni_to_native("\xC0") =~ /\p{XPosixUpper}/,  "\\xC0 =~ XPosixUpper";
+        ok uni_to_native("\xC0") =~ /\p{XPosixUpper}/i,  "\\xC0 =~ XPosixUpper under /i";
+        ok uni_to_native("\xC0") !~ /\p{XPosixLower}/,  "\\xC0 !~ XPosixLower";
+        ok uni_to_native("\xC0") =~ /\p{XPosixLower}/i,  "\\xC0 =~ XPosixLower under /i";
+        ok uni_to_native("\xE0") !~ /\p{XPosixUpper}/,  "\\xE0 !~ XPosixUpper";
+        ok uni_to_native("\xE0") =~ /\p{XPosixUpper}/i,  "\\xE0 =~ XPosixUpper under /i";
+        ok uni_to_native("\xE0") =~ /\p{XPosixLower}/,  "\\xE0 =~ XPosixLower";
+        ok uni_to_native("\xE0") =~ /\p{XPosixLower}/i,  "\\xE0 =~ XPosixLower under /i";
+
+        ok uni_to_native("\xC0") =~ /\p{UppercaseLetter}/,  "\\xC0 =~ UppercaseLetter";
+        ok uni_to_native("\xC0") =~ /\p{UppercaseLetter}/i,  "\\xC0 =~ UppercaseLetter under /i";
+        ok uni_to_native("\xC0") !~ /\p{LowercaseLetter}/,  "\\xC0 !~ LowercaseLetter";
+        ok uni_to_native("\xC0") =~ /\p{LowercaseLetter}/i,  "\\xC0 =~ LowercaseLetter under /i";
+        ok uni_to_native("\xC0") !~ /\p{TitlecaseLetter}/,  "\\xC0 !~ TitlecaseLetter";
+        ok uni_to_native("\xC0") =~ /\p{TitlecaseLetter}/i,  "\\xC0 =~ TitlecaseLetter under /i";
+        ok uni_to_native("\xE0") !~ /\p{UppercaseLetter}/,  "\\xE0 !~ UppercaseLetter";
+        ok uni_to_native("\xE0") =~ /\p{UppercaseLetter}/i,  "\\xE0 =~ UppercaseLetter under /i";
+        ok uni_to_native("\xE0") =~ /\p{LowercaseLetter}/,  "\\xE0 =~ LowercaseLetter";
+        ok uni_to_native("\xE0") =~ /\p{LowercaseLetter}/i,  "\\xE0 =~ LowercaseLetter under /i";
+        ok uni_to_native("\xE0") !~ /\p{TitlecaseLetter}/,  "\\xE0 !~ TitlecaseLetter";
+        ok uni_to_native("\xE0") =~ /\p{TitlecaseLetter}/i,  "\\xE0 =~ TitlecaseLetter under /i";
         ok "\x{1C5}" !~ /\p{UppercaseLetter}/,  "\\x{1C5} !~ UppercaseLetter";
         ok "\x{1C5}" =~ /\p{UppercaseLetter}/i,  "\\x{1C5} =~ UppercaseLetter under /i";
         ok "\x{1C5}" !~ /\p{LowercaseLetter}/,  "\\x{1C5} !~ LowercaseLetter";
@@ -1644,13 +1641,17 @@ sub run_tests {
 
     {
         # Various whitespace special patterns
-        my @h = map {chr $_}   0x09,   0x20,   0xa0, 0x1680, 0x2000,
+        my @h = map {chr utf8::unicode_to_native($_) }
+                             0x09,   0x20,   0xa0,   0x1680, 0x2000,
                              0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006,
                              0x2007, 0x2008, 0x2009, 0x200a, 0x202f, 0x205f,
                              0x3000;
-        my @v = map {chr $_}   0x0a,   0x0b,   0x0c,   0x0d,   0x85, 0x2028,
+        my @v = map {chr utf8::unicode_to_native($_) }
+                             0x0a,   0x0b,   0x0c,   0x0d,   0x85, 0x2028,
                              0x2029;
-        my @lb = ("\x0D\x0A", map {chr $_} 0x0A .. 0x0D, 0x85, 0x2028, 0x2029);
+        my @lb = (uni_to_native("\x0D\x0A"),
+                             map {chr utf8::unicode_to_native($_) }
+                                  0x0A .. 0x0D, 0x85, 0x2028, 0x2029);
         foreach my $t ([\@h,  qr/\h/, qr/\h+/],
                        [\@v,  qr/\v/, qr/\v+/],
                        [\@lb, qr/\R/, qr/\R+/],) {
@@ -1675,9 +1676,9 @@ sub run_tests {
         # Test that \xDF matches properly. this is pretty hacky stuff,
         # but its actually needed. The malarky with '-' is to prevent
         # compilation caching from playing any role in the test.
-        my @df = (chr (0xDF), '-', chr (0xDF));
+        my @df = (chr utf8::unicode_to_native(0xDF), '-', chr utf8::unicode_to_native(0xDF));
         utf8::upgrade ($df [2]);
-        my @strs = ('ss', 'sS', 'Ss', 'SS', chr (0xDF));
+        my @strs = ('ss', 'sS', 'Ss', 'SS', chr utf8::unicode_to_native(0xDF));
         my @ss = map {("$_", "$_")} @strs;
         utf8::upgrade ($ss [$_ * 2 + 1]) for 0 .. $#strs;
 
@@ -1687,21 +1688,38 @@ sub run_tests {
                 my $str = $ss [$ssi];
                 my $utf_df = ($dfi > 1) ? 'utf8' : '';
                 my $utf_ss = ($ssi % 2) ? 'utf8' : '';
-                (my $sstr = $str) =~ s/\xDF/\\xDF/;
+                my $sstr;   # We hard-code the ebcdic value below to avoid
+                            # perturbing the test
+                ($sstr = $str) =~ s/\xDF/\\xDF/ if $::IS_ASCII;
+                ($sstr = $str) =~ s/\x59/\\x59/ if $::IS_EBCDIC;
 
                 if ($utf_df || $utf_ss || length ($ss [$ssi]) == 1) {
                     my $ret = $str =~ /$pat/i;
                     next if $pat eq '-';
-                    ok $ret, "\"$sstr\" =~ /\\xDF/i " .
+                    if ($::IS_ASCII) {
+                        ok $ret, "\"$sstr\" =~ /\\xDF/i " .
+                             "(str is @{[$utf_ss||'latin']}, pat is " .
+                             "@{[$utf_df||'latin']})";
+                    }
+                    else {
+                        ok $ret, "\"$sstr\" =~ /\\x59/i " .
                              "(str is @{[$utf_ss||'latin']}, pat is " .
                              "@{[$utf_df||'latin']})";
+                    }
                 }
                 else {
                     my $ret = $str !~ /$pat/i;
                     next if $pat eq '-';
-                    ok $ret, "\"$sstr\" !~ /\\xDF/i " .
+                    if ($::IS_EBCDIC) {
+                        ok $ret, "\"$sstr\" !~ /\\x59/i " .
                              "(str is @{[$utf_ss||'latin']}, pat is " .
                              "@{[$utf_df||'latin']})";
+                    }
+                    else {
+                        ok $ret, "\"$sstr\" !~ /\\xDF/i " .
+                             "(str is @{[$utf_ss||'latin']}, pat is " .
+                             "@{[$utf_df||'latin']})";
+                    }
                 }
             }
         }
@@ -1746,7 +1764,7 @@ sub run_tests {
     {
         # length() on captures, the numbered ones end up in Perl_magic_len
         no warnings 'deprecated', 'experimental::lexical_topic';
-        my $_ = "aoeu \xe6var ook";
+        my $_ = "aoeu " . uni_to_native("\xe6") . "var ook";
         /^ \w+ \s (?<eek>\S+)/x;
 
         is(length $`,      0, q[length $`]);
@@ -1825,7 +1843,8 @@ EOP
 
     {
 # more TRIE/AHOCORASICK problems with mixed utf8 / latin-1 and case folding
-    for my $chr (160 .. 255) {
+    for my $ord (160 .. 255) {
+        my $chr = utf8::unicode_to_native($ord);
         my $chr_byte = chr($chr);
         my $chr_utf8 = chr($chr); utf8::upgrade($chr_utf8);
         my $rx = qr{$chr_byte|X}i;
@@ -2199,9 +2218,10 @@ EOP
     ok 'foo/file.fob' =~ m,^(?=[^\.])[^/]*/(?=[^\.])[^/]*\.fo[^/]$,;
 
     {   # This was failing unless an explicit /d was added
-        my $p = qr/[\xE0_]/i;
+        my $E0 = uni_to_native("\xE0");
+        my $p = qr/[_$E0]/i;
         utf8::upgrade($p);
-        like("\xC0", qr/$p/, "Verify \"\\xC0\" =~ /[\\xE0_]/i; pattern in utf8");
+        like(uni_to_native("\xC0"), qr/$p/, "Verify \"\\xC0\" =~ /[\\xE0_]/i; pattern in utf8");
     }
 
     ok "x" =~ /\A(?>(?:(?:)A|B|C?x))\z/,
@@ -2415,13 +2435,15 @@ EOP
     sub Is_32_Bit_Super { return "110000\tFFFFFFFF\n" }
     sub Is_Portable_Super { return '!utf8::Any' }   # Matches beyond 32 bits
 
+  SKIP:
     {   # Assertion was failing on on 64-bit platforms; just didn't work on 32.
+        skip("EBCDIC only goes to 31 bits", 4) if $::IS_EBCDIC;
         no warnings qw(non_unicode portable);
         use Config;
 
         # We use 'ok' instead of 'like' because the warnings are lexically
         # scoped, and want to turn them off, so have to do the match in this
-        # scope
+        # scope.   (EBCDIC platforms can't handle above 2**32 - 1
         if ($Config{uvsize} < 8) {
             ok(chr(0xFFFF_FFFE) =~ /\p{Is_32_Bit_Super}/,
                             "chr(0xFFFF_FFFE) can match a Unicode property");
@@ -2455,7 +2477,7 @@ EOP
 
     { # [perl #112530], the code below caused a panic
         sub InFoo { "a\tb\n9\ta\n" }
-        like("\n", qr/\p{InFoo}/,
+        like(chr(0xA), qr/\p{InFoo}/,
                             "Overlapping ranges in user-defined properties");
     }
 
index f01e7d8..e59b059 100644 (file)
@@ -17,7 +17,7 @@ $| = 1;
 
 BEGIN {
     chdir 't' if -d 't';
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
     set_up_inc('../lib');
 }
 
@@ -91,7 +91,8 @@ sub run_tests {
         ok 'goodfood' =~ $a,     "Reblessed qr // matches";
         is($a, '(?^:foo)', "Reblessed qr // stringifies");
         my $x = "\x{3fe}";
-        my $z = my $y = "\317\276";  # Byte representation of $x
+        my $z = my $y = byte_utf8a_to_utf8n("\317\276");  # Byte representation
+                                                          # of $x
         $a = qr /$x/;
         ok $x =~ $a, "UTF-8 interpolation in qr //";
         ok "a$a" =~ $x, "Stringified qr // preserves UTF-8";
@@ -661,7 +662,8 @@ sub run_tests {
     # does all the right escapes
 
     {
-       my $enc = eval 'use Encode; find_encoding("ascii")';
+       my $enc;
+        $enc = eval 'use Encode; find_encoding("ascii")' unless $::IS_EBCDIC;
 
        my $x = 0;
        my $y = 'bad';
@@ -688,7 +690,9 @@ sub run_tests {
            my $s = shift;
            $s =~ s{(.)}{
                        my $c = ord($1);
-                       ($c< 32 || $c > 127) ? sprintf("<0x%x>", $c) : $1;
+                       (utf8::native_to_unicode($c)< 32
+                         || utf8::native_to_unicode($c) > 127)
+                        ? sprintf("<0x%x>", $c) : $1;
                }ge;
            $s;
        }
@@ -720,12 +724,14 @@ sub run_tests {
                ok($ss =~ /^$cc/, fmt("plain      $u->[2]", $ss, $cc));
 
                no strict;
-               my $chr41 = "\x41";
-               $ss = "$u->[0]\t${q}$chr41${b}x42$s";
                $nine = $nine = "bad";
+                $ss = "$u->[0]\t${q}\x41${b}x42$s" if $::IS_ASCII;
+                $ss = "$u->[0]\t${q}\xC1${b}xC2$s" if $::IS_EBCDIC;
                for my $use_qr ('', 'qr') {
                    $c =  qq[(??{my \$z='{';]
-                       . qq[$use_qr"$b${b}t$b$q$b${b}x41$b$b$b${b}x42"]
+                       . (($::IS_ASCII)
+                           ? qq[$use_qr"$b${b}t$b$q$b${b}x41$b$b$b${b}x42"]
+                           : qq[$use_qr"$b${b}t$b$q$b${b}xC1$b$b$b${b}xC2"])
                        . qq[. \$nine})];
                    # (??{ qr/str/ }) goes through one less interpolation
                    # stage than  (??{ qq/str/ })
@@ -740,7 +746,9 @@ sub run_tests {
                        ok($ss =~ /^$cc/, fmt("code         $u->[2]", $ss, $cc));
                    }
 
+                    SKIP:
                    {
+                        skip("Encode not working on EBCDIC", 1) unless defined $enc;
                        # Poor man's "use encoding 'ascii'".
                        # This causes a different code path in S_const_str()
                        # to be used
index 41cda56..2d10039 100644 (file)
@@ -630,7 +630,7 @@ $(?<=^(a))  a       y       $1      a
 ([[:alpha:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd
 ([[:alnum:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy
 ([[:ascii:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy__--  ${nulnul}
-([[:cntrl:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ${nulnul}
+([[:cntrl:]]+) ABcd01Xy__--  ${nulnul}${ffff}  ya      $1      ${nulnul}       ff is a control on EBCDIC (non-POSIX-BC), so this fails under /u rules
 ([[:digit:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      01
 ([[:graph:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy__--
 ([[:lower:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      cd
@@ -1433,6 +1433,7 @@ foo(\h)bar        foo\tbar        y       $1      \t
 # Verify that \N{U+...} forces Unicode rules
 /\N{U+41}\x{c1}/i      a\x{e1} y       $&      a\x{e1}
 /[\N{U+41}\x{c1}]/i    \x{e1}  y       $&      \x{e1}
+'\N{U+41}'     A       y       $&      A               # Even for single quoted patterns
 /\N{}\xe4/i    \xc4    y       $&      \xc4            # Empty \N{} should change /d to /u
 
 [\s][\S]       \x{a0}\x{a0}    n       -       -       # Unicode complements should not match same character
@@ -1482,10 +1483,26 @@ abc\N{def       -       c       -       \\N{NAME} must be resolved by the lexer
 # Verify works in single quotish context; regex compiler delivers slightly different msg
 # \N{U+BEEF.BEAD} succeeds here, because can't completely hide it from the outside.
 \N{U+0xBEEF}   -       c       -       Invalid hexadecimal number
-\c`    -       c       -       \"\\c`\" is more clearly written simply as \"\\ \"
-\c1    -       c       -       \"\\c1\" is more clearly written simply as \"q\"
-\cA    \001    y       $&      \1
-
+\c`    -       ac      -       \"\\c`\" is more clearly written simply as \"\\ \"
+\c1    -       ac      -       \"\\c1\" is more clearly written simply as \"q\"
+\c@    \0      y       $&      \0
+\cA    \001    y       $&      \001
+\cB    \002    y       $&      \002
+\cC    \003    y       $&      \003
+\cI    \011    y       $&      \011
+\cJ    \012    y       $&      \012
+\cR    \022    y       $&      \022
+\cS    \023    y       $&      \023
+\cX    \030    y       $&      \030
+\cY    \031    y       $&      \031
+\cZ    \032    y       $&      \032
+\c[    \033    y       $&      \033
+\c\X   \034X   y       $&      \034X
+\c]    \035    y       $&      \035
+\c^    \036    y       $&      \036
+\c_    \037    y       $&      \037
+\c?    \177    ay      $&      \177
+\c?    \x9F    ey      $&      \x9F            \c? is APC on EBCDIC
 \400   \x{100} y       $&      \x{100}
 \600   \x{180} y       $&      \x{180}
 \777   \x{1FF} y       $&      \x{1FF}
@@ -1532,18 +1549,18 @@ a(.)\g{4294967296}      x       c       -       Reference to nonexistent group in regex
 a(.)\g{4294967297}     x       c       -       Reference to nonexistent group in regex
 a(.)\g{4294967298}     x       c       -       Reference to nonexistent group in regex
 
-(.)\2147483648 b\o{214}7483648 y       $1      b
-(.)\2147483649 b\o{214}7483649 y       $1      b
-(.)\2147483650 b\o{214}7483650 y       $1      b
-(.)\4294967296 b\o{42}94967296 y       $1      b
-(.)\4294967297 b\o{42}94967297 y       $1      b
-(.)\4294967298 b\o{42}94967298 y       $1      b
-a(.)\2147483648        ab\o{214}7483648        y       $1      b
-a(.)\2147483649        ab\o{214}7483649        y       $1      b
-a(.)\2147483650        ab\o{214}7483650        y       $1      b
-a(.)\4294967296        ab\o{42}94967296        y       $1      b
-a(.)\4294967297        ab\o{42}94967297        y       $1      b
-a(.)\4294967298        ab\o{42}94967298        y       $1      b
+(.)\2147483648 b\o{214}7483648 ya      $1      b       \d not converted to native; \o{} is
+(.)\2147483649 b\o{214}7483649 ya      $1      b       \d not converted to native; \o{} is
+(.)\2147483650 b\o{214}7483650 ya      $1      b       \d not converted to native; \o{} is
+(.)\4294967296 b\o{42}94967296 ya      $1      b       \d not converted to native; \o{} is
+(.)\4294967297 b\o{42}94967297 ya      $1      b       \d not converted to native; \o{} is
+(.)\4294967298 b\o{42}94967298 ya      $1      b       \d not converted to native; \o{} is
+a(.)\2147483648        ab\o{214}7483648        ya      $1      b       \d not converted to native; \o{} is
+a(.)\2147483649        ab\o{214}7483649        ya      $1      b       \d not converted to native; \o{} is
+a(.)\2147483650        ab\o{214}7483650        ya      $1      b       \d not converted to native; \o{} is
+a(.)\4294967296        ab\o{42}94967296        ya      $1      b       \d not converted to native; \o{} is
+a(.)\4294967297        ab\o{42}94967297        ya      $1      b       \d not converted to native; \o{} is
+a(.)\4294967298        ab\o{42}94967298        ya      $1      b       \d not converted to native; \o{} is
 
 # The below was inserting a NULL into the character class.
 [\8\9] \000    Sn      -       -
@@ -1902,5 +1919,9 @@ A+(*PRUNE)BC(?{}) AAABC   y       $&      AAABC
 /[a-z]/i       \N{KELVIN SIGN} y       $&      \N{KELVIN SIGN}
 /[A-Z]/i       \N{LATIN SMALL LETTER LONG S}   y       $&      \N{LATIN SMALL LETTER LONG S}
 
+# RT #123840: these used to hang in re_intuit_start
+/w\zxy?\z/i    \x{100}a\x{80}a n       -       -
+/w\z\R\z/i     \x{100}a\x{80}a n       -       -
+
 # Keep these lines at the end of the file
 # vim: softtabstop=0 noexpandtab
index a498585..4fc9dfe 100644 (file)
@@ -10,6 +10,7 @@ BEGIN {
 }
 
 use strict;
+no warnings 'experimental::regex_sets';
 
 my $email = qr {
     (?(DEFINE)
@@ -28,17 +29,17 @@ my $email = qr {
       (?<domain_literal>  (?&CFWS)? \[ (?: (?&FWS)? (?&dcontent))* (?&FWS)?
                                     \] (?&CFWS)?)
       (?<dcontent>        (?&dtext) | (?&quoted_pair))
-      (?<dtext>           (?&NO_WS_CTL) | [\x21-\x5a\x5e-\x7e])
+      (?<dtext>           (?&NO_WS_CTL) | (?[ [:ascii:] & [:graph:] & [^][ \\ ] ]))
 
       (?<atext>           (?&ALPHA) | (?&DIGIT) | [-!#\$%&'*+/=?^_`{|}~])
       (?<atom>            (?&CFWS)? (?&atext)+ (?&CFWS)?)
       (?<dot_atom>        (?&CFWS)? (?&dot_atom_text) (?&CFWS)?)
       (?<dot_atom_text>   (?&atext)+ (?: \. (?&atext)+)*)
 
-      (?<text>            [\x01-\x09\x0b\x0c\x0e-\x7f])
+      (?<text>            (?[ [:ascii:] & [^ \000 \n \r ] ]))
       (?<quoted_pair>     \\ (?&text))
 
-      (?<qtext>           (?&NO_WS_CTL) | [\x21\x23-\x5b\x5d-\x7e])
+      (?<qtext>           (?&NO_WS_CTL) | (?[ [:ascii:] & [:graph:] & [^ " \\ ] ]))
       (?<qcontent>        (?&qtext) | (?&quoted_pair))
       (?<quoted_string>   (?&CFWS)? (?&DQUOTE) (?:(?&FWS)? (?&qcontent))*
                            (?&FWS)? (?&DQUOTE) (?&CFWS)?)
@@ -48,20 +49,20 @@ my $email = qr {
 
       # Folding white space
       (?<FWS>             (?: (?&WSP)* (?&CRLF))? (?&WSP)+)
-      (?<ctext>           (?&NO_WS_CTL) | [\x21-\x27\x2a-\x5b\x5d-\x7e])
+      (?<ctext>           (?&NO_WS_CTL) | (?[ [:ascii:] & [:graph:] & [^ () ] & [^ \\ ] ]))
       (?<ccontent>        (?&ctext) | (?&quoted_pair) | (?&comment))
       (?<comment>         \( (?: (?&FWS)? (?&ccontent))* (?&FWS)? \) )
       (?<CFWS>            (?: (?&FWS)? (?&comment))*
                           (?: (?:(?&FWS)? (?&comment)) | (?&FWS)))
 
       # No whitespace control
-      (?<NO_WS_CTL>       [\x01-\x08\x0b\x0c\x0e-\x1f\x7f])
+      (?<NO_WS_CTL>       (?[ [:ascii:] & [:cntrl:] & [^ \000 \h \r \n ] ]))
 
       (?<ALPHA>           [A-Za-z])
       (?<DIGIT>           [0-9])
-      (?<CRLF>            \x0d \x0a)
+      (?<CRLF>            \r \n)
       (?<DQUOTE>          ")
-      (?<WSP>             [\x20\x09])
+      (?<WSP>             [ \t])
     )
 
     (?&address)
index 6e986ce..48a4f00 100644 (file)
@@ -9,6 +9,7 @@ BEGIN {
     chdir 't' if -d 't';
     @INC = ('../lib','.','../ext/re');
     require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
     skip_all_without_unicode_tables();
 }
 
@@ -24,10 +25,10 @@ like("a", qr/(?[ [a]      # This is a comment
                     ])/, 'Can ignore a comment');
 like("a", qr/(?[ [a]      # [[:notaclass:]]
                     ])/, 'A comment isn\'t parsed');
-unlike("\x85", qr/(?[ \t\85 ])/, 'NEL is white space');
-unlike("\x85", qr/(?[ [\t\85] ])/, '... including within nested []');
-like("\x85", qr/(?[ \t + \\85 ])/, 'can escape NEL to match');
-like("\x85", qr/(?[ [\\85] ])/, '... including within nested []');
+unlike(uni_to_native("\x85"), qr/(?[ \t\85 ])/, 'NEL is white space');
+unlike(uni_to_native("\x85"), qr/(?[ [\t\85] ])/, '... including within nested []');
+like(uni_to_native("\x85"), qr/(?[ \t + \\85 ])/, 'can escape NEL to match');
+like(uni_to_native("\x85"), qr/(?[ [\\85] ])/, '... including within nested []');
 like("\t", qr/(?[ \t + \\85 ])/, 'can do basic union');
 like("\cK", qr/(?[ \s ])/, '\s matches \cK');
 unlike("\cK", qr/(?[ \s - \cK ])/, 'can do basic subtraction');
@@ -67,13 +68,19 @@ like("\N{LAO DIGIT NINE}", $thai_or_lao_digit, 'embedded qr/(?[ ])/ works');
 unlike(chr(ord("\N{LAO DIGIT NINE}") + 1), $thai_or_lao_digit, 'embedded qr/(?[ ])/ works');
 
 my $ascii_word = qr/(?[ \w ])/a;
-my $ascii_digits_plus_all_of_arabic = qr/(?[ \p{Digit} & $ascii_word + \p{Arabic} ])/;
+my $ascii_digits_plus_all_of_arabic = qr/(?[ \p{Arabic} + \p{Digit} & $ascii_word ])/;
 like("9", $ascii_digits_plus_all_of_arabic, "/a, then interpolating and intersection works for ASCII in the set");
 unlike("A", $ascii_digits_plus_all_of_arabic, "/a, then interpolating and intersection works for ASCII not in the set");
 unlike("\N{BENGALI DIGIT ZERO}", $ascii_digits_plus_all_of_arabic, "/a, then interpolating and intersection works for non-ASCII not in either set");
 unlike("\N{BENGALI LETTER A}", $ascii_digits_plus_all_of_arabic, "/a, then interpolating and intersection works for non-ASCII in one set");
-like("\N{ARABIC LETTER HAMZA}", $ascii_digits_plus_all_of_arabic, "interpolation and intersection is left-associative");
-like("\N{EXTENDED ARABIC-INDIC DIGIT ZERO}", $ascii_digits_plus_all_of_arabic, "interpolation and intersection is left-associative");
+like("\N{ARABIC LETTER HAMZA}", $ascii_digits_plus_all_of_arabic, "intersection has higher precedence than union");
+like("\N{EXTENDED ARABIC-INDIC DIGIT ZERO}", $ascii_digits_plus_all_of_arabic, "intersection has higher precedence than union");
+
+like("\r", qr/(?[ \p{lb=cr} ])/, '\r matches \p{lb=cr}');
+unlike("\r", qr/(?[ ! \p{lb=cr} ])/, '\r doesnt match ! \p{lb=cr}');
+like("\r", qr/(?[ ! ! \p{lb=cr} ])/, 'Two ! ! are the original');
+unlike("\r", qr/(?[ ! ! ! \p{lb=cr} ])/, 'Three ! ! ! are the complement');
+# left associatve
 
 my $kelvin = qr/(?[ \N{KELVIN SIGN} ])/;
 my $fold = qr/(?[ $kelvin ])/i;
index 617f14e..8e68ab1 100644 (file)
@@ -65,20 +65,19 @@ my @CLASSES = (
     # It's ok to repeat class names.
     #
     InLatin1Supplement        =>
-               $::IS_EBCDIC ? ['!\x{7f}',  '\x{80}',            '!\x{100}']
-                            : ['!\x{7f}',  '\x{80}',  '\x{ff}', '!\x{100}'],
+                            ['!\N{U+7f}',  '\N{U+80}',  '\N{U+ff}', '!\x{100}'],
     InLatinExtendedA          =>
-                            ['!\x{7f}', '!\x{80}', '!\x{ff}',  '\x{100}'],
+                            ['!\N{U+7f}', '!\N{U+80}', '!\N{U+ff}',  '\x{100}'],
 
     #
     # Properties are case-insensitive, and may have whitespace,
     # dashes and underscores.
     #
-   'in-latin1_SUPPLEMENT'     => ['\x{80}', 
+   'in-latin1_SUPPLEMENT'     => ['\N{U+80}',
                                   '\N{LATIN SMALL LETTER Y WITH DIAERESIS}'],
    '  ^  In Latin 1 Supplement  '
-                              => ['!\x{80}', '\N{COFFIN}'],
-   'latin-1   supplement'     => ['\x{80}', "0xDF"],
+                              => ['!\N{U+80}', '\N{COFFIN}'],
+   'latin-1   supplement'     => ['\N{U+80}', "0xDF"],
 
 );
 
@@ -154,13 +153,11 @@ while (my ($class, $chars) = each %SHORT_PROPERTIES) {
     push @{$d {IsWord}}  => map {$class =~ /^[LMN]/ || $_ eq "_"
                                                      ? $_ : "!$_"} @$chars;
     push @{$d {IsSpace}} => map {$class =~ /^Z/ ||
-                                 length ($_) == 1 && ord ($_) >= 0x09
-                                                  && ord ($_) <= 0x0D
+                                 length ($_) == 1 && utf8::native_to_unicode(ord ($_)) >= 0x09
+                                                  && utf8::native_to_unicode(ord ($_)) <= 0x0D
                                                      ? $_ : "!$_"} @$chars;
 }
 
-delete $d {IsASCII} if $::IS_EBCDIC;
-
 push @CLASSES => "# Short properties"        => %SHORT_PROPERTIES,
                  "# POSIX like properties"   => %d,
                  "# User defined properties" => @USER_DEFINED_PROPERTIES;
@@ -313,14 +310,16 @@ sub InNotKana {<<'--'}
 +utf8::IsCn
 --
 
-sub InConsonant {<<'--'}   # Not EBCDIC-aware.
-0061 007f
--0061
--0065
--0069
--006f
--0075
---
+sub InConsonant {
+
+    my $return = "+utf8::Lowercase\n&utf8::ASCII\n";
+    $return .= sprintf("-%X\n", ord "a");
+    $return .= sprintf("-%X\n", ord "e");
+    $return .= sprintf("-%X\n", ord "i");
+    $return .= sprintf("-%X\n", ord "o");
+    $return .= sprintf("-%X\n", ord "u");
+    return $return;
+}
 
 sub IsSyriac1 {<<'--'}
 0712    072C
@@ -337,12 +336,11 @@ sub IsAsciiHexAndDash {<<'--'}
 
 sub IsMyUpper {
     my $caseless = shift;
-    if ($caseless) {
-        return "0041\t005A\n0061\t007A"
-    }
-    else {
-        return "0041\t005A"
-    }
+    return "+utf8::"
+           . (($caseless)
+               ? 'Alphabetic'
+               : 'Uppercase')
+           . "\n&utf8::ASCII";
 }
 
 # Verify that can use user-defined properties inside another one
index a4518f4..d2b2022 100644 (file)
@@ -313,6 +313,9 @@ is(
 # then moreswitches(s), which, if -d:switchd_empty is given,
 # will call my_setenv("PERL5DB", "use Devel::switchd_empty"),
 # and then return to continue parsing s.
+#
+# This may need -Accflags="-DPERL_USE_SAFE_PUTENV" to fail on
+# affected systems.
 {
 local $ENV{PERL5OPT} = '-d:switchd_empty';
 
index 21d54b4..ef33e88 100644 (file)
--- a/t/test.pl
+++ b/t/test.pl
@@ -4,12 +4,15 @@
 
 # NOTE:
 #
-# Increment ($x++) has a certain amount of cleverness for things like
+# It's best to not features found only in more modern Perls here, as some cpan
+# distributions copy this file and operate on older Perls.  Similarly keep
+# things simple as this may be run under fairly broken circumstances.  For
+# example, increment ($x++) has a certain amount of cleverness for things like
 #
 #   $x = 'zz';
 #   $x++; # $x eq 'aaa';
 #
-# stands more chance of breaking than just a simple
+# This stands more chance of breaking than just a simple
 #
 #   $x = $x + 1
 #
@@ -300,13 +303,19 @@ sub display {
                     $y = $y . $backslash_escape{$c};
                 } else {
                     my $z = chr $c; # Maybe we can get away with a literal...
-                    if ($z =~ /[[:^print:]]/) {
 
-                        # Use octal for characters traditionally expressed as
-                        # such: the low controls, which on EBCDIC aren't
-                        # necessarily the same ones as on ASCII platforms, but
-                        # are small ordinals, nonetheless
-                        if ($c <= 037) {
+                    if ($z !~ /[^[:^print:][:^ascii:]]/) {
+                        # The pattern above is equivalent (by de Morgan's
+                        # laws) to:
+                        #     $z !~ /(?[ [:print:] & [:ascii:] ])/
+                        # or, $z is not an ascii printable character
+
+                        # Use octal for characters with small ordinals that
+                        # are traditionally expressed as octal: the controls
+                        # below space, which on EBCDIC are almost all the
+                        # controls, but on ASCII don't include DEL nor the C1
+                        # controls.
+                        if ($c < ord " ") {
                             $z = sprintf "\\%03o", $c;
                         } else {
                             $z = sprintf "\\x{%x}", $c;
index 72de5e8..d4bfc07 100644 (file)
@@ -5,9 +5,10 @@ BEGIN {
 }
 use strict;
 use warnings;
+use feature 'unicode_strings';
 
 sub unidump {
-    join "", map { sprintf "\\x{%04X}", $_ } unpack "U*", $_[0];
+    join "", map { sprintf "\\x{%04X}", $_ } unpack "W*", $_[0];
 }
 
 sub casetest {
@@ -52,7 +53,7 @@ sub casetest {
         else {  # The return is a list of the characters mapped-to.
                 # prop_invmap() guarantees a single element in the range in
                 # this case, so no adjustments are needed.
-            $spec{$invlist_ref->[$i]} = pack "U0U*" , @{$invmap_ref->[$i]};
+            $spec{$invlist_ref->[$i]} = pack "W*" , @{$invmap_ref->[$i]};
         }
     }
 
@@ -73,7 +74,7 @@ sub casetest {
     my %none;
     for my $i (map { ord } split //,
               "\e !\"#\$%&'()+,-./0123456789:;<=>?\@[\\]^_{|}~\b") {
-       next if pack("U0U", $i) =~ /\w/;
+       next if pack("W", $i) =~ /\w/;
        $none{$i}++ unless $seen{$i};
     }
     print "# ", scalar keys %none, " noncase mappings\n";
@@ -82,10 +83,10 @@ sub casetest {
     my $test = $already_run + 1;
 
     for my $ord (sort keys %simple) {
-       my $char = pack "U0U", $ord;
+       my $char = pack "W", $ord;
         my $disp_input = unidump($char);
 
-        my $expected = pack("U0U", $simple{$ord});
+        my $expected = pack("W", $simple{$ord});
         my $disp_expected = unidump($expected);
 
        foreach my $name (sort keys %funcs) {
@@ -96,7 +97,7 @@ sub casetest {
     }
 
     for my $ord (sort keys %spec) {
-       my $char = chr($ord); $char .= chr(0x100); chop $char;
+       my $char = pack "W", $ord;
         my $disp_input = unidump($char);
 
        my $expected = unidump($spec{$ord});
@@ -109,7 +110,7 @@ sub casetest {
     }
 
     for my $ord (sort { $a <=> $b } keys %none) {
-       my $char = pack "U0U", $ord;
+       my $char = pack "W", $ord;
         my $disp_input = unidump($char);
 
        foreach my $name (sort keys %funcs) {
index c78c3e1..ea86a25 100644 (file)
@@ -4,7 +4,7 @@ BEGIN {
     chdir 't' if -d 't';
     require './test.pl';
     skip_all_without_dynamic_extension('Encode');
-    skip_all("EBCDIC") if $::IS_EBCDIC;
+    skip_all("encoding doesn't work with EBCDIC") if $::IS_EBCDIC;
     skip_all_without_perlio();
 }
 
index 92038c0..37392aa 100644 (file)
@@ -7,22 +7,26 @@ BEGIN {
 
 plan tests => 11;
 
-
 my $str = join "", map { chr utf8::unicode_to_native($_) } 0x20 .. 0x6F;
 
 is(($str =~ /(\p{IsMyUniClass}+)/)[0], '0123456789:;<=>?@ABCDEFGHIJKLMNO',
                                 'user-defined class compiled before defined');
 
 sub IsMyUniClass {
-  <<END;
-0030   004F
+  my $return = "";
+  for my $i (0x30 .. 0x4F) {
+    $return .= sprintf("%04X\n", utf8::unicode_to_native($i));
+  }
+  return $return;
 END
 }
 
 sub Other::IsClass {
-  <<END;
-0040   005F
-END
+  my $return = "";
+  for my $i (0x40 .. 0x5F) {
+    $return .= sprintf("%04X\n", utf8::unicode_to_native($i));
+  }
+  return $return;
 }
 
 sub A::B::Intersection {
index 718f950..149573a 100644 (file)
@@ -10,6 +10,7 @@ BEGIN {
     set_up_inc('../lib');
     skip_all_without_unicode_tables();
     require Config; import Config;
+    require './charset_tools.pl';
     require './loc_tools.pl';   # Contains find_utf8_ctype_locale()
 }
 
@@ -48,14 +49,15 @@ foreach my $decimal_code_point (sort { $a <=> $b } keys %$casefolds) {
     push @CF, [ $code, $full, $type, $name ];
 
     # Get the inverse fold for single-char mappings.
-    $reverse_fold{pack "U0U*", hex $simple} = pack "U0U*", $decimal_code_point if $simple;
+    $reverse_fold{pack "W*", hex $simple} = pack "W*", $decimal_code_point if $simple;
 }
 
 foreach my $test_ref ( @simple_folds ) {
     use feature 'fc';
     my ($code, $mapping, $type, $name) = @$test_ref;
-    my $c = pack("U0U*", hex $code);
-    my $f = pack("U0U*", map { hex } split " ", $mapping);
+    my $c = pack("W*", hex $code);
+    utf8::upgrade($c);
+    my $f = pack("W*", map { hex } split " ", $mapping);
 
     my $against = join "", "qq{", map("\\x{$_}", split " ", $mapping), "}";
     {
@@ -66,8 +68,9 @@ foreach my $test_ref ( @simple_folds ) {
 
 foreach my $test_ref (@CF) {
     my ($code, $mapping, $type, $name) = @$test_ref;
-    my $c = pack("U0U*", hex $code);
-    my $f = pack("U0U*", map { hex } split " ", $mapping);
+    my $c = pack("W*", hex $code);
+    utf8::upgrade($c);
+    my $f = pack("W*", map { hex } split " ", $mapping);
     my $f_length = length $f;
     foreach my $test (
             qq[":$c:" =~ /:$c:/],
@@ -184,7 +187,8 @@ foreach my $test_ref (@CF) {
     is( fc("ΜΆΪΟΣ"), "μάϊοσ" );
     is( fc("Μάϊος"), "μάϊοσ" );
     is( fc("𐐖"), "𐐾"       );
-    is( fc("r\xe9sum\xe9"), "r\xe9sum\xe9" );
+    is( fc("r" . uni_to_native("\xe9") . "sum" . uni_to_native("\xe9")),
+           "r" . uni_to_native("\xe9") . "sum" . uni_to_native("\xe9") );
     is( fc("re\x{0301}sume\x{0301}"), "re\x{301}sume\x{301}" );
     is( fc("ELİF"), "eli\x{307}f" );
     is( fc("eli\x{307}f"), "eli\x{307}f");
@@ -194,18 +198,18 @@ foreach my $test_ref (@CF) {
     # Which uses ICU as the backend.
 
     my @folding_mixed = (
-        "\x{61}\x{42}\x{130}\x{49}\x{131}\x{3d0}\x{df}\x{fb03}",
-        "A\x{df}\x{b5}\x{fb03}\x{1040C}\x{130}\x{131}",
+        uni_to_native("\x{61}\x{42}\x{130}\x{49}\x{131}\x{3d0}\x{df}\x{fb03}"),
+        "A" . uni_to_native("\x{df}\x{b5}\x{fb03}\x{1040C}\x{130}\x{131}"),
     );
 
     my @folding_default = (
-        "\x{61}\x{62}\x{69}\x{307}\x{69}\x{131}\x{3b2}\x{73}\x{73}\x{66}\x{66}\x{69}",
-        "ass\x{3bc}ffi\x{10434}i\x{307}\x{131}",
+        uni_to_native("\x{61}\x{62}\x{69}\x{307}\x{69}\x{131}\x{3b2}\x{73}\x{73}\x{66}\x{66}\x{69}"),
+        "ass\x{3bc}ffi\x{10434}i\x{307}\x{131}"
     );
 
     my @folding_exclude_turkic = (
-        "\x{61}\x{62}\x{69}\x{131}\x{131}\x{3b2}\x{73}\x{73}\x{66}\x{66}\x{69}",
-        "ass\x{3bc}ffi\x{10434}i\x{131}",
+        uni_to_native("\x{61}\x{62}\x{69}\x{131}\x{131}\x{3b2}\x{73}\x{73}\x{66}\x{66}\x{69}"),
+                         "ass\x{3bc}ffi\x{10434}i\x{131}",
     );
 
     is( fc($folding_mixed[1]), $folding_default[1] );
@@ -355,7 +359,7 @@ foreach my $test_ref (@CF) {
 
 {
     use feature qw(fc);
-    package Eeyup  { use overload q{""} => sub { "\x{df}"   }, fallback => 1 }
+    package Eeyup  { use overload q{""} => sub { main::uni_to_native("\x{df}")   }, fallback => 1 }
     package Uunope { use overload q{""} => sub { "\x{30cb}" }, fallback => 1 }
     package Undef  { use overload q{""} => sub {   undef    }, fallback => 1 }
 
@@ -381,7 +385,7 @@ foreach my $test_ref (@CF) {
     is( $warnings, 2, "correct number of warnings" );
 
     my $fetched = 0;
-    package Derpy { sub TIESCALAR { bless {}, shift } sub FETCH { $fetched++; "\x{df}" } }
+    package Derpy { sub TIESCALAR { bless {}, shift } sub FETCH { $fetched++; main::uni_to_native("\x{df}") } }
 
     tie my $x, "Derpy";
 
@@ -392,30 +396,34 @@ foreach my $test_ref (@CF) {
 
 {
     use feature qw( fc );
-    my $troublesome1 = "\xdf" x 11; #SvLEN should be 12, SvCUR should be 11
+    my $troublesome1 = uni_to_native("\xdf") x 11; #SvLEN should be 12, SvCUR should be 11
                                     #So this should force fc() to grow the string.
 
     is( fc($troublesome1), "ss" x 11, "fc() grows the string" );
 
-    my $troublesome2 = "abcdef:\x{df}:fjksjs"; #SvLEN should be 16, SvCUR should be 15
+    my $troublesome2 = "abcdef:" . uni_to_native("\x{df}")
+                     . ":fjksjs"; #SvLEN should be 16, SvCUR should be 15
     is( fc($troublesome2), "abcdef:ss:fjksjs", "fc() expands \\x{DF} in the middle of a string that needs to grow" );
 
-    my $troublesome3 = ":\x{df}:";
+    my $troublesome3 = ":" . uni_to_native("\x{df}") . ":";
     is( fc($troublesome3), ":ss:", "fc() expands \\x{DF} in the middle of a string" );
 
 
-    my $troublesome4 = "\x{B5}"; #\N{MICRON SIGN} is latin-1, but its foldcase is in UTF-8
+    my $troublesome4 = uni_to_native("\x{B5}"); #\N{MICRON SIGN} is latin-1, but its foldcase is in UTF-8
 
     is( fc($troublesome4), "\x{3BC}", "fc() for a latin-1 \x{B5} returns UTF-8" );
     ok( !utf8::is_utf8($troublesome4), "fc() doesn't upgrade the original string" );
 
 
-    my $troublesome5 = "\x{C9}abda\x{B5}aaf\x{C8}"; # Up until foldcasing \x{B5}, the string
+    my $troublesome5 = uni_to_native("\x{C9}") . "abda"
+                     . uni_to_native("\x{B5}") . "aaf"
+                     . uni_to_native("\x{C8}");  # Up until foldcasing \x{B5}, the string
                                                     # was in Latin-1. This tests that the
                                                     # results don't have illegal UTF-8
                                                     # (i.e. leftover latin-1) in them
 
-    is( fc($troublesome5), "\x{E9}abda\x{3BC}aaf\x{E8}" );
+    is( fc($troublesome5), uni_to_native("\x{E9}") . "abda\x{3BC}aaf"
+                         . uni_to_native("\x{E8}") );
 }
 
 
@@ -438,7 +446,7 @@ SKIP: {
         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});
+            skip 'Locales not available', 2 unless locales_enabled('LC_CTYPE');
             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 2e6fb2e..1301b48 100644 (file)
@@ -3,6 +3,8 @@ BEGIN {
     require "uni/case.pl";
 }
 
+use feature 'unicode_strings';
+
 casetest(0, # No extra tests run here,
        "Lowercase_Mapping",
         lc                             => sub { lc $_[0] },
index 53c5485..4a12e3d 100644 (file)
@@ -7,7 +7,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = qw(. ../lib ../cpan/parent/lib);
-    require "./test.pl";
+    require "./test.pl"; require './charset_tools.pl';
 }
 
 use strict;
@@ -111,8 +111,9 @@ is( ref Føø::Bær->new, 'Føø::Bær');
 
 my $new_ascii = "new";
 my $new_latin = "nèw";
-my $new_utf8  = "n\303\250w";
-my $newoct    = "n\303\250w";
+my $e_with_grave = byte_utf8a_to_utf8n("\303\250");
+my $new_utf8  = "n${e_with_grave}w";
+my $newoct    = "n${e_with_grave}w";
 utf8::decode($new_utf8);
 
 like( Føø::Bær->$new_ascii, qr/Føø::Bær=HASH/u, "Can access \$new_ascii, [$new_ascii], stored in a scalar, as a method, through a UTF-8 package." );
@@ -121,7 +122,7 @@ like( Føø::Bær->$new_utf8, qr/Føø::Bær=HASH/u, "Can access \$new_utf8, [$n
 {
     local $@;
     eval { Føø::Bær->$newoct };
-    like($@, qr/Can't locate object method "n\303\250w" via package "Føø::Bær"/u, "Can't access [$newoct], stored in a scalar, as a method through a UTF-8 package." );
+    like($@, qr/Can't locate object method "n${e_with_grave}w" via package "Føø::Bær"/u, "Can't access [$newoct], stored in a scalar, as a method through a UTF-8 package." );
 }
 
 
@@ -138,7 +139,7 @@ like( $pkg_latin_1->$new_utf8, qr/Føø::Bær=HASH/u, "Can access \$new_utf8, [$
 {
     local $@;
     eval { $pkg_latin_1->$newoct };
-    like($@, qr/Can't locate object method "n\303\250w" via package "Føø::Bær"/u, "Can't access [$newoct], stored in a scalar, as a method, when the UTF-8 package name is also in a scalar.");
+    like($@, qr/Can't locate object method "n${e_with_grave}w" via package "Føø::Bær"/u, "Can't access [$newoct], stored in a scalar, as a method, when the UTF-8 package name is also in a scalar.");
 }
 
 ok !!Føø::Bær->can($new_ascii), "->can works for [$new_ascii]";
@@ -183,12 +184,21 @@ ok(ฟọ::バッズ->new, 'parent using -norequire, in a UTF-8 package.');
 ok(ฟọ::バッズ->nèw, 'Also works with UTF-8 methods');
 ok(ฟọ::バッズ->ニュー, 'Even methods from an UTF-8 parent');
 
-BEGIN {no strict 'refs'; ++${"\xff::foo"} } # autovivify the package
+BEGIN {no strict 'refs';
+       ++${"\xff::foo"} if $::IS_ASCII;
+       ++${"\xdf::foo"} if $::IS_EBCDIC;
+       } # autovivify the package
 package ÿ {                                 # without UTF8
  sub AUTOLOAD {
-  ::is our $AUTOLOAD,
+  if ($::IS_ASCII) {
+    ::is our $AUTOLOAD,
       "\xff::\x{100}", '$AUTOLOAD made from Latin1 package + UTF8 sub';
- }
+  }
+  else {
+    ::is our $AUTOLOAD,
+      "\xdf::\x{100}", '$AUTOLOAD made from Latin1 package + UTF8 sub';
+    }
+  }
 }
 ÿ->${\"\x{100}"};
 
index 1ae460f..66cd5b8 100644 (file)
@@ -4,7 +4,7 @@ BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
     require Config; import Config;
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
 }
 
 plan(tests => 215);
@@ -39,7 +39,7 @@ package main;
 # no feature "unicode_strings";
 
 # Bug 34297
-foreach my $t ("ASCII", "B\366se") {
+foreach my $t ("ASCII", "B" . uni_to_native("\366") . "se") {
     my $length = length $t;
 
     my $u = UTF8Toggle->new($t);
@@ -49,49 +49,51 @@ foreach my $t ("ASCII", "B\366se") {
     is (length $u, $length, "length of '$t'");
 }
 
-my $u = UTF8Toggle->new("\311");
+my $E_acute = uni_to_native("\311");
+my $e_acute = uni_to_native("\351");
+my $u = UTF8Toggle->new($E_acute);
 my $lc = lc $u;
 is (length $lc, 1);
-is ($lc, "\311", "E acute -> e acute");
+is ($lc, $E_acute, "E acute -> e acute");
 $lc = lc $u;
 is (length $lc, 1);
-is ($lc, "\351", "E acute -> e acute");
+is ($lc, $e_acute, "E acute -> e acute");
 $lc = lc $u;
 is (length $lc, 1);
-is ($lc, "\311", "E acute -> e acute");
+is ($lc, $E_acute, "E acute -> e acute");
 
-$u = UTF8Toggle->new("\351");
+$u = UTF8Toggle->new($e_acute);
 my $uc = uc $u;
 is (length $uc, 1);
-is ($uc, "\351", "e acute -> E acute");
+is ($uc, $e_acute, "e acute -> E acute");
 $uc = uc $u;
 is (length $uc, 1);
-is ($uc, "\311", "e acute -> E acute");
+is ($uc, $E_acute, "e acute -> E acute");
 $uc = uc $u;
 is (length $uc, 1);
-is ($uc, "\351", "e acute -> E acute");
+is ($uc, $e_acute, "e acute -> E acute");
 
-$u = UTF8Toggle->new("\311");
+$u = UTF8Toggle->new($E_acute);
 $lc = lcfirst $u;
 is (length $lc, 1);
-is ($lc, "\311", "E acute -> e acute");
+is ($lc, $E_acute, "E acute -> e acute");
 $lc = lcfirst $u;
 is (length $lc, 1);
-is ($lc, "\351", "E acute -> e acute");
+is ($lc, $e_acute, "E acute -> e acute");
 $lc = lcfirst $u;
 is (length $lc, 1);
-is ($lc, "\311", "E acute -> e acute");
+is ($lc, $E_acute, "E acute -> e acute");
 
-$u = UTF8Toggle->new("\351");
+$u = UTF8Toggle->new($e_acute);
 $uc = ucfirst $u;
 is (length $uc, 1);
-is ($uc, "\351", "e acute -> E acute");
+is ($uc, $e_acute, "e acute -> E acute");
 $uc = ucfirst $u;
 is (length $uc, 1);
-is ($uc, "\311", "e acute -> E acute");
+is ($uc, $E_acute, "e acute -> E acute");
 $uc = ucfirst $u;
 is (length $uc, 1);
-is ($uc, "\351", "e acute -> E acute");
+is ($uc, $e_acute, "e acute -> E acute");
 
 my $have_setlocale = 0;
 eval {
@@ -111,49 +113,49 @@ SKIP: {
        skip "$^O has broken en_GB.ISO8859-1 locale", 24;
     } else {
         use locale;
-       my $u = UTF8Toggle->new("\311");
+       my $u = UTF8Toggle->new($E_acute);
        my $lc = lc $u;
        is (length $lc, 1);
-       is ($lc, "\351", "E acute -> e acute");
+       is ($lc, $e_acute, "E acute -> e acute");
        $lc = lc $u;
        is (length $lc, 1);
-       is ($lc, "\351", "E acute -> e acute");
+       is ($lc, $e_acute, "E acute -> e acute");
        $lc = lc $u;
        is (length $lc, 1);
-       is ($lc, "\351", "E acute -> e acute");
+       is ($lc, $e_acute, "E acute -> e acute");
 
-       $u = UTF8Toggle->new("\351");
+       $u = UTF8Toggle->new($e_acute);
        my $uc = uc $u;
        is (length $uc, 1);
-       is ($uc, "\311", "e acute -> E acute");
+       is ($uc, $E_acute, "e acute -> E acute");
        $uc = uc $u;
        is (length $uc, 1);
-       is ($uc, "\311", "e acute -> E acute");
+       is ($uc, $E_acute, "e acute -> E acute");
        $uc = uc $u;
        is (length $uc, 1);
-       is ($uc, "\311", "e acute -> E acute");
+       is ($uc, $E_acute, "e acute -> E acute");
 
-       $u = UTF8Toggle->new("\311");
+       $u = UTF8Toggle->new($E_acute);
        $lc = lcfirst $u;
        is (length $lc, 1);
-       is ($lc, "\351", "E acute -> e acute");
+       is ($lc, $e_acute, "E acute -> e acute");
        $lc = lcfirst $u;
        is (length $lc, 1);
-       is ($lc, "\351", "E acute -> e acute");
+       is ($lc, $e_acute, "E acute -> e acute");
        $lc = lcfirst $u;
        is (length $lc, 1);
-       is ($lc, "\351", "E acute -> e acute");
+       is ($lc, $e_acute, "E acute -> e acute");
 
-       $u = UTF8Toggle->new("\351");
+       $u = UTF8Toggle->new($e_acute);
        $uc = ucfirst $u;
        is (length $uc, 1);
-       is ($uc, "\311", "e acute -> E acute");
+       is ($uc, $E_acute, "e acute -> E acute");
        $uc = ucfirst $u;
        is (length $uc, 1);
-       is ($uc, "\311", "e acute -> E acute");
+       is ($uc, $E_acute, "e acute -> E acute");
        $uc = ucfirst $u;
        is (length $uc, 1);
-       is ($uc, "\311", "e acute -> E acute");
+       is ($uc, $E_acute, "e acute -> E acute");
     }
 }
 
@@ -165,8 +167,8 @@ foreach my $operator ('print', 'syswrite', 'syswrite len', 'syswrite off',
        open my $fh, "+>$layer", $tmpfile or die $!;
        my $pad = $operator =~ /\boff\b/ ? "\243" : "";
        my $trail = $operator =~ /\blen\b/ ? "!" : "";
-       my $u = UTF8Toggle->new("$pad\311\n$trail");
-       my $l = UTF8Toggle->new("$pad\351\n$trail", 1);
+       my $u = UTF8Toggle->new("$pad$E_acute\n$trail");
+       my $l = UTF8Toggle->new("$pad$e_acute\n$trail", 1);
        if ($operator eq 'print') {
            no warnings 'utf8';
            print $fh $u;
@@ -204,17 +206,17 @@ foreach my $operator ('print', 'syswrite', 'syswrite len', 'syswrite off',
        seek $fh, 0, 0 or die $!;
        my $line;
        chomp ($line = <$fh>);
-       is ($line, "\311", "$operator $layer");
+       is ($line, $E_acute, "$operator $layer");
        chomp ($line = <$fh>);
-       is ($line, "\311", "$operator $layer");
+       is ($line, $E_acute, "$operator $layer");
        chomp ($line = <$fh>);
-       is ($line, "\311", "$operator $layer");
+       is ($line, $E_acute, "$operator $layer");
        chomp ($line = <$fh>);
-       is ($line, "\351", "$operator $layer");
+       is ($line, $e_acute, "$operator $layer");
        chomp ($line = <$fh>);
-       is ($line, "\351", "$operator $layer");
+       is ($line, $e_acute, "$operator $layer");
        chomp ($line = <$fh>);
-       is ($line, "\351", "$operator $layer");
+       is ($line, $e_acute, "$operator $layer");
 
        close $fh or die $!;
     }
@@ -251,7 +253,7 @@ foreach my $b ($big, UTF8Toggle->new($big)) {
     }
 }
 
-my $bits = "\311";
+my $bits = $E_acute;
 foreach my $pieces ($bits, UTF8Toggle->new($bits)) {
     like ($bits ^ $pieces, qr/\A\0+\z/, "something xor itself is zeros");
     like ($bits ^ $pieces, qr/\A\0+\z/, "something xor itself is zeros");
index b92a4a8..9c39943 100644 (file)
@@ -191,7 +191,9 @@ like( $@, qr/Bad name after Foo'/, 'Bad name after Foo\'' );
 
 {
     no warnings 'utf8';
-    my $malformed_to_be = "\x{c0}\x{a0}";   # Overlong sequence
+    my $malformed_to_be = ($::IS_EBCDIC)   # Overlong sequence
+                           ? "\x{74}\x{41}"
+                           : "\x{c0}\x{a0}";
     CORE::evalbytes "use charnames ':full'; use utf8; my \$x = \"\\N{abc$malformed_to_be}\"";
     like( $@, qr/Malformed UTF-8 character immediately after '\\N\{abc' at .* within string/, 'Malformed UTF-8 input to \N{}');
 }
index a043529..35c4f77 100644 (file)
@@ -3,6 +3,8 @@ BEGIN {
     require "uni/case.pl";
 }
 
+use feature 'unicode_strings';
+
 casetest(0, # No extra tests run here,
        "Titlecase_Mapping",
         ucfirst                        => sub { ucfirst $_[0] },
index f62b43b..41b235c 100644 (file)
@@ -3,6 +3,8 @@ BEGIN {
     require "uni/case.pl";
 }
 
+use feature 'unicode_strings';
+
 is(uc("\x{3B1}\x{345}\x{301}"), "\x{391}\x{301}\x{399}",
                                                    'Verify moves YPOGEGRAMMENI');
 
index d011861..c099957 100644 (file)
@@ -4,7 +4,6 @@ use strict;
 BEGIN {
     chdir 't' if -d 't';
     require './test.pl';
-    skip_all("EBCDIC porting needed") if $::IS_EBCDIC;
     skip_all_without_perlio();
 }
 
diff --git a/toke.c b/toke.c
index 9e0575c..610db62 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -1649,6 +1649,7 @@ S_incline(pTHX_ const char *s)
     const char *n;
     const char *e;
     line_t line_num;
+    UV uv;
 
     PERL_ARGS_ASSERT_INCLINE;
 
@@ -1698,7 +1699,9 @@ S_incline(pTHX_ const char *s)
     if (*e != '\n' && *e != '\0')
        return;         /* false alarm */
 
-    line_num = grok_atou(n, &e) - 1;
+    if (!grok_atoUV(n, &uv, &e))
+        return;
+    line_num = ((line_t)uv) - 1;
 
     if (t - s > 0) {
        const STRLEN len = t - s;
@@ -2381,6 +2384,7 @@ S_sublex_push(pTHX)
        popping.  We must not have a PL_lex_stuff value left dangling, as
        that breaks assumptions elsewhere.  See bug #123617.  */
     SAVEGENERICSV(PL_lex_stuff);
+    SAVEGENERICSV(PL_sublex_info.repl);
 
     PL_bufend = PL_bufptr = PL_oldbufptr = PL_oldoldbufptr = PL_linestart
        = SvPVX(PL_linestr);
@@ -3052,7 +3056,7 @@ S_scan_const(pTHX_ char *start)
           (@foo, @::foo, @'foo, @{foo}, @$foo, @+, @-)
           */
        else if (*s == '@' && s[1]) {
-           if (isWORDCHAR_lazy_if(s+1,UTF))
+           if (UTF ? isIDFIRST_utf8((U8*)s+1) : isWORDCHAR_A(s[1]))
                break;
            if (strchr(":'{$", s[1]))
                break;
@@ -3272,12 +3276,7 @@ S_scan_const(pTHX_ char *start)
                  *  Otherwise must be some \N{NAME}: convert to \N{U+c1.c2...}
                  *      if a pattern; otherwise convert to utf8
                  *
-                 * If the regex compiler should ever need to differentiate
-                 * between the \N{U+...} and \N{name} forms, that could easily
-                 * be done here by stripping any leading zeros from the
-                 * \N{U+...} case, and adding them to the other one. */
-
-                /* Here, 's' points to the 'N'; the test below is guaranteed to
+                 * Here, 's' points to the 'N'; the test below is guaranteed to
                 * succeed if we are being called on a pattern, as we already
                  * know from a test above that the next character is a '{'.  A
                  * non-pattern \N must mean 'named character', which requires
@@ -3409,9 +3408,15 @@ S_scan_const(pTHX_ char *start)
                                     char hex_string[4];
                                     int len =
                                         my_snprintf(hex_string,
-                                                    sizeof(hex_string),
-                                                    "%02X.", (U8) *str);
-                                    PERL_MY_SNPRINTF_POST_GUARD(len, sizeof(hex_string));
+                                                  sizeof(hex_string),
+                                                  "%02X.",
+
+                                                  /* The regex compiler is
+                                                   * expecting Unicode, not
+                                                   * native */
+                                                  (U8) NATIVE_TO_LATIN1(*str));
+                                    PERL_MY_SNPRINTF_POST_GUARD(len,
+                                                           sizeof(hex_string));
                                     Copy(hex_string, d, 3, char);
                                     d += 3;
                                     str++;
@@ -3435,12 +3440,12 @@ S_scan_const(pTHX_ char *start)
                                                         len,
                                                         &char_length,
                                                         UTF8_ALLOW_ANYUV);
-                                /* Convert first code point to hex, including
-                                 * the boiler plate before it. */
+                                /* Convert first code point to Unicode hex,
+                                 * including the boiler plate before it. */
                                 output_length =
                                     my_snprintf(hex_string, sizeof(hex_string),
-                                                "\\N{U+%X",
-                                                (unsigned int) uv);
+                                             "\\N{U+%X",
+                                             (unsigned int) NATIVE_TO_UNI(uv));
 
                                 /* Make sure there is enough space to hold it */
                                 d = off + SvGROW(sv, off
@@ -3452,7 +3457,7 @@ S_scan_const(pTHX_ char *start)
                                 d += output_length;
 
                                 /* For each subsequent character, append dot and
-                                * its ordinal in hex */
+                                * its Unicode code point in hex */
                                 while ((str += char_length) < str_end) {
                                     const STRLEN off = d - SvPVX_const(sv);
                                     U32 uv = utf8n_to_uvchr((U8 *) str,
@@ -3461,9 +3466,9 @@ S_scan_const(pTHX_ char *start)
                                                             UTF8_ALLOW_ANYUV);
                                     output_length =
                                         my_snprintf(hex_string,
-                                                    sizeof(hex_string),
-                                                    ".%X",
-                                                    (unsigned int) uv);
+                                             sizeof(hex_string),
+                                             ".%X",
+                                             (unsigned int) NATIVE_TO_UNI(uv));
 
                                     d = off + SvGROW(sv, off
                                                         + output_length
@@ -4493,6 +4498,14 @@ Perl_yylex(pTHX)
        /* FALLTHROUGH */
 
     case LEX_INTERPEND:
+       /* Treat state as LEX_NORMAL if we have no inner lexing scope.
+          XXX This hack can be removed if we stop setting PL_lex_state to
+          LEX_KNOWNEXT, as can the hack under LEX_INTREPCONCAT below.  */
+       if (UNLIKELY(!PL_lex_inwhat)) {
+           PL_lex_state = LEX_NORMAL;
+           break;
+       }
+
        if (PL_lex_dojoin) {
            const U8 dojoin_was = PL_lex_dojoin;
            PL_lex_dojoin = FALSE;
@@ -4544,6 +4557,14 @@ Perl_yylex(pTHX)
            Perl_croak(aTHX_ "panic: INTERPCONCAT, lex_brackets=%ld",
                       (long) PL_lex_brackets);
 #endif
+       /* Treat state as LEX_NORMAL when not in an inner lexing scope.
+          XXX This hack can be removed if we stop setting PL_lex_state to
+          LEX_KNOWNEXT.  */
+       if (UNLIKELY(!PL_lex_inwhat)) {
+           PL_lex_state = LEX_NORMAL;
+           break;
+       }
+
        if (PL_bufptr == PL_bufend)
            return REPORT(sublex_done());
 
@@ -4624,7 +4645,8 @@ Perl_yylex(pTHX)
     case 26:
        goto fake_eof;                  /* emulate EOF on ^D or ^Z */
     case 0:
-       if (!PL_rsfp && (!PL_parser->filtered || s+1 < PL_bufend)) {
+       if ((!PL_rsfp || PL_lex_inwhat)
+        && (!PL_parser->filtered || s+1 < PL_bufend)) {
            PL_last_uni = 0;
            PL_last_lop = 0;
            if (PL_lex_brackets &&
@@ -9262,8 +9284,13 @@ S_scan_heredoc(pTHX_ char *s)
               lexing scope.  In a file, we will have broken out of the
               loop in the previous iteration.  In an eval, the string buf-
               fer ends with "\n;", so the while condition above will have
-              evaluated to false.  So shared can never be null. */
-           assert(shared);
+              evaluated to false.  So shared can never be null.  Or so you
+              might think.  Odd syntax errors like s;@{<<; can gobble up
+              the implicit semicolon at the end of a flie, causing the
+              file handle to be closed even when we are not in a string
+              eval.  So shared may be null in that case.  */
+           if (UNLIKELY(!shared))
+               goto interminable;
            /* A LEXSHARED struct with a null ls_prev pointer is the outer-
               most lexing scope.  In a file, shared->ls_linestr at that
               level is just one line, so there is no body to steal. */
@@ -10445,7 +10472,7 @@ Perl_scan_num(pTHX_ const char *start, YYSTYPE* lvalp)
               floatit = TRUE;
         }
        if (floatit) {
-            STORE_NUMERIC_LOCAL_SET_STANDARD();
+            STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD();
            /* terminate the string */
            *d = '\0';
             if (UNLIKELY(hexfp)) {
@@ -10462,7 +10489,7 @@ Perl_scan_num(pTHX_ const char *start, YYSTYPE* lvalp)
             } else {
                 nv = Atof(PL_tokenbuf);
             }
-            RESTORE_NUMERIC_LOCAL();
+            RESTORE_LC_NUMERIC_UNDERLYING();
             sv = newSVnv(nv);
        }
 
index 62458ce..a3a7fff 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
 /* LONG_DOUBLESIZE:
  *     This symbol contains the size of a long double, so that the
  *     C preprocessor can make decisions based on it.  It is only
- *     defined if the system supports long doubles.
+ *     defined if the system supports long doubles.   Note that this
+ *     is sizeof(long double), which may include unused bytes.
  */
 /* HAS_LDEXPL:
  *     This symbol, if defined, indicates that the ldexpl routine is
  */
 /* NVSIZE:
  *     This symbol contains the sizeof(NV).
+ *     Note that some floating point formats have unused bytes.
+ *     The most notable example is the x86* 80-bit extended precision
+ *     which comes in byte sizes of 12 and 16 (for 32 and 64 bit
+ *     platforms, respectively), but which only uses 10 bytes.
+ *     Perl compiled with -Duselongdouble on x86* is like this.
  */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
 #endif
 
 /* Generated from:
- * 0b960722a4dac6f7f6060a886109bb674ad8acdc08d0d14e9c3af5e1bf9e89a6 config_h.SH
+ * 496e563499c7b715275d61ae663d25dd20d963c75f9d3ee7850dae949df14136 config_h.SH
  * f00aaa095a00a83a70716ff4b9df8a1e7feb27fbb4d9b759d4ca27e6412545b1 uconfig.sh
  * ex: set ro: */
index 17ec475..f05f40a 100644 (file)
@@ -996,7 +996,7 @@ XS(XS_re_regexp_pattern)
             XSRETURN_NO;
         }
     }
-    NOT_REACHED; /* NOT-REACHED */
+    NOT_REACHED; /* NOTREACHED */
 }
 
 #include "vutil.h"
@@ -1035,6 +1035,55 @@ static const struct xsub_details details[] = {
     {"re::regexp_pattern", XS_re_regexp_pattern, "$"},
 };
 
+STATIC OP*
+optimize_out_native_convert_function(pTHX_ OP* entersubop,
+                                           GV* namegv,
+                                           SV* protosv)
+{
+    /* Optimizes out an identity function, i.e., one that just returns its
+     * argument.  The passed in function is assumed to be an identity function,
+     * with no checking.  This is designed to be called for utf8_to_native()
+     * and native_to_utf8() on ASCII platforms, as they just return their
+     * arguments, but it could work on any such function.
+     *
+     * The code is mostly just cargo-culted from Memoize::Lift */
+
+    OP *pushop, *argop;
+    OP *parent;
+    SV* prototype = newSVpvs("$");
+
+    PERL_UNUSED_ARG(protosv);
+
+    assert(entersubop->op_type == OP_ENTERSUB);
+
+    entersubop = ck_entersub_args_proto(entersubop, namegv, prototype);
+    parent = entersubop;
+
+    SvREFCNT_dec(prototype);
+
+    pushop = cUNOPx(entersubop)->op_first;
+    if (! OpHAS_SIBLING(pushop)) {
+        parent = pushop;
+        pushop = cUNOPx(pushop)->op_first;
+    }
+    argop = OpSIBLING(pushop);
+
+    /* Carry on without doing the optimization if it is not something we're
+     * expecting, so continues to work */
+    if (   ! argop
+        || ! OpHAS_SIBLING(argop)
+        ||   OpHAS_SIBLING(OpSIBLING(argop))
+    ) {
+        return entersubop;
+    }
+
+    /* cut argop from the subtree */
+    (void)op_sibling_splice(parent, pushop, 1, NULL);
+
+    op_free(entersubop);
+    return argop;
+}
+
 void
 Perl_boot_core_UNIVERSAL(pTHX)
 {
@@ -1046,6 +1095,22 @@ Perl_boot_core_UNIVERSAL(pTHX)
        newXS_flags(xsub->name, xsub->xsub, file, xsub->proto, 0);
     } while (++xsub < end);
 
+#ifndef EBCDIC
+    { /* On ASCII platforms these functions just return their argument, so can
+         be optimized away */
+
+        CV* to_native_cv = get_cv("utf8::unicode_to_native", 0);
+        CV* to_unicode_cv = get_cv("utf8::native_to_unicode", 0);
+
+        cv_set_call_checker(to_native_cv,
+                            optimize_out_native_convert_function,
+                            (SV*) to_native_cv);
+        cv_set_call_checker(to_unicode_cv,
+                            optimize_out_native_convert_function,
+                            (SV*) to_unicode_cv);
+    }
+#endif
+
     /* Providing a Regexp::DESTROY fixes #21347. See test in t/op/ref.t  */
     {
        CV * const cv =
diff --git a/utf8.c b/utf8.c
index efb8d86..184ed31 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -139,7 +139,7 @@ Perl_uvoffuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
            {
 #ifdef EBCDIC
                 Perl_die(aTHX_ "Can't represent character for Ox%"UVXf" on this platform", uv);
-                NOT_REACHED;
+                NOT_REACHED; /* NOTREACHED */
 #endif
                return NULL;
            }
@@ -3549,7 +3549,9 @@ Perl__swash_to_invlist(pTHX_ SV* const swash)
 
         /* The first number is a count of the rest */
         l++;
-        elements = grok_atou((const char *)l, &after_atou);
+        if (!grok_atoUV((const char *)l, &elements, &after_atou)) {
+            Perl_croak(aTHX_ "panic: Expecting a valid count of elements at start of inversion list");
+        }
         if (elements == 0) {
             invlist = _new_invlist(0);
         }
@@ -3559,7 +3561,9 @@ Perl__swash_to_invlist(pTHX_ SV* const swash)
 
             /* Get the 0th element, which is needed to setup the inversion list */
             while (isSPACE(*l)) l++;
-            element0 = (UV) grok_atou((const char *)l, &after_atou);
+            if (!grok_atoUV((const char *)l, &element0, &after_atou)) {
+                Perl_croak(aTHX_ "panic: Expecting a valid 0th element for inversion list");
+            }
             l = (U8 *) after_atou;
             invlist = _setup_canned_invlist(elements, element0, &other_elements_ptr);
             elements--;
@@ -3570,7 +3574,9 @@ Perl__swash_to_invlist(pTHX_ SV* const swash)
                     Perl_croak(aTHX_ "panic: Expecting %"UVuf" more elements than available", elements);
                 }
                 while (isSPACE(*l)) l++;
-                *other_elements_ptr++ = (UV) grok_atou((const char *)l, &after_atou);
+                if (!grok_atoUV((const char *)l, other_elements_ptr++, &after_atou)) {
+                    Perl_croak(aTHX_ "panic: Expecting a valid element in inversion list");
+                }
                 l = (U8 *) after_atou;
             }
         }
index 23b4ae2..a4f5fb5 100644 (file)
  *
  * tr16 also says that NEL and LF be swapped.  We don't do that.
  *
+ * Because of the way UTF-EBCDIC is constructed, the lowest 32 code points that
+ * aren't equivalent to ASCII characters nor C1 controls form the set of
+ * continuation bytes; the remaining 64 non-ASCII, non-control code points form
+ * the potential start bytes, in order.  (However, the first 5 of these lead to
+ * malformed overlongs, so there really are only 59 start bytes.) Hence the
+ * UTF-EBCDIC for the smallest variant code point, 0x160, will have likely 0x41
+ * as its continuation byte, provided 0x41 isn't an ASCII or C1 equivalent.
+ * And its start byte will be the code point that is 37 (32+5) non-ASCII,
+ * non-control code points past it.  (0 - 3F are controls, and 40 is SPACE,
+ * leaving 41 as the first potentially available one.)  In contrast, on ASCII
+ * platforms, the first 64 (not 32) non-ASCII code points are the continuation
+ * bytes.  And the first 2 (not 5) potential start bytes form overlong
+ * malformed sequences.
+ *
  * EBCDIC characters above 0xFF are the same as Unicode in Perl's
  * implementation of all 3 encodings, so for those Step 1 is trivial.
  *
diff --git a/util.c b/util.c
index 9ffdbde..28be5ca 100644 (file)
--- a/util.c
+++ b/util.c
@@ -556,10 +556,6 @@ Perl_instr(const char *big, const char *little)
 
     PERL_ARGS_ASSERT_INSTR;
 
-    /* libc prior to 4.6.27 (late 1994) did not work properly on a NULL
-     * 'little' */
-    if (!little)
-       return (char*)big;
     return strstr((char*)big, (char*)little);
 }
 
@@ -1375,11 +1371,13 @@ Perl_mess_sv(pTHX_ SV *basemsg, bool consume)
 #if defined(USE_C_BACKTRACE) && defined(USE_C_BACKTRACE_ON_ERROR)
     {
         char *ws;
-        int wi;
+        UV 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 = grok_atou(ws, NULL)) > 0) {
-            Perl_dump_c_backtrace(aTHX_ Perl_debug_log, wi, 1);
+        if ((ws = PerlEnv_getenv("PERL_C_BACKTRACE_ON_ERROR"))
+            && grok_atoUV(ws, &wi, NULL)
+            && wi <= PERL_INT_MAX
+        ) {
+            Perl_dump_c_backtrace(aTHX_ Perl_debug_log, (int)wi, 1);
         }
     }
 #endif
@@ -4420,15 +4418,20 @@ Perl_parse_unicode_opts(pTHX_ const char **popt)
   if (*p) {
        if (isDIGIT(*p)) {
             const char* endptr;
-            opt = (U32) grok_atou(p, &endptr);
-           p = endptr;
-           if (*p && *p != '\n' && *p != '\r') {
-            if(isSPACE(*p)) goto the_end_of_the_opts_parser;
-            else
-                Perl_croak(aTHX_ "Unknown Unicode option letter '%c'", *p);
-           }
-       }
-       else {
+            UV uv;
+            if (grok_atoUV(p, &uv, &endptr)
+                && uv <= U32_MAX
+                && (p = endptr)
+                && *p && *p != '\n' && *p != '\r'
+            ) {
+                opt = (U32)uv;
+                if (isSPACE(*p))
+                    goto the_end_of_the_opts_parser;
+                else
+                    Perl_croak(aTHX_ "Unknown Unicode option letter '%c'", *p);
+            }
+        }
+        else {
            for (; *p; p++) {
                 switch (*p) {
                 case PERL_UNICODE_STDIN:
@@ -4729,14 +4732,14 @@ Perl_free_global_struct(pTHX_ struct perl_vars *plvarsp)
 
 #ifdef PERL_MEM_LOG
 
-/* -DPERL_MEM_LOG: the Perl_mem_log_..() is compiled, including the
+/* -DPERL_MEM_LOG: the Perl_mem_log_..() is compiled, including
  * the default implementation, unless -DPERL_MEM_LOG_NOIMPL is also
  * given, and you supply your own implementation.
  *
  * The default implementation reads a single env var, PERL_MEM_LOG,
  * expecting one or more of the following:
  *
- *    \d+ - fd         fd to write to          : must be 1st (grok_atou)
+ *    \d+ - fd         fd to write to          : must be 1st (grok_atoUV)
  *    'm' - memlog     was PERL_MEM_LOG=1
  *    's' - svlog      was PERL_SV_LOG=1
  *    't' - timestamp  was PERL_MEM_LOG_TIMESTAMP=1
@@ -4805,9 +4808,15 @@ S_mem_log_common(enum mem_log_type mlt, const UV n,
        {
            STRLEN len;
             const char* endptr;
-           int fd = grok_atou(pmlenv, &endptr); /* Ignore endptr. */
-           if (!fd)
+           int fd;
+            UV uv;
+            if (grok_atoUV(pmlenv, &uv, &endptr) /* Ignore endptr. */
+                && uv && uv <= PERL_INT_MAX
+            ) {
+                fd = (int)uv;
+            } else {
                fd = PERL_MEM_LOG_FD;
+            }
 
            if (strchr(pmlenv, 't')) {
                len = my_snprintf(buf, sizeof(buf),
@@ -5693,7 +5702,7 @@ Perl_my_dirfd(DIR * dir) {
     return dir->dd_fd;
 #else
     Perl_croak_nocontext(PL_no_func, "dirfd");
-    NOT_REACHED; /* NOT REACHED */
+    NOT_REACHED; /* NOTREACHED */
     return 0;
 #endif 
 }
@@ -6008,6 +6017,8 @@ static const char* atos_parse(const char* p,
     const char* source_name_end;
     const char* source_line_end;
     const char* close_paren;
+    UV uv;
+
     /* Skip trailing whitespace. */
     while (p > start && isspace(*p)) p--;
     /* Now we should be at the close paren. */
@@ -6034,10 +6045,14 @@ static const char* atos_parse(const char* p,
         return NULL;
     p++;
     *source_name_size = source_name_end - p;
-    *source_line = grok_atou(source_number_start, &source_line_end);
-    if (source_line_end != close_paren)
-        return NULL;
-    return p;
+    if (grok_atoUV(source_number_start, &uv,  &source_line_end)
+        && source_line_end == close_paren
+        && uv <= MAX_STRLEN
+    ) {
+        *source_line = (STRLEN)uv;
+        return p;
+    }
+    return NULL;
 }
 
 /* Given a raw frame, read a pipe from the symbolicator (that's the
index 8e3bb35..f50cdd7 100644 (file)
@@ -1,5 +1,8 @@
 #!/usr/local/bin/perl
 
+# Copy the cpan/Encode/bin/enc2xs script to utils/, while
+# prepending a suitable #! invocation.
+
 use Config;
 use File::Basename qw(&basename &dirname);
 use Cwd;
index 505ab84..31c867c 100644 (file)
@@ -226,14 +226,14 @@ FULLLIBS2 = $(LIBS2)|$(THRLIBS1)|$(THRLIBS2)
 
 #### End of system configuration section. ####
 
-c0 = $(MALLOC_C) av.c caretx.c deb.c doio.c doop.c dump.c globals.c gv.c hv.c mro.c
+c0 = $(MALLOC_C) av.c caretx.c deb.c doio.c doop.c dump.c globals.c gv.c hv.c mro_core.c
 c1 = mg.c locale.c mathoms.c miniperlmain.c numeric.c op.c pad.c perl.c perlapi.c perlio.c
 c2 = perly.c pp.c pp_ctl.c pp_hot.c pp_pack.c pp_sort.c pp_sys.c regcomp.c regexec.c reentr.c
 c3 = run.c scope.c sv.c taint.c toke.c universal.c utf8.c util.c vms.c keywords.c
 c = $(c0) $(c1) $(c2) $(c3)
 
 obj0 = perl$(O)
-obj1 = $(MALLOC_O) av$(O) caretx$(O) deb$(O) doio$(O) doop$(O) dump$(O) mro$(O) globals$(O) gv$(O) hv$(O) 
+obj1 = $(MALLOC_O) av$(O) caretx$(O) deb$(O) doio$(O) doop$(O) dump$(O) mro_core$(O) globals$(O) gv$(O) hv$(O)
 obj2 = keywords$(O) locale$(O) mathoms$(O) mg$(O) miniperlmain$(O) numeric$(O) op$(O) pad$(O) perlapi$(O) perlio$(O) 
 obj3 = perly$(O) pp$(O) pp_ctl$(O) pp_hot$(O) reentr$(O) pp_pack$(O) pp_sort$(O) pp_sys$(O) regcomp$(O) 
 obj4 = regexec$(O) run$(O) scope$(O) sv$(O) taint$(O) toke$(O) universal$(O) utf8$(O) util$(O) vms$(O)
@@ -307,7 +307,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5)
 extra.pods : miniperl
        @ @extra_pods.com
 
-PERLDELTA_CURRENT = [.pod]perl5219delta.pod
+PERLDELTA_CURRENT = [.pod]perl52110delta.pod
 
 $(PERLDELTA_CURRENT) : [.pod]perldelta.pod
        Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)
@@ -632,7 +632,7 @@ globals$(O) : globals.c $(generated_headers) $(h)
         $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 gv$(O) : gv.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-mro$(O) : mro.c $(h)
+mro_core$(O) : mro_core.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 hv$(O) : hv.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
index 52ca2ac..22632d2 100644 (file)
@@ -38,7 +38,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.9
+#INST_VER      = \5.21.10
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -688,7 +688,7 @@ MICROCORE_SRC       =               \
                ..\dump.c       \
                ..\globals.c    \
                ..\gv.c         \
-               ..\mro.c        \
+               ..\mro_core.c   \
                ..\hv.c         \
                ..\locale.c     \
                ..\keywords.c   \
@@ -1176,7 +1176,7 @@ utils: $(PERLEXE) ..\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\perl5219delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl52110delta.pod
        cd ..\win32
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
@@ -1272,7 +1272,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 \
-           perl5219delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+           perl52110delta.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 \
index 6455942..894da33 100644 (file)
@@ -625,7 +625,7 @@ MICROCORE_SRC       =               \
                ..\dump.c       \
                ..\globals.c    \
                ..\gv.c         \
-               ..\mro.c        \
+               ..\mro_core.c   \
                ..\hv.c         \
                ..\locale.c     \
                ..\keywords.c   \
@@ -870,7 +870,7 @@ $(DLLDIR)\doop.obj \
 $(DLLDIR)\dump.obj \
 $(DLLDIR)\globals.obj \
 $(DLLDIR)\gv.obj \
-$(DLLDIR)\mro.obj \
+$(DLLDIR)\mro_core.obj \
 $(DLLDIR)\hv.obj \
 $(DLLDIR)\locale.obj \
 $(DLLDIR)\keywords.obj \
index 62becb0..0362443 100644 (file)
@@ -44,7 +44,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.9
+#INST_VER      *= \5.21.10
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -834,7 +834,7 @@ MICROCORE_SRC       =               \
                ..\dump.c       \
                ..\globals.c    \
                ..\gv.c         \
-               ..\mro.c        \
+               ..\mro_core.c   \
                ..\hv.c         \
                ..\locale.c     \
                ..\keywords.c   \
@@ -1463,7 +1463,7 @@ utils: $(PERLEXE) ..\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\perl5219delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl52110delta.pod
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
        $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1558,7 +1558,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 \
-           perl5219delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+           perl52110delta.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 \
index c185643..bf194e3 100644 (file)
@@ -40,6 +40,7 @@ POD = perl.pod        \
        perl5201delta.pod       \
        perl5202delta.pod       \
        perl5210delta.pod       \
+       perl52110delta.pod      \
        perl5211delta.pod       \
        perl5212delta.pod       \
        perl5213delta.pod       \
@@ -183,6 +184,7 @@ MAN = perl.man      \
        perl5201delta.man       \
        perl5202delta.man       \
        perl5210delta.man       \
+       perl52110delta.man      \
        perl5211delta.man       \
        perl5212delta.man       \
        perl5213delta.man       \
@@ -326,6 +328,7 @@ HTML = perl.html    \
        perl5201delta.html      \
        perl5202delta.html      \
        perl5210delta.html      \
+       perl52110delta.html     \
        perl5211delta.html      \
        perl5212delta.html      \
        perl5213delta.html      \
@@ -469,6 +472,7 @@ TEX = perl.tex      \
        perl5201delta.tex       \
        perl5202delta.tex       \
        perl5210delta.tex       \
+       perl52110delta.tex      \
        perl5211delta.tex       \
        perl5212delta.tex       \
        perl5213delta.tex       \