This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Bring all Unicode property definitions into core
authorKarl Williamson <khw@cpan.org>
Fri, 20 Apr 2018 03:08:24 +0000 (21:08 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 20 Apr 2018 07:11:54 +0000 (01:11 -0600)
This commit causes the looking up of \p{} Unicode properties to be done
without having to use the swash mechanism.s, with certain exceptions.
This will all be explained in the merge commit.

This commit uses Devel::Tokenizer::C to generate the code that turns the
property string as keywords into numbers that can be understood by the
computer.  This mechanism generates relatively large code.  The next
commits will replace this with a smaller mechanism.

12 files changed:
MANIFEST
Makefile.SH
charclass_invlists.h
embed.fnc
embed.h
proto.h
regcomp.c
regen/mk_invlists.pl
t/re/pat.t
t/uni/cache.t
uni_keywords.c [new file with mode: 0644]
utf8.c

index ec02f29..f5a4e5b 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -6068,6 +6068,7 @@ toke.c                            The tokener
 uconfig.h                      Configuration header for microperl
 uconfig.sh                     Configuration script for microperl
 uconfig64.sh                   Configuration script for microperl for LP64
+uni_keywords.c                 Generated file which parses \p{} property names
 unicode_constants.h            compile-time macros for Unicode code points
 universal.c                    The default UNIVERSAL package methods
 unixish.h                      Defines that are assumed on Unix
index cecc53f..e125350 100755 (executable)
@@ -508,14 +508,14 @@ 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_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
+c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c uni_keywords.c
 c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c caretx.c dquote.c time64.c
 c5 = $(mallocsrc)
 
 c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c opmini.c perlmini.c
 
 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)
+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) uni_keywords$(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) dquote$(OBJ_EXT) time64$(OBJ_EXT)
 
 # split the objects into 3 exclusive sets: those used by both miniperl and
index fc6a4be..ba5a699 100644 (file)
@@ -372221,6 +372221,7698 @@ static const UV PL_ZZZZ_invlist[] = { /* for all charsets */
        0xE01F0
 };
 
+const char * deprecated_property_msgs[] = {
+       "",
+       "Deprecated by Unicode because surrogates should never appear in well-formed text, and therefore shouldn't be the basis for line breaking",
+       "Supplanted by Line_Break property values; see www.unicode.org/reports/tr14"
+};
+
+#endif /* defined(PERL_IN_UTF8_C) */
+
+#if defined(PERL_IN_UNI_KEYWORDS_C) || defined(PERL_IN_UTF8_C)
+
+#define PL_HYPHEN (PL_HYPHEN_perl_aux + (MAX_UNI_KEYWORD_INDEX * 2))
+#define PL_LB__SG (PL_LB__SG_perl_aux + (MAX_UNI_KEYWORD_INDEX * 1))
+
+typedef enum {
+       PERL_BIN_PLACEHOLDER = 0,
+       PL_ADLM,
+       PL_AEGEANNUMBERS,
+       PL_AGE__10,
+       PL_AGE__2,
+       PL_AGE__2_DOT_1,
+       PL_AGE__3,
+       PL_AGE__3_DOT_1,
+       PL_AGE__3_DOT_2,
+       PL_AGE__4,
+       PL_AGE__4_DOT_1,
+       PL_AGE__5,
+       PL_AGE__5_DOT_1,
+       PL_AGE__5_DOT_2,
+       PL_AGE__6,
+       PL_AGE__6_DOT_1,
+       PL_AGE__6_DOT_2,
+       PL_AGE__6_DOT_3,
+       PL_AGE__7,
+       PL_AGE__8,
+       PL_AGE__9,
+       PL_AGE__NA,
+       PL_AGHB,
+       PL_AHOM,
+       PL_ALCHEMICAL,
+       PL_ALL,
+       PL_ALPHABETICPF,
+       PL_ANCIENTGREEKMUSIC,
+       PL_ANCIENTGREEKNUMBERS,
+       PL_ANCIENTSYMBOLS,
+       PL_ANY,
+       PL_ARAB,
+       PL_ARABICEXTA,
+       PL_ARABICMATH,
+       PL_ARABICPFA,
+       PL_ARABICPFB,
+       PL_ARABICSUP,
+       PL_ARMI,
+       PL_ARMN,
+       PL_ARROWS,
+       PL_ASCII,
+       PL_ASSIGNED,
+       PL_AVST,
+       PL_BALI,
+       PL_BAMU,
+       PL_BAMUMSUP,
+       PL_BASS,
+       PL_BATK,
+       PL_BC__AL,
+       PL_BC__AN,
+       PL_BC__B,
+       PL_BC__BN,
+       PL_BC__CS,
+       PL_BC__EN,
+       PL_BC__ES,
+       PL_BC__ET,
+       PL_BC__FSI,
+       PL_BC__L,
+       PL_BC__LRE,
+       PL_BC__LRI,
+       PL_BC__LRO,
+       PL_BC__NSM,
+       PL_BC__ON,
+       PL_BC__PDF,
+       PL_BC__PDI,
+       PL_BC__R,
+       PL_BC__RLE,
+       PL_BC__RLI,
+       PL_BC__RLO,
+       PL_BC__S,
+       PL_BC__WS,
+       PL_BENG,
+       PL_BHKS,
+       PL_BIDIC,
+       PL_BIDIM,
+       PL_BLOCKELEMENTS,
+       PL_BOPO,
+       PL_BOPOMOFOEXT,
+       PL_BOXDRAWING,
+       PL_BPT__C,
+       PL_BPT__N,
+       PL_BPT__O,
+       PL_BRAH,
+       PL_BRAI,
+       PL_BUGI,
+       PL_BUHD,
+       PL_BYZANTINEMUSIC,
+       PL_C,
+       PL_CAKM,
+       PL_CANS,
+       PL_CARI,
+       PL_CASED,
+       PL_CCC__0,
+       PL_CCC__1,
+       PL_CCC__10,
+       PL_CCC__103,
+       PL_CCC__107,
+       PL_CCC__11,
+       PL_CCC__118,
+       PL_CCC__12,
+       PL_CCC__122,
+       PL_CCC__129,
+       PL_CCC__13,
+       PL_CCC__130,
+       PL_CCC__132,
+       PL_CCC__133,
+       PL_CCC__14,
+       PL_CCC__15,
+       PL_CCC__16,
+       PL_CCC__17,
+       PL_CCC__18,
+       PL_CCC__19,
+       PL_CCC__20,
+       PL_CCC__202,
+       PL_CCC__21,
+       PL_CCC__214,
+       PL_CCC__216,
+       PL_CCC__22,
+       PL_CCC__23,
+       PL_CCC__24,
+       PL_CCC__25,
+       PL_CCC__26,
+       PL_CCC__27,
+       PL_CCC__28,
+       PL_CCC__29,
+       PL_CCC__30,
+       PL_CCC__31,
+       PL_CCC__32,
+       PL_CCC__33,
+       PL_CCC__34,
+       PL_CCC__35,
+       PL_CCC__36,
+       PL_CCC__7,
+       PL_CCC__8,
+       PL_CCC__84,
+       PL_CCC__9,
+       PL_CCC__91,
+       PL_CCC__A,
+       PL_CCC__AL,
+       PL_CCC__AR,
+       PL_CCC__B,
+       PL_CCC__BL,
+       PL_CCC__BR,
+       PL_CCC__DA,
+       PL_CCC__DB,
+       PL_CCC__IS,
+       PL_CCC__L,
+       PL_CCC__R,
+       PL_CE,
+       PL_CF,
+       PL_CHAM,
+       PL_CHER,
+       PL_CHEROKEESUP,
+       PL_CI,
+       PL_CJK,
+       PL_CJKCOMPAT,
+       PL_CJKCOMPATFORMS,
+       PL_CJKCOMPATIDEOGRAPHS,
+       PL_CJKCOMPATIDEOGRAPHSSUP,
+       PL_CJKEXTA,
+       PL_CJKEXTB,
+       PL_CJKEXTC,
+       PL_CJKEXTD,
+       PL_CJKEXTE,
+       PL_CJKEXTF,
+       PL_CJKRADICALSSUP,
+       PL_CJKSTROKES,
+       PL_CJKSYMBOLS,
+       PL_CN,
+       PL_CO,
+       PL_COMPATJAMO,
+       PL_COMPEX,
+       PL_CONTROLPICTURES,
+       PL_COPT,
+       PL_COPTICEPACTNUMBERS,
+       PL_COUNTINGROD,
+       PL_CPRT,
+       PL_CS,
+       PL_CUNEIFORMNUMBERS,
+       PL_CURRENCYSYMBOLS,
+       PL_CWCF,
+       PL_CWCM,
+       PL_CWKCF,
+       PL_CWL,
+       PL_CWT,
+       PL_CWU,
+       PL_CYPRIOTSYLLABARY,
+       PL_CYRILLICEXTA,
+       PL_CYRILLICEXTB,
+       PL_CYRILLICEXTC,
+       PL_CYRILLICSUP,
+       PL_CYRL,
+       PL_DASH,
+       PL_DEP,
+       PL_DEVA,
+       PL_DEVANAGARIEXT,
+       PL_DI,
+       PL_DIA,
+       PL_DIACRITICALS,
+       PL_DIACRITICALSEXT,
+       PL_DIACRITICALSFORSYMBOLS,
+       PL_DIACRITICALSSUP,
+       PL_DINGBATS,
+       PL_DOMINO,
+       PL_DSRT,
+       PL_DT__CAN,
+       PL_DT__COM,
+       PL_DT__ENC,
+       PL_DT__FIN,
+       PL_DT__FONT,
+       PL_DT__FRA,
+       PL_DT__INIT,
+       PL_DT__ISO,
+       PL_DT__MED,
+       PL_DT__NAR,
+       PL_DT__NB,
+       PL_DT__NONCANON,
+       PL_DT__NONE,
+       PL_DT__SML,
+       PL_DT__SQR,
+       PL_DT__SUB,
+       PL_DT__SUP,
+       PL_DT__VERT,
+       PL_DUPL,
+       PL_EARLYDYNASTICCUNEIFORM,
+       PL_EA__A,
+       PL_EA__F,
+       PL_EA__H,
+       PL_EA__N,
+       PL_EA__NA,
+       PL_EA__W,
+       PL_EGYP,
+       PL_ELBA,
+       PL_EMOTICONS,
+       PL_ENCLOSEDALPHANUM,
+       PL_ENCLOSEDALPHANUMSUP,
+       PL_ENCLOSEDCJK,
+       PL_ENCLOSEDIDEOGRAPHICSUP,
+       PL_ETHI,
+       PL_ETHIOPICEXT,
+       PL_ETHIOPICEXTA,
+       PL_ETHIOPICSUP,
+       PL_EXT,
+       PL_GCB__CN,
+       PL_GCB__L,
+       PL_GCB__PP,
+       PL_GCB__SM,
+       PL_GCB__T,
+       PL_GCB__V,
+       PL_GCB__XX,
+       PL_GEOMETRICSHAPES,
+       PL_GEOMETRICSHAPESEXT,
+       PL_GEOR,
+       PL_GEORGIANSUP,
+       PL_GLAG,
+       PL_GLAGOLITICSUP,
+       PL_GONM,
+       PL_GOTH,
+       PL_GRAN,
+       PL_GRBASE,
+       PL_GREEKEXT,
+       PL_GREK,
+       PL_GREXT,
+       PL_GUJR,
+       PL_GURU,
+       PL_HALFANDFULLFORMS,
+       PL_HALFMARKS,
+       PL_HAN,
+       PL_HANG,
+       PL_HANO,
+       PL_HATR,
+       PL_HEBR,
+       PL_HIGHPUSURROGATES,
+       PL_HIGHSURROGATES,
+       PL_HIRA,
+       PL_HLUW,
+       PL_HMNG,
+       PL_HST__NA,
+       PL_HUNG,
+       PL_HYPHEN_perl_aux,
+       PL_IDC,
+       PL_IDEO,
+       PL_IDEOGRAPHICSYMBOLS,
+       PL_IDS,
+       PL_IDSB,
+       PL_IDST,
+       PL_INADLAM,
+       PL_INAHOM,
+       PL_INANATOLIANHIEROGLYPHS,
+       PL_INARABIC,
+       PL_INARMENIAN,
+       PL_INAVESTAN,
+       PL_INBALINESE,
+       PL_INBAMUM,
+       PL_INBASSAVAH,
+       PL_INBATAK,
+       PL_INBENGALI,
+       PL_INBHAIKSUKI,
+       PL_INBOPOMOFO,
+       PL_INBRAHMI,
+       PL_INBUGINESE,
+       PL_INBUHID,
+       PL_INCARIAN,
+       PL_INCAUCASIANALBANIAN,
+       PL_INCHAKMA,
+       PL_INCHAM,
+       PL_INCHEROKEE,
+       PL_INCOPTIC,
+       PL_INCUNEIFORM,
+       PL_INCYRILLIC,
+       PL_INDEVANAGARI,
+       PL_INDICNUMBERFORMS,
+       PL_INDUPLOYAN,
+       PL_INEGYPTIANHIEROGLYPHS,
+       PL_INELBASAN,
+       PL_INETHIOPIC,
+       PL_INGEORGIAN,
+       PL_INGLAGOLITIC,
+       PL_INGOTHIC,
+       PL_INGRANTHA,
+       PL_INGREEK,
+       PL_INGUJARATI,
+       PL_INGURMUKHI,
+       PL_INHANGUL,
+       PL_INHANUNOO,
+       PL_INHATRAN,
+       PL_INHEBREW,
+       PL_INHIRAGANA,
+       PL_INIDC,
+       PL_INIMPERIALARAMAIC,
+       PL_ININSCRIPTIONALPAHLAVI,
+       PL_ININSCRIPTIONALPARTHIAN,
+       PL_INJAVANESE,
+       PL_INKAITHI,
+       PL_INKANNADA,
+       PL_INKATAKANA,
+       PL_INKHAROSHTHI,
+       PL_INKHMER,
+       PL_INKHOJKI,
+       PL_INKHUDAWADI,
+       PL_INLAO,
+       PL_INLEPCHA,
+       PL_INLIMBU,
+       PL_INLINEARA,
+       PL_INLYCIAN,
+       PL_INLYDIAN,
+       PL_INMAHAJANI,
+       PL_INMALAYALAM,
+       PL_INMANDAIC,
+       PL_INMANICHAEAN,
+       PL_INMARCHEN,
+       PL_INMASARAMGONDI,
+       PL_INMEETEIMAYEK,
+       PL_INMENDEKIKAKUI,
+       PL_INMEROITICCURSIVE,
+       PL_INMIAO,
+       PL_INMODI,
+       PL_INMONGOLIAN,
+       PL_INMRO,
+       PL_INMULTANI,
+       PL_INMYANMAR,
+       PL_INNABATAEAN,
+       PL_INNEWA,
+       PL_INNEWTAILUE,
+       PL_INNKO,
+       PL_INNUSHU,
+       PL_INOGHAM,
+       PL_INOLDHUNGARIAN,
+       PL_INOLDITALIC,
+       PL_INOLDPERMIC,
+       PL_INOLDPERSIAN,
+       PL_INOLDTURKIC,
+       PL_INORIYA,
+       PL_INOSAGE,
+       PL_INOSMANYA,
+       PL_INPAHAWHHMONG,
+       PL_INPAUCINHAU,
+       PL_INPC__BOTTOM,
+       PL_INPC__BOTTOMANDLEFT,
+       PL_INPC__BOTTOMANDRIGHT,
+       PL_INPC__LEFT,
+       PL_INPC__LEFTANDRIGHT,
+       PL_INPC__NA,
+       PL_INPC__OVERSTRUCK,
+       PL_INPC__RIGHT,
+       PL_INPC__TOP,
+       PL_INPC__TOPANDBOTTOM,
+       PL_INPC__TOPANDBOTTOMANDRIGHT,
+       PL_INPC__TOPANDLEFT,
+       PL_INPC__TOPANDLEFTANDRIGHT,
+       PL_INPC__TOPANDRIGHT,
+       PL_INPHAGSPA,
+       PL_INPHOENICIAN,
+       PL_INPSALTERPAHLAVI,
+       PL_INPUNCTUATION,
+       PL_INREJANG,
+       PL_INRUNIC,
+       PL_INSAMARITAN,
+       PL_INSAURASHTRA,
+       PL_INSC__AVAGRAHA,
+       PL_INSC__BINDU,
+       PL_INSC__BRAHMIJOININGNUMBER,
+       PL_INSC__CANTILLATIONMARK,
+       PL_INSC__CONSONANT,
+       PL_INSC__CONSONANTDEAD,
+       PL_INSC__CONSONANTFINAL,
+       PL_INSC__CONSONANTHEADLETTER,
+       PL_INSC__CONSONANTKILLER,
+       PL_INSC__CONSONANTMEDIAL,
+       PL_INSC__CONSONANTPLACEHOLDER,
+       PL_INSC__CONSONANTPRECEDINGREPHA,
+       PL_INSC__CONSONANTPREFIXED,
+       PL_INSC__CONSONANTSUBJOINED,
+       PL_INSC__CONSONANTSUCCEEDINGREPHA,
+       PL_INSC__CONSONANTWITHSTACKER,
+       PL_INSC__GEMINATIONMARK,
+       PL_INSC__INVISIBLESTACKER,
+       PL_INSC__MODIFYINGLETTER,
+       PL_INSC__NONJOINER,
+       PL_INSC__NUKTA,
+       PL_INSC__NUMBER,
+       PL_INSC__NUMBERJOINER,
+       PL_INSC__OTHER,
+       PL_INSC__PUREKILLER,
+       PL_INSC__REGISTERSHIFTER,
+       PL_INSC__SYLLABLEMODIFIER,
+       PL_INSC__TONELETTER,
+       PL_INSC__TONEMARK,
+       PL_INSC__VIRAMA,
+       PL_INSC__VISARGA,
+       PL_INSC__VOWEL,
+       PL_INSC__VOWELDEPENDENT,
+       PL_INSC__VOWELINDEPENDENT,
+       PL_INSHARADA,
+       PL_INSIDDHAM,
+       PL_INSINHALA,
+       PL_INSORASOMPENG,
+       PL_INSOYOMBO,
+       PL_INSUNDANESE,
+       PL_INSYLOTINAGRI,
+       PL_INSYRIAC,
+       PL_INTAGALOG,
+       PL_INTAGBANWA,
+       PL_INTAILE,
+       PL_INTAITHAM,
+       PL_INTAIVIET,
+       PL_INTAKRI,
+       PL_INTAMIL,
+       PL_INTANGUT,
+       PL_INTELUGU,
+       PL_INTHAANA,
+       PL_INTHAI,
+       PL_INTIBETAN,
+       PL_INTIFINAGH,
+       PL_INTIRHUTA,
+       PL_INUGARITIC,
+       PL_INVAI,
+       PL_INVS,
+       PL_INWARANGCITI,
+       PL_INZANABAZARSQUARE,
+       PL_IN__10,
+       PL_IN__1_DOT_1,
+       PL_IN__2,
+       PL_IN__2_DOT_1,
+       PL_IN__3,
+       PL_IN__3_DOT_1,
+       PL_IN__3_DOT_2,
+       PL_IN__4,
+       PL_IN__4_DOT_1,
+       PL_IN__5,
+       PL_IN__5_DOT_1,
+       PL_IN__5_DOT_2,
+       PL_IN__6,
+       PL_IN__6_DOT_1,
+       PL_IN__6_DOT_2,
+       PL_IN__6_DOT_3,
+       PL_IN__7,
+       PL_IN__8,
+       PL_IN__9,
+       PL_IPAEXT,
+       PL_ITAL,
+       PL_JAMO,
+       PL_JAMOEXTA,
+       PL_JAMOEXTB,
+       PL_JAVA,
+       PL_JG__AFRICANFEH,
+       PL_JG__AFRICANNOON,
+       PL_JG__AFRICANQAF,
+       PL_JG__AIN,
+       PL_JG__ALAPH,
+       PL_JG__ALEF,
+       PL_JG__BEH,
+       PL_JG__BETH,
+       PL_JG__BURUSHASKIYEHBARREE,
+       PL_JG__DAL,
+       PL_JG__DALATHRISH,
+       PL_JG__E,
+       PL_JG__FARSIYEH,
+       PL_JG__FE,
+       PL_JG__FEH,
+       PL_JG__FINALSEMKATH,
+       PL_JG__GAF,
+       PL_JG__GAMAL,
+       PL_JG__HAH,
+       PL_JG__HAMZAONHEHGOAL,
+       PL_JG__HE,
+       PL_JG__HEH,
+       PL_JG__HEHGOAL,
+       PL_JG__HETH,
+       PL_JG__KAF,
+       PL_JG__KAPH,
+       PL_JG__KHAPH,
+       PL_JG__KNOTTEDHEH,
+       PL_JG__LAM,
+       PL_JG__LAMADH,
+       PL_JG__MALAYALAMBHA,
+       PL_JG__MALAYALAMJA,
+       PL_JG__MALAYALAMLLA,
+       PL_JG__MALAYALAMLLLA,
+       PL_JG__MALAYALAMNGA,
+       PL_JG__MALAYALAMNNA,
+       PL_JG__MALAYALAMNNNA,
+       PL_JG__MALAYALAMNYA,
+       PL_JG__MALAYALAMRA,
+       PL_JG__MALAYALAMSSA,
+       PL_JG__MALAYALAMTTA,
+       PL_JG__MANICHAEANALEPH,
+       PL_JG__MANICHAEANAYIN,
+       PL_JG__MANICHAEANBETH,
+       PL_JG__MANICHAEANDALETH,
+       PL_JG__MANICHAEANDHAMEDH,
+       PL_JG__MANICHAEANFIVE,
+       PL_JG__MANICHAEANGIMEL,
+       PL_JG__MANICHAEANHETH,
+       PL_JG__MANICHAEANHUNDRED,
+       PL_JG__MANICHAEANKAPH,
+       PL_JG__MANICHAEANLAMEDH,
+       PL_JG__MANICHAEANMEM,
+       PL_JG__MANICHAEANNUN,
+       PL_JG__MANICHAEANONE,
+       PL_JG__MANICHAEANPE,
+       PL_JG__MANICHAEANQOPH,
+       PL_JG__MANICHAEANRESH,
+       PL_JG__MANICHAEANSADHE,
+       PL_JG__MANICHAEANSAMEKH,
+       PL_JG__MANICHAEANTAW,
+       PL_JG__MANICHAEANTEN,
+       PL_JG__MANICHAEANTETH,
+       PL_JG__MANICHAEANTHAMEDH,
+       PL_JG__MANICHAEANTWENTY,
+       PL_JG__MANICHAEANWAW,
+       PL_JG__MANICHAEANYODH,
+       PL_JG__MANICHAEANZAYIN,
+       PL_JG__MEEM,
+       PL_JG__MIM,
+       PL_JG__NOJOININGGROUP,
+       PL_JG__NOON,
+       PL_JG__NUN,
+       PL_JG__NYA,
+       PL_JG__PE,
+       PL_JG__QAF,
+       PL_JG__QAPH,
+       PL_JG__REH,
+       PL_JG__REVERSEDPE,
+       PL_JG__ROHINGYAYEH,
+       PL_JG__SAD,
+       PL_JG__SADHE,
+       PL_JG__SEEN,
+       PL_JG__SEMKATH,
+       PL_JG__SHIN,
+       PL_JG__STRAIGHTWAW,
+       PL_JG__SWASHKAF,
+       PL_JG__SYRIACWAW,
+       PL_JG__TAH,
+       PL_JG__TAW,
+       PL_JG__TEHMARBUTA,
+       PL_JG__TETH,
+       PL_JG__WAW,
+       PL_JG__YEH,
+       PL_JG__YEHBARREE,
+       PL_JG__YEHWITHTAIL,
+       PL_JG__YUDH,
+       PL_JG__YUDHHE,
+       PL_JG__ZAIN,
+       PL_JG__ZHAIN,
+       PL_JOINC,
+       PL_JT__C,
+       PL_JT__D,
+       PL_JT__L,
+       PL_JT__R,
+       PL_JT__T,
+       PL_JT__U,
+       PL_KALI,
+       PL_KANA,
+       PL_KANAEXTA,
+       PL_KANASUP,
+       PL_KANBUN,
+       PL_KANGXI,
+       PL_KATAKANAEXT,
+       PL_KHAR,
+       PL_KHMERSYMBOLS,
+       PL_KHMR,
+       PL_KHOJ,
+       PL_KNDA,
+       PL_KTHI,
+       PL_L,
+       PL_LANA,
+       PL_LAO,
+       PL_LATIN1,
+       PL_LATINEXTA,
+       PL_LATINEXTADDITIONAL,
+       PL_LATINEXTB,
+       PL_LATINEXTC,
+       PL_LATINEXTD,
+       PL_LATINEXTE,
+       PL_LATN,
+       PL_LB__AI,
+       PL_LB__AL,
+       PL_LB__B2,
+       PL_LB__BA,
+       PL_LB__BB,
+       PL_LB__BK,
+       PL_LB__CB,
+       PL_LB__CJ,
+       PL_LB__CL,
+       PL_LB__CM,
+       PL_LB__CP,
+       PL_LB__CR,
+       PL_LB__EB,
+       PL_LB__EM,
+       PL_LB__EX,
+       PL_LB__GL,
+       PL_LB__H2,
+       PL_LB__H3,
+       PL_LB__HL,
+       PL_LB__HY,
+       PL_LB__ID,
+       PL_LB__IN,
+       PL_LB__IS,
+       PL_LB__LF,
+       PL_LB__NL,
+       PL_LB__NS,
+       PL_LB__NU,
+       PL_LB__OP,
+       PL_LB__PO,
+       PL_LB__PR,
+       PL_LB__QU,
+       PL_LB__SA,
+       PL_LB__SG_perl_aux,
+       PL_LB__SP,
+       PL_LB__SY,
+       PL_LB__WJ,
+       PL_LB__XX,
+       PL_LB__ZW,
+       PL_LB__ZWJ,
+       PL_LEPC,
+       PL_LETTERLIKESYMBOLS,
+       PL_LIMB,
+       PL_LINA,
+       PL_LINB,
+       PL_LINEARBIDEOGRAMS,
+       PL_LINEARBSYLLABARY,
+       PL_LISU,
+       PL_LL,
+       PL_LM,
+       PL_LO,
+       PL_LOE,
+       PL_LOWSURROGATES,
+       PL_LT,
+       PL_LU,
+       PL_LYCI,
+       PL_LYDI,
+       PL_L_AMP_,
+       PL_M,
+       PL_MAHJ,
+       PL_MAHJONG,
+       PL_MAND,
+       PL_MANI,
+       PL_MARC,
+       PL_MATH,
+       PL_MATHALPHANUM,
+       PL_MATHOPERATORS,
+       PL_MC,
+       PL_ME,
+       PL_MEETEIMAYEKEXT,
+       PL_MEND,
+       PL_MERC,
+       PL_MERO,
+       PL_MIAO,
+       PL_MISCARROWS,
+       PL_MISCMATHSYMBOLSA,
+       PL_MISCMATHSYMBOLSB,
+       PL_MISCPICTOGRAPHS,
+       PL_MISCSYMBOLS,
+       PL_MISCTECHNICAL,
+       PL_MLYM,
+       PL_MN,
+       PL_MODI,
+       PL_MODIFIERLETTERS,
+       PL_MODIFIERTONELETTERS,
+       PL_MONG,
+       PL_MONGOLIANSUP,
+       PL_MRO,
+       PL_MTEI,
+       PL_MULT,
+       PL_MUSIC,
+       PL_MYANMAREXTA,
+       PL_MYANMAREXTB,
+       PL_MYMR,
+       PL_N,
+       PL_NARB,
+       PL_NB,
+       PL_NBAT,
+       PL_NCHAR,
+       PL_NEWA,
+       PL_NFCQC__M,
+       PL_NFCQC__Y,
+       PL_NFDQC__Y,
+       PL_NFKCQC__N,
+       PL_NFKCQC__Y,
+       PL_NFKDQC__N,
+       PL_NKO,
+       PL_NL,
+       PL_NO,
+       PL_NSHU,
+       PL_NT__DI,
+       PL_NT__NU,
+       PL_NUMBERFORMS,
+       PL_NV__0,
+       PL_NV__1,
+       PL_NV__10,
+       PL_NV__100,
+       PL_NV__1000,
+       PL_NV__10000,
+       PL_NV__100000,
+       PL_NV__1000000,
+       PL_NV__100000000,
+       PL_NV__10000000000,
+       PL_NV__1000000000000,
+       PL_NV__11,
+       PL_NV__11_SLASH_12,
+       PL_NV__11_SLASH_2,
+       PL_NV__12,
+       PL_NV__13,
+       PL_NV__13_SLASH_2,
+       PL_NV__14,
+       PL_NV__15,
+       PL_NV__15_SLASH_2,
+       PL_NV__16,
+       PL_NV__17,
+       PL_NV__17_SLASH_2,
+       PL_NV__18,
+       PL_NV__19,
+       PL_NV__1_SLASH_10,
+       PL_NV__1_SLASH_12,
+       PL_NV__1_SLASH_16,
+       PL_NV__1_SLASH_160,
+       PL_NV__1_SLASH_2,
+       PL_NV__1_SLASH_20,
+       PL_NV__1_SLASH_3,
+       PL_NV__1_SLASH_4,
+       PL_NV__1_SLASH_40,
+       PL_NV__1_SLASH_5,
+       PL_NV__1_SLASH_6,
+       PL_NV__1_SLASH_7,
+       PL_NV__1_SLASH_8,
+       PL_NV__1_SLASH_9,
+       PL_NV__2,
+       PL_NV__20,
+       PL_NV__200,
+       PL_NV__2000,
+       PL_NV__20000,
+       PL_NV__200000,
+       PL_NV__21,
+       PL_NV__216000,
+       PL_NV__22,
+       PL_NV__23,
+       PL_NV__24,
+       PL_NV__25,
+       PL_NV__26,
+       PL_NV__27,
+       PL_NV__28,
+       PL_NV__29,
+       PL_NV__2_SLASH_3,
+       PL_NV__2_SLASH_5,
+       PL_NV__3,
+       PL_NV__30,
+       PL_NV__300,
+       PL_NV__3000,
+       PL_NV__30000,
+       PL_NV__300000,
+       PL_NV__31,
+       PL_NV__32,
+       PL_NV__33,
+       PL_NV__34,
+       PL_NV__35,
+       PL_NV__36,
+       PL_NV__37,
+       PL_NV__38,
+       PL_NV__39,
+       PL_NV__3_SLASH_16,
+       PL_NV__3_SLASH_2,
+       PL_NV__3_SLASH_20,
+       PL_NV__3_SLASH_4,
+       PL_NV__3_SLASH_5,
+       PL_NV__3_SLASH_8,
+       PL_NV__3_SLASH_80,
+       PL_NV__4,
+       PL_NV__40,
+       PL_NV__400,
+       PL_NV__4000,
+       PL_NV__40000,
+       PL_NV__400000,
+       PL_NV__41,
+       PL_NV__42,
+       PL_NV__43,
+       PL_NV__432000,
+       PL_NV__44,
+       PL_NV__45,
+       PL_NV__46,
+       PL_NV__47,
+       PL_NV__48,
+       PL_NV__49,
+       PL_NV__4_SLASH_5,
+       PL_NV__5,
+       PL_NV__50,
+       PL_NV__500,
+       PL_NV__5000,
+       PL_NV__50000,
+       PL_NV__500000,
+       PL_NV__5_SLASH_12,
+       PL_NV__5_SLASH_2,
+       PL_NV__5_SLASH_6,
+       PL_NV__5_SLASH_8,
+       PL_NV__6,
+       PL_NV__60,
+       PL_NV__600,
+       PL_NV__6000,
+       PL_NV__60000,
+       PL_NV__600000,
+       PL_NV__7,
+       PL_NV__70,
+       PL_NV__700,
+       PL_NV__7000,
+       PL_NV__70000,
+       PL_NV__700000,
+       PL_NV__7_SLASH_12,
+       PL_NV__7_SLASH_2,
+       PL_NV__7_SLASH_8,
+       PL_NV__8,
+       PL_NV__80,
+       PL_NV__800,
+       PL_NV__8000,
+       PL_NV__80000,
+       PL_NV__800000,
+       PL_NV__9,
+       PL_NV__90,
+       PL_NV__900,
+       PL_NV__9000,
+       PL_NV__90000,
+       PL_NV__900000,
+       PL_NV__9_SLASH_2,
+       PL_NV__NAN,
+       PL_NV___MINUS_1_SLASH_2,
+       PL_OCR,
+       PL_OGAM,
+       PL_OLCK,
+       PL_ORKH,
+       PL_ORNAMENTALDINGBATS,
+       PL_ORYA,
+       PL_OSGE,
+       PL_OSMA,
+       PL_P,
+       PL_PALM,
+       PL_PATSYN,
+       PL_PATWS,
+       PL_PAUC,
+       PL_PC,
+       PL_PCM,
+       PL_PD,
+       PL_PE,
+       PL_PERM,
+       PL_PF,
+       PL_PHAG,
+       PL_PHAISTOS,
+       PL_PHLI,
+       PL_PHLP,
+       PL_PHNX,
+       PL_PHONETICEXT,
+       PL_PHONETICEXTSUP,
+       PL_PI,
+       PL_PLAYINGCARDS,
+       PL_PO,
+       PL_POSIXALNUM,
+       PL_POSIXALPHA,
+       PL_POSIXBLANK,
+       PL_POSIXCNTRL,
+       PL_POSIXDIGIT,
+       PL_POSIXGRAPH,
+       PL_POSIXLOWER,
+       PL_POSIXPRINT,
+       PL_POSIXPUNCT,
+       PL_POSIXSPACE,
+       PL_POSIXUPPER,
+       PL_POSIXWORD,
+       PL_POSIXXDIGIT,
+       PL_PRTI,
+       PL_PS,
+       PL_PUA,
+       PL_QAAI,
+       PL_QMARK,
+       PL_RADICAL,
+       PL_RI,
+       PL_RJNG,
+       PL_RUMI,
+       PL_RUNR,
+       PL_S,
+       PL_SAMR,
+       PL_SARB,
+       PL_SAUR,
+       PL_SB__AT,
+       PL_SB__CL,
+       PL_SB__EX,
+       PL_SB__FO,
+       PL_SB__LE,
+       PL_SB__LO,
+       PL_SB__SC,
+       PL_SB__SE,
+       PL_SB__SP,
+       PL_SB__ST,
+       PL_SB__UP,
+       PL_SB__XX,
+       PL_SC,
+       PL_SC__ADLM,
+       PL_SC__ARAB,
+       PL_SC__ARMN,
+       PL_SC__BENG,
+       PL_SC__BOPO,
+       PL_SC__BUGI,
+       PL_SC__BUHD,
+       PL_SC__CAKM,
+       PL_SC__COPT,
+       PL_SC__CPRT,
+       PL_SC__CYRL,
+       PL_SC__DEVA,
+       PL_SC__DUPL,
+       PL_SC__GEOR,
+       PL_SC__GLAG,
+       PL_SC__GRAN,
+       PL_SC__GREK,
+       PL_SC__GUJR,
+       PL_SC__GURU,
+       PL_SC__HAN,
+       PL_SC__HANG,
+       PL_SC__HANO,
+       PL_SC__HIRA,
+       PL_SC__JAVA,
+       PL_SC__KALI,
+       PL_SC__KANA,
+       PL_SC__KHOJ,
+       PL_SC__KNDA,
+       PL_SC__KTHI,
+       PL_SC__LATN,
+       PL_SC__LIMB,
+       PL_SC__LINA,
+       PL_SC__LINB,
+       PL_SC__MAHJ,
+       PL_SC__MAND,
+       PL_SC__MANI,
+       PL_SC__MLYM,
+       PL_SC__MODI,
+       PL_SC__MONG,
+       PL_SC__MULT,
+       PL_SC__MYMR,
+       PL_SC__ORYA,
+       PL_SC__PERM,
+       PL_SC__PHAG,
+       PL_SC__PHLP,
+       PL_SC__QAAI,
+       PL_SC__SHRD,
+       PL_SC__SIND,
+       PL_SC__SINH,
+       PL_SC__SYLO,
+       PL_SC__SYRC,
+       PL_SC__TAGB,
+       PL_SC__TAKR,
+       PL_SC__TALE,
+       PL_SC__TAML,
+       PL_SC__TELU,
+       PL_SC__TGLG,
+       PL_SC__THAA,
+       PL_SC__TIRH,
+       PL_SC__YI,
+       PL_SC__ZYYY,
+       PL_SD,
+       PL_SGNW,
+       PL_SHAW,
+       PL_SHORTHANDFORMATCONTROLS,
+       PL_SHRD,
+       PL_SIDD,
+       PL_SIND,
+       PL_SINH,
+       PL_SINHALAARCHAICNUMBERS,
+       PL_SK,
+       PL_SM,
+       PL_SMALLFORMS,
+       PL_SO,
+       PL_SORA,
+       PL_SOYO,
+       PL_SPECIALS,
+       PL_STERM,
+       PL_SUND,
+       PL_SUNDANESESUP,
+       PL_SUPARROWSA,
+       PL_SUPARROWSB,
+       PL_SUPARROWSC,
+       PL_SUPERANDSUB,
+       PL_SUPMATHOPERATORS,
+       PL_SUPPUAA,
+       PL_SUPPUAB,
+       PL_SUPPUNCTUATION,
+       PL_SUPSYMBOLSANDPICTOGRAPHS,
+       PL_SUTTONSIGNWRITING,
+       PL_SYLO,
+       PL_SYRC,
+       PL_SYRIACSUP,
+       PL_TAGB,
+       PL_TAGS,
+       PL_TAIXUANJING,
+       PL_TAKR,
+       PL_TALE,
+       PL_TALU,
+       PL_TAML,
+       PL_TANG,
+       PL_TANGUTCOMPONENTS,
+       PL_TAVT,
+       PL_TELU,
+       PL_TERM,
+       PL_TFNG,
+       PL_TGLG,
+       PL_THAA,
+       PL_THAI,
+       PL_TIBT,
+       PL_TIRH,
+       PL_TRANSPORTANDMAP,
+       PL_UCAS,
+       PL_UCASEXT,
+       PL_UGAR,
+       PL_UIDEO,
+       PL_VAI,
+       PL_VEDICEXT,
+       PL_VERTICALFORMS,
+       PL_VERTSPACE,
+       PL_VO__R,
+       PL_VO__TR,
+       PL_VO__TU,
+       PL_VO__U,
+       PL_VS,
+       PL_VSSUP,
+       PL_WARA,
+       PL_WB__DQ,
+       PL_WB__EB,
+       PL_WB__EBG,
+       PL_WB__EX,
+       PL_WB__EXTEND,
+       PL_WB__FO,
+       PL_WB__GAZ,
+       PL_WB__KA,
+       PL_WB__LE,
+       PL_WB__MB,
+       PL_WB__ML,
+       PL_WB__MN,
+       PL_WB__NL,
+       PL_WB__NU,
+       PL_WB__SQ,
+       PL_WB__XX,
+       PL_XIDC,
+       PL_XIDS,
+       PL_XPEO,
+       PL_XPOSIXALNUM,
+       PL_XPOSIXALPHA,
+       PL_XPOSIXBLANK,
+       PL_XPOSIXCNTRL,
+       PL_XPOSIXDIGIT,
+       PL_XPOSIXGRAPH,
+       PL_XPOSIXLOWER,
+       PL_XPOSIXPRINT,
+       PL_XPOSIXPUNCT,
+       PL_XPOSIXSPACE,
+       PL_XPOSIXUPPER,
+       PL_XPOSIXWORD,
+       PL_XPOSIXXDIGIT,
+       PL_XSUX,
+       PL_YI,
+       PL_YIJING,
+       PL_YIRADICALS,
+       PL_YISYLLABLES,
+       PL_Z,
+       PL_ZANB,
+       PL_ZL,
+       PL_ZP,
+       PL_ZS,
+       PL_ZYYY,
+       PL_ZZZZ,
+       PL__PERL_ANY_FOLDS,
+       PL__PERL_CHARNAME_BEGIN,
+       PL__PERL_CHARNAME_CONTINUE,
+       PL__PERL_FOLDS_TO_MULTI_CHAR,
+       PL__PERL_IDCONT,
+       PL__PERL_IDSTART,
+       PL__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START,
+       PL__PERL_PROBLEMATIC_LOCALE_FOLDS,
+       PL__PERL_QUOTEMETA
+} binary_invlist_enum;
+
+#define MAX_UNI_KEYWORD_INDEX PL__PERL_QUOTEMETA
+
+#define PL_ADLAM   PL_ADLM
+#define PL_AGE__10_DOT_0   PL_AGE__10
+#define PL_AGE__1_DOT_1   PL_IN__1_DOT_1
+#define PL_AGE__2_DOT_0   PL_AGE__2
+#define PL_AGE__3_DOT_0   PL_AGE__3
+#define PL_AGE__4_DOT_0   PL_AGE__4
+#define PL_AGE__5_DOT_0   PL_AGE__5
+#define PL_AGE__6_DOT_0   PL_AGE__6
+#define PL_AGE__7_DOT_0   PL_AGE__7
+#define PL_AGE__8_DOT_0   PL_AGE__8
+#define PL_AGE__9_DOT_0   PL_AGE__9
+#define PL_AGE__UNASSIGNED   PL_AGE__NA
+#define PL_AGE__V100   PL_AGE__10
+#define PL_AGE__V11   PL_IN__1_DOT_1
+#define PL_AGE__V20   PL_AGE__2
+#define PL_AGE__V21   PL_AGE__2_DOT_1
+#define PL_AGE__V30   PL_AGE__3
+#define PL_AGE__V31   PL_AGE__3_DOT_1
+#define PL_AGE__V32   PL_AGE__3_DOT_2
+#define PL_AGE__V40   PL_AGE__4
+#define PL_AGE__V41   PL_AGE__4_DOT_1
+#define PL_AGE__V50   PL_AGE__5
+#define PL_AGE__V51   PL_AGE__5_DOT_1
+#define PL_AGE__V52   PL_AGE__5_DOT_2
+#define PL_AGE__V60   PL_AGE__6
+#define PL_AGE__V61   PL_AGE__6_DOT_1
+#define PL_AGE__V62   PL_AGE__6_DOT_2
+#define PL_AGE__V63   PL_AGE__6_DOT_3
+#define PL_AGE__V70   PL_AGE__7
+#define PL_AGE__V80   PL_AGE__8
+#define PL_AGE__V90   PL_AGE__9
+#define PL_AHEX   PL_POSIXXDIGIT
+#define PL_AHEX__F   -PL_POSIXXDIGIT
+#define PL_AHEX__FALSE   -PL_POSIXXDIGIT
+#define PL_AHEX__N   -PL_POSIXXDIGIT
+#define PL_AHEX__NO   -PL_POSIXXDIGIT
+#define PL_AHEX__T   PL_POSIXXDIGIT
+#define PL_AHEX__TRUE   PL_POSIXXDIGIT
+#define PL_AHEX__Y   PL_POSIXXDIGIT
+#define PL_AHEX__YES   PL_POSIXXDIGIT
+#define PL_ALCHEMICALSYMBOLS   PL_ALCHEMICAL
+#define PL_ALNUM   PL_XPOSIXALNUM
+#define PL_ALPHA   PL_XPOSIXALPHA
+#define PL_ALPHABETIC   PL_XPOSIXALPHA
+#define PL_ALPHABETIC   PL_XPOSIXALPHA
+#define PL_ALPHABETICPRESENTATIONFORMS   PL_ALPHABETICPF
+#define PL_ALPHABETIC__F   -PL_XPOSIXALPHA
+#define PL_ALPHABETIC__FALSE   -PL_XPOSIXALPHA
+#define PL_ALPHABETIC__N   -PL_XPOSIXALPHA
+#define PL_ALPHABETIC__NO   -PL_XPOSIXALPHA
+#define PL_ALPHABETIC__T   PL_XPOSIXALPHA
+#define PL_ALPHABETIC__TRUE   PL_XPOSIXALPHA
+#define PL_ALPHABETIC__Y   PL_XPOSIXALPHA
+#define PL_ALPHABETIC__YES   PL_XPOSIXALPHA
+#define PL_ALPHA__F   -PL_XPOSIXALPHA
+#define PL_ALPHA__FALSE   -PL_XPOSIXALPHA
+#define PL_ALPHA__N   -PL_XPOSIXALPHA
+#define PL_ALPHA__NO   -PL_XPOSIXALPHA
+#define PL_ALPHA__T   PL_XPOSIXALPHA
+#define PL_ALPHA__TRUE   PL_XPOSIXALPHA
+#define PL_ALPHA__Y   PL_XPOSIXALPHA
+#define PL_ALPHA__YES   PL_XPOSIXALPHA
+#define PL_ANATOLIANHIEROGLYPHS   PL_HLUW
+#define PL_ANCIENTGREEKMUSICALNOTATION   PL_ANCIENTGREEKMUSIC
+#define PL_ARABIC   PL_ARAB
+#define PL_ARABICEXTENDEDA   PL_ARABICEXTA
+#define PL_ARABICMATHEMATICALALPHABETICSYMBOLS   PL_ARABICMATH
+#define PL_ARABICPRESENTATIONFORMSA   PL_ARABICPFA
+#define PL_ARABICPRESENTATIONFORMSB   PL_ARABICPFB
+#define PL_ARABICSUPPLEMENT   PL_ARABICSUP
+#define PL_ARMENIAN   PL_ARMN
+#define PL_ASCIIHEXDIGIT   PL_POSIXXDIGIT
+#define PL_ASCIIHEXDIGIT   PL_POSIXXDIGIT
+#define PL_ASCIIHEXDIGIT__F   -PL_POSIXXDIGIT
+#define PL_ASCIIHEXDIGIT__FALSE   -PL_POSIXXDIGIT
+#define PL_ASCIIHEXDIGIT__N   -PL_POSIXXDIGIT
+#define PL_ASCIIHEXDIGIT__NO   -PL_POSIXXDIGIT
+#define PL_ASCIIHEXDIGIT__T   PL_POSIXXDIGIT
+#define PL_ASCIIHEXDIGIT__TRUE   PL_POSIXXDIGIT
+#define PL_ASCIIHEXDIGIT__Y   PL_POSIXXDIGIT
+#define PL_ASCIIHEXDIGIT__YES   PL_POSIXXDIGIT
+#define PL_AVESTAN   PL_AVST
+#define PL_BALINESE   PL_BALI
+#define PL_BAMUM   PL_BAMU
+#define PL_BAMUMSUPPLEMENT   PL_BAMUMSUP
+#define PL_BASICLATIN   PL_ASCII
+#define PL_BASSAVAH   PL_BASS
+#define PL_BATAK   PL_BATK
+#define PL_BC__ARABICLETTER   PL_BC__AL
+#define PL_BC__ARABICNUMBER   PL_BC__AN
+#define PL_BC__BOUNDARYNEUTRAL   PL_BC__BN
+#define PL_BC__COMMONSEPARATOR   PL_BC__CS
+#define PL_BC__EUROPEANNUMBER   PL_BC__EN
+#define PL_BC__EUROPEANSEPARATOR   PL_BC__ES
+#define PL_BC__EUROPEANTERMINATOR   PL_BC__ET
+#define PL_BC__FIRSTSTRONGISOLATE   PL_BC__FSI
+#define PL_BC__LEFTTORIGHT   PL_BC__L
+#define PL_BC__LEFTTORIGHTEMBEDDING   PL_BC__LRE
+#define PL_BC__LEFTTORIGHTISOLATE   PL_BC__LRI
+#define PL_BC__LEFTTORIGHTOVERRIDE   PL_BC__LRO
+#define PL_BC__NONSPACINGMARK   PL_BC__NSM
+#define PL_BC__OTHERNEUTRAL   PL_BC__ON
+#define PL_BC__PARAGRAPHSEPARATOR   PL_BC__B
+#define PL_BC__POPDIRECTIONALFORMAT   PL_BC__PDF
+#define PL_BC__POPDIRECTIONALISOLATE   PL_BC__PDI
+#define PL_BC__RIGHTTOLEFT   PL_BC__R
+#define PL_BC__RIGHTTOLEFTEMBEDDING   PL_BC__RLE
+#define PL_BC__RIGHTTOLEFTISOLATE   PL_BC__RLI
+#define PL_BC__RIGHTTOLEFTOVERRIDE   PL_BC__RLO
+#define PL_BC__SEGMENTSEPARATOR   PL_BC__S
+#define PL_BC__WHITESPACE   PL_BC__WS
+#define PL_BENGALI   PL_BENG
+#define PL_BHAIKSUKI   PL_BHKS
+#define PL_BIDICLASS__AL   PL_BC__AL
+#define PL_BIDICLASS__AN   PL_BC__AN
+#define PL_BIDICLASS__ARABICLETTER   PL_BC__AL
+#define PL_BIDICLASS__ARABICNUMBER   PL_BC__AN
+#define PL_BIDICLASS__B   PL_BC__B
+#define PL_BIDICLASS__BN   PL_BC__BN
+#define PL_BIDICLASS__BOUNDARYNEUTRAL   PL_BC__BN
+#define PL_BIDICLASS__COMMONSEPARATOR   PL_BC__CS
+#define PL_BIDICLASS__CS   PL_BC__CS
+#define PL_BIDICLASS__EN   PL_BC__EN
+#define PL_BIDICLASS__ES   PL_BC__ES
+#define PL_BIDICLASS__ET   PL_BC__ET
+#define PL_BIDICLASS__EUROPEANNUMBER   PL_BC__EN
+#define PL_BIDICLASS__EUROPEANSEPARATOR   PL_BC__ES
+#define PL_BIDICLASS__EUROPEANTERMINATOR   PL_BC__ET
+#define PL_BIDICLASS__FIRSTSTRONGISOLATE   PL_BC__FSI
+#define PL_BIDICLASS__FSI   PL_BC__FSI
+#define PL_BIDICLASS__L   PL_BC__L
+#define PL_BIDICLASS__LEFTTORIGHT   PL_BC__L
+#define PL_BIDICLASS__LEFTTORIGHTEMBEDDING   PL_BC__LRE
+#define PL_BIDICLASS__LEFTTORIGHTISOLATE   PL_BC__LRI
+#define PL_BIDICLASS__LEFTTORIGHTOVERRIDE   PL_BC__LRO
+#define PL_BIDICLASS__LRE   PL_BC__LRE
+#define PL_BIDICLASS__LRI   PL_BC__LRI
+#define PL_BIDICLASS__LRO   PL_BC__LRO
+#define PL_BIDICLASS__NONSPACINGMARK   PL_BC__NSM
+#define PL_BIDICLASS__NSM   PL_BC__NSM
+#define PL_BIDICLASS__ON   PL_BC__ON
+#define PL_BIDICLASS__OTHERNEUTRAL   PL_BC__ON
+#define PL_BIDICLASS__PARAGRAPHSEPARATOR   PL_BC__B
+#define PL_BIDICLASS__PDF   PL_BC__PDF
+#define PL_BIDICLASS__PDI   PL_BC__PDI
+#define PL_BIDICLASS__POPDIRECTIONALFORMAT   PL_BC__PDF
+#define PL_BIDICLASS__POPDIRECTIONALISOLATE   PL_BC__PDI
+#define PL_BIDICLASS__R   PL_BC__R
+#define PL_BIDICLASS__RIGHTTOLEFT   PL_BC__R
+#define PL_BIDICLASS__RIGHTTOLEFTEMBEDDING   PL_BC__RLE
+#define PL_BIDICLASS__RIGHTTOLEFTISOLATE   PL_BC__RLI
+#define PL_BIDICLASS__RIGHTTOLEFTOVERRIDE   PL_BC__RLO
+#define PL_BIDICLASS__RLE   PL_BC__RLE
+#define PL_BIDICLASS__RLI   PL_BC__RLI
+#define PL_BIDICLASS__RLO   PL_BC__RLO
+#define PL_BIDICLASS__S   PL_BC__S
+#define PL_BIDICLASS__SEGMENTSEPARATOR   PL_BC__S
+#define PL_BIDICLASS__WHITESPACE   PL_BC__WS
+#define PL_BIDICLASS__WS   PL_BC__WS
+#define PL_BIDICONTROL   PL_BIDIC
+#define PL_BIDICONTROL   PL_BIDIC
+#define PL_BIDICONTROL__F   -PL_BIDIC
+#define PL_BIDICONTROL__FALSE   -PL_BIDIC
+#define PL_BIDICONTROL__N   -PL_BIDIC
+#define PL_BIDICONTROL__NO   -PL_BIDIC
+#define PL_BIDICONTROL__T   PL_BIDIC
+#define PL_BIDICONTROL__TRUE   PL_BIDIC
+#define PL_BIDICONTROL__Y   PL_BIDIC
+#define PL_BIDICONTROL__YES   PL_BIDIC
+#define PL_BIDIC__F   -PL_BIDIC
+#define PL_BIDIC__FALSE   -PL_BIDIC
+#define PL_BIDIC__N   -PL_BIDIC
+#define PL_BIDIC__NO   -PL_BIDIC
+#define PL_BIDIC__T   PL_BIDIC
+#define PL_BIDIC__TRUE   PL_BIDIC
+#define PL_BIDIC__Y   PL_BIDIC
+#define PL_BIDIC__YES   PL_BIDIC
+#define PL_BIDIMIRRORED   PL_BIDIM
+#define PL_BIDIMIRRORED   PL_BIDIM
+#define PL_BIDIMIRRORED__F   -PL_BIDIM
+#define PL_BIDIMIRRORED__FALSE   -PL_BIDIM
+#define PL_BIDIMIRRORED__N   -PL_BIDIM
+#define PL_BIDIMIRRORED__NO   -PL_BIDIM
+#define PL_BIDIMIRRORED__T   PL_BIDIM
+#define PL_BIDIMIRRORED__TRUE   PL_BIDIM
+#define PL_BIDIMIRRORED__Y   PL_BIDIM
+#define PL_BIDIMIRRORED__YES   PL_BIDIM
+#define PL_BIDIM__F   -PL_BIDIM
+#define PL_BIDIM__FALSE   -PL_BIDIM
+#define PL_BIDIM__N   -PL_BIDIM
+#define PL_BIDIM__NO   -PL_BIDIM
+#define PL_BIDIM__T   PL_BIDIM
+#define PL_BIDIM__TRUE   PL_BIDIM
+#define PL_BIDIM__Y   PL_BIDIM
+#define PL_BIDIM__YES   PL_BIDIM
+#define PL_BIDIPAIREDBRACKETTYPE__C   PL_BPT__C
+#define PL_BIDIPAIREDBRACKETTYPE__CLOSE   PL_BPT__C
+#define PL_BIDIPAIREDBRACKETTYPE__N   PL_BPT__N
+#define PL_BIDIPAIREDBRACKETTYPE__NONE   PL_BPT__N
+#define PL_BIDIPAIREDBRACKETTYPE__O   PL_BPT__O
+#define PL_BIDIPAIREDBRACKETTYPE__OPEN   PL_BPT__O
+#define PL_BLANK   PL_XPOSIXBLANK
+#define PL_BLK__ADLAM   PL_INADLAM
+#define PL_BLK__AEGEANNUMBERS   PL_AEGEANNUMBERS
+#define PL_BLK__AHOM   PL_INAHOM
+#define PL_BLK__ALCHEMICAL   PL_ALCHEMICAL
+#define PL_BLK__ALCHEMICALSYMBOLS   PL_ALCHEMICAL
+#define PL_BLK__ALPHABETICPF   PL_ALPHABETICPF
+#define PL_BLK__ALPHABETICPRESENTATIONFORMS   PL_ALPHABETICPF
+#define PL_BLK__ANATOLIANHIEROGLYPHS   PL_INANATOLIANHIEROGLYPHS
+#define PL_BLK__ANCIENTGREEKMUSIC   PL_ANCIENTGREEKMUSIC
+#define PL_BLK__ANCIENTGREEKMUSICALNOTATION   PL_ANCIENTGREEKMUSIC
+#define PL_BLK__ANCIENTGREEKNUMBERS   PL_ANCIENTGREEKNUMBERS
+#define PL_BLK__ANCIENTSYMBOLS   PL_ANCIENTSYMBOLS
+#define PL_BLK__ARABIC   PL_INARABIC
+#define PL_BLK__ARABICEXTA   PL_ARABICEXTA
+#define PL_BLK__ARABICEXTENDEDA   PL_ARABICEXTA
+#define PL_BLK__ARABICMATH   PL_ARABICMATH
+#define PL_BLK__ARABICMATHEMATICALALPHABETICSYMBOLS   PL_ARABICMATH
+#define PL_BLK__ARABICPFA   PL_ARABICPFA
+#define PL_BLK__ARABICPFB   PL_ARABICPFB
+#define PL_BLK__ARABICPRESENTATIONFORMSA   PL_ARABICPFA
+#define PL_BLK__ARABICPRESENTATIONFORMSB   PL_ARABICPFB
+#define PL_BLK__ARABICSUP   PL_ARABICSUP
+#define PL_BLK__ARABICSUPPLEMENT   PL_ARABICSUP
+#define PL_BLK__ARMENIAN   PL_INARMENIAN
+#define PL_BLK__ARROWS   PL_ARROWS
+#define PL_BLK__ASCII   PL_ASCII
+#define PL_BLK__AVESTAN   PL_INAVESTAN
+#define PL_BLK__BALINESE   PL_INBALINESE
+#define PL_BLK__BAMUM   PL_INBAMUM
+#define PL_BLK__BAMUMSUP   PL_BAMUMSUP
+#define PL_BLK__BAMUMSUPPLEMENT   PL_BAMUMSUP
+#define PL_BLK__BASICLATIN   PL_ASCII
+#define PL_BLK__BASSAVAH   PL_INBASSAVAH
+#define PL_BLK__BATAK   PL_INBATAK
+#define PL_BLK__BENGALI   PL_INBENGALI
+#define PL_BLK__BHAIKSUKI   PL_INBHAIKSUKI
+#define PL_BLK__BLOCKELEMENTS   PL_BLOCKELEMENTS
+#define PL_BLK__BOPOMOFO   PL_INBOPOMOFO
+#define PL_BLK__BOPOMOFOEXT   PL_BOPOMOFOEXT
+#define PL_BLK__BOPOMOFOEXTENDED   PL_BOPOMOFOEXT
+#define PL_BLK__BOXDRAWING   PL_BOXDRAWING
+#define PL_BLK__BRAHMI   PL_INBRAHMI
+#define PL_BLK__BRAILLE   PL_BRAI
+#define PL_BLK__BRAILLEPATTERNS   PL_BRAI
+#define PL_BLK__BUGINESE   PL_INBUGINESE
+#define PL_BLK__BUHID   PL_INBUHID
+#define PL_BLK__BYZANTINEMUSIC   PL_BYZANTINEMUSIC
+#define PL_BLK__BYZANTINEMUSICALSYMBOLS   PL_BYZANTINEMUSIC
+#define PL_BLK__CANADIANSYLLABICS   PL_UCAS
+#define PL_BLK__CARIAN   PL_INCARIAN
+#define PL_BLK__CAUCASIANALBANIAN   PL_INCAUCASIANALBANIAN
+#define PL_BLK__CHAKMA   PL_INCHAKMA
+#define PL_BLK__CHAM   PL_INCHAM
+#define PL_BLK__CHEROKEE   PL_INCHEROKEE
+#define PL_BLK__CHEROKEESUP   PL_CHEROKEESUP
+#define PL_BLK__CHEROKEESUPPLEMENT   PL_CHEROKEESUP
+#define PL_BLK__CJK   PL_CJK
+#define PL_BLK__CJKCOMPAT   PL_CJKCOMPAT
+#define PL_BLK__CJKCOMPATFORMS   PL_CJKCOMPATFORMS
+#define PL_BLK__CJKCOMPATIBILITY   PL_CJKCOMPAT
+#define PL_BLK__CJKCOMPATIBILITYFORMS   PL_CJKCOMPATFORMS
+#define PL_BLK__CJKCOMPATIBILITYIDEOGRAPHS   PL_CJKCOMPATIDEOGRAPHS
+#define PL_BLK__CJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT   PL_CJKCOMPATIDEOGRAPHSSUP
+#define PL_BLK__CJKCOMPATIDEOGRAPHS   PL_CJKCOMPATIDEOGRAPHS
+#define PL_BLK__CJKCOMPATIDEOGRAPHSSUP   PL_CJKCOMPATIDEOGRAPHSSUP
+#define PL_BLK__CJKEXTA   PL_CJKEXTA
+#define PL_BLK__CJKEXTB   PL_CJKEXTB
+#define PL_BLK__CJKEXTC   PL_CJKEXTC
+#define PL_BLK__CJKEXTD   PL_CJKEXTD
+#define PL_BLK__CJKEXTE   PL_CJKEXTE
+#define PL_BLK__CJKEXTF   PL_CJKEXTF
+#define PL_BLK__CJKRADICALSSUP   PL_CJKRADICALSSUP
+#define PL_BLK__CJKRADICALSSUPPLEMENT   PL_CJKRADICALSSUP
+#define PL_BLK__CJKSTROKES   PL_CJKSTROKES
+#define PL_BLK__CJKSYMBOLS   PL_CJKSYMBOLS
+#define PL_BLK__CJKSYMBOLSANDPUNCTUATION   PL_CJKSYMBOLS
+#define PL_BLK__CJKUNIFIEDIDEOGRAPHS   PL_CJK
+#define PL_BLK__CJKUNIFIEDIDEOGRAPHSEXTENSIONA   PL_CJKEXTA
+#define PL_BLK__CJKUNIFIEDIDEOGRAPHSEXTENSIONB   PL_CJKEXTB
+#define PL_BLK__CJKUNIFIEDIDEOGRAPHSEXTENSIONC   PL_CJKEXTC
+#define PL_BLK__CJKUNIFIEDIDEOGRAPHSEXTENSIOND   PL_CJKEXTD
+#define PL_BLK__CJKUNIFIEDIDEOGRAPHSEXTENSIONE   PL_CJKEXTE
+#define PL_BLK__CJKUNIFIEDIDEOGRAPHSEXTENSIONF   PL_CJKEXTF
+#define PL_BLK__COMBININGDIACRITICALMARKS   PL_DIACRITICALS
+#define PL_BLK__COMBININGDIACRITICALMARKSEXTENDED   PL_DIACRITICALSEXT
+#define PL_BLK__COMBININGDIACRITICALMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_BLK__COMBININGDIACRITICALMARKSSUPPLEMENT   PL_DIACRITICALSSUP
+#define PL_BLK__COMBININGHALFMARKS   PL_HALFMARKS
+#define PL_BLK__COMBININGMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_BLK__COMMONINDICNUMBERFORMS   PL_INDICNUMBERFORMS
+#define PL_BLK__COMPATJAMO   PL_COMPATJAMO
+#define PL_BLK__CONTROLPICTURES   PL_CONTROLPICTURES
+#define PL_BLK__COPTIC   PL_INCOPTIC
+#define PL_BLK__COPTICEPACTNUMBERS   PL_COPTICEPACTNUMBERS
+#define PL_BLK__COUNTINGROD   PL_COUNTINGROD
+#define PL_BLK__COUNTINGRODNUMERALS   PL_COUNTINGROD
+#define PL_BLK__CUNEIFORM   PL_INCUNEIFORM
+#define PL_BLK__CUNEIFORMNUMBERS   PL_CUNEIFORMNUMBERS
+#define PL_BLK__CUNEIFORMNUMBERSANDPUNCTUATION   PL_CUNEIFORMNUMBERS
+#define PL_BLK__CURRENCYSYMBOLS   PL_CURRENCYSYMBOLS
+#define PL_BLK__CYPRIOTSYLLABARY   PL_CYPRIOTSYLLABARY
+#define PL_BLK__CYRILLIC   PL_INCYRILLIC
+#define PL_BLK__CYRILLICEXTA   PL_CYRILLICEXTA
+#define PL_BLK__CYRILLICEXTB   PL_CYRILLICEXTB
+#define PL_BLK__CYRILLICEXTC   PL_CYRILLICEXTC
+#define PL_BLK__CYRILLICEXTENDEDA   PL_CYRILLICEXTA
+#define PL_BLK__CYRILLICEXTENDEDB   PL_CYRILLICEXTB
+#define PL_BLK__CYRILLICEXTENDEDC   PL_CYRILLICEXTC
+#define PL_BLK__CYRILLICSUP   PL_CYRILLICSUP
+#define PL_BLK__CYRILLICSUPPLEMENT   PL_CYRILLICSUP
+#define PL_BLK__CYRILLICSUPPLEMENTARY   PL_CYRILLICSUP
+#define PL_BLK__DESERET   PL_DSRT
+#define PL_BLK__DEVANAGARI   PL_INDEVANAGARI
+#define PL_BLK__DEVANAGARIEXT   PL_DEVANAGARIEXT
+#define PL_BLK__DEVANAGARIEXTENDED   PL_DEVANAGARIEXT
+#define PL_BLK__DIACRITICALS   PL_DIACRITICALS
+#define PL_BLK__DIACRITICALSEXT   PL_DIACRITICALSEXT
+#define PL_BLK__DIACRITICALSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_BLK__DIACRITICALSSUP   PL_DIACRITICALSSUP
+#define PL_BLK__DINGBATS   PL_DINGBATS
+#define PL_BLK__DOMINO   PL_DOMINO
+#define PL_BLK__DOMINOTILES   PL_DOMINO
+#define PL_BLK__DUPLOYAN   PL_INDUPLOYAN
+#define PL_BLK__EARLYDYNASTICCUNEIFORM   PL_EARLYDYNASTICCUNEIFORM
+#define PL_BLK__EGYPTIANHIEROGLYPHS   PL_INEGYPTIANHIEROGLYPHS
+#define PL_BLK__ELBASAN   PL_INELBASAN
+#define PL_BLK__EMOTICONS   PL_EMOTICONS
+#define PL_BLK__ENCLOSEDALPHANUM   PL_ENCLOSEDALPHANUM
+#define PL_BLK__ENCLOSEDALPHANUMERICS   PL_ENCLOSEDALPHANUM
+#define PL_BLK__ENCLOSEDALPHANUMERICSUPPLEMENT   PL_ENCLOSEDALPHANUMSUP
+#define PL_BLK__ENCLOSEDALPHANUMSUP   PL_ENCLOSEDALPHANUMSUP
+#define PL_BLK__ENCLOSEDCJK   PL_ENCLOSEDCJK
+#define PL_BLK__ENCLOSEDCJKLETTERSANDMONTHS   PL_ENCLOSEDCJK
+#define PL_BLK__ENCLOSEDIDEOGRAPHICSUP   PL_ENCLOSEDIDEOGRAPHICSUP
+#define PL_BLK__ENCLOSEDIDEOGRAPHICSUPPLEMENT   PL_ENCLOSEDIDEOGRAPHICSUP
+#define PL_BLK__ETHIOPIC   PL_INETHIOPIC
+#define PL_BLK__ETHIOPICEXT   PL_ETHIOPICEXT
+#define PL_BLK__ETHIOPICEXTA   PL_ETHIOPICEXTA
+#define PL_BLK__ETHIOPICEXTENDED   PL_ETHIOPICEXT
+#define PL_BLK__ETHIOPICEXTENDEDA   PL_ETHIOPICEXTA
+#define PL_BLK__ETHIOPICSUP   PL_ETHIOPICSUP
+#define PL_BLK__ETHIOPICSUPPLEMENT   PL_ETHIOPICSUP
+#define PL_BLK__GENERALPUNCTUATION   PL_INPUNCTUATION
+#define PL_BLK__GEOMETRICSHAPES   PL_GEOMETRICSHAPES
+#define PL_BLK__GEOMETRICSHAPESEXT   PL_GEOMETRICSHAPESEXT
+#define PL_BLK__GEOMETRICSHAPESEXTENDED   PL_GEOMETRICSHAPESEXT
+#define PL_BLK__GEORGIAN   PL_INGEORGIAN
+#define PL_BLK__GEORGIANSUP   PL_GEORGIANSUP
+#define PL_BLK__GEORGIANSUPPLEMENT   PL_GEORGIANSUP
+#define PL_BLK__GLAGOLITIC   PL_INGLAGOLITIC
+#define PL_BLK__GLAGOLITICSUP   PL_GLAGOLITICSUP
+#define PL_BLK__GLAGOLITICSUPPLEMENT   PL_GLAGOLITICSUP
+#define PL_BLK__GOTHIC   PL_INGOTHIC
+#define PL_BLK__GRANTHA   PL_INGRANTHA
+#define PL_BLK__GREEK   PL_INGREEK
+#define PL_BLK__GREEKANDCOPTIC   PL_INGREEK
+#define PL_BLK__GREEKEXT   PL_GREEKEXT
+#define PL_BLK__GREEKEXTENDED   PL_GREEKEXT
+#define PL_BLK__GUJARATI   PL_INGUJARATI
+#define PL_BLK__GURMUKHI   PL_INGURMUKHI
+#define PL_BLK__HALFANDFULLFORMS   PL_HALFANDFULLFORMS
+#define PL_BLK__HALFMARKS   PL_HALFMARKS
+#define PL_BLK__HALFWIDTHANDFULLWIDTHFORMS   PL_HALFANDFULLFORMS
+#define PL_BLK__HANGUL   PL_INHANGUL
+#define PL_BLK__HANGULCOMPATIBILITYJAMO   PL_COMPATJAMO
+#define PL_BLK__HANGULJAMO   PL_JAMO
+#define PL_BLK__HANGULJAMOEXTENDEDA   PL_JAMOEXTA
+#define PL_BLK__HANGULJAMOEXTENDEDB   PL_JAMOEXTB
+#define PL_BLK__HANGULSYLLABLES   PL_INHANGUL
+#define PL_BLK__HANUNOO   PL_INHANUNOO
+#define PL_BLK__HATRAN   PL_INHATRAN
+#define PL_BLK__HEBREW   PL_INHEBREW
+#define PL_BLK__HIGHPRIVATEUSESURROGATES   PL_HIGHPUSURROGATES
+#define PL_BLK__HIGHPUSURROGATES   PL_HIGHPUSURROGATES
+#define PL_BLK__HIGHSURROGATES   PL_HIGHSURROGATES
+#define PL_BLK__HIRAGANA   PL_INHIRAGANA
+#define PL_BLK__IDC   PL_INIDC
+#define PL_BLK__IDEOGRAPHICDESCRIPTIONCHARACTERS   PL_INIDC
+#define PL_BLK__IDEOGRAPHICSYMBOLS   PL_IDEOGRAPHICSYMBOLS
+#define PL_BLK__IDEOGRAPHICSYMBOLSANDPUNCTUATION   PL_IDEOGRAPHICSYMBOLS
+#define PL_BLK__IMPERIALARAMAIC   PL_INIMPERIALARAMAIC
+#define PL_BLK__INDICNUMBERFORMS   PL_INDICNUMBERFORMS
+#define PL_BLK__INSCRIPTIONALPAHLAVI   PL_ININSCRIPTIONALPAHLAVI
+#define PL_BLK__INSCRIPTIONALPARTHIAN   PL_ININSCRIPTIONALPARTHIAN
+#define PL_BLK__IPAEXT   PL_IPAEXT
+#define PL_BLK__IPAEXTENSIONS   PL_IPAEXT
+#define PL_BLK__JAMO   PL_JAMO
+#define PL_BLK__JAMOEXTA   PL_JAMOEXTA
+#define PL_BLK__JAMOEXTB   PL_JAMOEXTB
+#define PL_BLK__JAVANESE   PL_INJAVANESE
+#define PL_BLK__KAITHI   PL_INKAITHI
+#define PL_BLK__KANAEXTA   PL_KANAEXTA
+#define PL_BLK__KANAEXTENDEDA   PL_KANAEXTA
+#define PL_BLK__KANASUP   PL_KANASUP
+#define PL_BLK__KANASUPPLEMENT   PL_KANASUP
+#define PL_BLK__KANBUN   PL_KANBUN
+#define PL_BLK__KANGXI   PL_KANGXI
+#define PL_BLK__KANGXIRADICALS   PL_KANGXI
+#define PL_BLK__KANNADA   PL_INKANNADA
+#define PL_BLK__KATAKANA   PL_INKATAKANA
+#define PL_BLK__KATAKANAEXT   PL_KATAKANAEXT
+#define PL_BLK__KATAKANAPHONETICEXTENSIONS   PL_KATAKANAEXT
+#define PL_BLK__KAYAHLI   PL_KALI
+#define PL_BLK__KHAROSHTHI   PL_INKHAROSHTHI
+#define PL_BLK__KHMER   PL_INKHMER
+#define PL_BLK__KHMERSYMBOLS   PL_KHMERSYMBOLS
+#define PL_BLK__KHOJKI   PL_INKHOJKI
+#define PL_BLK__KHUDAWADI   PL_INKHUDAWADI
+#define PL_BLK__LAO   PL_INLAO
+#define PL_BLK__LATIN1   PL_LATIN1
+#define PL_BLK__LATIN1SUP   PL_LATIN1
+#define PL_BLK__LATIN1SUPPLEMENT   PL_LATIN1
+#define PL_BLK__LATINEXTA   PL_LATINEXTA
+#define PL_BLK__LATINEXTADDITIONAL   PL_LATINEXTADDITIONAL
+#define PL_BLK__LATINEXTB   PL_LATINEXTB
+#define PL_BLK__LATINEXTC   PL_LATINEXTC
+#define PL_BLK__LATINEXTD   PL_LATINEXTD
+#define PL_BLK__LATINEXTE   PL_LATINEXTE
+#define PL_BLK__LATINEXTENDEDA   PL_LATINEXTA
+#define PL_BLK__LATINEXTENDEDADDITIONAL   PL_LATINEXTADDITIONAL
+#define PL_BLK__LATINEXTENDEDB   PL_LATINEXTB
+#define PL_BLK__LATINEXTENDEDC   PL_LATINEXTC
+#define PL_BLK__LATINEXTENDEDD   PL_LATINEXTD
+#define PL_BLK__LATINEXTENDEDE   PL_LATINEXTE
+#define PL_BLK__LEPCHA   PL_INLEPCHA
+#define PL_BLK__LETTERLIKESYMBOLS   PL_LETTERLIKESYMBOLS
+#define PL_BLK__LIMBU   PL_INLIMBU
+#define PL_BLK__LINEARA   PL_INLINEARA
+#define PL_BLK__LINEARBIDEOGRAMS   PL_LINEARBIDEOGRAMS
+#define PL_BLK__LINEARBSYLLABARY   PL_LINEARBSYLLABARY
+#define PL_BLK__LISU   PL_LISU
+#define PL_BLK__LOWSURROGATES   PL_LOWSURROGATES
+#define PL_BLK__LYCIAN   PL_INLYCIAN
+#define PL_BLK__LYDIAN   PL_INLYDIAN
+#define PL_BLK__MAHAJANI   PL_INMAHAJANI
+#define PL_BLK__MAHJONG   PL_MAHJONG
+#define PL_BLK__MAHJONGTILES   PL_MAHJONG
+#define PL_BLK__MALAYALAM   PL_INMALAYALAM
+#define PL_BLK__MANDAIC   PL_INMANDAIC
+#define PL_BLK__MANICHAEAN   PL_INMANICHAEAN
+#define PL_BLK__MARCHEN   PL_INMARCHEN
+#define PL_BLK__MASARAMGONDI   PL_INMASARAMGONDI
+#define PL_BLK__MATHALPHANUM   PL_MATHALPHANUM
+#define PL_BLK__MATHEMATICALALPHANUMERICSYMBOLS   PL_MATHALPHANUM
+#define PL_BLK__MATHEMATICALOPERATORS   PL_MATHOPERATORS
+#define PL_BLK__MATHOPERATORS   PL_MATHOPERATORS
+#define PL_BLK__MEETEIMAYEK   PL_INMEETEIMAYEK
+#define PL_BLK__MEETEIMAYEKEXT   PL_MEETEIMAYEKEXT
+#define PL_BLK__MEETEIMAYEKEXTENSIONS   PL_MEETEIMAYEKEXT
+#define PL_BLK__MENDEKIKAKUI   PL_INMENDEKIKAKUI
+#define PL_BLK__MEROITICCURSIVE   PL_INMEROITICCURSIVE
+#define PL_BLK__MEROITICHIEROGLYPHS   PL_MERO
+#define PL_BLK__MIAO   PL_INMIAO
+#define PL_BLK__MISCARROWS   PL_MISCARROWS
+#define PL_BLK__MISCELLANEOUSMATHEMATICALSYMBOLSA   PL_MISCMATHSYMBOLSA
+#define PL_BLK__MISCELLANEOUSMATHEMATICALSYMBOLSB   PL_MISCMATHSYMBOLSB
+#define PL_BLK__MISCELLANEOUSSYMBOLS   PL_MISCSYMBOLS
+#define PL_BLK__MISCELLANEOUSSYMBOLSANDARROWS   PL_MISCARROWS
+#define PL_BLK__MISCELLANEOUSSYMBOLSANDPICTOGRAPHS   PL_MISCPICTOGRAPHS
+#define PL_BLK__MISCELLANEOUSTECHNICAL   PL_MISCTECHNICAL
+#define PL_BLK__MISCMATHSYMBOLSA   PL_MISCMATHSYMBOLSA
+#define PL_BLK__MISCMATHSYMBOLSB   PL_MISCMATHSYMBOLSB
+#define PL_BLK__MISCPICTOGRAPHS   PL_MISCPICTOGRAPHS
+#define PL_BLK__MISCSYMBOLS   PL_MISCSYMBOLS
+#define PL_BLK__MISCTECHNICAL   PL_MISCTECHNICAL
+#define PL_BLK__MODI   PL_INMODI
+#define PL_BLK__MODIFIERLETTERS   PL_MODIFIERLETTERS
+#define PL_BLK__MODIFIERTONELETTERS   PL_MODIFIERTONELETTERS
+#define PL_BLK__MONGOLIAN   PL_INMONGOLIAN
+#define PL_BLK__MONGOLIANSUP   PL_MONGOLIANSUP
+#define PL_BLK__MONGOLIANSUPPLEMENT   PL_MONGOLIANSUP
+#define PL_BLK__MRO   PL_INMRO
+#define PL_BLK__MULTANI   PL_INMULTANI
+#define PL_BLK__MUSIC   PL_MUSIC
+#define PL_BLK__MUSICALSYMBOLS   PL_MUSIC
+#define PL_BLK__MYANMAR   PL_INMYANMAR
+#define PL_BLK__MYANMAREXTA   PL_MYANMAREXTA
+#define PL_BLK__MYANMAREXTB   PL_MYANMAREXTB
+#define PL_BLK__MYANMAREXTENDEDA   PL_MYANMAREXTA
+#define PL_BLK__MYANMAREXTENDEDB   PL_MYANMAREXTB
+#define PL_BLK__NABATAEAN   PL_INNABATAEAN
+#define PL_BLK__NB   PL_NB
+#define PL_BLK__NEWA   PL_INNEWA
+#define PL_BLK__NEWTAILUE   PL_INNEWTAILUE
+#define PL_BLK__NKO   PL_INNKO
+#define PL_BLK__NOBLOCK   PL_NB
+#define PL_BLK__NUMBERFORMS   PL_NUMBERFORMS
+#define PL_BLK__NUSHU   PL_INNUSHU
+#define PL_BLK__OCR   PL_OCR
+#define PL_BLK__OGHAM   PL_INOGHAM
+#define PL_BLK__OLCHIKI   PL_OLCK
+#define PL_BLK__OLDHUNGARIAN   PL_INOLDHUNGARIAN
+#define PL_BLK__OLDITALIC   PL_INOLDITALIC
+#define PL_BLK__OLDNORTHARABIAN   PL_NARB
+#define PL_BLK__OLDPERMIC   PL_INOLDPERMIC
+#define PL_BLK__OLDPERSIAN   PL_INOLDPERSIAN
+#define PL_BLK__OLDSOUTHARABIAN   PL_SARB
+#define PL_BLK__OLDTURKIC   PL_INOLDTURKIC
+#define PL_BLK__OPTICALCHARACTERRECOGNITION   PL_OCR
+#define PL_BLK__ORIYA   PL_INORIYA
+#define PL_BLK__ORNAMENTALDINGBATS   PL_ORNAMENTALDINGBATS
+#define PL_BLK__OSAGE   PL_INOSAGE
+#define PL_BLK__OSMANYA   PL_INOSMANYA
+#define PL_BLK__PAHAWHHMONG   PL_INPAHAWHHMONG
+#define PL_BLK__PALMYRENE   PL_PALM
+#define PL_BLK__PAUCINHAU   PL_INPAUCINHAU
+#define PL_BLK__PHAGSPA   PL_INPHAGSPA
+#define PL_BLK__PHAISTOS   PL_PHAISTOS
+#define PL_BLK__PHAISTOSDISC   PL_PHAISTOS
+#define PL_BLK__PHOENICIAN   PL_INPHOENICIAN
+#define PL_BLK__PHONETICEXT   PL_PHONETICEXT
+#define PL_BLK__PHONETICEXTENSIONS   PL_PHONETICEXT
+#define PL_BLK__PHONETICEXTENSIONSSUPPLEMENT   PL_PHONETICEXTSUP
+#define PL_BLK__PHONETICEXTSUP   PL_PHONETICEXTSUP
+#define PL_BLK__PLAYINGCARDS   PL_PLAYINGCARDS
+#define PL_BLK__PRIVATEUSE   PL_PUA
+#define PL_BLK__PRIVATEUSEAREA   PL_PUA
+#define PL_BLK__PSALTERPAHLAVI   PL_INPSALTERPAHLAVI
+#define PL_BLK__PUA   PL_PUA
+#define PL_BLK__PUNCTUATION   PL_INPUNCTUATION
+#define PL_BLK__REJANG   PL_INREJANG
+#define PL_BLK__RUMI   PL_RUMI
+#define PL_BLK__RUMINUMERALSYMBOLS   PL_RUMI
+#define PL_BLK__RUNIC   PL_INRUNIC
+#define PL_BLK__SAMARITAN   PL_INSAMARITAN
+#define PL_BLK__SAURASHTRA   PL_INSAURASHTRA
+#define PL_BLK__SHARADA   PL_INSHARADA
+#define PL_BLK__SHAVIAN   PL_SHAW
+#define PL_BLK__SHORTHANDFORMATCONTROLS   PL_SHORTHANDFORMATCONTROLS
+#define PL_BLK__SIDDHAM   PL_INSIDDHAM
+#define PL_BLK__SINHALA   PL_INSINHALA
+#define PL_BLK__SINHALAARCHAICNUMBERS   PL_SINHALAARCHAICNUMBERS
+#define PL_BLK__SMALLFORMS   PL_SMALLFORMS
+#define PL_BLK__SMALLFORMVARIANTS   PL_SMALLFORMS
+#define PL_BLK__SORASOMPENG   PL_INSORASOMPENG
+#define PL_BLK__SOYOMBO   PL_INSOYOMBO
+#define PL_BLK__SPACINGMODIFIERLETTERS   PL_MODIFIERLETTERS
+#define PL_BLK__SPECIALS   PL_SPECIALS
+#define PL_BLK__SUNDANESE   PL_INSUNDANESE
+#define PL_BLK__SUNDANESESUP   PL_SUNDANESESUP
+#define PL_BLK__SUNDANESESUPPLEMENT   PL_SUNDANESESUP
+#define PL_BLK__SUPARROWSA   PL_SUPARROWSA
+#define PL_BLK__SUPARROWSB   PL_SUPARROWSB
+#define PL_BLK__SUPARROWSC   PL_SUPARROWSC
+#define PL_BLK__SUPERANDSUB   PL_SUPERANDSUB
+#define PL_BLK__SUPERSCRIPTSANDSUBSCRIPTS   PL_SUPERANDSUB
+#define PL_BLK__SUPMATHOPERATORS   PL_SUPMATHOPERATORS
+#define PL_BLK__SUPPLEMENTALARROWSA   PL_SUPARROWSA
+#define PL_BLK__SUPPLEMENTALARROWSB   PL_SUPARROWSB
+#define PL_BLK__SUPPLEMENTALARROWSC   PL_SUPARROWSC
+#define PL_BLK__SUPPLEMENTALMATHEMATICALOPERATORS   PL_SUPMATHOPERATORS
+#define PL_BLK__SUPPLEMENTALPUNCTUATION   PL_SUPPUNCTUATION
+#define PL_BLK__SUPPLEMENTALSYMBOLSANDPICTOGRAPHS   PL_SUPSYMBOLSANDPICTOGRAPHS
+#define PL_BLK__SUPPLEMENTARYPRIVATEUSEAREAA   PL_SUPPUAA
+#define PL_BLK__SUPPLEMENTARYPRIVATEUSEAREAB   PL_SUPPUAB
+#define PL_BLK__SUPPUAA   PL_SUPPUAA
+#define PL_BLK__SUPPUAB   PL_SUPPUAB
+#define PL_BLK__SUPPUNCTUATION   PL_SUPPUNCTUATION
+#define PL_BLK__SUPSYMBOLSANDPICTOGRAPHS   PL_SUPSYMBOLSANDPICTOGRAPHS
+#define PL_BLK__SUTTONSIGNWRITING   PL_SUTTONSIGNWRITING
+#define PL_BLK__SYLOTINAGRI   PL_INSYLOTINAGRI
+#define PL_BLK__SYRIAC   PL_INSYRIAC
+#define PL_BLK__SYRIACSUP   PL_SYRIACSUP
+#define PL_BLK__SYRIACSUPPLEMENT   PL_SYRIACSUP
+#define PL_BLK__TAGALOG   PL_INTAGALOG
+#define PL_BLK__TAGBANWA   PL_INTAGBANWA
+#define PL_BLK__TAGS   PL_TAGS
+#define PL_BLK__TAILE   PL_INTAILE
+#define PL_BLK__TAITHAM   PL_INTAITHAM
+#define PL_BLK__TAIVIET   PL_INTAIVIET
+#define PL_BLK__TAIXUANJING   PL_TAIXUANJING
+#define PL_BLK__TAIXUANJINGSYMBOLS   PL_TAIXUANJING
+#define PL_BLK__TAKRI   PL_INTAKRI
+#define PL_BLK__TAMIL   PL_INTAMIL
+#define PL_BLK__TANGUT   PL_INTANGUT
+#define PL_BLK__TANGUTCOMPONENTS   PL_TANGUTCOMPONENTS
+#define PL_BLK__TELUGU   PL_INTELUGU
+#define PL_BLK__THAANA   PL_INTHAANA
+#define PL_BLK__THAI   PL_INTHAI
+#define PL_BLK__TIBETAN   PL_INTIBETAN
+#define PL_BLK__TIFINAGH   PL_INTIFINAGH
+#define PL_BLK__TIRHUTA   PL_INTIRHUTA
+#define PL_BLK__TRANSPORTANDMAP   PL_TRANSPORTANDMAP
+#define PL_BLK__TRANSPORTANDMAPSYMBOLS   PL_TRANSPORTANDMAP
+#define PL_BLK__UCAS   PL_UCAS
+#define PL_BLK__UCASEXT   PL_UCASEXT
+#define PL_BLK__UGARITIC   PL_INUGARITIC
+#define PL_BLK__UNIFIEDCANADIANABORIGINALSYLLABICS   PL_UCAS
+#define PL_BLK__UNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED   PL_UCASEXT
+#define PL_BLK__VAI   PL_INVAI
+#define PL_BLK__VARIATIONSELECTORS   PL_INVS
+#define PL_BLK__VARIATIONSELECTORSSUPPLEMENT   PL_VSSUP
+#define PL_BLK__VEDICEXT   PL_VEDICEXT
+#define PL_BLK__VEDICEXTENSIONS   PL_VEDICEXT
+#define PL_BLK__VERTICALFORMS   PL_VERTICALFORMS
+#define PL_BLK__VS   PL_INVS
+#define PL_BLK__VSSUP   PL_VSSUP
+#define PL_BLK__WARANGCITI   PL_INWARANGCITI
+#define PL_BLK__YIJING   PL_YIJING
+#define PL_BLK__YIJINGHEXAGRAMSYMBOLS   PL_YIJING
+#define PL_BLK__YIRADICALS   PL_YIRADICALS
+#define PL_BLK__YISYLLABLES   PL_YISYLLABLES
+#define PL_BLK__ZANABAZARSQUARE   PL_INZANABAZARSQUARE
+#define PL_BLOCK__ADLAM   PL_INADLAM
+#define PL_BLOCK__AEGEANNUMBERS   PL_AEGEANNUMBERS
+#define PL_BLOCK__AHOM   PL_INAHOM
+#define PL_BLOCK__ALCHEMICAL   PL_ALCHEMICAL
+#define PL_BLOCK__ALCHEMICALSYMBOLS   PL_ALCHEMICAL
+#define PL_BLOCK__ALPHABETICPF   PL_ALPHABETICPF
+#define PL_BLOCK__ALPHABETICPRESENTATIONFORMS   PL_ALPHABETICPF
+#define PL_BLOCK__ANATOLIANHIEROGLYPHS   PL_INANATOLIANHIEROGLYPHS
+#define PL_BLOCK__ANCIENTGREEKMUSIC   PL_ANCIENTGREEKMUSIC
+#define PL_BLOCK__ANCIENTGREEKMUSICALNOTATION   PL_ANCIENTGREEKMUSIC
+#define PL_BLOCK__ANCIENTGREEKNUMBERS   PL_ANCIENTGREEKNUMBERS
+#define PL_BLOCK__ANCIENTSYMBOLS   PL_ANCIENTSYMBOLS
+#define PL_BLOCK__ARABIC   PL_INARABIC
+#define PL_BLOCK__ARABICEXTA   PL_ARABICEXTA
+#define PL_BLOCK__ARABICEXTENDEDA   PL_ARABICEXTA
+#define PL_BLOCK__ARABICMATH   PL_ARABICMATH
+#define PL_BLOCK__ARABICMATHEMATICALALPHABETICSYMBOLS   PL_ARABICMATH
+#define PL_BLOCK__ARABICPFA   PL_ARABICPFA
+#define PL_BLOCK__ARABICPFB   PL_ARABICPFB
+#define PL_BLOCK__ARABICPRESENTATIONFORMSA   PL_ARABICPFA
+#define PL_BLOCK__ARABICPRESENTATIONFORMSB   PL_ARABICPFB
+#define PL_BLOCK__ARABICSUP   PL_ARABICSUP
+#define PL_BLOCK__ARABICSUPPLEMENT   PL_ARABICSUP
+#define PL_BLOCK__ARMENIAN   PL_INARMENIAN
+#define PL_BLOCK__ARROWS   PL_ARROWS
+#define PL_BLOCK__ASCII   PL_ASCII
+#define PL_BLOCK__AVESTAN   PL_INAVESTAN
+#define PL_BLOCK__BALINESE   PL_INBALINESE
+#define PL_BLOCK__BAMUM   PL_INBAMUM
+#define PL_BLOCK__BAMUMSUP   PL_BAMUMSUP
+#define PL_BLOCK__BAMUMSUPPLEMENT   PL_BAMUMSUP
+#define PL_BLOCK__BASICLATIN   PL_ASCII
+#define PL_BLOCK__BASSAVAH   PL_INBASSAVAH
+#define PL_BLOCK__BATAK   PL_INBATAK
+#define PL_BLOCK__BENGALI   PL_INBENGALI
+#define PL_BLOCK__BHAIKSUKI   PL_INBHAIKSUKI
+#define PL_BLOCK__BLOCKELEMENTS   PL_BLOCKELEMENTS
+#define PL_BLOCK__BOPOMOFO   PL_INBOPOMOFO
+#define PL_BLOCK__BOPOMOFOEXT   PL_BOPOMOFOEXT
+#define PL_BLOCK__BOPOMOFOEXTENDED   PL_BOPOMOFOEXT
+#define PL_BLOCK__BOXDRAWING   PL_BOXDRAWING
+#define PL_BLOCK__BRAHMI   PL_INBRAHMI
+#define PL_BLOCK__BRAILLE   PL_BRAI
+#define PL_BLOCK__BRAILLEPATTERNS   PL_BRAI
+#define PL_BLOCK__BUGINESE   PL_INBUGINESE
+#define PL_BLOCK__BUHID   PL_INBUHID
+#define PL_BLOCK__BYZANTINEMUSIC   PL_BYZANTINEMUSIC
+#define PL_BLOCK__BYZANTINEMUSICALSYMBOLS   PL_BYZANTINEMUSIC
+#define PL_BLOCK__CANADIANSYLLABICS   PL_UCAS
+#define PL_BLOCK__CARIAN   PL_INCARIAN
+#define PL_BLOCK__CAUCASIANALBANIAN   PL_INCAUCASIANALBANIAN
+#define PL_BLOCK__CHAKMA   PL_INCHAKMA
+#define PL_BLOCK__CHAM   PL_INCHAM
+#define PL_BLOCK__CHEROKEE   PL_INCHEROKEE
+#define PL_BLOCK__CHEROKEESUP   PL_CHEROKEESUP
+#define PL_BLOCK__CHEROKEESUPPLEMENT   PL_CHEROKEESUP
+#define PL_BLOCK__CJK   PL_CJK
+#define PL_BLOCK__CJKCOMPAT   PL_CJKCOMPAT
+#define PL_BLOCK__CJKCOMPATFORMS   PL_CJKCOMPATFORMS
+#define PL_BLOCK__CJKCOMPATIBILITY   PL_CJKCOMPAT
+#define PL_BLOCK__CJKCOMPATIBILITYFORMS   PL_CJKCOMPATFORMS
+#define PL_BLOCK__CJKCOMPATIBILITYIDEOGRAPHS   PL_CJKCOMPATIDEOGRAPHS
+#define PL_BLOCK__CJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT   PL_CJKCOMPATIDEOGRAPHSSUP
+#define PL_BLOCK__CJKCOMPATIDEOGRAPHS   PL_CJKCOMPATIDEOGRAPHS
+#define PL_BLOCK__CJKCOMPATIDEOGRAPHSSUP   PL_CJKCOMPATIDEOGRAPHSSUP
+#define PL_BLOCK__CJKEXTA   PL_CJKEXTA
+#define PL_BLOCK__CJKEXTB   PL_CJKEXTB
+#define PL_BLOCK__CJKEXTC   PL_CJKEXTC
+#define PL_BLOCK__CJKEXTD   PL_CJKEXTD
+#define PL_BLOCK__CJKEXTE   PL_CJKEXTE
+#define PL_BLOCK__CJKEXTF   PL_CJKEXTF
+#define PL_BLOCK__CJKRADICALSSUP   PL_CJKRADICALSSUP
+#define PL_BLOCK__CJKRADICALSSUPPLEMENT   PL_CJKRADICALSSUP
+#define PL_BLOCK__CJKSTROKES   PL_CJKSTROKES
+#define PL_BLOCK__CJKSYMBOLS   PL_CJKSYMBOLS
+#define PL_BLOCK__CJKSYMBOLSANDPUNCTUATION   PL_CJKSYMBOLS
+#define PL_BLOCK__CJKUNIFIEDIDEOGRAPHS   PL_CJK
+#define PL_BLOCK__CJKUNIFIEDIDEOGRAPHSEXTENSIONA   PL_CJKEXTA
+#define PL_BLOCK__CJKUNIFIEDIDEOGRAPHSEXTENSIONB   PL_CJKEXTB
+#define PL_BLOCK__CJKUNIFIEDIDEOGRAPHSEXTENSIONC   PL_CJKEXTC
+#define PL_BLOCK__CJKUNIFIEDIDEOGRAPHSEXTENSIOND   PL_CJKEXTD
+#define PL_BLOCK__CJKUNIFIEDIDEOGRAPHSEXTENSIONE   PL_CJKEXTE
+#define PL_BLOCK__CJKUNIFIEDIDEOGRAPHSEXTENSIONF   PL_CJKEXTF
+#define PL_BLOCK__COMBININGDIACRITICALMARKS   PL_DIACRITICALS
+#define PL_BLOCK__COMBININGDIACRITICALMARKSEXTENDED   PL_DIACRITICALSEXT
+#define PL_BLOCK__COMBININGDIACRITICALMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_BLOCK__COMBININGDIACRITICALMARKSSUPPLEMENT   PL_DIACRITICALSSUP
+#define PL_BLOCK__COMBININGHALFMARKS   PL_HALFMARKS
+#define PL_BLOCK__COMBININGMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_BLOCK__COMMONINDICNUMBERFORMS   PL_INDICNUMBERFORMS
+#define PL_BLOCK__COMPATJAMO   PL_COMPATJAMO
+#define PL_BLOCK__CONTROLPICTURES   PL_CONTROLPICTURES
+#define PL_BLOCK__COPTIC   PL_INCOPTIC
+#define PL_BLOCK__COPTICEPACTNUMBERS   PL_COPTICEPACTNUMBERS
+#define PL_BLOCK__COUNTINGROD   PL_COUNTINGROD
+#define PL_BLOCK__COUNTINGRODNUMERALS   PL_COUNTINGROD
+#define PL_BLOCK__CUNEIFORM   PL_INCUNEIFORM
+#define PL_BLOCK__CUNEIFORMNUMBERS   PL_CUNEIFORMNUMBERS
+#define PL_BLOCK__CUNEIFORMNUMBERSANDPUNCTUATION   PL_CUNEIFORMNUMBERS
+#define PL_BLOCK__CURRENCYSYMBOLS   PL_CURRENCYSYMBOLS
+#define PL_BLOCK__CYPRIOTSYLLABARY   PL_CYPRIOTSYLLABARY
+#define PL_BLOCK__CYRILLIC   PL_INCYRILLIC
+#define PL_BLOCK__CYRILLICEXTA   PL_CYRILLICEXTA
+#define PL_BLOCK__CYRILLICEXTB   PL_CYRILLICEXTB
+#define PL_BLOCK__CYRILLICEXTC   PL_CYRILLICEXTC
+#define PL_BLOCK__CYRILLICEXTENDEDA   PL_CYRILLICEXTA
+#define PL_BLOCK__CYRILLICEXTENDEDB   PL_CYRILLICEXTB
+#define PL_BLOCK__CYRILLICEXTENDEDC   PL_CYRILLICEXTC
+#define PL_BLOCK__CYRILLICSUP   PL_CYRILLICSUP
+#define PL_BLOCK__CYRILLICSUPPLEMENT   PL_CYRILLICSUP
+#define PL_BLOCK__CYRILLICSUPPLEMENTARY   PL_CYRILLICSUP
+#define PL_BLOCK__DESERET   PL_DSRT
+#define PL_BLOCK__DEVANAGARI   PL_INDEVANAGARI
+#define PL_BLOCK__DEVANAGARIEXT   PL_DEVANAGARIEXT
+#define PL_BLOCK__DEVANAGARIEXTENDED   PL_DEVANAGARIEXT
+#define PL_BLOCK__DIACRITICALS   PL_DIACRITICALS
+#define PL_BLOCK__DIACRITICALSEXT   PL_DIACRITICALSEXT
+#define PL_BLOCK__DIACRITICALSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_BLOCK__DIACRITICALSSUP   PL_DIACRITICALSSUP
+#define PL_BLOCK__DINGBATS   PL_DINGBATS
+#define PL_BLOCK__DOMINO   PL_DOMINO
+#define PL_BLOCK__DOMINOTILES   PL_DOMINO
+#define PL_BLOCK__DUPLOYAN   PL_INDUPLOYAN
+#define PL_BLOCK__EARLYDYNASTICCUNEIFORM   PL_EARLYDYNASTICCUNEIFORM
+#define PL_BLOCK__EGYPTIANHIEROGLYPHS   PL_INEGYPTIANHIEROGLYPHS
+#define PL_BLOCK__ELBASAN   PL_INELBASAN
+#define PL_BLOCK__EMOTICONS   PL_EMOTICONS
+#define PL_BLOCK__ENCLOSEDALPHANUM   PL_ENCLOSEDALPHANUM
+#define PL_BLOCK__ENCLOSEDALPHANUMERICS   PL_ENCLOSEDALPHANUM
+#define PL_BLOCK__ENCLOSEDALPHANUMERICSUPPLEMENT   PL_ENCLOSEDALPHANUMSUP
+#define PL_BLOCK__ENCLOSEDALPHANUMSUP   PL_ENCLOSEDALPHANUMSUP
+#define PL_BLOCK__ENCLOSEDCJK   PL_ENCLOSEDCJK
+#define PL_BLOCK__ENCLOSEDCJKLETTERSANDMONTHS   PL_ENCLOSEDCJK
+#define PL_BLOCK__ENCLOSEDIDEOGRAPHICSUP   PL_ENCLOSEDIDEOGRAPHICSUP
+#define PL_BLOCK__ENCLOSEDIDEOGRAPHICSUPPLEMENT   PL_ENCLOSEDIDEOGRAPHICSUP
+#define PL_BLOCK__ETHIOPIC   PL_INETHIOPIC
+#define PL_BLOCK__ETHIOPICEXT   PL_ETHIOPICEXT
+#define PL_BLOCK__ETHIOPICEXTA   PL_ETHIOPICEXTA
+#define PL_BLOCK__ETHIOPICEXTENDED   PL_ETHIOPICEXT
+#define PL_BLOCK__ETHIOPICEXTENDEDA   PL_ETHIOPICEXTA
+#define PL_BLOCK__ETHIOPICSUP   PL_ETHIOPICSUP
+#define PL_BLOCK__ETHIOPICSUPPLEMENT   PL_ETHIOPICSUP
+#define PL_BLOCK__GENERALPUNCTUATION   PL_INPUNCTUATION
+#define PL_BLOCK__GEOMETRICSHAPES   PL_GEOMETRICSHAPES
+#define PL_BLOCK__GEOMETRICSHAPESEXT   PL_GEOMETRICSHAPESEXT
+#define PL_BLOCK__GEOMETRICSHAPESEXTENDED   PL_GEOMETRICSHAPESEXT
+#define PL_BLOCK__GEORGIAN   PL_INGEORGIAN
+#define PL_BLOCK__GEORGIANSUP   PL_GEORGIANSUP
+#define PL_BLOCK__GEORGIANSUPPLEMENT   PL_GEORGIANSUP
+#define PL_BLOCK__GLAGOLITIC   PL_INGLAGOLITIC
+#define PL_BLOCK__GLAGOLITICSUP   PL_GLAGOLITICSUP
+#define PL_BLOCK__GLAGOLITICSUPPLEMENT   PL_GLAGOLITICSUP
+#define PL_BLOCK__GOTHIC   PL_INGOTHIC
+#define PL_BLOCK__GRANTHA   PL_INGRANTHA
+#define PL_BLOCK__GREEK   PL_INGREEK
+#define PL_BLOCK__GREEKANDCOPTIC   PL_INGREEK
+#define PL_BLOCK__GREEKEXT   PL_GREEKEXT
+#define PL_BLOCK__GREEKEXTENDED   PL_GREEKEXT
+#define PL_BLOCK__GUJARATI   PL_INGUJARATI
+#define PL_BLOCK__GURMUKHI   PL_INGURMUKHI
+#define PL_BLOCK__HALFANDFULLFORMS   PL_HALFANDFULLFORMS
+#define PL_BLOCK__HALFMARKS   PL_HALFMARKS
+#define PL_BLOCK__HALFWIDTHANDFULLWIDTHFORMS   PL_HALFANDFULLFORMS
+#define PL_BLOCK__HANGUL   PL_INHANGUL
+#define PL_BLOCK__HANGULCOMPATIBILITYJAMO   PL_COMPATJAMO
+#define PL_BLOCK__HANGULJAMO   PL_JAMO
+#define PL_BLOCK__HANGULJAMOEXTENDEDA   PL_JAMOEXTA
+#define PL_BLOCK__HANGULJAMOEXTENDEDB   PL_JAMOEXTB
+#define PL_BLOCK__HANGULSYLLABLES   PL_INHANGUL
+#define PL_BLOCK__HANUNOO   PL_INHANUNOO
+#define PL_BLOCK__HATRAN   PL_INHATRAN
+#define PL_BLOCK__HEBREW   PL_INHEBREW
+#define PL_BLOCK__HIGHPRIVATEUSESURROGATES   PL_HIGHPUSURROGATES
+#define PL_BLOCK__HIGHPUSURROGATES   PL_HIGHPUSURROGATES
+#define PL_BLOCK__HIGHSURROGATES   PL_HIGHSURROGATES
+#define PL_BLOCK__HIRAGANA   PL_INHIRAGANA
+#define PL_BLOCK__IDC   PL_INIDC
+#define PL_BLOCK__IDEOGRAPHICDESCRIPTIONCHARACTERS   PL_INIDC
+#define PL_BLOCK__IDEOGRAPHICSYMBOLS   PL_IDEOGRAPHICSYMBOLS
+#define PL_BLOCK__IDEOGRAPHICSYMBOLSANDPUNCTUATION   PL_IDEOGRAPHICSYMBOLS
+#define PL_BLOCK__IMPERIALARAMAIC   PL_INIMPERIALARAMAIC
+#define PL_BLOCK__INDICNUMBERFORMS   PL_INDICNUMBERFORMS
+#define PL_BLOCK__INSCRIPTIONALPAHLAVI   PL_ININSCRIPTIONALPAHLAVI
+#define PL_BLOCK__INSCRIPTIONALPARTHIAN   PL_ININSCRIPTIONALPARTHIAN
+#define PL_BLOCK__IPAEXT   PL_IPAEXT
+#define PL_BLOCK__IPAEXTENSIONS   PL_IPAEXT
+#define PL_BLOCK__JAMO   PL_JAMO
+#define PL_BLOCK__JAMOEXTA   PL_JAMOEXTA
+#define PL_BLOCK__JAMOEXTB   PL_JAMOEXTB
+#define PL_BLOCK__JAVANESE   PL_INJAVANESE
+#define PL_BLOCK__KAITHI   PL_INKAITHI
+#define PL_BLOCK__KANAEXTA   PL_KANAEXTA
+#define PL_BLOCK__KANAEXTENDEDA   PL_KANAEXTA
+#define PL_BLOCK__KANASUP   PL_KANASUP
+#define PL_BLOCK__KANASUPPLEMENT   PL_KANASUP
+#define PL_BLOCK__KANBUN   PL_KANBUN
+#define PL_BLOCK__KANGXI   PL_KANGXI
+#define PL_BLOCK__KANGXIRADICALS   PL_KANGXI
+#define PL_BLOCK__KANNADA   PL_INKANNADA
+#define PL_BLOCK__KATAKANA   PL_INKATAKANA
+#define PL_BLOCK__KATAKANAEXT   PL_KATAKANAEXT
+#define PL_BLOCK__KATAKANAPHONETICEXTENSIONS   PL_KATAKANAEXT
+#define PL_BLOCK__KAYAHLI   PL_KALI
+#define PL_BLOCK__KHAROSHTHI   PL_INKHAROSHTHI
+#define PL_BLOCK__KHMER   PL_INKHMER
+#define PL_BLOCK__KHMERSYMBOLS   PL_KHMERSYMBOLS
+#define PL_BLOCK__KHOJKI   PL_INKHOJKI
+#define PL_BLOCK__KHUDAWADI   PL_INKHUDAWADI
+#define PL_BLOCK__LAO   PL_INLAO
+#define PL_BLOCK__LATIN1   PL_LATIN1
+#define PL_BLOCK__LATIN1SUP   PL_LATIN1
+#define PL_BLOCK__LATIN1SUPPLEMENT   PL_LATIN1
+#define PL_BLOCK__LATINEXTA   PL_LATINEXTA
+#define PL_BLOCK__LATINEXTADDITIONAL   PL_LATINEXTADDITIONAL
+#define PL_BLOCK__LATINEXTB   PL_LATINEXTB
+#define PL_BLOCK__LATINEXTC   PL_LATINEXTC
+#define PL_BLOCK__LATINEXTD   PL_LATINEXTD
+#define PL_BLOCK__LATINEXTE   PL_LATINEXTE
+#define PL_BLOCK__LATINEXTENDEDA   PL_LATINEXTA
+#define PL_BLOCK__LATINEXTENDEDADDITIONAL   PL_LATINEXTADDITIONAL
+#define PL_BLOCK__LATINEXTENDEDB   PL_LATINEXTB
+#define PL_BLOCK__LATINEXTENDEDC   PL_LATINEXTC
+#define PL_BLOCK__LATINEXTENDEDD   PL_LATINEXTD
+#define PL_BLOCK__LATINEXTENDEDE   PL_LATINEXTE
+#define PL_BLOCK__LEPCHA   PL_INLEPCHA
+#define PL_BLOCK__LETTERLIKESYMBOLS   PL_LETTERLIKESYMBOLS
+#define PL_BLOCK__LIMBU   PL_INLIMBU
+#define PL_BLOCK__LINEARA   PL_INLINEARA
+#define PL_BLOCK__LINEARBIDEOGRAMS   PL_LINEARBIDEOGRAMS
+#define PL_BLOCK__LINEARBSYLLABARY   PL_LINEARBSYLLABARY
+#define PL_BLOCK__LISU   PL_LISU
+#define PL_BLOCK__LOWSURROGATES   PL_LOWSURROGATES
+#define PL_BLOCK__LYCIAN   PL_INLYCIAN
+#define PL_BLOCK__LYDIAN   PL_INLYDIAN
+#define PL_BLOCK__MAHAJANI   PL_INMAHAJANI
+#define PL_BLOCK__MAHJONG   PL_MAHJONG
+#define PL_BLOCK__MAHJONGTILES   PL_MAHJONG
+#define PL_BLOCK__MALAYALAM   PL_INMALAYALAM
+#define PL_BLOCK__MANDAIC   PL_INMANDAIC
+#define PL_BLOCK__MANICHAEAN   PL_INMANICHAEAN
+#define PL_BLOCK__MARCHEN   PL_INMARCHEN
+#define PL_BLOCK__MASARAMGONDI   PL_INMASARAMGONDI
+#define PL_BLOCK__MATHALPHANUM   PL_MATHALPHANUM
+#define PL_BLOCK__MATHEMATICALALPHANUMERICSYMBOLS   PL_MATHALPHANUM
+#define PL_BLOCK__MATHEMATICALOPERATORS   PL_MATHOPERATORS
+#define PL_BLOCK__MATHOPERATORS   PL_MATHOPERATORS
+#define PL_BLOCK__MEETEIMAYEK   PL_INMEETEIMAYEK
+#define PL_BLOCK__MEETEIMAYEKEXT   PL_MEETEIMAYEKEXT
+#define PL_BLOCK__MEETEIMAYEKEXTENSIONS   PL_MEETEIMAYEKEXT
+#define PL_BLOCK__MENDEKIKAKUI   PL_INMENDEKIKAKUI
+#define PL_BLOCK__MEROITICCURSIVE   PL_INMEROITICCURSIVE
+#define PL_BLOCK__MEROITICHIEROGLYPHS   PL_MERO
+#define PL_BLOCK__MIAO   PL_INMIAO
+#define PL_BLOCK__MISCARROWS   PL_MISCARROWS
+#define PL_BLOCK__MISCELLANEOUSMATHEMATICALSYMBOLSA   PL_MISCMATHSYMBOLSA
+#define PL_BLOCK__MISCELLANEOUSMATHEMATICALSYMBOLSB   PL_MISCMATHSYMBOLSB
+#define PL_BLOCK__MISCELLANEOUSSYMBOLS   PL_MISCSYMBOLS
+#define PL_BLOCK__MISCELLANEOUSSYMBOLSANDARROWS   PL_MISCARROWS
+#define PL_BLOCK__MISCELLANEOUSSYMBOLSANDPICTOGRAPHS   PL_MISCPICTOGRAPHS
+#define PL_BLOCK__MISCELLANEOUSTECHNICAL   PL_MISCTECHNICAL
+#define PL_BLOCK__MISCMATHSYMBOLSA   PL_MISCMATHSYMBOLSA
+#define PL_BLOCK__MISCMATHSYMBOLSB   PL_MISCMATHSYMBOLSB
+#define PL_BLOCK__MISCPICTOGRAPHS   PL_MISCPICTOGRAPHS
+#define PL_BLOCK__MISCSYMBOLS   PL_MISCSYMBOLS
+#define PL_BLOCK__MISCTECHNICAL   PL_MISCTECHNICAL
+#define PL_BLOCK__MODI   PL_INMODI
+#define PL_BLOCK__MODIFIERLETTERS   PL_MODIFIERLETTERS
+#define PL_BLOCK__MODIFIERTONELETTERS   PL_MODIFIERTONELETTERS
+#define PL_BLOCK__MONGOLIAN   PL_INMONGOLIAN
+#define PL_BLOCK__MONGOLIANSUP   PL_MONGOLIANSUP
+#define PL_BLOCK__MONGOLIANSUPPLEMENT   PL_MONGOLIANSUP
+#define PL_BLOCK__MRO   PL_INMRO
+#define PL_BLOCK__MULTANI   PL_INMULTANI
+#define PL_BLOCK__MUSIC   PL_MUSIC
+#define PL_BLOCK__MUSICALSYMBOLS   PL_MUSIC
+#define PL_BLOCK__MYANMAR   PL_INMYANMAR
+#define PL_BLOCK__MYANMAREXTA   PL_MYANMAREXTA
+#define PL_BLOCK__MYANMAREXTB   PL_MYANMAREXTB
+#define PL_BLOCK__MYANMAREXTENDEDA   PL_MYANMAREXTA
+#define PL_BLOCK__MYANMAREXTENDEDB   PL_MYANMAREXTB
+#define PL_BLOCK__NABATAEAN   PL_INNABATAEAN
+#define PL_BLOCK__NB   PL_NB
+#define PL_BLOCK__NEWA   PL_INNEWA
+#define PL_BLOCK__NEWTAILUE   PL_INNEWTAILUE
+#define PL_BLOCK__NKO   PL_INNKO
+#define PL_BLOCK__NOBLOCK   PL_NB
+#define PL_BLOCK__NUMBERFORMS   PL_NUMBERFORMS
+#define PL_BLOCK__NUSHU   PL_INNUSHU
+#define PL_BLOCK__OCR   PL_OCR
+#define PL_BLOCK__OGHAM   PL_INOGHAM
+#define PL_BLOCK__OLCHIKI   PL_OLCK
+#define PL_BLOCK__OLDHUNGARIAN   PL_INOLDHUNGARIAN
+#define PL_BLOCK__OLDITALIC   PL_INOLDITALIC
+#define PL_BLOCK__OLDNORTHARABIAN   PL_NARB
+#define PL_BLOCK__OLDPERMIC   PL_INOLDPERMIC
+#define PL_BLOCK__OLDPERSIAN   PL_INOLDPERSIAN
+#define PL_BLOCK__OLDSOUTHARABIAN   PL_SARB
+#define PL_BLOCK__OLDTURKIC   PL_INOLDTURKIC
+#define PL_BLOCK__OPTICALCHARACTERRECOGNITION   PL_OCR
+#define PL_BLOCK__ORIYA   PL_INORIYA
+#define PL_BLOCK__ORNAMENTALDINGBATS   PL_ORNAMENTALDINGBATS
+#define PL_BLOCK__OSAGE   PL_INOSAGE
+#define PL_BLOCK__OSMANYA   PL_INOSMANYA
+#define PL_BLOCK__PAHAWHHMONG   PL_INPAHAWHHMONG
+#define PL_BLOCK__PALMYRENE   PL_PALM
+#define PL_BLOCK__PAUCINHAU   PL_INPAUCINHAU
+#define PL_BLOCK__PHAGSPA   PL_INPHAGSPA
+#define PL_BLOCK__PHAISTOS   PL_PHAISTOS
+#define PL_BLOCK__PHAISTOSDISC   PL_PHAISTOS
+#define PL_BLOCK__PHOENICIAN   PL_INPHOENICIAN
+#define PL_BLOCK__PHONETICEXT   PL_PHONETICEXT
+#define PL_BLOCK__PHONETICEXTENSIONS   PL_PHONETICEXT
+#define PL_BLOCK__PHONETICEXTENSIONSSUPPLEMENT   PL_PHONETICEXTSUP
+#define PL_BLOCK__PHONETICEXTSUP   PL_PHONETICEXTSUP
+#define PL_BLOCK__PLAYINGCARDS   PL_PLAYINGCARDS
+#define PL_BLOCK__PRIVATEUSE   PL_PUA
+#define PL_BLOCK__PRIVATEUSEAREA   PL_PUA
+#define PL_BLOCK__PSALTERPAHLAVI   PL_INPSALTERPAHLAVI
+#define PL_BLOCK__PUA   PL_PUA
+#define PL_BLOCK__PUNCTUATION   PL_INPUNCTUATION
+#define PL_BLOCK__REJANG   PL_INREJANG
+#define PL_BLOCK__RUMI   PL_RUMI
+#define PL_BLOCK__RUMINUMERALSYMBOLS   PL_RUMI
+#define PL_BLOCK__RUNIC   PL_INRUNIC
+#define PL_BLOCK__SAMARITAN   PL_INSAMARITAN
+#define PL_BLOCK__SAURASHTRA   PL_INSAURASHTRA
+#define PL_BLOCK__SHARADA   PL_INSHARADA
+#define PL_BLOCK__SHAVIAN   PL_SHAW
+#define PL_BLOCK__SHORTHANDFORMATCONTROLS   PL_SHORTHANDFORMATCONTROLS
+#define PL_BLOCK__SIDDHAM   PL_INSIDDHAM
+#define PL_BLOCK__SINHALA   PL_INSINHALA
+#define PL_BLOCK__SINHALAARCHAICNUMBERS   PL_SINHALAARCHAICNUMBERS
+#define PL_BLOCK__SMALLFORMS   PL_SMALLFORMS
+#define PL_BLOCK__SMALLFORMVARIANTS   PL_SMALLFORMS
+#define PL_BLOCK__SORASOMPENG   PL_INSORASOMPENG
+#define PL_BLOCK__SOYOMBO   PL_INSOYOMBO
+#define PL_BLOCK__SPACINGMODIFIERLETTERS   PL_MODIFIERLETTERS
+#define PL_BLOCK__SPECIALS   PL_SPECIALS
+#define PL_BLOCK__SUNDANESE   PL_INSUNDANESE
+#define PL_BLOCK__SUNDANESESUP   PL_SUNDANESESUP
+#define PL_BLOCK__SUNDANESESUPPLEMENT   PL_SUNDANESESUP
+#define PL_BLOCK__SUPARROWSA   PL_SUPARROWSA
+#define PL_BLOCK__SUPARROWSB   PL_SUPARROWSB
+#define PL_BLOCK__SUPARROWSC   PL_SUPARROWSC
+#define PL_BLOCK__SUPERANDSUB   PL_SUPERANDSUB
+#define PL_BLOCK__SUPERSCRIPTSANDSUBSCRIPTS   PL_SUPERANDSUB
+#define PL_BLOCK__SUPMATHOPERATORS   PL_SUPMATHOPERATORS
+#define PL_BLOCK__SUPPLEMENTALARROWSA   PL_SUPARROWSA
+#define PL_BLOCK__SUPPLEMENTALARROWSB   PL_SUPARROWSB
+#define PL_BLOCK__SUPPLEMENTALARROWSC   PL_SUPARROWSC
+#define PL_BLOCK__SUPPLEMENTALMATHEMATICALOPERATORS   PL_SUPMATHOPERATORS
+#define PL_BLOCK__SUPPLEMENTALPUNCTUATION   PL_SUPPUNCTUATION
+#define PL_BLOCK__SUPPLEMENTALSYMBOLSANDPICTOGRAPHS   PL_SUPSYMBOLSANDPICTOGRAPHS
+#define PL_BLOCK__SUPPLEMENTARYPRIVATEUSEAREAA   PL_SUPPUAA
+#define PL_BLOCK__SUPPLEMENTARYPRIVATEUSEAREAB   PL_SUPPUAB
+#define PL_BLOCK__SUPPUAA   PL_SUPPUAA
+#define PL_BLOCK__SUPPUAB   PL_SUPPUAB
+#define PL_BLOCK__SUPPUNCTUATION   PL_SUPPUNCTUATION
+#define PL_BLOCK__SUPSYMBOLSANDPICTOGRAPHS   PL_SUPSYMBOLSANDPICTOGRAPHS
+#define PL_BLOCK__SUTTONSIGNWRITING   PL_SUTTONSIGNWRITING
+#define PL_BLOCK__SYLOTINAGRI   PL_INSYLOTINAGRI
+#define PL_BLOCK__SYRIAC   PL_INSYRIAC
+#define PL_BLOCK__SYRIACSUP   PL_SYRIACSUP
+#define PL_BLOCK__SYRIACSUPPLEMENT   PL_SYRIACSUP
+#define PL_BLOCK__TAGALOG   PL_INTAGALOG
+#define PL_BLOCK__TAGBANWA   PL_INTAGBANWA
+#define PL_BLOCK__TAGS   PL_TAGS
+#define PL_BLOCK__TAILE   PL_INTAILE
+#define PL_BLOCK__TAITHAM   PL_INTAITHAM
+#define PL_BLOCK__TAIVIET   PL_INTAIVIET
+#define PL_BLOCK__TAIXUANJING   PL_TAIXUANJING
+#define PL_BLOCK__TAIXUANJINGSYMBOLS   PL_TAIXUANJING
+#define PL_BLOCK__TAKRI   PL_INTAKRI
+#define PL_BLOCK__TAMIL   PL_INTAMIL
+#define PL_BLOCK__TANGUT   PL_INTANGUT
+#define PL_BLOCK__TANGUTCOMPONENTS   PL_TANGUTCOMPONENTS
+#define PL_BLOCK__TELUGU   PL_INTELUGU
+#define PL_BLOCK__THAANA   PL_INTHAANA
+#define PL_BLOCK__THAI   PL_INTHAI
+#define PL_BLOCK__TIBETAN   PL_INTIBETAN
+#define PL_BLOCK__TIFINAGH   PL_INTIFINAGH
+#define PL_BLOCK__TIRHUTA   PL_INTIRHUTA
+#define PL_BLOCK__TRANSPORTANDMAP   PL_TRANSPORTANDMAP
+#define PL_BLOCK__TRANSPORTANDMAPSYMBOLS   PL_TRANSPORTANDMAP
+#define PL_BLOCK__UCAS   PL_UCAS
+#define PL_BLOCK__UCASEXT   PL_UCASEXT
+#define PL_BLOCK__UGARITIC   PL_INUGARITIC
+#define PL_BLOCK__UNIFIEDCANADIANABORIGINALSYLLABICS   PL_UCAS
+#define PL_BLOCK__UNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED   PL_UCASEXT
+#define PL_BLOCK__VAI   PL_INVAI
+#define PL_BLOCK__VARIATIONSELECTORS   PL_INVS
+#define PL_BLOCK__VARIATIONSELECTORSSUPPLEMENT   PL_VSSUP
+#define PL_BLOCK__VEDICEXT   PL_VEDICEXT
+#define PL_BLOCK__VEDICEXTENSIONS   PL_VEDICEXT
+#define PL_BLOCK__VERTICALFORMS   PL_VERTICALFORMS
+#define PL_BLOCK__VS   PL_INVS
+#define PL_BLOCK__VSSUP   PL_VSSUP
+#define PL_BLOCK__WARANGCITI   PL_INWARANGCITI
+#define PL_BLOCK__YIJING   PL_YIJING
+#define PL_BLOCK__YIJINGHEXAGRAMSYMBOLS   PL_YIJING
+#define PL_BLOCK__YIRADICALS   PL_YIRADICALS
+#define PL_BLOCK__YISYLLABLES   PL_YISYLLABLES
+#define PL_BLOCK__ZANABAZARSQUARE   PL_INZANABAZARSQUARE
+#define PL_BOPOMOFO   PL_BOPO
+#define PL_BOPOMOFOEXTENDED   PL_BOPOMOFOEXT
+#define PL_BPT__CLOSE   PL_BPT__C
+#define PL_BPT__NONE   PL_BPT__N
+#define PL_BPT__OPEN   PL_BPT__O
+#define PL_BRAHMI   PL_BRAH
+#define PL_BRAILLE   PL_BRAI
+#define PL_BRAILLEPATTERNS   PL_BRAI
+#define PL_BUGINESE   PL_BUGI
+#define PL_BUHID   PL_BUHD
+#define PL_BYZANTINEMUSICALSYMBOLS   PL_BYZANTINEMUSIC
+#define PL_CANADIANABORIGINAL   PL_CANS
+#define PL_CANADIANSYLLABICS   PL_UCAS
+#define PL_CANONICALCOMBININGCLASS__0   PL_CCC__0
+#define PL_CANONICALCOMBININGCLASS__1   PL_CCC__1
+#define PL_CANONICALCOMBININGCLASS__10   PL_CCC__10
+#define PL_CANONICALCOMBININGCLASS__103   PL_CCC__103
+#define PL_CANONICALCOMBININGCLASS__107   PL_CCC__107
+#define PL_CANONICALCOMBININGCLASS__11   PL_CCC__11
+#define PL_CANONICALCOMBININGCLASS__118   PL_CCC__118
+#define PL_CANONICALCOMBININGCLASS__12   PL_CCC__12
+#define PL_CANONICALCOMBININGCLASS__122   PL_CCC__122
+#define PL_CANONICALCOMBININGCLASS__129   PL_CCC__129
+#define PL_CANONICALCOMBININGCLASS__13   PL_CCC__13
+#define PL_CANONICALCOMBININGCLASS__130   PL_CCC__130
+#define PL_CANONICALCOMBININGCLASS__132   PL_CCC__132
+#define PL_CANONICALCOMBININGCLASS__133   PL_CCC__133
+#define PL_CANONICALCOMBININGCLASS__14   PL_CCC__14
+#define PL_CANONICALCOMBININGCLASS__15   PL_CCC__15
+#define PL_CANONICALCOMBININGCLASS__16   PL_CCC__16
+#define PL_CANONICALCOMBININGCLASS__17   PL_CCC__17
+#define PL_CANONICALCOMBININGCLASS__18   PL_CCC__18
+#define PL_CANONICALCOMBININGCLASS__19   PL_CCC__19
+#define PL_CANONICALCOMBININGCLASS__20   PL_CCC__20
+#define PL_CANONICALCOMBININGCLASS__200   PL_CCC__133
+#define PL_CANONICALCOMBININGCLASS__202   PL_CCC__202
+#define PL_CANONICALCOMBININGCLASS__21   PL_CCC__21
+#define PL_CANONICALCOMBININGCLASS__214   PL_CCC__214
+#define PL_CANONICALCOMBININGCLASS__216   PL_CCC__216
+#define PL_CANONICALCOMBININGCLASS__218   PL_CCC__BL
+#define PL_CANONICALCOMBININGCLASS__22   PL_CCC__22
+#define PL_CANONICALCOMBININGCLASS__220   PL_CCC__B
+#define PL_CANONICALCOMBININGCLASS__222   PL_CCC__BR
+#define PL_CANONICALCOMBININGCLASS__224   PL_CCC__L
+#define PL_CANONICALCOMBININGCLASS__226   PL_CCC__R
+#define PL_CANONICALCOMBININGCLASS__228   PL_CCC__AL
+#define PL_CANONICALCOMBININGCLASS__23   PL_CCC__23
+#define PL_CANONICALCOMBININGCLASS__230   PL_CCC__A
+#define PL_CANONICALCOMBININGCLASS__232   PL_CCC__AR
+#define PL_CANONICALCOMBININGCLASS__233   PL_CCC__DB
+#define PL_CANONICALCOMBININGCLASS__234   PL_CCC__DA
+#define PL_CANONICALCOMBININGCLASS__24   PL_CCC__24
+#define PL_CANONICALCOMBININGCLASS__240   PL_CCC__IS
+#define PL_CANONICALCOMBININGCLASS__25   PL_CCC__25
+#define PL_CANONICALCOMBININGCLASS__26   PL_CCC__26
+#define PL_CANONICALCOMBININGCLASS__27   PL_CCC__27
+#define PL_CANONICALCOMBININGCLASS__28   PL_CCC__28
+#define PL_CANONICALCOMBININGCLASS__29   PL_CCC__29
+#define PL_CANONICALCOMBININGCLASS__30   PL_CCC__30
+#define PL_CANONICALCOMBININGCLASS__31   PL_CCC__31
+#define PL_CANONICALCOMBININGCLASS__32   PL_CCC__32
+#define PL_CANONICALCOMBININGCLASS__33   PL_CCC__33
+#define PL_CANONICALCOMBININGCLASS__34   PL_CCC__34
+#define PL_CANONICALCOMBININGCLASS__35   PL_CCC__35
+#define PL_CANONICALCOMBININGCLASS__36   PL_CCC__36
+#define PL_CANONICALCOMBININGCLASS__7   PL_CCC__7
+#define PL_CANONICALCOMBININGCLASS__8   PL_CCC__8
+#define PL_CANONICALCOMBININGCLASS__84   PL_CCC__84
+#define PL_CANONICALCOMBININGCLASS__9   PL_CCC__9
+#define PL_CANONICALCOMBININGCLASS__91   PL_CCC__91
+#define PL_CANONICALCOMBININGCLASS__A   PL_CCC__A
+#define PL_CANONICALCOMBININGCLASS__ABOVE   PL_CCC__A
+#define PL_CANONICALCOMBININGCLASS__ABOVELEFT   PL_CCC__AL
+#define PL_CANONICALCOMBININGCLASS__ABOVERIGHT   PL_CCC__AR
+#define PL_CANONICALCOMBININGCLASS__AL   PL_CCC__AL
+#define PL_CANONICALCOMBININGCLASS__AR   PL_CCC__AR
+#define PL_CANONICALCOMBININGCLASS__ATA   PL_CCC__214
+#define PL_CANONICALCOMBININGCLASS__ATAR   PL_CCC__216
+#define PL_CANONICALCOMBININGCLASS__ATB   PL_CCC__202
+#define PL_CANONICALCOMBININGCLASS__ATBL   PL_CCC__133
+#define PL_CANONICALCOMBININGCLASS__ATTACHEDABOVE   PL_CCC__214
+#define PL_CANONICALCOMBININGCLASS__ATTACHEDABOVERIGHT   PL_CCC__216
+#define PL_CANONICALCOMBININGCLASS__ATTACHEDBELOW   PL_CCC__202
+#define PL_CANONICALCOMBININGCLASS__ATTACHEDBELOWLEFT   PL_CCC__133
+#define PL_CANONICALCOMBININGCLASS__B   PL_CCC__B
+#define PL_CANONICALCOMBININGCLASS__BELOW   PL_CCC__B
+#define PL_CANONICALCOMBININGCLASS__BELOWLEFT   PL_CCC__BL
+#define PL_CANONICALCOMBININGCLASS__BELOWRIGHT   PL_CCC__BR
+#define PL_CANONICALCOMBININGCLASS__BL   PL_CCC__BL
+#define PL_CANONICALCOMBININGCLASS__BR   PL_CCC__BR
+#define PL_CANONICALCOMBININGCLASS__CCC10   PL_CCC__10
+#define PL_CANONICALCOMBININGCLASS__CCC103   PL_CCC__103
+#define PL_CANONICALCOMBININGCLASS__CCC107   PL_CCC__107
+#define PL_CANONICALCOMBININGCLASS__CCC11   PL_CCC__11
+#define PL_CANONICALCOMBININGCLASS__CCC118   PL_CCC__118
+#define PL_CANONICALCOMBININGCLASS__CCC12   PL_CCC__12
+#define PL_CANONICALCOMBININGCLASS__CCC122   PL_CCC__122
+#define PL_CANONICALCOMBININGCLASS__CCC129   PL_CCC__129
+#define PL_CANONICALCOMBININGCLASS__CCC13   PL_CCC__13
+#define PL_CANONICALCOMBININGCLASS__CCC130   PL_CCC__130
+#define PL_CANONICALCOMBININGCLASS__CCC132   PL_CCC__132
+#define PL_CANONICALCOMBININGCLASS__CCC133   PL_CCC__133
+#define PL_CANONICALCOMBININGCLASS__CCC14   PL_CCC__14
+#define PL_CANONICALCOMBININGCLASS__CCC15   PL_CCC__15
+#define PL_CANONICALCOMBININGCLASS__CCC16   PL_CCC__16
+#define PL_CANONICALCOMBININGCLASS__CCC17   PL_CCC__17
+#define PL_CANONICALCOMBININGCLASS__CCC18   PL_CCC__18
+#define PL_CANONICALCOMBININGCLASS__CCC19   PL_CCC__19
+#define PL_CANONICALCOMBININGCLASS__CCC20   PL_CCC__20
+#define PL_CANONICALCOMBININGCLASS__CCC21   PL_CCC__21
+#define PL_CANONICALCOMBININGCLASS__CCC22   PL_CCC__22
+#define PL_CANONICALCOMBININGCLASS__CCC23   PL_CCC__23
+#define PL_CANONICALCOMBININGCLASS__CCC24   PL_CCC__24
+#define PL_CANONICALCOMBININGCLASS__CCC25   PL_CCC__25
+#define PL_CANONICALCOMBININGCLASS__CCC26   PL_CCC__26
+#define PL_CANONICALCOMBININGCLASS__CCC27   PL_CCC__27
+#define PL_CANONICALCOMBININGCLASS__CCC28   PL_CCC__28
+#define PL_CANONICALCOMBININGCLASS__CCC29   PL_CCC__29
+#define PL_CANONICALCOMBININGCLASS__CCC30   PL_CCC__30
+#define PL_CANONICALCOMBININGCLASS__CCC31   PL_CCC__31
+#define PL_CANONICALCOMBININGCLASS__CCC32   PL_CCC__32
+#define PL_CANONICALCOMBININGCLASS__CCC33   PL_CCC__33
+#define PL_CANONICALCOMBININGCLASS__CCC34   PL_CCC__34
+#define PL_CANONICALCOMBININGCLASS__CCC35   PL_CCC__35
+#define PL_CANONICALCOMBININGCLASS__CCC36   PL_CCC__36
+#define PL_CANONICALCOMBININGCLASS__CCC84   PL_CCC__84
+#define PL_CANONICALCOMBININGCLASS__CCC91   PL_CCC__91
+#define PL_CANONICALCOMBININGCLASS__DA   PL_CCC__DA
+#define PL_CANONICALCOMBININGCLASS__DB   PL_CCC__DB
+#define PL_CANONICALCOMBININGCLASS__DOUBLEABOVE   PL_CCC__DA
+#define PL_CANONICALCOMBININGCLASS__DOUBLEBELOW   PL_CCC__DB
+#define PL_CANONICALCOMBININGCLASS__IOTASUBSCRIPT   PL_CCC__IS
+#define PL_CANONICALCOMBININGCLASS__IS   PL_CCC__IS
+#define PL_CANONICALCOMBININGCLASS__KANAVOICING   PL_CCC__8
+#define PL_CANONICALCOMBININGCLASS__KV   PL_CCC__8
+#define PL_CANONICALCOMBININGCLASS__L   PL_CCC__L
+#define PL_CANONICALCOMBININGCLASS__LEFT   PL_CCC__L
+#define PL_CANONICALCOMBININGCLASS__NK   PL_CCC__7
+#define PL_CANONICALCOMBININGCLASS__NOTREORDERED   PL_CCC__0
+#define PL_CANONICALCOMBININGCLASS__NR   PL_CCC__0
+#define PL_CANONICALCOMBININGCLASS__NUKTA   PL_CCC__7
+#define PL_CANONICALCOMBININGCLASS__OV   PL_CCC__1
+#define PL_CANONICALCOMBININGCLASS__OVERLAY   PL_CCC__1
+#define PL_CANONICALCOMBININGCLASS__R   PL_CCC__R
+#define PL_CANONICALCOMBININGCLASS__RIGHT   PL_CCC__R
+#define PL_CANONICALCOMBININGCLASS__VIRAMA   PL_CCC__9
+#define PL_CANONICALCOMBININGCLASS__VR   PL_CCC__9
+#define PL_CARIAN   PL_CARI
+#define PL_CASEDLETTER   PL_L_AMP_
+#define PL_CASED__F   -PL_CASED
+#define PL_CASED__FALSE   -PL_CASED
+#define PL_CASED__N   -PL_CASED
+#define PL_CASED__NO   -PL_CASED
+#define PL_CASED__T   PL_CASED
+#define PL_CASED__TRUE   PL_CASED
+#define PL_CASED__Y   PL_CASED
+#define PL_CASED__YES   PL_CASED
+#define PL_CASEIGNORABLE   PL_CI
+#define PL_CASEIGNORABLE   PL_CI
+#define PL_CASEIGNORABLE__F   -PL_CI
+#define PL_CASEIGNORABLE__FALSE   -PL_CI
+#define PL_CASEIGNORABLE__N   -PL_CI
+#define PL_CASEIGNORABLE__NO   -PL_CI
+#define PL_CASEIGNORABLE__T   PL_CI
+#define PL_CASEIGNORABLE__TRUE   PL_CI
+#define PL_CASEIGNORABLE__Y   PL_CI
+#define PL_CASEIGNORABLE__YES   PL_CI
+#define PL_CATEGORY__C   PL_C
+#define PL_CATEGORY__CASEDLETTER   PL_L_AMP_
+#define PL_CATEGORY__CC   PL_XPOSIXCNTRL
+#define PL_CATEGORY__CF   PL_CF
+#define PL_CATEGORY__CLOSEPUNCTUATION   PL_PE
+#define PL_CATEGORY__CN   PL_CN
+#define PL_CATEGORY__CNTRL   PL_XPOSIXCNTRL
+#define PL_CATEGORY__CO   PL_CO
+#define PL_CATEGORY__COMBININGMARK   PL_M
+#define PL_CATEGORY__CONNECTORPUNCTUATION   PL_PC
+#define PL_CATEGORY__CONTROL   PL_XPOSIXCNTRL
+#define PL_CATEGORY__CS   PL_CS
+#define PL_CATEGORY__CURRENCYSYMBOL   PL_SC
+#define PL_CATEGORY__DASHPUNCTUATION   PL_PD
+#define PL_CATEGORY__DECIMALNUMBER   PL_XPOSIXDIGIT
+#define PL_CATEGORY__DIGIT   PL_XPOSIXDIGIT
+#define PL_CATEGORY__ENCLOSINGMARK   PL_ME
+#define PL_CATEGORY__FINALPUNCTUATION   PL_PF
+#define PL_CATEGORY__FORMAT   PL_CF
+#define PL_CATEGORY__INITIALPUNCTUATION   PL_PI
+#define PL_CATEGORY__L   PL_L
+#define PL_CATEGORY__LC   PL_L_AMP_
+#define PL_CATEGORY__LETTER   PL_L
+#define PL_CATEGORY__LETTERNUMBER   PL_NL
+#define PL_CATEGORY__LINESEPARATOR   PL_ZL
+#define PL_CATEGORY__LL   PL_LL
+#define PL_CATEGORY__LM   PL_LM
+#define PL_CATEGORY__LO   PL_LO
+#define PL_CATEGORY__LOWERCASELETTER   PL_LL
+#define PL_CATEGORY__LT   PL_LT
+#define PL_CATEGORY__LU   PL_LU
+#define PL_CATEGORY__L_   PL_L_AMP_
+#define PL_CATEGORY__L_AMP_   PL_L_AMP_
+#define PL_CATEGORY__M   PL_M
+#define PL_CATEGORY__MARK   PL_M
+#define PL_CATEGORY__MATHSYMBOL   PL_SM
+#define PL_CATEGORY__MC   PL_MC
+#define PL_CATEGORY__ME   PL_ME
+#define PL_CATEGORY__MN   PL_MN
+#define PL_CATEGORY__MODIFIERLETTER   PL_LM
+#define PL_CATEGORY__MODIFIERSYMBOL   PL_SK
+#define PL_CATEGORY__N   PL_N
+#define PL_CATEGORY__ND   PL_XPOSIXDIGIT
+#define PL_CATEGORY__NL   PL_NL
+#define PL_CATEGORY__NO   PL_NO
+#define PL_CATEGORY__NONSPACINGMARK   PL_MN
+#define PL_CATEGORY__NUMBER   PL_N
+#define PL_CATEGORY__OPENPUNCTUATION   PL_PS
+#define PL_CATEGORY__OTHER   PL_C
+#define PL_CATEGORY__OTHERLETTER   PL_LO
+#define PL_CATEGORY__OTHERNUMBER   PL_NO
+#define PL_CATEGORY__OTHERPUNCTUATION   PL_PO
+#define PL_CATEGORY__OTHERSYMBOL   PL_SO
+#define PL_CATEGORY__P   PL_P
+#define PL_CATEGORY__PARAGRAPHSEPARATOR   PL_ZP
+#define PL_CATEGORY__PC   PL_PC
+#define PL_CATEGORY__PD   PL_PD
+#define PL_CATEGORY__PE   PL_PE
+#define PL_CATEGORY__PF   PL_PF
+#define PL_CATEGORY__PI   PL_PI
+#define PL_CATEGORY__PO   PL_PO
+#define PL_CATEGORY__PRIVATEUSE   PL_CO
+#define PL_CATEGORY__PS   PL_PS
+#define PL_CATEGORY__PUNCT   PL_P
+#define PL_CATEGORY__PUNCTUATION   PL_P
+#define PL_CATEGORY__S   PL_S
+#define PL_CATEGORY__SC   PL_SC
+#define PL_CATEGORY__SEPARATOR   PL_Z
+#define PL_CATEGORY__SK   PL_SK
+#define PL_CATEGORY__SM   PL_SM
+#define PL_CATEGORY__SO   PL_SO
+#define PL_CATEGORY__SPACESEPARATOR   PL_ZS
+#define PL_CATEGORY__SPACINGMARK   PL_MC
+#define PL_CATEGORY__SURROGATE   PL_CS
+#define PL_CATEGORY__SYMBOL   PL_S
+#define PL_CATEGORY__TITLECASELETTER   PL_LT
+#define PL_CATEGORY__UNASSIGNED   PL_CN
+#define PL_CATEGORY__UPPERCASELETTER   PL_LU
+#define PL_CATEGORY__Z   PL_Z
+#define PL_CATEGORY__ZL   PL_ZL
+#define PL_CATEGORY__ZP   PL_ZP
+#define PL_CATEGORY__ZS   PL_ZS
+#define PL_CAUCASIANALBANIAN   PL_AGHB
+#define PL_CC   PL_XPOSIXCNTRL
+#define PL_CCC__200   PL_CCC__133
+#define PL_CCC__218   PL_CCC__BL
+#define PL_CCC__220   PL_CCC__B
+#define PL_CCC__222   PL_CCC__BR
+#define PL_CCC__224   PL_CCC__L
+#define PL_CCC__226   PL_CCC__R
+#define PL_CCC__228   PL_CCC__AL
+#define PL_CCC__230   PL_CCC__A
+#define PL_CCC__232   PL_CCC__AR
+#define PL_CCC__233   PL_CCC__DB
+#define PL_CCC__234   PL_CCC__DA
+#define PL_CCC__240   PL_CCC__IS
+#define PL_CCC__ABOVE   PL_CCC__A
+#define PL_CCC__ABOVELEFT   PL_CCC__AL
+#define PL_CCC__ABOVERIGHT   PL_CCC__AR
+#define PL_CCC__ATA   PL_CCC__214
+#define PL_CCC__ATAR   PL_CCC__216
+#define PL_CCC__ATB   PL_CCC__202
+#define PL_CCC__ATBL   PL_CCC__133
+#define PL_CCC__ATTACHEDABOVE   PL_CCC__214
+#define PL_CCC__ATTACHEDABOVERIGHT   PL_CCC__216
+#define PL_CCC__ATTACHEDBELOW   PL_CCC__202
+#define PL_CCC__ATTACHEDBELOWLEFT   PL_CCC__133
+#define PL_CCC__BELOW   PL_CCC__B
+#define PL_CCC__BELOWLEFT   PL_CCC__BL
+#define PL_CCC__BELOWRIGHT   PL_CCC__BR
+#define PL_CCC__CCC10   PL_CCC__10
+#define PL_CCC__CCC103   PL_CCC__103
+#define PL_CCC__CCC107   PL_CCC__107
+#define PL_CCC__CCC11   PL_CCC__11
+#define PL_CCC__CCC118   PL_CCC__118
+#define PL_CCC__CCC12   PL_CCC__12
+#define PL_CCC__CCC122   PL_CCC__122
+#define PL_CCC__CCC129   PL_CCC__129
+#define PL_CCC__CCC13   PL_CCC__13
+#define PL_CCC__CCC130   PL_CCC__130
+#define PL_CCC__CCC132   PL_CCC__132
+#define PL_CCC__CCC133   PL_CCC__133
+#define PL_CCC__CCC14   PL_CCC__14
+#define PL_CCC__CCC15   PL_CCC__15
+#define PL_CCC__CCC16   PL_CCC__16
+#define PL_CCC__CCC17   PL_CCC__17
+#define PL_CCC__CCC18   PL_CCC__18
+#define PL_CCC__CCC19   PL_CCC__19
+#define PL_CCC__CCC20   PL_CCC__20
+#define PL_CCC__CCC21   PL_CCC__21
+#define PL_CCC__CCC22   PL_CCC__22
+#define PL_CCC__CCC23   PL_CCC__23
+#define PL_CCC__CCC24   PL_CCC__24
+#define PL_CCC__CCC25   PL_CCC__25
+#define PL_CCC__CCC26   PL_CCC__26
+#define PL_CCC__CCC27   PL_CCC__27
+#define PL_CCC__CCC28   PL_CCC__28
+#define PL_CCC__CCC29   PL_CCC__29
+#define PL_CCC__CCC30   PL_CCC__30
+#define PL_CCC__CCC31   PL_CCC__31
+#define PL_CCC__CCC32   PL_CCC__32
+#define PL_CCC__CCC33   PL_CCC__33
+#define PL_CCC__CCC34   PL_CCC__34
+#define PL_CCC__CCC35   PL_CCC__35
+#define PL_CCC__CCC36   PL_CCC__36
+#define PL_CCC__CCC84   PL_CCC__84
+#define PL_CCC__CCC91   PL_CCC__91
+#define PL_CCC__DOUBLEABOVE   PL_CCC__DA
+#define PL_CCC__DOUBLEBELOW   PL_CCC__DB
+#define PL_CCC__IOTASUBSCRIPT   PL_CCC__IS
+#define PL_CCC__KANAVOICING   PL_CCC__8
+#define PL_CCC__KV   PL_CCC__8
+#define PL_CCC__LEFT   PL_CCC__L
+#define PL_CCC__NK   PL_CCC__7
+#define PL_CCC__NOTREORDERED   PL_CCC__0
+#define PL_CCC__NR   PL_CCC__0
+#define PL_CCC__NUKTA   PL_CCC__7
+#define PL_CCC__OV   PL_CCC__1
+#define PL_CCC__OVERLAY   PL_CCC__1
+#define PL_CCC__RIGHT   PL_CCC__R
+#define PL_CCC__VIRAMA   PL_CCC__9
+#define PL_CCC__VR   PL_CCC__9
+#define PL_CE__F   -PL_CE
+#define PL_CE__FALSE   -PL_CE
+#define PL_CE__N   -PL_CE
+#define PL_CE__NO   -PL_CE
+#define PL_CE__T   PL_CE
+#define PL_CE__TRUE   PL_CE
+#define PL_CE__Y   PL_CE
+#define PL_CE__YES   PL_CE
+#define PL_CHAKMA   PL_CAKM
+#define PL_CHANGESWHENCASEFOLDED   PL_CWCF
+#define PL_CHANGESWHENCASEFOLDED   PL_CWCF
+#define PL_CHANGESWHENCASEFOLDED__F   -PL_CWCF
+#define PL_CHANGESWHENCASEFOLDED__FALSE   -PL_CWCF
+#define PL_CHANGESWHENCASEFOLDED__N   -PL_CWCF
+#define PL_CHANGESWHENCASEFOLDED__NO   -PL_CWCF
+#define PL_CHANGESWHENCASEFOLDED__T   PL_CWCF
+#define PL_CHANGESWHENCASEFOLDED__TRUE   PL_CWCF
+#define PL_CHANGESWHENCASEFOLDED__Y   PL_CWCF
+#define PL_CHANGESWHENCASEFOLDED__YES   PL_CWCF
+#define PL_CHANGESWHENCASEMAPPED   PL_CWCM
+#define PL_CHANGESWHENCASEMAPPED   PL_CWCM
+#define PL_CHANGESWHENCASEMAPPED__F   -PL_CWCM
+#define PL_CHANGESWHENCASEMAPPED__FALSE   -PL_CWCM
+#define PL_CHANGESWHENCASEMAPPED__N   -PL_CWCM
+#define PL_CHANGESWHENCASEMAPPED__NO   -PL_CWCM
+#define PL_CHANGESWHENCASEMAPPED__T   PL_CWCM
+#define PL_CHANGESWHENCASEMAPPED__TRUE   PL_CWCM
+#define PL_CHANGESWHENCASEMAPPED__Y   PL_CWCM
+#define PL_CHANGESWHENCASEMAPPED__YES   PL_CWCM
+#define PL_CHANGESWHENLOWERCASED   PL_CWL
+#define PL_CHANGESWHENLOWERCASED   PL_CWL
+#define PL_CHANGESWHENLOWERCASED__F   -PL_CWL
+#define PL_CHANGESWHENLOWERCASED__FALSE   -PL_CWL
+#define PL_CHANGESWHENLOWERCASED__N   -PL_CWL
+#define PL_CHANGESWHENLOWERCASED__NO   -PL_CWL
+#define PL_CHANGESWHENLOWERCASED__T   PL_CWL
+#define PL_CHANGESWHENLOWERCASED__TRUE   PL_CWL
+#define PL_CHANGESWHENLOWERCASED__Y   PL_CWL
+#define PL_CHANGESWHENLOWERCASED__YES   PL_CWL
+#define PL_CHANGESWHENNFKCCASEFOLDED   PL_CWKCF
+#define PL_CHANGESWHENNFKCCASEFOLDED   PL_CWKCF
+#define PL_CHANGESWHENNFKCCASEFOLDED__F   -PL_CWKCF
+#define PL_CHANGESWHENNFKCCASEFOLDED__FALSE   -PL_CWKCF
+#define PL_CHANGESWHENNFKCCASEFOLDED__N   -PL_CWKCF
+#define PL_CHANGESWHENNFKCCASEFOLDED__NO   -PL_CWKCF
+#define PL_CHANGESWHENNFKCCASEFOLDED__T   PL_CWKCF
+#define PL_CHANGESWHENNFKCCASEFOLDED__TRUE   PL_CWKCF
+#define PL_CHANGESWHENNFKCCASEFOLDED__Y   PL_CWKCF
+#define PL_CHANGESWHENNFKCCASEFOLDED__YES   PL_CWKCF
+#define PL_CHANGESWHENTITLECASED   PL_CWT
+#define PL_CHANGESWHENTITLECASED   PL_CWT
+#define PL_CHANGESWHENTITLECASED__F   -PL_CWT
+#define PL_CHANGESWHENTITLECASED__FALSE   -PL_CWT
+#define PL_CHANGESWHENTITLECASED__N   -PL_CWT
+#define PL_CHANGESWHENTITLECASED__NO   -PL_CWT
+#define PL_CHANGESWHENTITLECASED__T   PL_CWT
+#define PL_CHANGESWHENTITLECASED__TRUE   PL_CWT
+#define PL_CHANGESWHENTITLECASED__Y   PL_CWT
+#define PL_CHANGESWHENTITLECASED__YES   PL_CWT
+#define PL_CHANGESWHENUPPERCASED   PL_CWU
+#define PL_CHANGESWHENUPPERCASED   PL_CWU
+#define PL_CHANGESWHENUPPERCASED__F   -PL_CWU
+#define PL_CHANGESWHENUPPERCASED__FALSE   -PL_CWU
+#define PL_CHANGESWHENUPPERCASED__N   -PL_CWU
+#define PL_CHANGESWHENUPPERCASED__NO   -PL_CWU
+#define PL_CHANGESWHENUPPERCASED__T   PL_CWU
+#define PL_CHANGESWHENUPPERCASED__TRUE   PL_CWU
+#define PL_CHANGESWHENUPPERCASED__Y   PL_CWU
+#define PL_CHANGESWHENUPPERCASED__YES   PL_CWU
+#define PL_CHEROKEE   PL_CHER
+#define PL_CHEROKEESUPPLEMENT   PL_CHEROKEESUP
+#define PL_CI__F   -PL_CI
+#define PL_CI__FALSE   -PL_CI
+#define PL_CI__N   -PL_CI
+#define PL_CI__NO   -PL_CI
+#define PL_CI__T   PL_CI
+#define PL_CI__TRUE   PL_CI
+#define PL_CI__Y   PL_CI
+#define PL_CI__YES   PL_CI
+#define PL_CJKCOMPATIBILITY   PL_CJKCOMPAT
+#define PL_CJKCOMPATIBILITYFORMS   PL_CJKCOMPATFORMS
+#define PL_CJKCOMPATIBILITYIDEOGRAPHS   PL_CJKCOMPATIDEOGRAPHS
+#define PL_CJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT   PL_CJKCOMPATIDEOGRAPHSSUP
+#define PL_CJKRADICALSSUPPLEMENT   PL_CJKRADICALSSUP
+#define PL_CJKSYMBOLSANDPUNCTUATION   PL_CJKSYMBOLS
+#define PL_CJKUNIFIEDIDEOGRAPHS   PL_CJK
+#define PL_CJKUNIFIEDIDEOGRAPHSEXTENSIONA   PL_CJKEXTA
+#define PL_CJKUNIFIEDIDEOGRAPHSEXTENSIONB   PL_CJKEXTB
+#define PL_CJKUNIFIEDIDEOGRAPHSEXTENSIONC   PL_CJKEXTC
+#define PL_CJKUNIFIEDIDEOGRAPHSEXTENSIOND   PL_CJKEXTD
+#define PL_CJKUNIFIEDIDEOGRAPHSEXTENSIONE   PL_CJKEXTE
+#define PL_CJKUNIFIEDIDEOGRAPHSEXTENSIONF   PL_CJKEXTF
+#define PL_CLOSEPUNCTUATION   PL_PE
+#define PL_CNTRL   PL_XPOSIXCNTRL
+#define PL_COMBININGDIACRITICALMARKS   PL_DIACRITICALS
+#define PL_COMBININGDIACRITICALMARKSEXTENDED   PL_DIACRITICALSEXT
+#define PL_COMBININGDIACRITICALMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_COMBININGDIACRITICALMARKSSUPPLEMENT   PL_DIACRITICALSSUP
+#define PL_COMBININGHALFMARKS   PL_HALFMARKS
+#define PL_COMBININGMARK   PL_M
+#define PL_COMBININGMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_COMMON   PL_ZYYY
+#define PL_COMMONINDICNUMBERFORMS   PL_INDICNUMBERFORMS
+#define PL_COMPEX__F   -PL_COMPEX
+#define PL_COMPEX__FALSE   -PL_COMPEX
+#define PL_COMPEX__N   -PL_COMPEX
+#define PL_COMPEX__NO   -PL_COMPEX
+#define PL_COMPEX__T   PL_COMPEX
+#define PL_COMPEX__TRUE   PL_COMPEX
+#define PL_COMPEX__Y   PL_COMPEX
+#define PL_COMPEX__YES   PL_COMPEX
+#define PL_COMPOSITIONEXCLUSION   PL_CE
+#define PL_COMPOSITIONEXCLUSION   PL_CE
+#define PL_COMPOSITIONEXCLUSION__F   -PL_CE
+#define PL_COMPOSITIONEXCLUSION__FALSE   -PL_CE
+#define PL_COMPOSITIONEXCLUSION__N   -PL_CE
+#define PL_COMPOSITIONEXCLUSION__NO   -PL_CE
+#define PL_COMPOSITIONEXCLUSION__T   PL_CE
+#define PL_COMPOSITIONEXCLUSION__TRUE   PL_CE
+#define PL_COMPOSITIONEXCLUSION__Y   PL_CE
+#define PL_COMPOSITIONEXCLUSION__YES   PL_CE
+#define PL_CONNECTORPUNCTUATION   PL_PC
+#define PL_CONTROL   PL_XPOSIXCNTRL
+#define PL_COPTIC   PL_COPT
+#define PL_COUNTINGRODNUMERALS   PL_COUNTINGROD
+#define PL_CUNEIFORM   PL_XSUX
+#define PL_CUNEIFORMNUMBERSANDPUNCTUATION   PL_CUNEIFORMNUMBERS
+#define PL_CURRENCYSYMBOL   PL_SC
+#define PL_CWCF__F   -PL_CWCF
+#define PL_CWCF__FALSE   -PL_CWCF
+#define PL_CWCF__N   -PL_CWCF
+#define PL_CWCF__NO   -PL_CWCF
+#define PL_CWCF__T   PL_CWCF
+#define PL_CWCF__TRUE   PL_CWCF
+#define PL_CWCF__Y   PL_CWCF
+#define PL_CWCF__YES   PL_CWCF
+#define PL_CWCM__F   -PL_CWCM
+#define PL_CWCM__FALSE   -PL_CWCM
+#define PL_CWCM__N   -PL_CWCM
+#define PL_CWCM__NO   -PL_CWCM
+#define PL_CWCM__T   PL_CWCM
+#define PL_CWCM__TRUE   PL_CWCM
+#define PL_CWCM__Y   PL_CWCM
+#define PL_CWCM__YES   PL_CWCM
+#define PL_CWKCF__F   -PL_CWKCF
+#define PL_CWKCF__FALSE   -PL_CWKCF
+#define PL_CWKCF__N   -PL_CWKCF
+#define PL_CWKCF__NO   -PL_CWKCF
+#define PL_CWKCF__T   PL_CWKCF
+#define PL_CWKCF__TRUE   PL_CWKCF
+#define PL_CWKCF__Y   PL_CWKCF
+#define PL_CWKCF__YES   PL_CWKCF
+#define PL_CWL__F   -PL_CWL
+#define PL_CWL__FALSE   -PL_CWL
+#define PL_CWL__N   -PL_CWL
+#define PL_CWL__NO   -PL_CWL
+#define PL_CWL__T   PL_CWL
+#define PL_CWL__TRUE   PL_CWL
+#define PL_CWL__Y   PL_CWL
+#define PL_CWL__YES   PL_CWL
+#define PL_CWT__F   -PL_CWT
+#define PL_CWT__FALSE   -PL_CWT
+#define PL_CWT__N   -PL_CWT
+#define PL_CWT__NO   -PL_CWT
+#define PL_CWT__T   PL_CWT
+#define PL_CWT__TRUE   PL_CWT
+#define PL_CWT__Y   PL_CWT
+#define PL_CWT__YES   PL_CWT
+#define PL_CWU__F   -PL_CWU
+#define PL_CWU__FALSE   -PL_CWU
+#define PL_CWU__N   -PL_CWU
+#define PL_CWU__NO   -PL_CWU
+#define PL_CWU__T   PL_CWU
+#define PL_CWU__TRUE   PL_CWU
+#define PL_CWU__Y   PL_CWU
+#define PL_CWU__YES   PL_CWU
+#define PL_CYPRIOT   PL_CPRT
+#define PL_CYRILLIC   PL_CYRL
+#define PL_CYRILLICEXTENDEDA   PL_CYRILLICEXTA
+#define PL_CYRILLICEXTENDEDB   PL_CYRILLICEXTB
+#define PL_CYRILLICEXTENDEDC   PL_CYRILLICEXTC
+#define PL_CYRILLICSUPPLEMENT   PL_CYRILLICSUP
+#define PL_CYRILLICSUPPLEMENTARY   PL_CYRILLICSUP
+#define PL_DASHPUNCTUATION   PL_PD
+#define PL_DASH__F   -PL_DASH
+#define PL_DASH__FALSE   -PL_DASH
+#define PL_DASH__N   -PL_DASH
+#define PL_DASH__NO   -PL_DASH
+#define PL_DASH__T   PL_DASH
+#define PL_DASH__TRUE   PL_DASH
+#define PL_DASH__Y   PL_DASH
+#define PL_DASH__YES   PL_DASH
+#define PL_DECIMALNUMBER   PL_XPOSIXDIGIT
+#define PL_DECOMPOSITIONTYPE__CAN   PL_DT__CAN
+#define PL_DECOMPOSITIONTYPE__CANONICAL   PL_DT__CAN
+#define PL_DECOMPOSITIONTYPE__CIRCLE   PL_DT__ENC
+#define PL_DECOMPOSITIONTYPE__COM   PL_DT__COM
+#define PL_DECOMPOSITIONTYPE__COMPAT   PL_DT__COM
+#define PL_DECOMPOSITIONTYPE__ENC   PL_DT__ENC
+#define PL_DECOMPOSITIONTYPE__FIN   PL_DT__FIN
+#define PL_DECOMPOSITIONTYPE__FINAL   PL_DT__FIN
+#define PL_DECOMPOSITIONTYPE__FONT   PL_DT__FONT
+#define PL_DECOMPOSITIONTYPE__FRA   PL_DT__FRA
+#define PL_DECOMPOSITIONTYPE__FRACTION   PL_DT__FRA
+#define PL_DECOMPOSITIONTYPE__INIT   PL_DT__INIT
+#define PL_DECOMPOSITIONTYPE__INITIAL   PL_DT__INIT
+#define PL_DECOMPOSITIONTYPE__ISO   PL_DT__ISO
+#define PL_DECOMPOSITIONTYPE__ISOLATED   PL_DT__ISO
+#define PL_DECOMPOSITIONTYPE__MED   PL_DT__MED
+#define PL_DECOMPOSITIONTYPE__MEDIAL   PL_DT__MED
+#define PL_DECOMPOSITIONTYPE__NAR   PL_DT__NAR
+#define PL_DECOMPOSITIONTYPE__NARROW   PL_DT__NAR
+#define PL_DECOMPOSITIONTYPE__NB   PL_DT__NB
+#define PL_DECOMPOSITIONTYPE__NOBREAK   PL_DT__NB
+#define PL_DECOMPOSITIONTYPE__NONCANON   PL_DT__NONCANON
+#define PL_DECOMPOSITIONTYPE__NONCANONICAL   PL_DT__NONCANON
+#define PL_DECOMPOSITIONTYPE__NONE   PL_DT__NONE
+#define PL_DECOMPOSITIONTYPE__SMALL   PL_DT__SML
+#define PL_DECOMPOSITIONTYPE__SML   PL_DT__SML
+#define PL_DECOMPOSITIONTYPE__SQR   PL_DT__SQR
+#define PL_DECOMPOSITIONTYPE__SQUARE   PL_DT__SQR
+#define PL_DECOMPOSITIONTYPE__SUB   PL_DT__SUB
+#define PL_DECOMPOSITIONTYPE__SUP   PL_DT__SUP
+#define PL_DECOMPOSITIONTYPE__SUPER   PL_DT__SUP
+#define PL_DECOMPOSITIONTYPE__VERT   PL_DT__VERT
+#define PL_DECOMPOSITIONTYPE__VERTICAL   PL_DT__VERT
+#define PL_DECOMPOSITIONTYPE__WIDE   PL_EA__F
+#define PL_DEFAULTIGNORABLECODEPOINT   PL_DI
+#define PL_DEFAULTIGNORABLECODEPOINT   PL_DI
+#define PL_DEFAULTIGNORABLECODEPOINT__F   -PL_DI
+#define PL_DEFAULTIGNORABLECODEPOINT__FALSE   -PL_DI
+#define PL_DEFAULTIGNORABLECODEPOINT__N   -PL_DI
+#define PL_DEFAULTIGNORABLECODEPOINT__NO   -PL_DI
+#define PL_DEFAULTIGNORABLECODEPOINT__T   PL_DI
+#define PL_DEFAULTIGNORABLECODEPOINT__TRUE   PL_DI
+#define PL_DEFAULTIGNORABLECODEPOINT__Y   PL_DI
+#define PL_DEFAULTIGNORABLECODEPOINT__YES   PL_DI
+#define PL_DEPRECATED   PL_DEP
+#define PL_DEPRECATED   PL_DEP
+#define PL_DEPRECATED__F   -PL_DEP
+#define PL_DEPRECATED__FALSE   -PL_DEP
+#define PL_DEPRECATED__N   -PL_DEP
+#define PL_DEPRECATED__NO   -PL_DEP
+#define PL_DEPRECATED__T   PL_DEP
+#define PL_DEPRECATED__TRUE   PL_DEP
+#define PL_DEPRECATED__Y   PL_DEP
+#define PL_DEPRECATED__YES   PL_DEP
+#define PL_DEP__F   -PL_DEP
+#define PL_DEP__FALSE   -PL_DEP
+#define PL_DEP__N   -PL_DEP
+#define PL_DEP__NO   -PL_DEP
+#define PL_DEP__T   PL_DEP
+#define PL_DEP__TRUE   PL_DEP
+#define PL_DEP__Y   PL_DEP
+#define PL_DEP__YES   PL_DEP
+#define PL_DESERET   PL_DSRT
+#define PL_DEVANAGARI   PL_DEVA
+#define PL_DEVANAGARIEXTENDED   PL_DEVANAGARIEXT
+#define PL_DIACRITIC   PL_DIA
+#define PL_DIACRITIC   PL_DIA
+#define PL_DIACRITIC__F   -PL_DIA
+#define PL_DIACRITIC__FALSE   -PL_DIA
+#define PL_DIACRITIC__N   -PL_DIA
+#define PL_DIACRITIC__NO   -PL_DIA
+#define PL_DIACRITIC__T   PL_DIA
+#define PL_DIACRITIC__TRUE   PL_DIA
+#define PL_DIACRITIC__Y   PL_DIA
+#define PL_DIACRITIC__YES   PL_DIA
+#define PL_DIA__F   -PL_DIA
+#define PL_DIA__FALSE   -PL_DIA
+#define PL_DIA__N   -PL_DIA
+#define PL_DIA__NO   -PL_DIA
+#define PL_DIA__T   PL_DIA
+#define PL_DIA__TRUE   PL_DIA
+#define PL_DIA__Y   PL_DIA
+#define PL_DIA__YES   PL_DIA
+#define PL_DIGIT   PL_XPOSIXDIGIT
+#define PL_DI__F   -PL_DI
+#define PL_DI__FALSE   -PL_DI
+#define PL_DI__N   -PL_DI
+#define PL_DI__NO   -PL_DI
+#define PL_DI__T   PL_DI
+#define PL_DI__TRUE   PL_DI
+#define PL_DI__Y   PL_DI
+#define PL_DI__YES   PL_DI
+#define PL_DOMINOTILES   PL_DOMINO
+#define PL_DT__CANONICAL   PL_DT__CAN
+#define PL_DT__CIRCLE   PL_DT__ENC
+#define PL_DT__COMPAT   PL_DT__COM
+#define PL_DT__FINAL   PL_DT__FIN
+#define PL_DT__FRACTION   PL_DT__FRA
+#define PL_DT__INITIAL   PL_DT__INIT
+#define PL_DT__ISOLATED   PL_DT__ISO
+#define PL_DT__MEDIAL   PL_DT__MED
+#define PL_DT__NARROW   PL_DT__NAR
+#define PL_DT__NOBREAK   PL_DT__NB
+#define PL_DT__NONCANONICAL   PL_DT__NONCANON
+#define PL_DT__SMALL   PL_DT__SML
+#define PL_DT__SQUARE   PL_DT__SQR
+#define PL_DT__SUPER   PL_DT__SUP
+#define PL_DT__VERTICAL   PL_DT__VERT
+#define PL_DT__WIDE   PL_EA__F
+#define PL_DUPLOYAN   PL_DUPL
+#define PL_EASTASIANWIDTH__A   PL_EA__A
+#define PL_EASTASIANWIDTH__AMBIGUOUS   PL_EA__A
+#define PL_EASTASIANWIDTH__F   PL_EA__F
+#define PL_EASTASIANWIDTH__FULLWIDTH   PL_EA__F
+#define PL_EASTASIANWIDTH__H   PL_EA__H
+#define PL_EASTASIANWIDTH__HALFWIDTH   PL_EA__H
+#define PL_EASTASIANWIDTH__N   PL_EA__N
+#define PL_EASTASIANWIDTH__NA   PL_EA__NA
+#define PL_EASTASIANWIDTH__NARROW   PL_EA__NA
+#define PL_EASTASIANWIDTH__NEUTRAL   PL_EA__N
+#define PL_EASTASIANWIDTH__W   PL_EA__W
+#define PL_EASTASIANWIDTH__WIDE   PL_EA__W
+#define PL_EA__AMBIGUOUS   PL_EA__A
+#define PL_EA__FULLWIDTH   PL_EA__F
+#define PL_EA__HALFWIDTH   PL_EA__H
+#define PL_EA__NARROW   PL_EA__NA
+#define PL_EA__NEUTRAL   PL_EA__N
+#define PL_EA__WIDE   PL_EA__W
+#define PL_EGYPTIANHIEROGLYPHS   PL_EGYP
+#define PL_ELBASAN   PL_ELBA
+#define PL_ENCLOSEDALPHANUMERICS   PL_ENCLOSEDALPHANUM
+#define PL_ENCLOSEDALPHANUMERICSUPPLEMENT   PL_ENCLOSEDALPHANUMSUP
+#define PL_ENCLOSEDCJKLETTERSANDMONTHS   PL_ENCLOSEDCJK
+#define PL_ENCLOSEDIDEOGRAPHICSUPPLEMENT   PL_ENCLOSEDIDEOGRAPHICSUP
+#define PL_ENCLOSINGMARK   PL_ME
+#define PL_ETHIOPIC   PL_ETHI
+#define PL_ETHIOPICEXTENDED   PL_ETHIOPICEXT
+#define PL_ETHIOPICEXTENDEDA   PL_ETHIOPICEXTA
+#define PL_ETHIOPICSUPPLEMENT   PL_ETHIOPICSUP
+#define PL_EXTENDER   PL_EXT
+#define PL_EXTENDER   PL_EXT
+#define PL_EXTENDER__F   -PL_EXT
+#define PL_EXTENDER__FALSE   -PL_EXT
+#define PL_EXTENDER__N   -PL_EXT
+#define PL_EXTENDER__NO   -PL_EXT
+#define PL_EXTENDER__T   PL_EXT
+#define PL_EXTENDER__TRUE   PL_EXT
+#define PL_EXTENDER__Y   PL_EXT
+#define PL_EXTENDER__YES   PL_EXT
+#define PL_EXT__F   -PL_EXT
+#define PL_EXT__FALSE   -PL_EXT
+#define PL_EXT__N   -PL_EXT
+#define PL_EXT__NO   -PL_EXT
+#define PL_EXT__T   PL_EXT
+#define PL_EXT__TRUE   PL_EXT
+#define PL_EXT__Y   PL_EXT
+#define PL_EXT__YES   PL_EXT
+#define PL_FINALPUNCTUATION   PL_PF
+#define PL_FORMAT   PL_CF
+#define PL_FULLCOMPOSITIONEXCLUSION   PL_COMPEX
+#define PL_FULLCOMPOSITIONEXCLUSION   PL_COMPEX
+#define PL_FULLCOMPOSITIONEXCLUSION__F   -PL_COMPEX
+#define PL_FULLCOMPOSITIONEXCLUSION__FALSE   -PL_COMPEX
+#define PL_FULLCOMPOSITIONEXCLUSION__N   -PL_COMPEX
+#define PL_FULLCOMPOSITIONEXCLUSION__NO   -PL_COMPEX
+#define PL_FULLCOMPOSITIONEXCLUSION__T   PL_COMPEX
+#define PL_FULLCOMPOSITIONEXCLUSION__TRUE   PL_COMPEX
+#define PL_FULLCOMPOSITIONEXCLUSION__Y   PL_COMPEX
+#define PL_FULLCOMPOSITIONEXCLUSION__YES   PL_COMPEX
+#define PL_GCB__CONTROL   PL_GCB__CN
+#define PL_GCB__CR   PL_LB__CR
+#define PL_GCB__EB   PL_WB__EB
+#define PL_GCB__EBASE   PL_WB__EB
+#define PL_GCB__EBASEGAZ   PL_WB__EBG
+#define PL_GCB__EBG   PL_WB__EBG
+#define PL_GCB__EM   PL_LB__EM
+#define PL_GCB__EMODIFIER   PL_LB__EM
+#define PL_GCB__EX   PL_GREXT
+#define PL_GCB__EXTEND   PL_GREXT
+#define PL_GCB__GAZ   PL_WB__GAZ
+#define PL_GCB__GLUEAFTERZWJ   PL_WB__GAZ
+#define PL_GCB__LF   PL_LB__LF
+#define PL_GCB__LV   PL_LB__H2
+#define PL_GCB__LVT   PL_LB__H3
+#define PL_GCB__OTHER   PL_GCB__XX
+#define PL_GCB__PREPEND   PL_GCB__PP
+#define PL_GCB__REGIONALINDICATOR   PL_RI
+#define PL_GCB__RI   PL_RI
+#define PL_GCB__SPACINGMARK   PL_GCB__SM
+#define PL_GCB__ZWJ   PL_LB__ZWJ
+#define PL_GC__C   PL_C
+#define PL_GC__CASEDLETTER   PL_L_AMP_
+#define PL_GC__CC   PL_XPOSIXCNTRL
+#define PL_GC__CF   PL_CF
+#define PL_GC__CLOSEPUNCTUATION   PL_PE
+#define PL_GC__CN   PL_CN
+#define PL_GC__CNTRL   PL_XPOSIXCNTRL
+#define PL_GC__CO   PL_CO
+#define PL_GC__COMBININGMARK   PL_M
+#define PL_GC__CONNECTORPUNCTUATION   PL_PC
+#define PL_GC__CONTROL   PL_XPOSIXCNTRL
+#define PL_GC__CS   PL_CS
+#define PL_GC__CURRENCYSYMBOL   PL_SC
+#define PL_GC__DASHPUNCTUATION   PL_PD
+#define PL_GC__DECIMALNUMBER   PL_XPOSIXDIGIT
+#define PL_GC__DIGIT   PL_XPOSIXDIGIT
+#define PL_GC__ENCLOSINGMARK   PL_ME
+#define PL_GC__FINALPUNCTUATION   PL_PF
+#define PL_GC__FORMAT   PL_CF
+#define PL_GC__INITIALPUNCTUATION   PL_PI
+#define PL_GC__L   PL_L
+#define PL_GC__LC   PL_L_AMP_
+#define PL_GC__LETTER   PL_L
+#define PL_GC__LETTERNUMBER   PL_NL
+#define PL_GC__LINESEPARATOR   PL_ZL
+#define PL_GC__LL   PL_LL
+#define PL_GC__LM   PL_LM
+#define PL_GC__LO   PL_LO
+#define PL_GC__LOWERCASELETTER   PL_LL
+#define PL_GC__LT   PL_LT
+#define PL_GC__LU   PL_LU
+#define PL_GC__L_   PL_L_AMP_
+#define PL_GC__L_AMP_   PL_L_AMP_
+#define PL_GC__M   PL_M
+#define PL_GC__MARK   PL_M
+#define PL_GC__MATHSYMBOL   PL_SM
+#define PL_GC__MC   PL_MC
+#define PL_GC__ME   PL_ME
+#define PL_GC__MN   PL_MN
+#define PL_GC__MODIFIERLETTER   PL_LM
+#define PL_GC__MODIFIERSYMBOL   PL_SK
+#define PL_GC__N   PL_N
+#define PL_GC__ND   PL_XPOSIXDIGIT
+#define PL_GC__NL   PL_NL
+#define PL_GC__NO   PL_NO
+#define PL_GC__NONSPACINGMARK   PL_MN
+#define PL_GC__NUMBER   PL_N
+#define PL_GC__OPENPUNCTUATION   PL_PS
+#define PL_GC__OTHER   PL_C
+#define PL_GC__OTHERLETTER   PL_LO
+#define PL_GC__OTHERNUMBER   PL_NO
+#define PL_GC__OTHERPUNCTUATION   PL_PO
+#define PL_GC__OTHERSYMBOL   PL_SO
+#define PL_GC__P   PL_P
+#define PL_GC__PARAGRAPHSEPARATOR   PL_ZP
+#define PL_GC__PC   PL_PC
+#define PL_GC__PD   PL_PD
+#define PL_GC__PE   PL_PE
+#define PL_GC__PF   PL_PF
+#define PL_GC__PI   PL_PI
+#define PL_GC__PO   PL_PO
+#define PL_GC__PRIVATEUSE   PL_CO
+#define PL_GC__PS   PL_PS
+#define PL_GC__PUNCT   PL_P
+#define PL_GC__PUNCTUATION   PL_P
+#define PL_GC__S   PL_S
+#define PL_GC__SC   PL_SC
+#define PL_GC__SEPARATOR   PL_Z
+#define PL_GC__SK   PL_SK
+#define PL_GC__SM   PL_SM
+#define PL_GC__SO   PL_SO
+#define PL_GC__SPACESEPARATOR   PL_ZS
+#define PL_GC__SPACINGMARK   PL_MC
+#define PL_GC__SURROGATE   PL_CS
+#define PL_GC__SYMBOL   PL_S
+#define PL_GC__TITLECASELETTER   PL_LT
+#define PL_GC__UNASSIGNED   PL_CN
+#define PL_GC__UPPERCASELETTER   PL_LU
+#define PL_GC__Z   PL_Z
+#define PL_GC__ZL   PL_ZL
+#define PL_GC__ZP   PL_ZP
+#define PL_GC__ZS   PL_ZS
+#define PL_GENERALCATEGORY__C   PL_C
+#define PL_GENERALCATEGORY__CASEDLETTER   PL_L_AMP_
+#define PL_GENERALCATEGORY__CC   PL_XPOSIXCNTRL
+#define PL_GENERALCATEGORY__CF   PL_CF
+#define PL_GENERALCATEGORY__CLOSEPUNCTUATION   PL_PE
+#define PL_GENERALCATEGORY__CN   PL_CN
+#define PL_GENERALCATEGORY__CNTRL   PL_XPOSIXCNTRL
+#define PL_GENERALCATEGORY__CO   PL_CO
+#define PL_GENERALCATEGORY__COMBININGMARK   PL_M
+#define PL_GENERALCATEGORY__CONNECTORPUNCTUATION   PL_PC
+#define PL_GENERALCATEGORY__CONTROL   PL_XPOSIXCNTRL
+#define PL_GENERALCATEGORY__CS   PL_CS
+#define PL_GENERALCATEGORY__CURRENCYSYMBOL   PL_SC
+#define PL_GENERALCATEGORY__DASHPUNCTUATION   PL_PD
+#define PL_GENERALCATEGORY__DECIMALNUMBER   PL_XPOSIXDIGIT
+#define PL_GENERALCATEGORY__DIGIT   PL_XPOSIXDIGIT
+#define PL_GENERALCATEGORY__ENCLOSINGMARK   PL_ME
+#define PL_GENERALCATEGORY__FINALPUNCTUATION   PL_PF
+#define PL_GENERALCATEGORY__FORMAT   PL_CF
+#define PL_GENERALCATEGORY__INITIALPUNCTUATION   PL_PI
+#define PL_GENERALCATEGORY__L   PL_L
+#define PL_GENERALCATEGORY__LC   PL_L_AMP_
+#define PL_GENERALCATEGORY__LETTER   PL_L
+#define PL_GENERALCATEGORY__LETTERNUMBER   PL_NL
+#define PL_GENERALCATEGORY__LINESEPARATOR   PL_ZL
+#define PL_GENERALCATEGORY__LL   PL_LL
+#define PL_GENERALCATEGORY__LM   PL_LM
+#define PL_GENERALCATEGORY__LO   PL_LO
+#define PL_GENERALCATEGORY__LOWERCASELETTER   PL_LL
+#define PL_GENERALCATEGORY__LT   PL_LT
+#define PL_GENERALCATEGORY__LU   PL_LU
+#define PL_GENERALCATEGORY__L_   PL_L_AMP_
+#define PL_GENERALCATEGORY__L_AMP_   PL_L_AMP_
+#define PL_GENERALCATEGORY__M   PL_M
+#define PL_GENERALCATEGORY__MARK   PL_M
+#define PL_GENERALCATEGORY__MATHSYMBOL   PL_SM
+#define PL_GENERALCATEGORY__MC   PL_MC
+#define PL_GENERALCATEGORY__ME   PL_ME
+#define PL_GENERALCATEGORY__MN   PL_MN
+#define PL_GENERALCATEGORY__MODIFIERLETTER   PL_LM
+#define PL_GENERALCATEGORY__MODIFIERSYMBOL   PL_SK
+#define PL_GENERALCATEGORY__N   PL_N
+#define PL_GENERALCATEGORY__ND   PL_XPOSIXDIGIT
+#define PL_GENERALCATEGORY__NL   PL_NL
+#define PL_GENERALCATEGORY__NO   PL_NO
+#define PL_GENERALCATEGORY__NONSPACINGMARK   PL_MN
+#define PL_GENERALCATEGORY__NUMBER   PL_N
+#define PL_GENERALCATEGORY__OPENPUNCTUATION   PL_PS
+#define PL_GENERALCATEGORY__OTHER   PL_C
+#define PL_GENERALCATEGORY__OTHERLETTER   PL_LO
+#define PL_GENERALCATEGORY__OTHERNUMBER   PL_NO
+#define PL_GENERALCATEGORY__OTHERPUNCTUATION   PL_PO
+#define PL_GENERALCATEGORY__OTHERSYMBOL   PL_SO
+#define PL_GENERALCATEGORY__P   PL_P
+#define PL_GENERALCATEGORY__PARAGRAPHSEPARATOR   PL_ZP
+#define PL_GENERALCATEGORY__PC   PL_PC
+#define PL_GENERALCATEGORY__PD   PL_PD
+#define PL_GENERALCATEGORY__PE   PL_PE
+#define PL_GENERALCATEGORY__PF   PL_PF
+#define PL_GENERALCATEGORY__PI   PL_PI
+#define PL_GENERALCATEGORY__PO   PL_PO
+#define PL_GENERALCATEGORY__PRIVATEUSE   PL_CO
+#define PL_GENERALCATEGORY__PS   PL_PS
+#define PL_GENERALCATEGORY__PUNCT   PL_P
+#define PL_GENERALCATEGORY__PUNCTUATION   PL_P
+#define PL_GENERALCATEGORY__S   PL_S
+#define PL_GENERALCATEGORY__SC   PL_SC
+#define PL_GENERALCATEGORY__SEPARATOR   PL_Z
+#define PL_GENERALCATEGORY__SK   PL_SK
+#define PL_GENERALCATEGORY__SM   PL_SM
+#define PL_GENERALCATEGORY__SO   PL_SO
+#define PL_GENERALCATEGORY__SPACESEPARATOR   PL_ZS
+#define PL_GENERALCATEGORY__SPACINGMARK   PL_MC
+#define PL_GENERALCATEGORY__SURROGATE   PL_CS
+#define PL_GENERALCATEGORY__SYMBOL   PL_S
+#define PL_GENERALCATEGORY__TITLECASELETTER   PL_LT
+#define PL_GENERALCATEGORY__UNASSIGNED   PL_CN
+#define PL_GENERALCATEGORY__UPPERCASELETTER   PL_LU
+#define PL_GENERALCATEGORY__Z   PL_Z
+#define PL_GENERALCATEGORY__ZL   PL_ZL
+#define PL_GENERALCATEGORY__ZP   PL_ZP
+#define PL_GENERALCATEGORY__ZS   PL_ZS
+#define PL_GENERALPUNCTUATION   PL_INPUNCTUATION
+#define PL_GEOMETRICSHAPESEXTENDED   PL_GEOMETRICSHAPESEXT
+#define PL_GEORGIAN   PL_GEOR
+#define PL_GEORGIANSUPPLEMENT   PL_GEORGIANSUP
+#define PL_GLAGOLITIC   PL_GLAG
+#define PL_GLAGOLITICSUPPLEMENT   PL_GLAGOLITICSUP
+#define PL_GOTHIC   PL_GOTH
+#define PL_GRANTHA   PL_GRAN
+#define PL_GRAPH   PL_XPOSIXGRAPH
+#define PL_GRAPHEMEBASE   PL_GRBASE
+#define PL_GRAPHEMEBASE   PL_GRBASE
+#define PL_GRAPHEMEBASE__F   -PL_GRBASE
+#define PL_GRAPHEMEBASE__FALSE   -PL_GRBASE
+#define PL_GRAPHEMEBASE__N   -PL_GRBASE
+#define PL_GRAPHEMEBASE__NO   -PL_GRBASE
+#define PL_GRAPHEMEBASE__T   PL_GRBASE
+#define PL_GRAPHEMEBASE__TRUE   PL_GRBASE
+#define PL_GRAPHEMEBASE__Y   PL_GRBASE
+#define PL_GRAPHEMEBASE__YES   PL_GRBASE
+#define PL_GRAPHEMECLUSTERBREAK__CN   PL_GCB__CN
+#define PL_GRAPHEMECLUSTERBREAK__CONTROL   PL_GCB__CN
+#define PL_GRAPHEMECLUSTERBREAK__CR   PL_LB__CR
+#define PL_GRAPHEMECLUSTERBREAK__EB   PL_WB__EB
+#define PL_GRAPHEMECLUSTERBREAK__EBASE   PL_WB__EB
+#define PL_GRAPHEMECLUSTERBREAK__EBASEGAZ   PL_WB__EBG
+#define PL_GRAPHEMECLUSTERBREAK__EBG   PL_WB__EBG
+#define PL_GRAPHEMECLUSTERBREAK__EM   PL_LB__EM
+#define PL_GRAPHEMECLUSTERBREAK__EMODIFIER   PL_LB__EM
+#define PL_GRAPHEMECLUSTERBREAK__EX   PL_GREXT
+#define PL_GRAPHEMECLUSTERBREAK__EXTEND   PL_GREXT
+#define PL_GRAPHEMECLUSTERBREAK__GAZ   PL_WB__GAZ
+#define PL_GRAPHEMECLUSTERBREAK__GLUEAFTERZWJ   PL_WB__GAZ
+#define PL_GRAPHEMECLUSTERBREAK__L   PL_GCB__L
+#define PL_GRAPHEMECLUSTERBREAK__LF   PL_LB__LF
+#define PL_GRAPHEMECLUSTERBREAK__LV   PL_LB__H2
+#define PL_GRAPHEMECLUSTERBREAK__LVT   PL_LB__H3
+#define PL_GRAPHEMECLUSTERBREAK__OTHER   PL_GCB__XX
+#define PL_GRAPHEMECLUSTERBREAK__PP   PL_GCB__PP
+#define PL_GRAPHEMECLUSTERBREAK__PREPEND   PL_GCB__PP
+#define PL_GRAPHEMECLUSTERBREAK__REGIONALINDICATOR   PL_RI
+#define PL_GRAPHEMECLUSTERBREAK__RI   PL_RI
+#define PL_GRAPHEMECLUSTERBREAK__SM   PL_GCB__SM
+#define PL_GRAPHEMECLUSTERBREAK__SPACINGMARK   PL_GCB__SM
+#define PL_GRAPHEMECLUSTERBREAK__T   PL_GCB__T
+#define PL_GRAPHEMECLUSTERBREAK__V   PL_GCB__V
+#define PL_GRAPHEMECLUSTERBREAK__XX   PL_GCB__XX
+#define PL_GRAPHEMECLUSTERBREAK__ZWJ   PL_LB__ZWJ
+#define PL_GRAPHEMEEXTEND   PL_GREXT
+#define PL_GRAPHEMEEXTEND   PL_GREXT
+#define PL_GRAPHEMEEXTEND__F   -PL_GREXT
+#define PL_GRAPHEMEEXTEND__FALSE   -PL_GREXT
+#define PL_GRAPHEMEEXTEND__N   -PL_GREXT
+#define PL_GRAPHEMEEXTEND__NO   -PL_GREXT
+#define PL_GRAPHEMEEXTEND__T   PL_GREXT
+#define PL_GRAPHEMEEXTEND__TRUE   PL_GREXT
+#define PL_GRAPHEMEEXTEND__Y   PL_GREXT
+#define PL_GRAPHEMEEXTEND__YES   PL_GREXT
+#define PL_GRBASE__F   -PL_GRBASE
+#define PL_GRBASE__FALSE   -PL_GRBASE
+#define PL_GRBASE__N   -PL_GRBASE
+#define PL_GRBASE__NO   -PL_GRBASE
+#define PL_GRBASE__T   PL_GRBASE
+#define PL_GRBASE__TRUE   PL_GRBASE
+#define PL_GRBASE__Y   PL_GRBASE
+#define PL_GRBASE__YES   PL_GRBASE
+#define PL_GREEK   PL_GREK
+#define PL_GREEKANDCOPTIC   PL_INGREEK
+#define PL_GREEKEXTENDED   PL_GREEKEXT
+#define PL_GREXT__F   -PL_GREXT
+#define PL_GREXT__FALSE   -PL_GREXT
+#define PL_GREXT__N   -PL_GREXT
+#define PL_GREXT__NO   -PL_GREXT
+#define PL_GREXT__T   PL_GREXT
+#define PL_GREXT__TRUE   PL_GREXT
+#define PL_GREXT__Y   PL_GREXT
+#define PL_GREXT__YES   PL_GREXT
+#define PL_GUJARATI   PL_GUJR
+#define PL_GURMUKHI   PL_GURU
+#define PL_HALFWIDTHANDFULLWIDTHFORMS   PL_HALFANDFULLFORMS
+#define PL_HANGUL   PL_HANG
+#define PL_HANGULCOMPATIBILITYJAMO   PL_COMPATJAMO
+#define PL_HANGULJAMO   PL_JAMO
+#define PL_HANGULJAMOEXTENDEDA   PL_JAMOEXTA
+#define PL_HANGULJAMOEXTENDEDB   PL_JAMOEXTB
+#define PL_HANGULSYLLABLES   PL_INHANGUL
+#define PL_HANGULSYLLABLETYPE__L   PL_GCB__L
+#define PL_HANGULSYLLABLETYPE__LEADINGJAMO   PL_GCB__L
+#define PL_HANGULSYLLABLETYPE__LV   PL_LB__H2
+#define PL_HANGULSYLLABLETYPE__LVSYLLABLE   PL_LB__H2
+#define PL_HANGULSYLLABLETYPE__LVT   PL_LB__H3
+#define PL_HANGULSYLLABLETYPE__LVTSYLLABLE   PL_LB__H3
+#define PL_HANGULSYLLABLETYPE__NA   PL_HST__NA
+#define PL_HANGULSYLLABLETYPE__NOTAPPLICABLE   PL_HST__NA
+#define PL_HANGULSYLLABLETYPE__T   PL_GCB__T
+#define PL_HANGULSYLLABLETYPE__TRAILINGJAMO   PL_GCB__T
+#define PL_HANGULSYLLABLETYPE__V   PL_GCB__V
+#define PL_HANGULSYLLABLETYPE__VOWELJAMO   PL_GCB__V
+#define PL_HANI   PL_HAN
+#define PL_HANUNOO   PL_HANO
+#define PL_HATRAN   PL_HATR
+#define PL_HEBREW   PL_HEBR
+#define PL_HEX   PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT   PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT   PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT__F   -PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT__FALSE   -PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT__N   -PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT__NO   -PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT__T   PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT__TRUE   PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT__Y   PL_XPOSIXXDIGIT
+#define PL_HEXDIGIT__YES   PL_XPOSIXXDIGIT
+#define PL_HEX__F   -PL_XPOSIXXDIGIT
+#define PL_HEX__FALSE   -PL_XPOSIXXDIGIT
+#define PL_HEX__N   -PL_XPOSIXXDIGIT
+#define PL_HEX__NO   -PL_XPOSIXXDIGIT
+#define PL_HEX__T   PL_XPOSIXXDIGIT
+#define PL_HEX__TRUE   PL_XPOSIXXDIGIT
+#define PL_HEX__Y   PL_XPOSIXXDIGIT
+#define PL_HEX__YES   PL_XPOSIXXDIGIT
+#define PL_HIGHPRIVATEUSESURROGATES   PL_HIGHPUSURROGATES
+#define PL_HIRAGANA   PL_HIRA
+#define PL_HORIZSPACE   PL_XPOSIXBLANK
+#define PL_HST__L   PL_GCB__L
+#define PL_HST__LEADINGJAMO   PL_GCB__L
+#define PL_HST__LV   PL_LB__H2
+#define PL_HST__LVSYLLABLE   PL_LB__H2
+#define PL_HST__LVT   PL_LB__H3
+#define PL_HST__LVTSYLLABLE   PL_LB__H3
+#define PL_HST__NOTAPPLICABLE   PL_HST__NA
+#define PL_HST__T   PL_GCB__T
+#define PL_HST__TRAILINGJAMO   PL_GCB__T
+#define PL_HST__V   PL_GCB__V
+#define PL_HST__VOWELJAMO   PL_GCB__V
+#define PL_HYPHEN__F   -PL_HYPHEN
+#define PL_HYPHEN__FALSE   -PL_HYPHEN
+#define PL_HYPHEN__N   -PL_HYPHEN
+#define PL_HYPHEN__NO   -PL_HYPHEN
+#define PL_HYPHEN__T   PL_HYPHEN
+#define PL_HYPHEN__TRUE   PL_HYPHEN
+#define PL_HYPHEN__Y   PL_HYPHEN
+#define PL_HYPHEN__YES   PL_HYPHEN
+#define PL_IDCONTINUE   PL_IDC
+#define PL_IDCONTINUE   PL_IDC
+#define PL_IDCONTINUE__F   -PL_IDC
+#define PL_IDCONTINUE__FALSE   -PL_IDC
+#define PL_IDCONTINUE__N   -PL_IDC
+#define PL_IDCONTINUE__NO   -PL_IDC
+#define PL_IDCONTINUE__T   PL_IDC
+#define PL_IDCONTINUE__TRUE   PL_IDC
+#define PL_IDCONTINUE__Y   PL_IDC
+#define PL_IDCONTINUE__YES   PL_IDC
+#define PL_IDC__F   -PL_IDC
+#define PL_IDC__FALSE   -PL_IDC
+#define PL_IDC__N   -PL_IDC
+#define PL_IDC__NO   -PL_IDC
+#define PL_IDC__T   PL_IDC
+#define PL_IDC__TRUE   PL_IDC
+#define PL_IDC__Y   PL_IDC
+#define PL_IDC__YES   PL_IDC
+#define PL_IDEOGRAPHIC   PL_IDEO
+#define PL_IDEOGRAPHIC   PL_IDEO
+#define PL_IDEOGRAPHICDESCRIPTIONCHARACTERS   PL_INIDC
+#define PL_IDEOGRAPHICSYMBOLSANDPUNCTUATION   PL_IDEOGRAPHICSYMBOLS
+#define PL_IDEOGRAPHIC__F   -PL_IDEO
+#define PL_IDEOGRAPHIC__FALSE   -PL_IDEO
+#define PL_IDEOGRAPHIC__N   -PL_IDEO
+#define PL_IDEOGRAPHIC__NO   -PL_IDEO
+#define PL_IDEOGRAPHIC__T   PL_IDEO
+#define PL_IDEOGRAPHIC__TRUE   PL_IDEO
+#define PL_IDEOGRAPHIC__Y   PL_IDEO
+#define PL_IDEOGRAPHIC__YES   PL_IDEO
+#define PL_IDEO__F   -PL_IDEO
+#define PL_IDEO__FALSE   -PL_IDEO
+#define PL_IDEO__N   -PL_IDEO
+#define PL_IDEO__NO   -PL_IDEO
+#define PL_IDEO__T   PL_IDEO
+#define PL_IDEO__TRUE   PL_IDEO
+#define PL_IDEO__Y   PL_IDEO
+#define PL_IDEO__YES   PL_IDEO
+#define PL_IDSBINARYOPERATOR   PL_IDSB
+#define PL_IDSBINARYOPERATOR   PL_IDSB
+#define PL_IDSBINARYOPERATOR__F   -PL_IDSB
+#define PL_IDSBINARYOPERATOR__FALSE   -PL_IDSB
+#define PL_IDSBINARYOPERATOR__N   -PL_IDSB
+#define PL_IDSBINARYOPERATOR__NO   -PL_IDSB
+#define PL_IDSBINARYOPERATOR__T   PL_IDSB
+#define PL_IDSBINARYOPERATOR__TRUE   PL_IDSB
+#define PL_IDSBINARYOPERATOR__Y   PL_IDSB
+#define PL_IDSBINARYOPERATOR__YES   PL_IDSB
+#define PL_IDSB__F   -PL_IDSB
+#define PL_IDSB__FALSE   -PL_IDSB
+#define PL_IDSB__N   -PL_IDSB
+#define PL_IDSB__NO   -PL_IDSB
+#define PL_IDSB__T   PL_IDSB
+#define PL_IDSB__TRUE   PL_IDSB
+#define PL_IDSB__Y   PL_IDSB
+#define PL_IDSB__YES   PL_IDSB
+#define PL_IDSTART   PL_IDS
+#define PL_IDSTART   PL_IDS
+#define PL_IDSTART__F   -PL_IDS
+#define PL_IDSTART__FALSE   -PL_IDS
+#define PL_IDSTART__N   -PL_IDS
+#define PL_IDSTART__NO   -PL_IDS
+#define PL_IDSTART__T   PL_IDS
+#define PL_IDSTART__TRUE   PL_IDS
+#define PL_IDSTART__Y   PL_IDS
+#define PL_IDSTART__YES   PL_IDS
+#define PL_IDSTRINARYOPERATOR   PL_IDST
+#define PL_IDSTRINARYOPERATOR   PL_IDST
+#define PL_IDSTRINARYOPERATOR__F   -PL_IDST
+#define PL_IDSTRINARYOPERATOR__FALSE   -PL_IDST
+#define PL_IDSTRINARYOPERATOR__N   -PL_IDST
+#define PL_IDSTRINARYOPERATOR__NO   -PL_IDST
+#define PL_IDSTRINARYOPERATOR__T   PL_IDST
+#define PL_IDSTRINARYOPERATOR__TRUE   PL_IDST
+#define PL_IDSTRINARYOPERATOR__Y   PL_IDST
+#define PL_IDSTRINARYOPERATOR__YES   PL_IDST
+#define PL_IDST__F   -PL_IDST
+#define PL_IDST__FALSE   -PL_IDST
+#define PL_IDST__N   -PL_IDST
+#define PL_IDST__NO   -PL_IDST
+#define PL_IDST__T   PL_IDST
+#define PL_IDST__TRUE   PL_IDST
+#define PL_IDST__Y   PL_IDST
+#define PL_IDST__YES   PL_IDST
+#define PL_IDS__F   -PL_IDS
+#define PL_IDS__FALSE   -PL_IDS
+#define PL_IDS__N   -PL_IDS
+#define PL_IDS__NO   -PL_IDS
+#define PL_IDS__T   PL_IDS
+#define PL_IDS__TRUE   PL_IDS
+#define PL_IDS__Y   PL_IDS
+#define PL_IDS__YES   PL_IDS
+#define PL_IMPERIALARAMAIC   PL_ARMI
+#define PL_INAEGEANNUMBERS   PL_AEGEANNUMBERS
+#define PL_INALCHEMICAL   PL_ALCHEMICAL
+#define PL_INALCHEMICALSYMBOLS   PL_ALCHEMICAL
+#define PL_INALPHABETICPF   PL_ALPHABETICPF
+#define PL_INALPHABETICPRESENTATIONFORMS   PL_ALPHABETICPF
+#define PL_INANCIENTGREEKMUSIC   PL_ANCIENTGREEKMUSIC
+#define PL_INANCIENTGREEKMUSICALNOTATION   PL_ANCIENTGREEKMUSIC
+#define PL_INANCIENTGREEKNUMBERS   PL_ANCIENTGREEKNUMBERS
+#define PL_INANCIENTSYMBOLS   PL_ANCIENTSYMBOLS
+#define PL_INARABICEXTA   PL_ARABICEXTA
+#define PL_INARABICEXTENDEDA   PL_ARABICEXTA
+#define PL_INARABICMATH   PL_ARABICMATH
+#define PL_INARABICMATHEMATICALALPHABETICSYMBOLS   PL_ARABICMATH
+#define PL_INARABICPFA   PL_ARABICPFA
+#define PL_INARABICPFB   PL_ARABICPFB
+#define PL_INARABICPRESENTATIONFORMSA   PL_ARABICPFA
+#define PL_INARABICPRESENTATIONFORMSB   PL_ARABICPFB
+#define PL_INARABICSUP   PL_ARABICSUP
+#define PL_INARABICSUPPLEMENT   PL_ARABICSUP
+#define PL_INARROWS   PL_ARROWS
+#define PL_INASCII   PL_ASCII
+#define PL_INBAMUMSUP   PL_BAMUMSUP
+#define PL_INBAMUMSUPPLEMENT   PL_BAMUMSUP
+#define PL_INBASICLATIN   PL_ASCII
+#define PL_INBLOCKELEMENTS   PL_BLOCKELEMENTS
+#define PL_INBOPOMOFOEXT   PL_BOPOMOFOEXT
+#define PL_INBOPOMOFOEXTENDED   PL_BOPOMOFOEXT
+#define PL_INBOXDRAWING   PL_BOXDRAWING
+#define PL_INBRAILLE   PL_BRAI
+#define PL_INBRAILLEPATTERNS   PL_BRAI
+#define PL_INBYZANTINEMUSIC   PL_BYZANTINEMUSIC
+#define PL_INBYZANTINEMUSICALSYMBOLS   PL_BYZANTINEMUSIC
+#define PL_INCANADIANSYLLABICS   PL_UCAS
+#define PL_INCHEROKEESUP   PL_CHEROKEESUP
+#define PL_INCHEROKEESUPPLEMENT   PL_CHEROKEESUP
+#define PL_INCJK   PL_CJK
+#define PL_INCJKCOMPAT   PL_CJKCOMPAT
+#define PL_INCJKCOMPATFORMS   PL_CJKCOMPATFORMS
+#define PL_INCJKCOMPATIBILITY   PL_CJKCOMPAT
+#define PL_INCJKCOMPATIBILITYFORMS   PL_CJKCOMPATFORMS
+#define PL_INCJKCOMPATIBILITYIDEOGRAPHS   PL_CJKCOMPATIDEOGRAPHS
+#define PL_INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT   PL_CJKCOMPATIDEOGRAPHSSUP
+#define PL_INCJKCOMPATIDEOGRAPHS   PL_CJKCOMPATIDEOGRAPHS
+#define PL_INCJKCOMPATIDEOGRAPHSSUP   PL_CJKCOMPATIDEOGRAPHSSUP
+#define PL_INCJKEXTA   PL_CJKEXTA
+#define PL_INCJKEXTB   PL_CJKEXTB
+#define PL_INCJKEXTC   PL_CJKEXTC
+#define PL_INCJKEXTD   PL_CJKEXTD
+#define PL_INCJKEXTE   PL_CJKEXTE
+#define PL_INCJKEXTF   PL_CJKEXTF
+#define PL_INCJKRADICALSSUP   PL_CJKRADICALSSUP
+#define PL_INCJKRADICALSSUPPLEMENT   PL_CJKRADICALSSUP
+#define PL_INCJKSTROKES   PL_CJKSTROKES
+#define PL_INCJKSYMBOLS   PL_CJKSYMBOLS
+#define PL_INCJKSYMBOLSANDPUNCTUATION   PL_CJKSYMBOLS
+#define PL_INCJKUNIFIEDIDEOGRAPHS   PL_CJK
+#define PL_INCJKUNIFIEDIDEOGRAPHSEXTENSIONA   PL_CJKEXTA
+#define PL_INCJKUNIFIEDIDEOGRAPHSEXTENSIONB   PL_CJKEXTB
+#define PL_INCJKUNIFIEDIDEOGRAPHSEXTENSIONC   PL_CJKEXTC
+#define PL_INCJKUNIFIEDIDEOGRAPHSEXTENSIOND   PL_CJKEXTD
+#define PL_INCJKUNIFIEDIDEOGRAPHSEXTENSIONE   PL_CJKEXTE
+#define PL_INCJKUNIFIEDIDEOGRAPHSEXTENSIONF   PL_CJKEXTF
+#define PL_INCOMBININGDIACRITICALMARKS   PL_DIACRITICALS
+#define PL_INCOMBININGDIACRITICALMARKSEXTENDED   PL_DIACRITICALSEXT
+#define PL_INCOMBININGDIACRITICALMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_INCOMBININGDIACRITICALMARKSSUPPLEMENT   PL_DIACRITICALSSUP
+#define PL_INCOMBININGHALFMARKS   PL_HALFMARKS
+#define PL_INCOMBININGMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_INCOMMONINDICNUMBERFORMS   PL_INDICNUMBERFORMS
+#define PL_INCOMPATJAMO   PL_COMPATJAMO
+#define PL_INCONTROLPICTURES   PL_CONTROLPICTURES
+#define PL_INCOPTICEPACTNUMBERS   PL_COPTICEPACTNUMBERS
+#define PL_INCOUNTINGROD   PL_COUNTINGROD
+#define PL_INCOUNTINGRODNUMERALS   PL_COUNTINGROD
+#define PL_INCUNEIFORMNUMBERS   PL_CUNEIFORMNUMBERS
+#define PL_INCUNEIFORMNUMBERSANDPUNCTUATION   PL_CUNEIFORMNUMBERS
+#define PL_INCURRENCYSYMBOLS   PL_CURRENCYSYMBOLS
+#define PL_INCYPRIOTSYLLABARY   PL_CYPRIOTSYLLABARY
+#define PL_INCYRILLICEXTA   PL_CYRILLICEXTA
+#define PL_INCYRILLICEXTB   PL_CYRILLICEXTB
+#define PL_INCYRILLICEXTC   PL_CYRILLICEXTC
+#define PL_INCYRILLICEXTENDEDA   PL_CYRILLICEXTA
+#define PL_INCYRILLICEXTENDEDB   PL_CYRILLICEXTB
+#define PL_INCYRILLICEXTENDEDC   PL_CYRILLICEXTC
+#define PL_INCYRILLICSUP   PL_CYRILLICSUP
+#define PL_INCYRILLICSUPPLEMENT   PL_CYRILLICSUP
+#define PL_INCYRILLICSUPPLEMENTARY   PL_CYRILLICSUP
+#define PL_INDESERET   PL_DSRT
+#define PL_INDEVANAGARIEXT   PL_DEVANAGARIEXT
+#define PL_INDEVANAGARIEXTENDED   PL_DEVANAGARIEXT
+#define PL_INDIACRITICALS   PL_DIACRITICALS
+#define PL_INDIACRITICALSEXT   PL_DIACRITICALSEXT
+#define PL_INDIACRITICALSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_INDIACRITICALSSUP   PL_DIACRITICALSSUP
+#define PL_INDICPOSITIONALCATEGORY__BOTTOM   PL_INPC__BOTTOM
+#define PL_INDICPOSITIONALCATEGORY__BOTTOMANDLEFT   PL_INPC__BOTTOMANDLEFT
+#define PL_INDICPOSITIONALCATEGORY__BOTTOMANDRIGHT   PL_INPC__BOTTOMANDRIGHT
+#define PL_INDICPOSITIONALCATEGORY__LEFT   PL_INPC__LEFT
+#define PL_INDICPOSITIONALCATEGORY__LEFTANDRIGHT   PL_INPC__LEFTANDRIGHT
+#define PL_INDICPOSITIONALCATEGORY__NA   PL_INPC__NA
+#define PL_INDICPOSITIONALCATEGORY__OVERSTRUCK   PL_INPC__OVERSTRUCK
+#define PL_INDICPOSITIONALCATEGORY__RIGHT   PL_INPC__RIGHT
+#define PL_INDICPOSITIONALCATEGORY__TOP   PL_INPC__TOP
+#define PL_INDICPOSITIONALCATEGORY__TOPANDBOTTOM   PL_INPC__TOPANDBOTTOM
+#define PL_INDICPOSITIONALCATEGORY__TOPANDBOTTOMANDRIGHT   PL_INPC__TOPANDBOTTOMANDRIGHT
+#define PL_INDICPOSITIONALCATEGORY__TOPANDLEFT   PL_INPC__TOPANDLEFT
+#define PL_INDICPOSITIONALCATEGORY__TOPANDLEFTANDRIGHT   PL_INPC__TOPANDLEFTANDRIGHT
+#define PL_INDICPOSITIONALCATEGORY__TOPANDRIGHT   PL_INPC__TOPANDRIGHT
+#define PL_INDICPOSITIONALCATEGORY__VISUALORDERLEFT   PL_LOE
+#define PL_INDICSYLLABICCATEGORY__AVAGRAHA   PL_INSC__AVAGRAHA
+#define PL_INDICSYLLABICCATEGORY__BINDU   PL_INSC__BINDU
+#define PL_INDICSYLLABICCATEGORY__BRAHMIJOININGNUMBER   PL_INSC__BRAHMIJOININGNUMBER
+#define PL_INDICSYLLABICCATEGORY__CANTILLATIONMARK   PL_INSC__CANTILLATIONMARK
+#define PL_INDICSYLLABICCATEGORY__CONSONANT   PL_INSC__CONSONANT
+#define PL_INDICSYLLABICCATEGORY__CONSONANTDEAD   PL_INSC__CONSONANTDEAD
+#define PL_INDICSYLLABICCATEGORY__CONSONANTFINAL   PL_INSC__CONSONANTFINAL
+#define PL_INDICSYLLABICCATEGORY__CONSONANTHEADLETTER   PL_INSC__CONSONANTHEADLETTER
+#define PL_INDICSYLLABICCATEGORY__CONSONANTKILLER   PL_INSC__CONSONANTKILLER
+#define PL_INDICSYLLABICCATEGORY__CONSONANTMEDIAL   PL_INSC__CONSONANTMEDIAL
+#define PL_INDICSYLLABICCATEGORY__CONSONANTPLACEHOLDER   PL_INSC__CONSONANTPLACEHOLDER
+#define PL_INDICSYLLABICCATEGORY__CONSONANTPRECEDINGREPHA   PL_INSC__CONSONANTPRECEDINGREPHA
+#define PL_INDICSYLLABICCATEGORY__CONSONANTPREFIXED   PL_INSC__CONSONANTPREFIXED
+#define PL_INDICSYLLABICCATEGORY__CONSONANTSUBJOINED   PL_INSC__CONSONANTSUBJOINED
+#define PL_INDICSYLLABICCATEGORY__CONSONANTSUCCEEDINGREPHA   PL_INSC__CONSONANTSUCCEEDINGREPHA
+#define PL_INDICSYLLABICCATEGORY__CONSONANTWITHSTACKER   PL_INSC__CONSONANTWITHSTACKER
+#define PL_INDICSYLLABICCATEGORY__GEMINATIONMARK   PL_INSC__GEMINATIONMARK
+#define PL_INDICSYLLABICCATEGORY__INVISIBLESTACKER   PL_INSC__INVISIBLESTACKER
+#define PL_INDICSYLLABICCATEGORY__JOINER   PL_LB__ZWJ
+#define PL_INDICSYLLABICCATEGORY__MODIFYINGLETTER   PL_INSC__MODIFYINGLETTER
+#define PL_INDICSYLLABICCATEGORY__NONJOINER   PL_INSC__NONJOINER
+#define PL_INDICSYLLABICCATEGORY__NUKTA   PL_INSC__NUKTA
+#define PL_INDICSYLLABICCATEGORY__NUMBER   PL_INSC__NUMBER
+#define PL_INDICSYLLABICCATEGORY__NUMBERJOINER   PL_INSC__NUMBERJOINER
+#define PL_INDICSYLLABICCATEGORY__OTHER   PL_INSC__OTHER
+#define PL_INDICSYLLABICCATEGORY__PUREKILLER   PL_INSC__PUREKILLER
+#define PL_INDICSYLLABICCATEGORY__REGISTERSHIFTER   PL_INSC__REGISTERSHIFTER
+#define PL_INDICSYLLABICCATEGORY__SYLLABLEMODIFIER   PL_INSC__SYLLABLEMODIFIER
+#define PL_INDICSYLLABICCATEGORY__TONELETTER   PL_INSC__TONELETTER
+#define PL_INDICSYLLABICCATEGORY__TONEMARK   PL_INSC__TONEMARK
+#define PL_INDICSYLLABICCATEGORY__VIRAMA   PL_INSC__VIRAMA
+#define PL_INDICSYLLABICCATEGORY__VISARGA   PL_INSC__VISARGA
+#define PL_INDICSYLLABICCATEGORY__VOWEL   PL_INSC__VOWEL
+#define PL_INDICSYLLABICCATEGORY__VOWELDEPENDENT   PL_INSC__VOWELDEPENDENT
+#define PL_INDICSYLLABICCATEGORY__VOWELINDEPENDENT   PL_INSC__VOWELINDEPENDENT
+#define PL_INDINGBATS   PL_DINGBATS
+#define PL_INDOMINO   PL_DOMINO
+#define PL_INDOMINOTILES   PL_DOMINO
+#define PL_INEARLYDYNASTICCUNEIFORM   PL_EARLYDYNASTICCUNEIFORM
+#define PL_INEMOTICONS   PL_EMOTICONS
+#define PL_INENCLOSEDALPHANUM   PL_ENCLOSEDALPHANUM
+#define PL_INENCLOSEDALPHANUMERICS   PL_ENCLOSEDALPHANUM
+#define PL_INENCLOSEDALPHANUMERICSUPPLEMENT   PL_ENCLOSEDALPHANUMSUP
+#define PL_INENCLOSEDALPHANUMSUP   PL_ENCLOSEDALPHANUMSUP
+#define PL_INENCLOSEDCJK   PL_ENCLOSEDCJK
+#define PL_INENCLOSEDCJKLETTERSANDMONTHS   PL_ENCLOSEDCJK
+#define PL_INENCLOSEDIDEOGRAPHICSUP   PL_ENCLOSEDIDEOGRAPHICSUP
+#define PL_INENCLOSEDIDEOGRAPHICSUPPLEMENT   PL_ENCLOSEDIDEOGRAPHICSUP
+#define PL_INETHIOPICEXT   PL_ETHIOPICEXT
+#define PL_INETHIOPICEXTA   PL_ETHIOPICEXTA
+#define PL_INETHIOPICEXTENDED   PL_ETHIOPICEXT
+#define PL_INETHIOPICEXTENDEDA   PL_ETHIOPICEXTA
+#define PL_INETHIOPICSUP   PL_ETHIOPICSUP
+#define PL_INETHIOPICSUPPLEMENT   PL_ETHIOPICSUP
+#define PL_INGENERALPUNCTUATION   PL_INPUNCTUATION
+#define PL_INGEOMETRICSHAPES   PL_GEOMETRICSHAPES
+#define PL_INGEOMETRICSHAPESEXT   PL_GEOMETRICSHAPESEXT
+#define PL_INGEOMETRICSHAPESEXTENDED   PL_GEOMETRICSHAPESEXT
+#define PL_INGEORGIANSUP   PL_GEORGIANSUP
+#define PL_INGEORGIANSUPPLEMENT   PL_GEORGIANSUP
+#define PL_INGLAGOLITICSUP   PL_GLAGOLITICSUP
+#define PL_INGLAGOLITICSUPPLEMENT   PL_GLAGOLITICSUP
+#define PL_INGREEKANDCOPTIC   PL_INGREEK
+#define PL_INGREEKEXT   PL_GREEKEXT
+#define PL_INGREEKEXTENDED   PL_GREEKEXT
+#define PL_INHALFANDFULLFORMS   PL_HALFANDFULLFORMS
+#define PL_INHALFMARKS   PL_HALFMARKS
+#define PL_INHALFWIDTHANDFULLWIDTHFORMS   PL_HALFANDFULLFORMS
+#define PL_INHANGULCOMPATIBILITYJAMO   PL_COMPATJAMO
+#define PL_INHANGULJAMO   PL_JAMO
+#define PL_INHANGULJAMOEXTENDEDA   PL_JAMOEXTA
+#define PL_INHANGULJAMOEXTENDEDB   PL_JAMOEXTB
+#define PL_INHANGULSYLLABLES   PL_INHANGUL
+#define PL_INHERITED   PL_QAAI
+#define PL_INHIGHPRIVATEUSESURROGATES   PL_HIGHPUSURROGATES
+#define PL_INHIGHPUSURROGATES   PL_HIGHPUSURROGATES
+#define PL_INHIGHSURROGATES   PL_HIGHSURROGATES
+#define PL_INIDEOGRAPHICDESCRIPTIONCHARACTERS   PL_INIDC
+#define PL_INIDEOGRAPHICSYMBOLS   PL_IDEOGRAPHICSYMBOLS
+#define PL_INIDEOGRAPHICSYMBOLSANDPUNCTUATION   PL_IDEOGRAPHICSYMBOLS
+#define PL_ININDICNUMBERFORMS   PL_INDICNUMBERFORMS
+#define PL_INIPAEXT   PL_IPAEXT
+#define PL_INIPAEXTENSIONS   PL_IPAEXT
+#define PL_INITIALPUNCTUATION   PL_PI
+#define PL_INJAMO   PL_JAMO
+#define PL_INJAMOEXTA   PL_JAMOEXTA
+#define PL_INJAMOEXTB   PL_JAMOEXTB
+#define PL_INKANAEXTA   PL_KANAEXTA
+#define PL_INKANAEXTENDEDA   PL_KANAEXTA
+#define PL_INKANASUP   PL_KANASUP
+#define PL_INKANASUPPLEMENT   PL_KANASUP
+#define PL_INKANBUN   PL_KANBUN
+#define PL_INKANGXI   PL_KANGXI
+#define PL_INKANGXIRADICALS   PL_KANGXI
+#define PL_INKATAKANAEXT   PL_KATAKANAEXT
+#define PL_INKATAKANAPHONETICEXTENSIONS   PL_KATAKANAEXT
+#define PL_INKAYAHLI   PL_KALI
+#define PL_INKHMERSYMBOLS   PL_KHMERSYMBOLS
+#define PL_INLATIN1   PL_LATIN1
+#define PL_INLATIN1SUP   PL_LATIN1
+#define PL_INLATIN1SUPPLEMENT   PL_LATIN1
+#define PL_INLATINEXTA   PL_LATINEXTA
+#define PL_INLATINEXTADDITIONAL   PL_LATINEXTADDITIONAL
+#define PL_INLATINEXTB   PL_LATINEXTB
+#define PL_INLATINEXTC   PL_LATINEXTC
+#define PL_INLATINEXTD   PL_LATINEXTD
+#define PL_INLATINEXTE   PL_LATINEXTE
+#define PL_INLATINEXTENDEDA   PL_LATINEXTA
+#define PL_INLATINEXTENDEDADDITIONAL   PL_LATINEXTADDITIONAL
+#define PL_INLATINEXTENDEDB   PL_LATINEXTB
+#define PL_INLATINEXTENDEDC   PL_LATINEXTC
+#define PL_INLATINEXTENDEDD   PL_LATINEXTD
+#define PL_INLATINEXTENDEDE   PL_LATINEXTE
+#define PL_INLETTERLIKESYMBOLS   PL_LETTERLIKESYMBOLS
+#define PL_INLINEARBIDEOGRAMS   PL_LINEARBIDEOGRAMS
+#define PL_INLINEARBSYLLABARY   PL_LINEARBSYLLABARY
+#define PL_INLISU   PL_LISU
+#define PL_INLOWSURROGATES   PL_LOWSURROGATES
+#define PL_INMAHJONG   PL_MAHJONG
+#define PL_INMAHJONGTILES   PL_MAHJONG
+#define PL_INMATHALPHANUM   PL_MATHALPHANUM
+#define PL_INMATHEMATICALALPHANUMERICSYMBOLS   PL_MATHALPHANUM
+#define PL_INMATHEMATICALOPERATORS   PL_MATHOPERATORS
+#define PL_INMATHOPERATORS   PL_MATHOPERATORS
+#define PL_INMEETEIMAYEKEXT   PL_MEETEIMAYEKEXT
+#define PL_INMEETEIMAYEKEXTENSIONS   PL_MEETEIMAYEKEXT
+#define PL_INMEROITICHIEROGLYPHS   PL_MERO
+#define PL_INMISCARROWS   PL_MISCARROWS
+#define PL_INMISCELLANEOUSMATHEMATICALSYMBOLSA   PL_MISCMATHSYMBOLSA
+#define PL_INMISCELLANEOUSMATHEMATICALSYMBOLSB   PL_MISCMATHSYMBOLSB
+#define PL_INMISCELLANEOUSSYMBOLS   PL_MISCSYMBOLS
+#define PL_INMISCELLANEOUSSYMBOLSANDARROWS   PL_MISCARROWS
+#define PL_INMISCELLANEOUSSYMBOLSANDPICTOGRAPHS   PL_MISCPICTOGRAPHS
+#define PL_INMISCELLANEOUSTECHNICAL   PL_MISCTECHNICAL
+#define PL_INMISCMATHSYMBOLSA   PL_MISCMATHSYMBOLSA
+#define PL_INMISCMATHSYMBOLSB   PL_MISCMATHSYMBOLSB
+#define PL_INMISCPICTOGRAPHS   PL_MISCPICTOGRAPHS
+#define PL_INMISCSYMBOLS   PL_MISCSYMBOLS
+#define PL_INMISCTECHNICAL   PL_MISCTECHNICAL
+#define PL_INMODIFIERLETTERS   PL_MODIFIERLETTERS
+#define PL_INMODIFIERTONELETTERS   PL_MODIFIERTONELETTERS
+#define PL_INMONGOLIANSUP   PL_MONGOLIANSUP
+#define PL_INMONGOLIANSUPPLEMENT   PL_MONGOLIANSUP
+#define PL_INMUSIC   PL_MUSIC
+#define PL_INMUSICALSYMBOLS   PL_MUSIC
+#define PL_INMYANMAREXTA   PL_MYANMAREXTA
+#define PL_INMYANMAREXTB   PL_MYANMAREXTB
+#define PL_INMYANMAREXTENDEDA   PL_MYANMAREXTA
+#define PL_INMYANMAREXTENDEDB   PL_MYANMAREXTB
+#define PL_INNB   PL_NB
+#define PL_INNOBLOCK   PL_NB
+#define PL_INNUMBERFORMS   PL_NUMBERFORMS
+#define PL_INOCR   PL_OCR
+#define PL_INOLCHIKI   PL_OLCK
+#define PL_INOLDNORTHARABIAN   PL_NARB
+#define PL_INOLDSOUTHARABIAN   PL_SARB
+#define PL_INOPTICALCHARACTERRECOGNITION   PL_OCR
+#define PL_INORNAMENTALDINGBATS   PL_ORNAMENTALDINGBATS
+#define PL_INPALMYRENE   PL_PALM
+#define PL_INPC__VISUALORDERLEFT   PL_LOE
+#define PL_INPHAISTOS   PL_PHAISTOS
+#define PL_INPHAISTOSDISC   PL_PHAISTOS
+#define PL_INPHONETICEXT   PL_PHONETICEXT
+#define PL_INPHONETICEXTENSIONS   PL_PHONETICEXT
+#define PL_INPHONETICEXTENSIONSSUPPLEMENT   PL_PHONETICEXTSUP
+#define PL_INPHONETICEXTSUP   PL_PHONETICEXTSUP
+#define PL_INPLAYINGCARDS   PL_PLAYINGCARDS
+#define PL_INPRIVATEUSE   PL_PUA
+#define PL_INPRIVATEUSEAREA   PL_PUA
+#define PL_INPUA   PL_PUA
+#define PL_INRUMI   PL_RUMI
+#define PL_INRUMINUMERALSYMBOLS   PL_RUMI
+#define PL_INSCRIPTIONALPAHLAVI   PL_PHLI
+#define PL_INSCRIPTIONALPARTHIAN   PL_PRTI
+#define PL_INSC__JOINER   PL_LB__ZWJ
+#define PL_INSHAVIAN   PL_SHAW
+#define PL_INSHORTHANDFORMATCONTROLS   PL_SHORTHANDFORMATCONTROLS
+#define PL_INSINHALAARCHAICNUMBERS   PL_SINHALAARCHAICNUMBERS
+#define PL_INSMALLFORMS   PL_SMALLFORMS
+#define PL_INSMALLFORMVARIANTS   PL_SMALLFORMS
+#define PL_INSPACINGMODIFIERLETTERS   PL_MODIFIERLETTERS
+#define PL_INSPECIALS   PL_SPECIALS
+#define PL_INSUNDANESESUP   PL_SUNDANESESUP
+#define PL_INSUNDANESESUPPLEMENT   PL_SUNDANESESUP
+#define PL_INSUPARROWSA   PL_SUPARROWSA
+#define PL_INSUPARROWSB   PL_SUPARROWSB
+#define PL_INSUPARROWSC   PL_SUPARROWSC
+#define PL_INSUPERANDSUB   PL_SUPERANDSUB
+#define PL_INSUPERSCRIPTSANDSUBSCRIPTS   PL_SUPERANDSUB
+#define PL_INSUPMATHOPERATORS   PL_SUPMATHOPERATORS
+#define PL_INSUPPLEMENTALARROWSA   PL_SUPARROWSA
+#define PL_INSUPPLEMENTALARROWSB   PL_SUPARROWSB
+#define PL_INSUPPLEMENTALARROWSC   PL_SUPARROWSC
+#define PL_INSUPPLEMENTALMATHEMATICALOPERATORS   PL_SUPMATHOPERATORS
+#define PL_INSUPPLEMENTALPUNCTUATION   PL_SUPPUNCTUATION
+#define PL_INSUPPLEMENTALSYMBOLSANDPICTOGRAPHS   PL_SUPSYMBOLSANDPICTOGRAPHS
+#define PL_INSUPPLEMENTARYPRIVATEUSEAREAA   PL_SUPPUAA
+#define PL_INSUPPLEMENTARYPRIVATEUSEAREAB   PL_SUPPUAB
+#define PL_INSUPPUAA   PL_SUPPUAA
+#define PL_INSUPPUAB   PL_SUPPUAB
+#define PL_INSUPPUNCTUATION   PL_SUPPUNCTUATION
+#define PL_INSUPSYMBOLSANDPICTOGRAPHS   PL_SUPSYMBOLSANDPICTOGRAPHS
+#define PL_INSUTTONSIGNWRITING   PL_SUTTONSIGNWRITING
+#define PL_INSYRIACSUP   PL_SYRIACSUP
+#define PL_INSYRIACSUPPLEMENT   PL_SYRIACSUP
+#define PL_INTAGS   PL_TAGS
+#define PL_INTAIXUANJING   PL_TAIXUANJING
+#define PL_INTAIXUANJINGSYMBOLS   PL_TAIXUANJING
+#define PL_INTANGUTCOMPONENTS   PL_TANGUTCOMPONENTS
+#define PL_INTRANSPORTANDMAP   PL_TRANSPORTANDMAP
+#define PL_INTRANSPORTANDMAPSYMBOLS   PL_TRANSPORTANDMAP
+#define PL_INUCAS   PL_UCAS
+#define PL_INUCASEXT   PL_UCASEXT
+#define PL_INUNIFIEDCANADIANABORIGINALSYLLABICS   PL_UCAS
+#define PL_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED   PL_UCASEXT
+#define PL_INVARIATIONSELECTORS   PL_INVS
+#define PL_INVARIATIONSELECTORSSUPPLEMENT   PL_VSSUP
+#define PL_INVEDICEXT   PL_VEDICEXT
+#define PL_INVEDICEXTENSIONS   PL_VEDICEXT
+#define PL_INVERTICALFORMS   PL_VERTICALFORMS
+#define PL_INVSSUP   PL_VSSUP
+#define PL_INYIJING   PL_YIJING
+#define PL_INYIJINGHEXAGRAMSYMBOLS   PL_YIJING
+#define PL_INYIRADICALS   PL_YIRADICALS
+#define PL_INYISYLLABLES   PL_YISYLLABLES
+#define PL_IN__10_DOT_0   PL_IN__10
+#define PL_IN__2_DOT_0   PL_IN__2
+#define PL_IN__3_DOT_0   PL_IN__3
+#define PL_IN__4_DOT_0   PL_IN__4
+#define PL_IN__5_DOT_0   PL_IN__5
+#define PL_IN__6_DOT_0   PL_IN__6
+#define PL_IN__7_DOT_0   PL_IN__7
+#define PL_IN__8_DOT_0   PL_IN__8
+#define PL_IN__9_DOT_0   PL_IN__9
+#define PL_IN__UNASSIGNED   PL_AGE__NA
+#define PL_IN__V100   PL_IN__10
+#define PL_IN__V20   PL_IN__2
+#define PL_IN__V21   PL_IN__2_DOT_1
+#define PL_IN__V30   PL_IN__3
+#define PL_IN__V31   PL_IN__3_DOT_1
+#define PL_IN__V32   PL_IN__3_DOT_2
+#define PL_IN__V40   PL_IN__4
+#define PL_IN__V41   PL_IN__4_DOT_1
+#define PL_IN__V50   PL_IN__5
+#define PL_IN__V51   PL_IN__5_DOT_1
+#define PL_IN__V52   PL_IN__5_DOT_2
+#define PL_IN__V60   PL_IN__6
+#define PL_IN__V61   PL_IN__6_DOT_1
+#define PL_IN__V62   PL_IN__6_DOT_2
+#define PL_IN__V63   PL_IN__6_DOT_3
+#define PL_IN__V70   PL_IN__7
+#define PL_IN__V80   PL_IN__8
+#define PL_IN__V90   PL_IN__9
+#define PL_IPAEXTENSIONS   PL_IPAEXT
+#define PL_ISADLAM   PL_ADLM
+#define PL_ISADLM   PL_ADLM
+#define PL_ISAEGEANNUMBERS   PL_AEGEANNUMBERS
+#define PL_ISAGHB   PL_AGHB
+#define PL_ISAHEX   PL_POSIXXDIGIT
+#define PL_ISAHOM   PL_AHOM
+#define PL_ISALCHEMICAL   PL_ALCHEMICAL
+#define PL_ISALCHEMICALSYMBOLS   PL_ALCHEMICAL
+#define PL_ISALL   PL_ALL
+#define PL_ISALNUM   PL_XPOSIXALNUM
+#define PL_ISALPHA   PL_XPOSIXALPHA
+#define PL_ISALPHABETIC   PL_XPOSIXALPHA
+#define PL_ISALPHABETICPF   PL_ALPHABETICPF
+#define PL_ISALPHABETICPRESENTATIONFORMS   PL_ALPHABETICPF
+#define PL_ISANATOLIANHIEROGLYPHS   PL_HLUW
+#define PL_ISANCIENTGREEKMUSIC   PL_ANCIENTGREEKMUSIC
+#define PL_ISANCIENTGREEKMUSICALNOTATION   PL_ANCIENTGREEKMUSIC
+#define PL_ISANCIENTGREEKNUMBERS   PL_ANCIENTGREEKNUMBERS
+#define PL_ISANCIENTSYMBOLS   PL_ANCIENTSYMBOLS
+#define PL_ISANY   PL_ANY
+#define PL_ISARAB   PL_ARAB
+#define PL_ISARABIC   PL_ARAB
+#define PL_ISARABICEXTA   PL_ARABICEXTA
+#define PL_ISARABICEXTENDEDA   PL_ARABICEXTA
+#define PL_ISARABICMATH   PL_ARABICMATH
+#define PL_ISARABICMATHEMATICALALPHABETICSYMBOLS   PL_ARABICMATH
+#define PL_ISARABICPFA   PL_ARABICPFA
+#define PL_ISARABICPFB   PL_ARABICPFB
+#define PL_ISARABICPRESENTATIONFORMSA   PL_ARABICPFA
+#define PL_ISARABICPRESENTATIONFORMSB   PL_ARABICPFB
+#define PL_ISARABICSUP   PL_ARABICSUP
+#define PL_ISARABICSUPPLEMENT   PL_ARABICSUP
+#define PL_ISARMENIAN   PL_ARMN
+#define PL_ISARMI   PL_ARMI
+#define PL_ISARMN   PL_ARMN
+#define PL_ISARROWS   PL_ARROWS
+#define PL_ISASCII   PL_ASCII
+#define PL_ISASCIIHEXDIGIT   PL_POSIXXDIGIT
+#define PL_ISASSIGNED   PL_ASSIGNED
+#define PL_ISAVESTAN   PL_AVST
+#define PL_ISAVST   PL_AVST
+#define PL_ISBALI   PL_BALI
+#define PL_ISBALINESE   PL_BALI
+#define PL_ISBAMU   PL_BAMU
+#define PL_ISBAMUM   PL_BAMU
+#define PL_ISBAMUMSUP   PL_BAMUMSUP
+#define PL_ISBAMUMSUPPLEMENT   PL_BAMUMSUP
+#define PL_ISBASICLATIN   PL_ASCII
+#define PL_ISBASS   PL_BASS
+#define PL_ISBASSAVAH   PL_BASS
+#define PL_ISBATAK   PL_BATK
+#define PL_ISBATK   PL_BATK
+#define PL_ISBENG   PL_BENG
+#define PL_ISBENGALI   PL_BENG
+#define PL_ISBHAIKSUKI   PL_BHKS
+#define PL_ISBHKS   PL_BHKS
+#define PL_ISBIDIC   PL_BIDIC
+#define PL_ISBIDICONTROL   PL_BIDIC
+#define PL_ISBIDIM   PL_BIDIM
+#define PL_ISBIDIMIRRORED   PL_BIDIM
+#define PL_ISBLANK   PL_XPOSIXBLANK
+#define PL_ISBLOCKELEMENTS   PL_BLOCKELEMENTS
+#define PL_ISBOPO   PL_BOPO
+#define PL_ISBOPOMOFO   PL_BOPO
+#define PL_ISBOPOMOFOEXT   PL_BOPOMOFOEXT
+#define PL_ISBOPOMOFOEXTENDED   PL_BOPOMOFOEXT
+#define PL_ISBOXDRAWING   PL_BOXDRAWING
+#define PL_ISBRAH   PL_BRAH
+#define PL_ISBRAHMI   PL_BRAH
+#define PL_ISBRAI   PL_BRAI
+#define PL_ISBRAILLE   PL_BRAI
+#define PL_ISBRAILLEPATTERNS   PL_BRAI
+#define PL_ISBUGI   PL_BUGI
+#define PL_ISBUGINESE   PL_BUGI
+#define PL_ISBUHD   PL_BUHD
+#define PL_ISBUHID   PL_BUHD
+#define PL_ISBYZANTINEMUSIC   PL_BYZANTINEMUSIC
+#define PL_ISBYZANTINEMUSICALSYMBOLS   PL_BYZANTINEMUSIC
+#define PL_ISC   PL_C
+#define PL_ISCAKM   PL_CAKM
+#define PL_ISCANADIANABORIGINAL   PL_CANS
+#define PL_ISCANADIANSYLLABICS   PL_UCAS
+#define PL_ISCANS   PL_CANS
+#define PL_ISCARI   PL_CARI
+#define PL_ISCARIAN   PL_CARI
+#define PL_ISCASED   PL_CASED
+#define PL_ISCASEDLETTER   PL_L_AMP_
+#define PL_ISCASEIGNORABLE   PL_CI
+#define PL_ISCAUCASIANALBANIAN   PL_AGHB
+#define PL_ISCC   PL_XPOSIXCNTRL
+#define PL_ISCE   PL_CE
+#define PL_ISCF   PL_CF
+#define PL_ISCHAKMA   PL_CAKM
+#define PL_ISCHAM   PL_CHAM
+#define PL_ISCHANGESWHENCASEFOLDED   PL_CWCF
+#define PL_ISCHANGESWHENCASEMAPPED   PL_CWCM
+#define PL_ISCHANGESWHENLOWERCASED   PL_CWL
+#define PL_ISCHANGESWHENNFKCCASEFOLDED   PL_CWKCF
+#define PL_ISCHANGESWHENTITLECASED   PL_CWT
+#define PL_ISCHANGESWHENUPPERCASED   PL_CWU
+#define PL_ISCHER   PL_CHER
+#define PL_ISCHEROKEE   PL_CHER
+#define PL_ISCHEROKEESUP   PL_CHEROKEESUP
+#define PL_ISCHEROKEESUPPLEMENT   PL_CHEROKEESUP
+#define PL_ISCI   PL_CI
+#define PL_ISCJK   PL_CJK
+#define PL_ISCJKCOMPAT   PL_CJKCOMPAT
+#define PL_ISCJKCOMPATFORMS   PL_CJKCOMPATFORMS
+#define PL_ISCJKCOMPATIBILITY   PL_CJKCOMPAT
+#define PL_ISCJKCOMPATIBILITYFORMS   PL_CJKCOMPATFORMS
+#define PL_ISCJKCOMPATIBILITYIDEOGRAPHS   PL_CJKCOMPATIDEOGRAPHS
+#define PL_ISCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT   PL_CJKCOMPATIDEOGRAPHSSUP
+#define PL_ISCJKCOMPATIDEOGRAPHS   PL_CJKCOMPATIDEOGRAPHS
+#define PL_ISCJKCOMPATIDEOGRAPHSSUP   PL_CJKCOMPATIDEOGRAPHSSUP
+#define PL_ISCJKEXTA   PL_CJKEXTA
+#define PL_ISCJKEXTB   PL_CJKEXTB
+#define PL_ISCJKEXTC   PL_CJKEXTC
+#define PL_ISCJKEXTD   PL_CJKEXTD
+#define PL_ISCJKEXTE   PL_CJKEXTE
+#define PL_ISCJKEXTF   PL_CJKEXTF
+#define PL_ISCJKRADICALSSUP   PL_CJKRADICALSSUP
+#define PL_ISCJKRADICALSSUPPLEMENT   PL_CJKRADICALSSUP
+#define PL_ISCJKSTROKES   PL_CJKSTROKES
+#define PL_ISCJKSYMBOLS   PL_CJKSYMBOLS
+#define PL_ISCJKSYMBOLSANDPUNCTUATION   PL_CJKSYMBOLS
+#define PL_ISCJKUNIFIEDIDEOGRAPHS   PL_CJK
+#define PL_ISCJKUNIFIEDIDEOGRAPHSEXTENSIONA   PL_CJKEXTA
+#define PL_ISCJKUNIFIEDIDEOGRAPHSEXTENSIONB   PL_CJKEXTB
+#define PL_ISCJKUNIFIEDIDEOGRAPHSEXTENSIONC   PL_CJKEXTC
+#define PL_ISCJKUNIFIEDIDEOGRAPHSEXTENSIOND   PL_CJKEXTD
+#define PL_ISCJKUNIFIEDIDEOGRAPHSEXTENSIONE   PL_CJKEXTE
+#define PL_ISCJKUNIFIEDIDEOGRAPHSEXTENSIONF   PL_CJKEXTF
+#define PL_ISCLOSEPUNCTUATION   PL_PE
+#define PL_ISCN   PL_CN
+#define PL_ISCNTRL   PL_XPOSIXCNTRL
+#define PL_ISCO   PL_CO
+#define PL_ISCOMBININGDIACRITICALMARKS   PL_DIACRITICALS
+#define PL_ISCOMBININGDIACRITICALMARKSEXTENDED   PL_DIACRITICALSEXT
+#define PL_ISCOMBININGDIACRITICALMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_ISCOMBININGDIACRITICALMARKSSUPPLEMENT   PL_DIACRITICALSSUP
+#define PL_ISCOMBININGHALFMARKS   PL_HALFMARKS
+#define PL_ISCOMBININGMARK   PL_M
+#define PL_ISCOMBININGMARKSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_ISCOMMON   PL_ZYYY
+#define PL_ISCOMMONINDICNUMBERFORMS   PL_INDICNUMBERFORMS
+#define PL_ISCOMPATJAMO   PL_COMPATJAMO
+#define PL_ISCOMPEX   PL_COMPEX
+#define PL_ISCOMPOSITIONEXCLUSION   PL_CE
+#define PL_ISCONNECTORPUNCTUATION   PL_PC
+#define PL_ISCONTROL   PL_XPOSIXCNTRL
+#define PL_ISCONTROLPICTURES   PL_CONTROLPICTURES
+#define PL_ISCOPT   PL_COPT
+#define PL_ISCOPTIC   PL_COPT
+#define PL_ISCOPTICEPACTNUMBERS   PL_COPTICEPACTNUMBERS
+#define PL_ISCOUNTINGROD   PL_COUNTINGROD
+#define PL_ISCOUNTINGRODNUMERALS   PL_COUNTINGROD
+#define PL_ISCPRT   PL_CPRT
+#define PL_ISCS   PL_CS
+#define PL_ISCUNEIFORM   PL_XSUX
+#define PL_ISCUNEIFORMNUMBERS   PL_CUNEIFORMNUMBERS
+#define PL_ISCUNEIFORMNUMBERSANDPUNCTUATION   PL_CUNEIFORMNUMBERS
+#define PL_ISCURRENCYSYMBOL   PL_SC
+#define PL_ISCURRENCYSYMBOLS   PL_CURRENCYSYMBOLS
+#define PL_ISCWCF   PL_CWCF
+#define PL_ISCWCM   PL_CWCM
+#define PL_ISCWKCF   PL_CWKCF
+#define PL_ISCWL   PL_CWL
+#define PL_ISCWT   PL_CWT
+#define PL_ISCWU   PL_CWU
+#define PL_ISCYPRIOT   PL_CPRT
+#define PL_ISCYPRIOTSYLLABARY   PL_CYPRIOTSYLLABARY
+#define PL_ISCYRILLIC   PL_CYRL
+#define PL_ISCYRILLICEXTA   PL_CYRILLICEXTA
+#define PL_ISCYRILLICEXTB   PL_CYRILLICEXTB
+#define PL_ISCYRILLICEXTC   PL_CYRILLICEXTC
+#define PL_ISCYRILLICEXTENDEDA   PL_CYRILLICEXTA
+#define PL_ISCYRILLICEXTENDEDB   PL_CYRILLICEXTB
+#define PL_ISCYRILLICEXTENDEDC   PL_CYRILLICEXTC
+#define PL_ISCYRILLICSUP   PL_CYRILLICSUP
+#define PL_ISCYRILLICSUPPLEMENT   PL_CYRILLICSUP
+#define PL_ISCYRILLICSUPPLEMENTARY   PL_CYRILLICSUP
+#define PL_ISCYRL   PL_CYRL
+#define PL_ISDASH   PL_DASH
+#define PL_ISDASHPUNCTUATION   PL_PD
+#define PL_ISDECIMALNUMBER   PL_XPOSIXDIGIT
+#define PL_ISDEFAULTIGNORABLECODEPOINT   PL_DI
+#define PL_ISDEP   PL_DEP
+#define PL_ISDEPRECATED   PL_DEP
+#define PL_ISDESERET   PL_DSRT
+#define PL_ISDEVA   PL_DEVA
+#define PL_ISDEVANAGARI   PL_DEVA
+#define PL_ISDEVANAGARIEXT   PL_DEVANAGARIEXT
+#define PL_ISDEVANAGARIEXTENDED   PL_DEVANAGARIEXT
+#define PL_ISDI   PL_DI
+#define PL_ISDIA   PL_DIA
+#define PL_ISDIACRITIC   PL_DIA
+#define PL_ISDIACRITICALS   PL_DIACRITICALS
+#define PL_ISDIACRITICALSEXT   PL_DIACRITICALSEXT
+#define PL_ISDIACRITICALSFORSYMBOLS   PL_DIACRITICALSFORSYMBOLS
+#define PL_ISDIACRITICALSSUP   PL_DIACRITICALSSUP
+#define PL_ISDIGIT   PL_XPOSIXDIGIT
+#define PL_ISDINGBATS   PL_DINGBATS
+#define PL_ISDOMINO   PL_DOMINO
+#define PL_ISDOMINOTILES   PL_DOMINO
+#define PL_ISDSRT   PL_DSRT
+#define PL_ISDUPL   PL_DUPL
+#define PL_ISDUPLOYAN   PL_DUPL
+#define PL_ISEARLYDYNASTICCUNEIFORM   PL_EARLYDYNASTICCUNEIFORM
+#define PL_ISEGYP   PL_EGYP
+#define PL_ISEGYPTIANHIEROGLYPHS   PL_EGYP
+#define PL_ISELBA   PL_ELBA
+#define PL_ISELBASAN   PL_ELBA
+#define PL_ISEMOTICONS   PL_EMOTICONS
+#define PL_ISENCLOSEDALPHANUM   PL_ENCLOSEDALPHANUM
+#define PL_ISENCLOSEDALPHANUMERICS   PL_ENCLOSEDALPHANUM
+#define PL_ISENCLOSEDALPHANUMERICSUPPLEMENT   PL_ENCLOSEDALPHANUMSUP
+#define PL_ISENCLOSEDALPHANUMSUP   PL_ENCLOSEDALPHANUMSUP
+#define PL_ISENCLOSEDCJK   PL_ENCLOSEDCJK
+#define PL_ISENCLOSEDCJKLETTERSANDMONTHS   PL_ENCLOSEDCJK
+#define PL_ISENCLOSEDIDEOGRAPHICSUP   PL_ENCLOSEDIDEOGRAPHICSUP
+#define PL_ISENCLOSEDIDEOGRAPHICSUPPLEMENT   PL_ENCLOSEDIDEOGRAPHICSUP
+#define PL_ISENCLOSINGMARK   PL_ME
+#define PL_ISETHI   PL_ETHI
+#define PL_ISETHIOPIC   PL_ETHI
+#define PL_ISETHIOPICEXT   PL_ETHIOPICEXT
+#define PL_ISETHIOPICEXTA   PL_ETHIOPICEXTA
+#define PL_ISETHIOPICEXTENDED   PL_ETHIOPICEXT
+#define PL_ISETHIOPICEXTENDEDA   PL_ETHIOPICEXTA
+#define PL_ISETHIOPICSUP   PL_ETHIOPICSUP
+#define PL_ISETHIOPICSUPPLEMENT   PL_ETHIOPICSUP
+#define PL_ISEXT   PL_EXT
+#define PL_ISEXTENDER   PL_EXT
+#define PL_ISFINALPUNCTUATION   PL_PF
+#define PL_ISFORMAT   PL_CF
+#define PL_ISFULLCOMPOSITIONEXCLUSION   PL_COMPEX
+#define PL_ISGENERALPUNCTUATION   PL_INPUNCTUATION
+#define PL_ISGEOMETRICSHAPES   PL_GEOMETRICSHAPES
+#define PL_ISGEOMETRICSHAPESEXT   PL_GEOMETRICSHAPESEXT
+#define PL_ISGEOMETRICSHAPESEXTENDED   PL_GEOMETRICSHAPESEXT
+#define PL_ISGEOR   PL_GEOR
+#define PL_ISGEORGIAN   PL_GEOR
+#define PL_ISGEORGIANSUP   PL_GEORGIANSUP
+#define PL_ISGEORGIANSUPPLEMENT   PL_GEORGIANSUP
+#define PL_ISGLAG   PL_GLAG
+#define PL_ISGLAGOLITIC   PL_GLAG
+#define PL_ISGLAGOLITICSUP   PL_GLAGOLITICSUP
+#define PL_ISGLAGOLITICSUPPLEMENT   PL_GLAGOLITICSUP
+#define PL_ISGONM   PL_GONM
+#define PL_ISGOTH   PL_GOTH
+#define PL_ISGOTHIC   PL_GOTH
+#define PL_ISGRAN   PL_GRAN
+#define PL_ISGRANTHA   PL_GRAN
+#define PL_ISGRAPH   PL_XPOSIXGRAPH
+#define PL_ISGRAPHEMEBASE   PL_GRBASE
+#define PL_ISGRAPHEMEEXTEND   PL_GREXT
+#define PL_ISGRBASE   PL_GRBASE
+#define PL_ISGREEK   PL_GREK
+#define PL_ISGREEKANDCOPTIC   PL_INGREEK
+#define PL_ISGREEKEXT   PL_GREEKEXT
+#define PL_ISGREEKEXTENDED   PL_GREEKEXT
+#define PL_ISGREK   PL_GREK
+#define PL_ISGREXT   PL_GREXT
+#define PL_ISGUJARATI   PL_GUJR
+#define PL_ISGUJR   PL_GUJR
+#define PL_ISGURMUKHI   PL_GURU
+#define PL_ISGURU   PL_GURU
+#define PL_ISHALFANDFULLFORMS   PL_HALFANDFULLFORMS
+#define PL_ISHALFMARKS   PL_HALFMARKS
+#define PL_ISHALFWIDTHANDFULLWIDTHFORMS   PL_HALFANDFULLFORMS
+#define PL_ISHAN   PL_HAN
+#define PL_ISHANG   PL_HANG
+#define PL_ISHANGUL   PL_HANG
+#define PL_ISHANGULCOMPATIBILITYJAMO   PL_COMPATJAMO
+#define PL_ISHANGULJAMO   PL_JAMO
+#define PL_ISHANGULJAMOEXTENDEDA   PL_JAMOEXTA
+#define PL_ISHANGULJAMOEXTENDEDB   PL_JAMOEXTB
+#define PL_ISHANGULSYLLABLES   PL_INHANGUL
+#define PL_ISHANI   PL_HAN
+#define PL_ISHANO   PL_HANO
+#define PL_ISHANUNOO   PL_HANO
+#define PL_ISHATR   PL_HATR
+#define PL_ISHATRAN   PL_HATR
+#define PL_ISHEBR   PL_HEBR
+#define PL_ISHEBREW   PL_HEBR
+#define PL_ISHEX   PL_XPOSIXXDIGIT
+#define PL_ISHEXDIGIT   PL_XPOSIXXDIGIT
+#define PL_ISHIGHPRIVATEUSESURROGATES   PL_HIGHPUSURROGATES
+#define PL_ISHIGHPUSURROGATES   PL_HIGHPUSURROGATES
+#define PL_ISHIGHSURROGATES   PL_HIGHSURROGATES
+#define PL_ISHIRA   PL_HIRA
+#define PL_ISHIRAGANA   PL_HIRA
+#define PL_ISHLUW   PL_HLUW
+#define PL_ISHMNG   PL_HMNG
+#define PL_ISHORIZSPACE   PL_XPOSIXBLANK
+#define PL_ISHUNG   PL_HUNG
+#define PL_ISHYPHEN   PL_HYPHEN
+#define PL_ISIDC   PL_IDC
+#define PL_ISIDCONTINUE   PL_IDC
+#define PL_ISIDEO   PL_IDEO
+#define PL_ISIDEOGRAPHIC   PL_IDEO
+#define PL_ISIDEOGRAPHICDESCRIPTIONCHARACTERS   PL_INIDC
+#define PL_ISIDEOGRAPHICSYMBOLS   PL_IDEOGRAPHICSYMBOLS
+#define PL_ISIDEOGRAPHICSYMBOLSANDPUNCTUATION   PL_IDEOGRAPHICSYMBOLS
+#define PL_ISIDS   PL_IDS
+#define PL_ISIDSB   PL_IDSB
+#define PL_ISIDSBINARYOPERATOR   PL_IDSB
+#define PL_ISIDST   PL_IDST
+#define PL_ISIDSTART   PL_IDS
+#define PL_ISIDSTRINARYOPERATOR   PL_IDST
+#define PL_ISIMPERIALARAMAIC   PL_ARMI
+#define PL_ISINDICNUMBERFORMS   PL_INDICNUMBERFORMS
+#define PL_ISINHERITED   PL_QAAI
+#define PL_ISINITIALPUNCTUATION   PL_PI
+#define PL_ISINSCRIPTIONALPAHLAVI   PL_PHLI
+#define PL_ISINSCRIPTIONALPARTHIAN   PL_PRTI
+#define PL_ISIPAEXT   PL_IPAEXT
+#define PL_ISIPAEXTENSIONS   PL_IPAEXT
+#define PL_ISITAL   PL_ITAL
+#define PL_ISJAMO   PL_JAMO
+#define PL_ISJAMOEXTA   PL_JAMOEXTA
+#define PL_ISJAMOEXTB   PL_JAMOEXTB
+#define PL_ISJAVA   PL_JAVA
+#define PL_ISJAVANESE   PL_JAVA
+#define PL_ISJOINC   PL_JOINC
+#define PL_ISJOINCONTROL   PL_JOINC
+#define PL_ISKAITHI   PL_KTHI
+#define PL_ISKALI   PL_KALI
+#define PL_ISKANA   PL_KANA
+#define PL_ISKANAEXTA   PL_KANAEXTA
+#define PL_ISKANAEXTENDEDA   PL_KANAEXTA
+#define PL_ISKANASUP   PL_KANASUP
+#define PL_ISKANASUPPLEMENT   PL_KANASUP
+#define PL_ISKANBUN   PL_KANBUN
+#define PL_ISKANGXI   PL_KANGXI
+#define PL_ISKANGXIRADICALS   PL_KANGXI
+#define PL_ISKANNADA   PL_KNDA
+#define PL_ISKATAKANA   PL_KANA
+#define PL_ISKATAKANAEXT   PL_KATAKANAEXT
+#define PL_ISKATAKANAPHONETICEXTENSIONS   PL_KATAKANAEXT
+#define PL_ISKAYAHLI   PL_KALI
+#define PL_ISKHAR   PL_KHAR
+#define PL_ISKHAROSHTHI   PL_KHAR
+#define PL_ISKHMER   PL_KHMR
+#define PL_ISKHMERSYMBOLS   PL_KHMERSYMBOLS
+#define PL_ISKHMR   PL_KHMR
+#define PL_ISKHOJ   PL_KHOJ
+#define PL_ISKHOJKI   PL_KHOJ
+#define PL_ISKHUDAWADI   PL_SIND
+#define PL_ISKNDA   PL_KNDA
+#define PL_ISKTHI   PL_KTHI
+#define PL_ISL   PL_L
+#define PL_ISLANA   PL_LANA
+#define PL_ISLAO   PL_LAO
+#define PL_ISLAOO   PL_LAO
+#define PL_ISLATIN   PL_LATN
+#define PL_ISLATIN1   PL_LATIN1
+#define PL_ISLATIN1SUP   PL_LATIN1
+#define PL_ISLATIN1SUPPLEMENT   PL_LATIN1
+#define PL_ISLATINEXTA   PL_LATINEXTA
+#define PL_ISLATINEXTADDITIONAL   PL_LATINEXTADDITIONAL
+#define PL_ISLATINEXTB   PL_LATINEXTB
+#define PL_ISLATINEXTC   PL_LATINEXTC
+#define PL_ISLATINEXTD   PL_LATINEXTD
+#define PL_ISLATINEXTE   PL_LATINEXTE
+#define PL_ISLATINEXTENDEDA   PL_LATINEXTA
+#define PL_ISLATINEXTENDEDADDITIONAL   PL_LATINEXTADDITIONAL
+#define PL_ISLATINEXTENDEDB   PL_LATINEXTB
+#define PL_ISLATINEXTENDEDC   PL_LATINEXTC
+#define PL_ISLATINEXTENDEDD   PL_LATINEXTD
+#define PL_ISLATINEXTENDEDE   PL_LATINEXTE
+#define PL_ISLATN   PL_LATN
+#define PL_ISLC   PL_L_AMP_
+#define PL_ISLEPC   PL_LEPC
+#define PL_ISLEPCHA   PL_LEPC
+#define PL_ISLETTER   PL_L
+#define PL_ISLETTERLIKESYMBOLS   PL_LETTERLIKESYMBOLS
+#define PL_ISLETTERNUMBER   PL_NL
+#define PL_ISLIMB   PL_LIMB
+#define PL_ISLIMBU   PL_LIMB
+#define PL_ISLINA   PL_LINA
+#define PL_ISLINB   PL_LINB
+#define PL_ISLINEARA   PL_LINA
+#define PL_ISLINEARB   PL_LINB
+#define PL_ISLINEARBIDEOGRAMS   PL_LINEARBIDEOGRAMS
+#define PL_ISLINEARBSYLLABARY   PL_LINEARBSYLLABARY
+#define PL_ISLINESEPARATOR   PL_ZL
+#define PL_ISLISU   PL_LISU
+#define PL_ISLL   PL_LL
+#define PL_ISLM   PL_LM
+#define PL_ISLO   PL_LO
+#define PL_ISLOE   PL_LOE
+#define PL_ISLOGICALORDEREXCEPTION   PL_LOE
+#define PL_ISLOWER   PL_XPOSIXLOWER
+#define PL_ISLOWERCASE   PL_XPOSIXLOWER
+#define PL_ISLOWERCASELETTER   PL_LL
+#define PL_ISLOWSURROGATES   PL_LOWSURROGATES
+#define PL_ISLT   PL_LT
+#define PL_ISLU   PL_LU
+#define PL_ISLYCI   PL_LYCI
+#define PL_ISLYCIAN   PL_LYCI
+#define PL_ISLYDI   PL_LYDI
+#define PL_ISLYDIAN   PL_LYDI
+#define PL_ISL_   PL_L_AMP_
+#define PL_ISL_AMP_   PL_L_AMP_
+#define PL_ISM   PL_M
+#define PL_ISMAHAJANI   PL_MAHJ
+#define PL_ISMAHJ   PL_MAHJ
+#define PL_ISMAHJONG   PL_MAHJONG
+#define PL_ISMAHJONGTILES   PL_MAHJONG
+#define PL_ISMALAYALAM   PL_MLYM
+#define PL_ISMAND   PL_MAND
+#define PL_ISMANDAIC   PL_MAND
+#define PL_ISMANI   PL_MANI
+#define PL_ISMANICHAEAN   PL_MANI
+#define PL_ISMARC   PL_MARC
+#define PL_ISMARCHEN   PL_MARC
+#define PL_ISMARK   PL_M
+#define PL_ISMASARAMGONDI   PL_GONM
+#define PL_ISMATH   PL_MATH
+#define PL_ISMATHALPHANUM   PL_MATHALPHANUM
+#define PL_ISMATHEMATICALALPHANUMERICSYMBOLS   PL_MATHALPHANUM
+#define PL_ISMATHEMATICALOPERATORS   PL_MATHOPERATORS
+#define PL_ISMATHOPERATORS   PL_MATHOPERATORS
+#define PL_ISMATHSYMBOL   PL_SM
+#define PL_ISMC   PL_MC
+#define PL_ISME   PL_ME
+#define PL_ISMEETEIMAYEK   PL_MTEI
+#define PL_ISMEETEIMAYEKEXT   PL_MEETEIMAYEKEXT
+#define PL_ISMEETEIMAYEKEXTENSIONS   PL_MEETEIMAYEKEXT
+#define PL_ISMEND   PL_MEND
+#define PL_ISMENDEKIKAKUI   PL_MEND
+#define PL_ISMERC   PL_MERC
+#define PL_ISMERO   PL_MERO
+#define PL_ISMEROITICCURSIVE   PL_MERC
+#define PL_ISMEROITICHIEROGLYPHS   PL_MERO
+#define PL_ISMIAO   PL_MIAO
+#define PL_ISMISCARROWS   PL_MISCARROWS
+#define PL_ISMISCELLANEOUSMATHEMATICALSYMBOLSA   PL_MISCMATHSYMBOLSA
+#define PL_ISMISCELLANEOUSMATHEMATICALSYMBOLSB   PL_MISCMATHSYMBOLSB
+#define PL_ISMISCELLANEOUSSYMBOLS   PL_MISCSYMBOLS
+#define PL_ISMISCELLANEOUSSYMBOLSANDARROWS   PL_MISCARROWS
+#define PL_ISMISCELLANEOUSSYMBOLSANDPICTOGRAPHS   PL_MISCPICTOGRAPHS
+#define PL_ISMISCELLANEOUSTECHNICAL   PL_MISCTECHNICAL
+#define PL_ISMISCMATHSYMBOLSA   PL_MISCMATHSYMBOLSA
+#define PL_ISMISCMATHSYMBOLSB   PL_MISCMATHSYMBOLSB
+#define PL_ISMISCPICTOGRAPHS   PL_MISCPICTOGRAPHS
+#define PL_ISMISCSYMBOLS   PL_MISCSYMBOLS
+#define PL_ISMISCTECHNICAL   PL_MISCTECHNICAL
+#define PL_ISMLYM   PL_MLYM
+#define PL_ISMN   PL_MN
+#define PL_ISMODI   PL_MODI
+#define PL_ISMODIFIERLETTER   PL_LM
+#define PL_ISMODIFIERLETTERS   PL_MODIFIERLETTERS
+#define PL_ISMODIFIERSYMBOL   PL_SK
+#define PL_ISMODIFIERTONELETTERS   PL_MODIFIERTONELETTERS
+#define PL_ISMONG   PL_MONG
+#define PL_ISMONGOLIAN   PL_MONG
+#define PL_ISMONGOLIANSUP   PL_MONGOLIANSUP
+#define PL_ISMONGOLIANSUPPLEMENT   PL_MONGOLIANSUP
+#define PL_ISMRO   PL_MRO
+#define PL_ISMROO   PL_MRO
+#define PL_ISMTEI   PL_MTEI
+#define PL_ISMULT   PL_MULT
+#define PL_ISMULTANI   PL_MULT
+#define PL_ISMUSIC   PL_MUSIC
+#define PL_ISMUSICALSYMBOLS   PL_MUSIC
+#define PL_ISMYANMAR   PL_MYMR
+#define PL_ISMYANMAREXTA   PL_MYANMAREXTA
+#define PL_ISMYANMAREXTB   PL_MYANMAREXTB
+#define PL_ISMYANMAREXTENDEDA   PL_MYANMAREXTA
+#define PL_ISMYANMAREXTENDEDB   PL_MYANMAREXTB
+#define PL_ISMYMR   PL_MYMR
+#define PL_ISN   PL_N
+#define PL_ISNABATAEAN   PL_NBAT
+#define PL_ISNARB   PL_NARB
+#define PL_ISNB   PL_NB
+#define PL_ISNBAT   PL_NBAT
+#define PL_ISNCHAR   PL_NCHAR
+#define PL_ISND   PL_XPOSIXDIGIT
+#define PL_ISNEWA   PL_NEWA
+#define PL_ISNEWTAILUE   PL_TALU
+#define PL_ISNKO   PL_NKO
+#define PL_ISNKOO   PL_NKO
+#define PL_ISNL   PL_NL
+#define PL_ISNO   PL_NO
+#define PL_ISNOBLOCK   PL_NB
+#define PL_ISNONCHARACTERCODEPOINT   PL_NCHAR
+#define PL_ISNONSPACINGMARK   PL_MN
+#define PL_ISNSHU   PL_NSHU
+#define PL_ISNUMBER   PL_N
+#define PL_ISNUMBERFORMS   PL_NUMBERFORMS
+#define PL_ISNUSHU   PL_NSHU
+#define PL_ISOCR   PL_OCR
+#define PL_ISOGAM   PL_OGAM
+#define PL_ISOGHAM   PL_OGAM
+#define PL_ISOLCHIKI   PL_OLCK
+#define PL_ISOLCK   PL_OLCK
+#define PL_ISOLDHUNGARIAN   PL_HUNG
+#define PL_ISOLDITALIC   PL_ITAL
+#define PL_ISOLDNORTHARABIAN   PL_NARB
+#define PL_ISOLDPERMIC   PL_PERM
+#define PL_ISOLDPERSIAN   PL_XPEO
+#define PL_ISOLDSOUTHARABIAN   PL_SARB
+#define PL_ISOLDTURKIC   PL_ORKH
+#define PL_ISOPENPUNCTUATION   PL_PS
+#define PL_ISOPTICALCHARACTERRECOGNITION   PL_OCR
+#define PL_ISORIYA   PL_ORYA
+#define PL_ISORKH   PL_ORKH
+#define PL_ISORNAMENTALDINGBATS   PL_ORNAMENTALDINGBATS
+#define PL_ISORYA   PL_ORYA
+#define PL_ISOSAGE   PL_OSGE
+#define PL_ISOSGE   PL_OSGE
+#define PL_ISOSMA   PL_OSMA
+#define PL_ISOSMANYA   PL_OSMA
+#define PL_ISOTHER   PL_C
+#define PL_ISOTHERLETTER   PL_LO
+#define PL_ISOTHERNUMBER   PL_NO
+#define PL_ISOTHERPUNCTUATION   PL_PO
+#define PL_ISOTHERSYMBOL   PL_SO
+#define PL_ISP   PL_P
+#define PL_ISPAHAWHHMONG   PL_HMNG
+#define PL_ISPALM   PL_PALM
+#define PL_ISPALMYRENE   PL_PALM
+#define PL_ISPARAGRAPHSEPARATOR   PL_ZP
+#define PL_ISPATSYN   PL_PATSYN
+#define PL_ISPATTERNSYNTAX   PL_PATSYN
+#define PL_ISPATTERNWHITESPACE   PL_PATWS
+#define PL_ISPATWS   PL_PATWS
+#define PL_ISPAUC   PL_PAUC
+#define PL_ISPAUCINHAU   PL_PAUC
+#define PL_ISPC   PL_PC
+#define PL_ISPCM   PL_PCM
+#define PL_ISPD   PL_PD
+#define PL_ISPE   PL_PE
+#define PL_ISPERLSPACE   PL_POSIXSPACE
+#define PL_ISPERLWORD   PL_POSIXWORD
+#define PL_ISPERM   PL_PERM
+#define PL_ISPF   PL_PF
+#define PL_ISPHAG   PL_PHAG
+#define PL_ISPHAGSPA   PL_PHAG
+#define PL_ISPHAISTOS   PL_PHAISTOS
+#define PL_ISPHAISTOSDISC   PL_PHAISTOS
+#define PL_ISPHLI   PL_PHLI
+#define PL_ISPHLP   PL_PHLP
+#define PL_ISPHNX   PL_PHNX
+#define PL_ISPHOENICIAN   PL_PHNX
+#define PL_ISPHONETICEXT   PL_PHONETICEXT
+#define PL_ISPHONETICEXTENSIONS   PL_PHONETICEXT
+#define PL_ISPHONETICEXTENSIONSSUPPLEMENT   PL_PHONETICEXTSUP
+#define PL_ISPHONETICEXTSUP   PL_PHONETICEXTSUP
+#define PL_ISPI   PL_PI
+#define PL_ISPLAYINGCARDS   PL_PLAYINGCARDS
+#define PL_ISPLRD   PL_MIAO
+#define PL_ISPO   PL_PO
+#define PL_ISPOSIXALNUM   PL_POSIXALNUM
+#define PL_ISPOSIXALPHA   PL_POSIXALPHA
+#define PL_ISPOSIXBLANK   PL_POSIXBLANK
+#define PL_ISPOSIXCNTRL   PL_POSIXCNTRL
+#define PL_ISPOSIXDIGIT   PL_POSIXDIGIT
+#define PL_ISPOSIXGRAPH   PL_POSIXGRAPH
+#define PL_ISPOSIXLOWER   PL_POSIXLOWER
+#define PL_ISPOSIXPRINT   PL_POSIXPRINT
+#define PL_ISPOSIXPUNCT   PL_POSIXPUNCT
+#define PL_ISPOSIXSPACE   PL_POSIXSPACE
+#define PL_ISPOSIXUPPER   PL_POSIXUPPER
+#define PL_ISPOSIXWORD   PL_POSIXWORD
+#define PL_ISPOSIXXDIGIT   PL_POSIXXDIGIT
+#define PL_ISPREPENDEDCONCATENATIONMARK   PL_PCM
+#define PL_ISPRINT   PL_XPOSIXPRINT
+#define PL_ISPRIVATEUSE   PL_CO
+#define PL_ISPRIVATEUSEAREA   PL_PUA
+#define PL_ISPRTI   PL_PRTI
+#define PL_ISPS   PL_PS
+#define PL_ISPSALTERPAHLAVI   PL_PHLP
+#define PL_ISPUA   PL_PUA
+#define PL_ISPUNCT   PL_P
+#define PL_ISPUNCTUATION   PL_P
+#define PL_ISQAAC   PL_COPT
+#define PL_ISQAAI   PL_QAAI
+#define PL_ISQMARK   PL_QMARK
+#define PL_ISQUOTATIONMARK   PL_QMARK
+#define PL_ISRADICAL   PL_RADICAL
+#define PL_ISREGIONALINDICATOR   PL_RI
+#define PL_ISREJANG   PL_RJNG
+#define PL_ISRI   PL_RI
+#define PL_ISRJNG   PL_RJNG
+#define PL_ISRUMI   PL_RUMI
+#define PL_ISRUMINUMERALSYMBOLS   PL_RUMI
+#define PL_ISRUNIC   PL_RUNR
+#define PL_ISRUNR   PL_RUNR
+#define PL_ISS   PL_S
+#define PL_ISSAMARITAN   PL_SAMR
+#define PL_ISSAMR   PL_SAMR
+#define PL_ISSARB   PL_SARB
+#define PL_ISSAUR   PL_SAUR
+#define PL_ISSAURASHTRA   PL_SAUR
+#define PL_ISSC   PL_SC
+#define PL_ISSD   PL_SD
+#define PL_ISSENTENCETERMINAL   PL_STERM
+#define PL_ISSEPARATOR   PL_Z
+#define PL_ISSGNW   PL_SGNW
+#define PL_ISSHARADA   PL_SHRD
+#define PL_ISSHAVIAN   PL_SHAW
+#define PL_ISSHAW   PL_SHAW
+#define PL_ISSHORTHANDFORMATCONTROLS   PL_SHORTHANDFORMATCONTROLS
+#define PL_ISSHRD   PL_SHRD
+#define PL_ISSIDD   PL_SIDD
+#define PL_ISSIDDHAM   PL_SIDD
+#define PL_ISSIGNWRITING   PL_SGNW
+#define PL_ISSIND   PL_SIND
+#define PL_ISSINH   PL_SINH
+#define PL_ISSINHALA   PL_SINH
+#define PL_ISSINHALAARCHAICNUMBERS   PL_SINHALAARCHAICNUMBERS
+#define PL_ISSK   PL_SK
+#define PL_ISSM   PL_SM
+#define PL_ISSMALLFORMS   PL_SMALLFORMS
+#define PL_ISSMALLFORMVARIANTS   PL_SMALLFORMS
+#define PL_ISSO   PL_SO
+#define PL_ISSOFTDOTTED   PL_SD
+#define PL_ISSORA   PL_SORA
+#define PL_ISSORASOMPENG   PL_SORA
+#define PL_ISSOYO   PL_SOYO
+#define PL_ISSOYOMBO   PL_SOYO
+#define PL_ISSPACE   PL_XPOSIXSPACE
+#define PL_ISSPACEPERL   PL_XPOSIXSPACE
+#define PL_ISSPACESEPARATOR   PL_ZS
+#define PL_ISSPACINGMARK   PL_MC
+#define PL_ISSPACINGMODIFIERLETTERS   PL_MODIFIERLETTERS
+#define PL_ISSPECIALS   PL_SPECIALS
+#define PL_ISSTERM   PL_STERM
+#define PL_ISSUND   PL_SUND
+#define PL_ISSUNDANESE   PL_SUND
+#define PL_ISSUNDANESESUP   PL_SUNDANESESUP
+#define PL_ISSUNDANESESUPPLEMENT   PL_SUNDANESESUP
+#define PL_ISSUPARROWSA   PL_SUPARROWSA
+#define PL_ISSUPARROWSB   PL_SUPARROWSB
+#define PL_ISSUPARROWSC   PL_SUPARROWSC
+#define PL_ISSUPERANDSUB   PL_SUPERANDSUB
+#define PL_ISSUPERSCRIPTSANDSUBSCRIPTS   PL_SUPERANDSUB
+#define PL_ISSUPMATHOPERATORS   PL_SUPMATHOPERATORS
+#define PL_ISSUPPLEMENTALARROWSA   PL_SUPARROWSA
+#define PL_ISSUPPLEMENTALARROWSB   PL_SUPARROWSB
+#define PL_ISSUPPLEMENTALARROWSC   PL_SUPARROWSC
+#define PL_ISSUPPLEMENTALMATHEMATICALOPERATORS   PL_SUPMATHOPERATORS
+#define PL_ISSUPPLEMENTALPUNCTUATION   PL_SUPPUNCTUATION
+#define PL_ISSUPPLEMENTALSYMBOLSANDPICTOGRAPHS   PL_SUPSYMBOLSANDPICTOGRAPHS
+#define PL_ISSUPPLEMENTARYPRIVATEUSEAREAA   PL_SUPPUAA
+#define PL_ISSUPPLEMENTARYPRIVATEUSEAREAB   PL_SUPPUAB
+#define PL_ISSUPPUAA   PL_SUPPUAA
+#define PL_ISSUPPUAB   PL_SUPPUAB
+#define PL_ISSUPPUNCTUATION   PL_SUPPUNCTUATION
+#define PL_ISSUPSYMBOLSANDPICTOGRAPHS   PL_SUPSYMBOLSANDPICTOGRAPHS
+#define PL_ISSURROGATE   PL_CS
+#define PL_ISSUTTONSIGNWRITING   PL_SUTTONSIGNWRITING
+#define PL_ISSYLO   PL_SYLO
+#define PL_ISSYLOTINAGRI   PL_SYLO
+#define PL_ISSYMBOL   PL_S
+#define PL_ISSYRC   PL_SYRC
+#define PL_ISSYRIAC   PL_SYRC
+#define PL_ISSYRIACSUP   PL_SYRIACSUP
+#define PL_ISSYRIACSUPPLEMENT   PL_SYRIACSUP
+#define PL_ISTAGALOG   PL_TGLG
+#define PL_ISTAGB   PL_TAGB
+#define PL_ISTAGBANWA   PL_TAGB
+#define PL_ISTAGS   PL_TAGS
+#define PL_ISTAILE   PL_TALE
+#define PL_ISTAITHAM   PL_LANA
+#define PL_ISTAIVIET   PL_TAVT
+#define PL_ISTAIXUANJING   PL_TAIXUANJING
+#define PL_ISTAIXUANJINGSYMBOLS   PL_TAIXUANJING
+#define PL_ISTAKR   PL_TAKR
+#define PL_ISTAKRI   PL_TAKR
+#define PL_ISTALE   PL_TALE
+#define PL_ISTALU   PL_TALU
+#define PL_ISTAMIL   PL_TAML
+#define PL_ISTAML   PL_TAML
+#define PL_ISTANG   PL_TANG
+#define PL_ISTANGUT   PL_TANG
+#define PL_ISTANGUTCOMPONENTS   PL_TANGUTCOMPONENTS
+#define PL_ISTAVT   PL_TAVT
+#define PL_ISTELU   PL_TELU
+#define PL_ISTELUGU   PL_TELU
+#define PL_ISTERM   PL_TERM
+#define PL_ISTERMINALPUNCTUATION   PL_TERM
+#define PL_ISTFNG   PL_TFNG
+#define PL_ISTGLG   PL_TGLG
+#define PL_ISTHAA   PL_THAA
+#define PL_ISTHAANA   PL_THAA
+#define PL_ISTHAI   PL_THAI
+#define PL_ISTIBETAN   PL_TIBT
+#define PL_ISTIBT   PL_TIBT
+#define PL_ISTIFINAGH   PL_TFNG
+#define PL_ISTIRH   PL_TIRH
+#define PL_ISTIRHUTA   PL_TIRH
+#define PL_ISTITLE   PL_LT
+#define PL_ISTITLECASE   PL_LT
+#define PL_ISTITLECASELETTER   PL_LT
+#define PL_ISTRANSPORTANDMAP   PL_TRANSPORTANDMAP
+#define PL_ISTRANSPORTANDMAPSYMBOLS   PL_TRANSPORTANDMAP
+#define PL_ISUCAS   PL_UCAS
+#define PL_ISUCASEXT   PL_UCASEXT
+#define PL_ISUGAR   PL_UGAR
+#define PL_ISUGARITIC   PL_UGAR
+#define PL_ISUIDEO   PL_UIDEO
+#define PL_ISUNASSIGNED   PL_CN
+#define PL_ISUNICODE   PL_ANY
+#define PL_ISUNIFIEDCANADIANABORIGINALSYLLABICS   PL_UCAS
+#define PL_ISUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED   PL_UCASEXT
+#define PL_ISUNIFIEDIDEOGRAPH   PL_UIDEO
+#define PL_ISUNKNOWN   PL_ZZZZ
+#define PL_ISUPPER   PL_XPOSIXUPPER
+#define PL_ISUPPERCASE   PL_XPOSIXUPPER
+#define PL_ISUPPERCASELETTER   PL_LU
+#define PL_ISVAI   PL_VAI
+#define PL_ISVAII   PL_VAI
+#define PL_ISVARIATIONSELECTOR   PL_VS
+#define PL_ISVARIATIONSELECTORS   PL_INVS
+#define PL_ISVARIATIONSELECTORSSUPPLEMENT   PL_VSSUP
+#define PL_ISVEDICEXT   PL_VEDICEXT
+#define PL_ISVEDICEXTENSIONS   PL_VEDICEXT
+#define PL_ISVERTICALFORMS   PL_VERTICALFORMS
+#define PL_ISVERTSPACE   PL_VERTSPACE
+#define PL_ISVS   PL_VS
+#define PL_ISVSSUP   PL_VSSUP
+#define PL_ISWARA   PL_WARA
+#define PL_ISWARANGCITI   PL_WARA
+#define PL_ISWHITESPACE   PL_XPOSIXSPACE
+#define PL_ISWORD   PL_XPOSIXWORD
+#define PL_ISWSPACE   PL_XPOSIXSPACE
+#define PL_ISXDIGIT   PL_XPOSIXXDIGIT
+#define PL_ISXIDC   PL_XIDC
+#define PL_ISXIDCONTINUE   PL_XIDC
+#define PL_ISXIDS   PL_XIDS
+#define PL_ISXIDSTART   PL_XIDS
+#define PL_ISXPEO   PL_XPEO
+#define PL_ISXPERLSPACE   PL_XPOSIXSPACE
+#define PL_ISXPOSIXALNUM   PL_XPOSIXALNUM
+#define PL_ISXPOSIXALPHA   PL_XPOSIXALPHA
+#define PL_ISXPOSIXBLANK   PL_XPOSIXBLANK
+#define PL_ISXPOSIXCNTRL   PL_XPOSIXCNTRL
+#define PL_ISXPOSIXDIGIT   PL_XPOSIXDIGIT
+#define PL_ISXPOSIXGRAPH   PL_XPOSIXGRAPH
+#define PL_ISXPOSIXLOWER   PL_XPOSIXLOWER
+#define PL_ISXPOSIXPRINT   PL_XPOSIXPRINT
+#define PL_ISXPOSIXPUNCT   PL_XPOSIXPUNCT
+#define PL_ISXPOSIXSPACE   PL_XPOSIXSPACE
+#define PL_ISXPOSIXUPPER   PL_XPOSIXUPPER
+#define PL_ISXPOSIXWORD   PL_XPOSIXWORD
+#define PL_ISXPOSIXXDIGIT   PL_XPOSIXXDIGIT
+#define PL_ISXSUX   PL_XSUX
+#define PL_ISYI   PL_YI
+#define PL_ISYIII   PL_YI
+#define PL_ISYIJING   PL_YIJING
+#define PL_ISYIJINGHEXAGRAMSYMBOLS   PL_YIJING
+#define PL_ISYIRADICALS   PL_YIRADICALS
+#define PL_ISYISYLLABLES   PL_YISYLLABLES
+#define PL_ISZ   PL_Z
+#define PL_ISZANABAZARSQUARE   PL_ZANB
+#define PL_ISZANB   PL_ZANB
+#define PL_ISZINH   PL_QAAI
+#define PL_ISZL   PL_ZL
+#define PL_ISZP   PL_ZP
+#define PL_ISZS   PL_ZS
+#define PL_ISZYYY   PL_ZYYY
+#define PL_ISZZZZ   PL_ZZZZ
+#define PL_JAVANESE   PL_JAVA
+#define PL_JG__TEHMARBUTAGOAL   PL_JG__HAMZAONHEHGOAL
+#define PL_JOINCONTROL   PL_JOINC
+#define PL_JOINCONTROL   PL_JOINC
+#define PL_JOINCONTROL__F   -PL_JOINC
+#define PL_JOINCONTROL__FALSE   -PL_JOINC
+#define PL_JOINCONTROL__N   -PL_JOINC
+#define PL_JOINCONTROL__NO   -PL_JOINC
+#define PL_JOINCONTROL__T   PL_JOINC
+#define PL_JOINCONTROL__TRUE   PL_JOINC
+#define PL_JOINCONTROL__Y   PL_JOINC
+#define PL_JOINCONTROL__YES   PL_JOINC
+#define PL_JOINC__F   -PL_JOINC
+#define PL_JOINC__FALSE   -PL_JOINC
+#define PL_JOINC__N   -PL_JOINC
+#define PL_JOINC__NO   -PL_JOINC
+#define PL_JOINC__T   PL_JOINC
+#define PL_JOINC__TRUE   PL_JOINC
+#define PL_JOINC__Y   PL_JOINC
+#define PL_JOINC__YES   PL_JOINC
+#define PL_JOININGGROUP__AFRICANFEH   PL_JG__AFRICANFEH
+#define PL_JOININGGROUP__AFRICANNOON   PL_JG__AFRICANNOON
+#define PL_JOININGGROUP__AFRICANQAF   PL_JG__AFRICANQAF
+#define PL_JOININGGROUP__AIN   PL_JG__AIN
+#define PL_JOININGGROUP__ALAPH   PL_JG__ALAPH
+#define PL_JOININGGROUP__ALEF   PL_JG__ALEF
+#define PL_JOININGGROUP__BEH   PL_JG__BEH
+#define PL_JOININGGROUP__BETH   PL_JG__BETH
+#define PL_JOININGGROUP__BURUSHASKIYEHBARREE   PL_JG__BURUSHASKIYEHBARREE
+#define PL_JOININGGROUP__DAL   PL_JG__DAL
+#define PL_JOININGGROUP__DALATHRISH   PL_JG__DALATHRISH
+#define PL_JOININGGROUP__E   PL_JG__E
+#define PL_JOININGGROUP__FARSIYEH   PL_JG__FARSIYEH
+#define PL_JOININGGROUP__FE   PL_JG__FE
+#define PL_JOININGGROUP__FEH   PL_JG__FEH
+#define PL_JOININGGROUP__FINALSEMKATH   PL_JG__FINALSEMKATH
+#define PL_JOININGGROUP__GAF   PL_JG__GAF
+#define PL_JOININGGROUP__GAMAL   PL_JG__GAMAL
+#define PL_JOININGGROUP__HAH   PL_JG__HAH
+#define PL_JOININGGROUP__HAMZAONHEHGOAL   PL_JG__HAMZAONHEHGOAL
+#define PL_JOININGGROUP__HE   PL_JG__HE
+#define PL_JOININGGROUP__HEH   PL_JG__HEH
+#define PL_JOININGGROUP__HEHGOAL   PL_JG__HEHGOAL
+#define PL_JOININGGROUP__HETH   PL_JG__HETH
+#define PL_JOININGGROUP__KAF   PL_JG__KAF
+#define PL_JOININGGROUP__KAPH   PL_JG__KAPH
+#define PL_JOININGGROUP__KHAPH   PL_JG__KHAPH
+#define PL_JOININGGROUP__KNOTTEDHEH   PL_JG__KNOTTEDHEH
+#define PL_JOININGGROUP__LAM   PL_JG__LAM
+#define PL_JOININGGROUP__LAMADH   PL_JG__LAMADH
+#define PL_JOININGGROUP__MALAYALAMBHA   PL_JG__MALAYALAMBHA
+#define PL_JOININGGROUP__MALAYALAMJA   PL_JG__MALAYALAMJA
+#define PL_JOININGGROUP__MALAYALAMLLA   PL_JG__MALAYALAMLLA
+#define PL_JOININGGROUP__MALAYALAMLLLA   PL_JG__MALAYALAMLLLA
+#define PL_JOININGGROUP__MALAYALAMNGA   PL_JG__MALAYALAMNGA
+#define PL_JOININGGROUP__MALAYALAMNNA   PL_JG__MALAYALAMNNA
+#define PL_JOININGGROUP__MALAYALAMNNNA   PL_JG__MALAYALAMNNNA
+#define PL_JOININGGROUP__MALAYALAMNYA   PL_JG__MALAYALAMNYA
+#define PL_JOININGGROUP__MALAYALAMRA   PL_JG__MALAYALAMRA
+#define PL_JOININGGROUP__MALAYALAMSSA   PL_JG__MALAYALAMSSA
+#define PL_JOININGGROUP__MALAYALAMTTA   PL_JG__MALAYALAMTTA
+#define PL_JOININGGROUP__MANICHAEANALEPH   PL_JG__MANICHAEANALEPH
+#define PL_JOININGGROUP__MANICHAEANAYIN   PL_JG__MANICHAEANAYIN
+#define PL_JOININGGROUP__MANICHAEANBETH   PL_JG__MANICHAEANBETH
+#define PL_JOININGGROUP__MANICHAEANDALETH   PL_JG__MANICHAEANDALETH
+#define PL_JOININGGROUP__MANICHAEANDHAMEDH   PL_JG__MANICHAEANDHAMEDH
+#define PL_JOININGGROUP__MANICHAEANFIVE   PL_JG__MANICHAEANFIVE
+#define PL_JOININGGROUP__MANICHAEANGIMEL   PL_JG__MANICHAEANGIMEL
+#define PL_JOININGGROUP__MANICHAEANHETH   PL_JG__MANICHAEANHETH
+#define PL_JOININGGROUP__MANICHAEANHUNDRED   PL_JG__MANICHAEANHUNDRED
+#define PL_JOININGGROUP__MANICHAEANKAPH   PL_JG__MANICHAEANKAPH
+#define PL_JOININGGROUP__MANICHAEANLAMEDH   PL_JG__MANICHAEANLAMEDH
+#define PL_JOININGGROUP__MANICHAEANMEM   PL_JG__MANICHAEANMEM
+#define PL_JOININGGROUP__MANICHAEANNUN   PL_JG__MANICHAEANNUN
+#define PL_JOININGGROUP__MANICHAEANONE   PL_JG__MANICHAEANONE
+#define PL_JOININGGROUP__MANICHAEANPE   PL_JG__MANICHAEANPE
+#define PL_JOININGGROUP__MANICHAEANQOPH   PL_JG__MANICHAEANQOPH
+#define PL_JOININGGROUP__MANICHAEANRESH   PL_JG__MANICHAEANRESH
+#define PL_JOININGGROUP__MANICHAEANSADHE   PL_JG__MANICHAEANSADHE
+#define PL_JOININGGROUP__MANICHAEANSAMEKH   PL_JG__MANICHAEANSAMEKH
+#define PL_JOININGGROUP__MANICHAEANTAW   PL_JG__MANICHAEANTAW
+#define PL_JOININGGROUP__MANICHAEANTEN   PL_JG__MANICHAEANTEN
+#define PL_JOININGGROUP__MANICHAEANTETH   PL_JG__MANICHAEANTETH
+#define PL_JOININGGROUP__MANICHAEANTHAMEDH   PL_JG__MANICHAEANTHAMEDH
+#define PL_JOININGGROUP__MANICHAEANTWENTY   PL_JG__MANICHAEANTWENTY
+#define PL_JOININGGROUP__MANICHAEANWAW   PL_JG__MANICHAEANWAW
+#define PL_JOININGGROUP__MANICHAEANYODH   PL_JG__MANICHAEANYODH
+#define PL_JOININGGROUP__MANICHAEANZAYIN   PL_JG__MANICHAEANZAYIN
+#define PL_JOININGGROUP__MEEM   PL_JG__MEEM
+#define PL_JOININGGROUP__MIM   PL_JG__MIM
+#define PL_JOININGGROUP__NOJOININGGROUP   PL_JG__NOJOININGGROUP
+#define PL_JOININGGROUP__NOON   PL_JG__NOON
+#define PL_JOININGGROUP__NUN   PL_JG__NUN
+#define PL_JOININGGROUP__NYA   PL_JG__NYA
+#define PL_JOININGGROUP__PE   PL_JG__PE
+#define PL_JOININGGROUP__QAF   PL_JG__QAF
+#define PL_JOININGGROUP__QAPH   PL_JG__QAPH
+#define PL_JOININGGROUP__REH   PL_JG__REH
+#define PL_JOININGGROUP__REVERSEDPE   PL_JG__REVERSEDPE
+#define PL_JOININGGROUP__ROHINGYAYEH   PL_JG__ROHINGYAYEH
+#define PL_JOININGGROUP__SAD   PL_JG__SAD
+#define PL_JOININGGROUP__SADHE   PL_JG__SADHE
+#define PL_JOININGGROUP__SEEN   PL_JG__SEEN
+#define PL_JOININGGROUP__SEMKATH   PL_JG__SEMKATH
+#define PL_JOININGGROUP__SHIN   PL_JG__SHIN
+#define PL_JOININGGROUP__STRAIGHTWAW   PL_JG__STRAIGHTWAW
+#define PL_JOININGGROUP__SWASHKAF   PL_JG__SWASHKAF
+#define PL_JOININGGROUP__SYRIACWAW   PL_JG__SYRIACWAW
+#define PL_JOININGGROUP__TAH   PL_JG__TAH
+#define PL_JOININGGROUP__TAW   PL_JG__TAW
+#define PL_JOININGGROUP__TEHMARBUTA   PL_JG__TEHMARBUTA
+#define PL_JOININGGROUP__TEHMARBUTAGOAL   PL_JG__HAMZAONHEHGOAL
+#define PL_JOININGGROUP__TETH   PL_JG__TETH
+#define PL_JOININGGROUP__WAW   PL_JG__WAW
+#define PL_JOININGGROUP__YEH   PL_JG__YEH
+#define PL_JOININGGROUP__YEHBARREE   PL_JG__YEHBARREE
+#define PL_JOININGGROUP__YEHWITHTAIL   PL_JG__YEHWITHTAIL
+#define PL_JOININGGROUP__YUDH   PL_JG__YUDH
+#define PL_JOININGGROUP__YUDHHE   PL_JG__YUDHHE
+#define PL_JOININGGROUP__ZAIN   PL_JG__ZAIN
+#define PL_JOININGGROUP__ZHAIN   PL_JG__ZHAIN
+#define PL_JOININGTYPE__C   PL_JT__C
+#define PL_JOININGTYPE__D   PL_JT__D
+#define PL_JOININGTYPE__DUALJOINING   PL_JT__D
+#define PL_JOININGTYPE__JOINCAUSING   PL_JT__C
+#define PL_JOININGTYPE__L   PL_JT__L
+#define PL_JOININGTYPE__LEFTJOINING   PL_JT__L
+#define PL_JOININGTYPE__NONJOINING   PL_JT__U
+#define PL_JOININGTYPE__R   PL_JT__R
+#define PL_JOININGTYPE__RIGHTJOINING   PL_JT__R
+#define PL_JOININGTYPE__T   PL_JT__T
+#define PL_JOININGTYPE__TRANSPARENT   PL_JT__T
+#define PL_JOININGTYPE__U   PL_JT__U
+#define PL_JT__DUALJOINING   PL_JT__D
+#define PL_JT__JOINCAUSING   PL_JT__C
+#define PL_JT__LEFTJOINING   PL_JT__L
+#define PL_JT__NONJOINING   PL_JT__U
+#define PL_JT__RIGHTJOINING   PL_JT__R
+#define PL_JT__TRANSPARENT   PL_JT__T
+#define PL_KAITHI   PL_KTHI
+#define PL_KANAEXTENDEDA   PL_KANAEXTA
+#define PL_KANASUPPLEMENT   PL_KANASUP
+#define PL_KANGXIRADICALS   PL_KANGXI
+#define PL_KANNADA   PL_KNDA
+#define PL_KATAKANA   PL_KANA
+#define PL_KATAKANAPHONETICEXTENSIONS   PL_KATAKANAEXT
+#define PL_KAYAHLI   PL_KALI
+#define PL_KHAROSHTHI   PL_KHAR
+#define PL_KHMER   PL_KHMR
+#define PL_KHOJKI   PL_KHOJ
+#define PL_KHUDAWADI   PL_SIND
+#define PL_LAOO   PL_LAO
+#define PL_LATIN   PL_LATN
+#define PL_LATIN1SUP   PL_LATIN1
+#define PL_LATIN1SUPPLEMENT   PL_LATIN1
+#define PL_LATINEXTENDEDA   PL_LATINEXTA
+#define PL_LATINEXTENDEDADDITIONAL   PL_LATINEXTADDITIONAL
+#define PL_LATINEXTENDEDB   PL_LATINEXTB
+#define PL_LATINEXTENDEDC   PL_LATINEXTC
+#define PL_LATINEXTENDEDD   PL_LATINEXTD
+#define PL_LATINEXTENDEDE   PL_LATINEXTE
+#define PL_LB__ALPHABETIC   PL_LB__AL
+#define PL_LB__AMBIGUOUS   PL_LB__AI
+#define PL_LB__BREAKAFTER   PL_LB__BA
+#define PL_LB__BREAKBEFORE   PL_LB__BB
+#define PL_LB__BREAKBOTH   PL_LB__B2
+#define PL_LB__BREAKSYMBOLS   PL_LB__SY
+#define PL_LB__CARRIAGERETURN   PL_LB__CR
+#define PL_LB__CLOSEPARENTHESIS   PL_LB__CP
+#define PL_LB__CLOSEPUNCTUATION   PL_LB__CL
+#define PL_LB__COMBININGMARK   PL_LB__CM
+#define PL_LB__COMPLEXCONTEXT   PL_LB__SA
+#define PL_LB__CONDITIONALJAPANESESTARTER   PL_LB__CJ
+#define PL_LB__CONTINGENTBREAK   PL_LB__CB
+#define PL_LB__EBASE   PL_LB__EB
+#define PL_LB__EMODIFIER   PL_LB__EM
+#define PL_LB__EXCLAMATION   PL_LB__EX
+#define PL_LB__GLUE   PL_LB__GL
+#define PL_LB__HEBREWLETTER   PL_LB__HL
+#define PL_LB__HYPHEN   PL_LB__HY
+#define PL_LB__IDEOGRAPHIC   PL_LB__ID
+#define PL_LB__INFIXNUMERIC   PL_LB__IS
+#define PL_LB__INSEPARABLE   PL_LB__IN
+#define PL_LB__INSEPERABLE   PL_LB__IN
+#define PL_LB__JL   PL_GCB__L
+#define PL_LB__JT   PL_GCB__T
+#define PL_LB__JV   PL_GCB__V
+#define PL_LB__LINEFEED   PL_LB__LF
+#define PL_LB__MANDATORYBREAK   PL_LB__BK
+#define PL_LB__NEXTLINE   PL_LB__NL
+#define PL_LB__NONSTARTER   PL_LB__NS
+#define PL_LB__NUMERIC   PL_LB__NU
+#define PL_LB__OPENPUNCTUATION   PL_LB__OP
+#define PL_LB__POSTFIXNUMERIC   PL_LB__PO
+#define PL_LB__PREFIXNUMERIC   PL_LB__PR
+#define PL_LB__QUOTATION   PL_LB__QU
+#define PL_LB__REGIONALINDICATOR   PL_RI
+#define PL_LB__RI   PL_RI
+#define PL_LB__SPACE   PL_LB__SP
+#define PL_LB__SURROGATE   PL_LB__SG
+#define PL_LB__UNKNOWN   PL_LB__XX
+#define PL_LB__WORDJOINER   PL_LB__WJ
+#define PL_LB__ZWSPACE   PL_LB__ZW
+#define PL_LC   PL_L_AMP_
+#define PL_LEPCHA   PL_LEPC
+#define PL_LETTER   PL_L
+#define PL_LETTERNUMBER   PL_NL
+#define PL_LIMBU   PL_LIMB
+#define PL_LINEARA   PL_LINA
+#define PL_LINEARB   PL_LINB
+#define PL_LINEBREAK__AI   PL_LB__AI
+#define PL_LINEBREAK__AL   PL_LB__AL
+#define PL_LINEBREAK__ALPHABETIC   PL_LB__AL
+#define PL_LINEBREAK__AMBIGUOUS   PL_LB__AI
+#define PL_LINEBREAK__B2   PL_LB__B2
+#define PL_LINEBREAK__BA   PL_LB__BA
+#define PL_LINEBREAK__BB   PL_LB__BB
+#define PL_LINEBREAK__BK   PL_LB__BK
+#define PL_LINEBREAK__BREAKAFTER   PL_LB__BA
+#define PL_LINEBREAK__BREAKBEFORE   PL_LB__BB
+#define PL_LINEBREAK__BREAKBOTH   PL_LB__B2
+#define PL_LINEBREAK__BREAKSYMBOLS   PL_LB__SY
+#define PL_LINEBREAK__CARRIAGERETURN   PL_LB__CR
+#define PL_LINEBREAK__CB   PL_LB__CB
+#define PL_LINEBREAK__CJ   PL_LB__CJ
+#define PL_LINEBREAK__CL   PL_LB__CL
+#define PL_LINEBREAK__CLOSEPARENTHESIS   PL_LB__CP
+#define PL_LINEBREAK__CLOSEPUNCTUATION   PL_LB__CL
+#define PL_LINEBREAK__CM   PL_LB__CM
+#define PL_LINEBREAK__COMBININGMARK   PL_LB__CM
+#define PL_LINEBREAK__COMPLEXCONTEXT   PL_LB__SA
+#define PL_LINEBREAK__CONDITIONALJAPANESESTARTER   PL_LB__CJ
+#define PL_LINEBREAK__CONTINGENTBREAK   PL_LB__CB
+#define PL_LINEBREAK__CP   PL_LB__CP
+#define PL_LINEBREAK__CR   PL_LB__CR
+#define PL_LINEBREAK__EB   PL_LB__EB
+#define PL_LINEBREAK__EBASE   PL_LB__EB
+#define PL_LINEBREAK__EM   PL_LB__EM
+#define PL_LINEBREAK__EMODIFIER   PL_LB__EM
+#define PL_LINEBREAK__EX   PL_LB__EX
+#define PL_LINEBREAK__EXCLAMATION   PL_LB__EX
+#define PL_LINEBREAK__GL   PL_LB__GL
+#define PL_LINEBREAK__GLUE   PL_LB__GL
+#define PL_LINEBREAK__H2   PL_LB__H2
+#define PL_LINEBREAK__H3   PL_LB__H3
+#define PL_LINEBREAK__HEBREWLETTER   PL_LB__HL
+#define PL_LINEBREAK__HL   PL_LB__HL
+#define PL_LINEBREAK__HY   PL_LB__HY
+#define PL_LINEBREAK__HYPHEN   PL_LB__HY
+#define PL_LINEBREAK__ID   PL_LB__ID
+#define PL_LINEBREAK__IDEOGRAPHIC   PL_LB__ID
+#define PL_LINEBREAK__IN   PL_LB__IN
+#define PL_LINEBREAK__INFIXNUMERIC   PL_LB__IS
+#define PL_LINEBREAK__INSEPARABLE   PL_LB__IN
+#define PL_LINEBREAK__INSEPERABLE   PL_LB__IN
+#define PL_LINEBREAK__IS   PL_LB__IS
+#define PL_LINEBREAK__JL   PL_GCB__L
+#define PL_LINEBREAK__JT   PL_GCB__T
+#define PL_LINEBREAK__JV   PL_GCB__V
+#define PL_LINEBREAK__LF   PL_LB__LF
+#define PL_LINEBREAK__LINEFEED   PL_LB__LF
+#define PL_LINEBREAK__MANDATORYBREAK   PL_LB__BK
+#define PL_LINEBREAK__NEXTLINE   PL_LB__NL
+#define PL_LINEBREAK__NL   PL_LB__NL
+#define PL_LINEBREAK__NONSTARTER   PL_LB__NS
+#define PL_LINEBREAK__NS   PL_LB__NS
+#define PL_LINEBREAK__NU   PL_LB__NU
+#define PL_LINEBREAK__NUMERIC   PL_LB__NU
+#define PL_LINEBREAK__OP   PL_LB__OP
+#define PL_LINEBREAK__OPENPUNCTUATION   PL_LB__OP
+#define PL_LINEBREAK__PO   PL_LB__PO
+#define PL_LINEBREAK__POSTFIXNUMERIC   PL_LB__PO
+#define PL_LINEBREAK__PR   PL_LB__PR
+#define PL_LINEBREAK__PREFIXNUMERIC   PL_LB__PR
+#define PL_LINEBREAK__QU   PL_LB__QU
+#define PL_LINEBREAK__QUOTATION   PL_LB__QU
+#define PL_LINEBREAK__REGIONALINDICATOR   PL_RI
+#define PL_LINEBREAK__RI   PL_RI
+#define PL_LINEBREAK__SA   PL_LB__SA
+#define PL_LINEBREAK__SG   PL_LB__SG
+#define PL_LINEBREAK__SP   PL_LB__SP
+#define PL_LINEBREAK__SPACE   PL_LB__SP
+#define PL_LINEBREAK__SURROGATE   PL_LB__SG
+#define PL_LINEBREAK__SY   PL_LB__SY
+#define PL_LINEBREAK__UNKNOWN   PL_LB__XX
+#define PL_LINEBREAK__WJ   PL_LB__WJ
+#define PL_LINEBREAK__WORDJOINER   PL_LB__WJ
+#define PL_LINEBREAK__XX   PL_LB__XX
+#define PL_LINEBREAK__ZW   PL_LB__ZW
+#define PL_LINEBREAK__ZWJ   PL_LB__ZWJ
+#define PL_LINEBREAK__ZWSPACE   PL_LB__ZW
+#define PL_LINESEPARATOR   PL_ZL
+#define PL_LOE__F   -PL_LOE
+#define PL_LOE__FALSE   -PL_LOE
+#define PL_LOE__N   -PL_LOE
+#define PL_LOE__NO   -PL_LOE
+#define PL_LOE__T   PL_LOE
+#define PL_LOE__TRUE   PL_LOE
+#define PL_LOE__Y   PL_LOE
+#define PL_LOE__YES   PL_LOE
+#define PL_LOGICALORDEREXCEPTION   PL_LOE
+#define PL_LOGICALORDEREXCEPTION   PL_LOE
+#define PL_LOGICALORDEREXCEPTION__F   -PL_LOE
+#define PL_LOGICALORDEREXCEPTION__FALSE   -PL_LOE
+#define PL_LOGICALORDEREXCEPTION__N   -PL_LOE
+#define PL_LOGICALORDEREXCEPTION__NO   -PL_LOE
+#define PL_LOGICALORDEREXCEPTION__T   PL_LOE
+#define PL_LOGICALORDEREXCEPTION__TRUE   PL_LOE
+#define PL_LOGICALORDEREXCEPTION__Y   PL_LOE
+#define PL_LOGICALORDEREXCEPTION__YES   PL_LOE
+#define PL_LOWER   PL_XPOSIXLOWER
+#define PL_LOWERCASE   PL_XPOSIXLOWER
+#define PL_LOWERCASE   PL_XPOSIXLOWER
+#define PL_LOWERCASELETTER   PL_LL
+#define PL_LOWERCASE__F   -PL_XPOSIXLOWER
+#define PL_LOWERCASE__FALSE   -PL_XPOSIXLOWER
+#define PL_LOWERCASE__N   -PL_XPOSIXLOWER
+#define PL_LOWERCASE__NO   -PL_XPOSIXLOWER
+#define PL_LOWERCASE__T   PL_XPOSIXLOWER
+#define PL_LOWERCASE__TRUE   PL_XPOSIXLOWER
+#define PL_LOWERCASE__Y   PL_XPOSIXLOWER
+#define PL_LOWERCASE__YES   PL_XPOSIXLOWER
+#define PL_LOWER__F   -PL_XPOSIXLOWER
+#define PL_LOWER__FALSE   -PL_XPOSIXLOWER
+#define PL_LOWER__N   -PL_XPOSIXLOWER
+#define PL_LOWER__NO   -PL_XPOSIXLOWER
+#define PL_LOWER__T   PL_XPOSIXLOWER
+#define PL_LOWER__TRUE   PL_XPOSIXLOWER
+#define PL_LOWER__Y   PL_XPOSIXLOWER
+#define PL_LOWER__YES   PL_XPOSIXLOWER
+#define PL_LYCIAN   PL_LYCI
+#define PL_LYDIAN   PL_LYDI
+#define PL_L_   PL_L_AMP_
+#define PL_MAHAJANI   PL_MAHJ
+#define PL_MAHJONGTILES   PL_MAHJONG
+#define PL_MALAYALAM   PL_MLYM
+#define PL_MANDAIC   PL_MAND
+#define PL_MANICHAEAN   PL_MANI
+#define PL_MARCHEN   PL_MARC
+#define PL_MARK   PL_M
+#define PL_MASARAMGONDI   PL_GONM
+#define PL_MATHEMATICALALPHANUMERICSYMBOLS   PL_MATHALPHANUM
+#define PL_MATHEMATICALOPERATORS   PL_MATHOPERATORS
+#define PL_MATHSYMBOL   PL_SM
+#define PL_MATH__F   -PL_MATH
+#define PL_MATH__FALSE   -PL_MATH
+#define PL_MATH__N   -PL_MATH
+#define PL_MATH__NO   -PL_MATH
+#define PL_MATH__T   PL_MATH
+#define PL_MATH__TRUE   PL_MATH
+#define PL_MATH__Y   PL_MATH
+#define PL_MATH__YES   PL_MATH
+#define PL_MEETEIMAYEK   PL_MTEI
+#define PL_MEETEIMAYEKEXTENSIONS   PL_MEETEIMAYEKEXT
+#define PL_MENDEKIKAKUI   PL_MEND
+#define PL_MEROITICCURSIVE   PL_MERC
+#define PL_MEROITICHIEROGLYPHS   PL_MERO
+#define PL_MISCELLANEOUSMATHEMATICALSYMBOLSA   PL_MISCMATHSYMBOLSA
+#define PL_MISCELLANEOUSMATHEMATICALSYMBOLSB   PL_MISCMATHSYMBOLSB
+#define PL_MISCELLANEOUSSYMBOLS   PL_MISCSYMBOLS
+#define PL_MISCELLANEOUSSYMBOLSANDARROWS   PL_MISCARROWS
+#define PL_MISCELLANEOUSSYMBOLSANDPICTOGRAPHS   PL_MISCPICTOGRAPHS
+#define PL_MISCELLANEOUSTECHNICAL   PL_MISCTECHNICAL
+#define PL_MODIFIERLETTER   PL_LM
+#define PL_MODIFIERSYMBOL   PL_SK
+#define PL_MONGOLIAN   PL_MONG
+#define PL_MONGOLIANSUPPLEMENT   PL_MONGOLIANSUP
+#define PL_MROO   PL_MRO
+#define PL_MULTANI   PL_MULT
+#define PL_MUSICALSYMBOLS   PL_MUSIC
+#define PL_MYANMAR   PL_MYMR
+#define PL_MYANMAREXTENDEDA   PL_MYANMAREXTA
+#define PL_MYANMAREXTENDEDB   PL_MYANMAREXTB
+#define PL_NABATAEAN   PL_NBAT
+#define PL_NCHAR__F   -PL_NCHAR
+#define PL_NCHAR__FALSE   -PL_NCHAR
+#define PL_NCHAR__N   -PL_NCHAR
+#define PL_NCHAR__NO   -PL_NCHAR
+#define PL_NCHAR__T   PL_NCHAR
+#define PL_NCHAR__TRUE   PL_NCHAR
+#define PL_NCHAR__Y   PL_NCHAR
+#define PL_NCHAR__YES   PL_NCHAR
+#define PL_ND   PL_XPOSIXDIGIT
+#define PL_NEWTAILUE   PL_TALU
+#define PL_NFCQC__MAYBE   PL_NFCQC__M
+#define PL_NFCQC__N   PL_COMPEX
+#define PL_NFCQC__NO   PL_COMPEX
+#define PL_NFCQC__YES   PL_NFCQC__Y
+#define PL_NFCQUICKCHECK__M   PL_NFCQC__M
+#define PL_NFCQUICKCHECK__MAYBE   PL_NFCQC__M
+#define PL_NFCQUICKCHECK__N   PL_COMPEX
+#define PL_NFCQUICKCHECK__NO   PL_COMPEX
+#define PL_NFCQUICKCHECK__Y   PL_NFCQC__Y
+#define PL_NFCQUICKCHECK__YES   PL_NFCQC__Y
+#define PL_NFDQC__N   PL_DT__CAN
+#define PL_NFDQC__NO   PL_DT__CAN
+#define PL_NFDQC__YES   PL_NFDQC__Y
+#define PL_NFDQUICKCHECK__N   PL_DT__CAN
+#define PL_NFDQUICKCHECK__NO   PL_DT__CAN
+#define PL_NFDQUICKCHECK__Y   PL_NFDQC__Y
+#define PL_NFDQUICKCHECK__YES   PL_NFDQC__Y
+#define PL_NFKCQC__M   PL_NFCQC__M
+#define PL_NFKCQC__MAYBE   PL_NFCQC__M
+#define PL_NFKCQC__NO   PL_NFKCQC__N
+#define PL_NFKCQC__YES   PL_NFKCQC__Y
+#define PL_NFKCQUICKCHECK__M   PL_NFCQC__M
+#define PL_NFKCQUICKCHECK__MAYBE   PL_NFCQC__M
+#define PL_NFKCQUICKCHECK__N   PL_NFKCQC__N
+#define PL_NFKCQUICKCHECK__NO   PL_NFKCQC__N
+#define PL_NFKCQUICKCHECK__Y   PL_NFKCQC__Y
+#define PL_NFKCQUICKCHECK__YES   PL_NFKCQC__Y
+#define PL_NFKDQC__NO   PL_NFKDQC__N
+#define PL_NFKDQC__Y   PL_DT__NONE
+#define PL_NFKDQC__YES   PL_DT__NONE
+#define PL_NFKDQUICKCHECK__N   PL_NFKDQC__N
+#define PL_NFKDQUICKCHECK__NO   PL_NFKDQC__N
+#define PL_NFKDQUICKCHECK__Y   PL_DT__NONE
+#define PL_NFKDQUICKCHECK__YES   PL_DT__NONE
+#define PL_NKOO   PL_NKO
+#define PL_NOBLOCK   PL_NB
+#define PL_NONCHARACTERCODEPOINT   PL_NCHAR
+#define PL_NONCHARACTERCODEPOINT   PL_NCHAR
+#define PL_NONCHARACTERCODEPOINT__F   -PL_NCHAR
+#define PL_NONCHARACTERCODEPOINT__FALSE   -PL_NCHAR
+#define PL_NONCHARACTERCODEPOINT__N   -PL_NCHAR
+#define PL_NONCHARACTERCODEPOINT__NO   -PL_NCHAR
+#define PL_NONCHARACTERCODEPOINT__T   PL_NCHAR
+#define PL_NONCHARACTERCODEPOINT__TRUE   PL_NCHAR
+#define PL_NONCHARACTERCODEPOINT__Y   PL_NCHAR
+#define PL_NONCHARACTERCODEPOINT__YES   PL_NCHAR
+#define PL_NONSPACINGMARK   PL_MN
+#define PL_NT__DE   PL_XPOSIXDIGIT
+#define PL_NT__DECIMAL   PL_XPOSIXDIGIT
+#define PL_NT__DIGIT   PL_NT__DI
+#define PL_NT__NONE   PL_NV__NAN
+#define PL_NT__NUMERIC   PL_NT__NU
+#define PL_NUMBER   PL_N
+#define PL_NUMERICTYPE__DE   PL_XPOSIXDIGIT
+#define PL_NUMERICTYPE__DECIMAL   PL_XPOSIXDIGIT
+#define PL_NUMERICTYPE__DI   PL_NT__DI
+#define PL_NUMERICTYPE__DIGIT   PL_NT__DI
+#define PL_NUMERICTYPE__NONE   PL_NV__NAN
+#define PL_NUMERICTYPE__NU   PL_NT__NU
+#define PL_NUMERICTYPE__NUMERIC   PL_NT__NU
+#define PL_NUMERICVALUE__0   PL_NV__0
+#define PL_NUMERICVALUE__1   PL_NV__1
+#define PL_NUMERICVALUE__10   PL_NV__10
+#define PL_NUMERICVALUE__100   PL_NV__100
+#define PL_NUMERICVALUE__1000   PL_NV__1000
+#define PL_NUMERICVALUE__10000   PL_NV__10000
+#define PL_NUMERICVALUE__100000   PL_NV__100000
+#define PL_NUMERICVALUE__1000000   PL_NV__1000000
+#define PL_NUMERICVALUE__100000000   PL_NV__100000000
+#define PL_NUMERICVALUE__10000000000   PL_NV__10000000000
+#define PL_NUMERICVALUE__1000000000000   PL_NV__1000000000000
+#define PL_NUMERICVALUE__11   PL_NV__11
+#define PL_NUMERICVALUE__11_SLASH_12   PL_NV__11_SLASH_12
+#define PL_NUMERICVALUE__11_SLASH_2   PL_NV__11_SLASH_2
+#define PL_NUMERICVALUE__12   PL_NV__12
+#define PL_NUMERICVALUE__13   PL_NV__13
+#define PL_NUMERICVALUE__13_SLASH_2   PL_NV__13_SLASH_2
+#define PL_NUMERICVALUE__14   PL_NV__14
+#define PL_NUMERICVALUE__15   PL_NV__15
+#define PL_NUMERICVALUE__15_SLASH_2   PL_NV__15_SLASH_2
+#define PL_NUMERICVALUE__16   PL_NV__16
+#define PL_NUMERICVALUE__17   PL_NV__17
+#define PL_NUMERICVALUE__17_SLASH_2   PL_NV__17_SLASH_2
+#define PL_NUMERICVALUE__18   PL_NV__18
+#define PL_NUMERICVALUE__19   PL_NV__19
+#define PL_NUMERICVALUE__1_SLASH_10   PL_NV__1_SLASH_10
+#define PL_NUMERICVALUE__1_SLASH_12   PL_NV__1_SLASH_12
+#define PL_NUMERICVALUE__1_SLASH_16   PL_NV__1_SLASH_16
+#define PL_NUMERICVALUE__1_SLASH_160   PL_NV__1_SLASH_160
+#define PL_NUMERICVALUE__1_SLASH_2   PL_NV__1_SLASH_2
+#define PL_NUMERICVALUE__1_SLASH_20   PL_NV__1_SLASH_20
+#define PL_NUMERICVALUE__1_SLASH_3   PL_NV__1_SLASH_3
+#define PL_NUMERICVALUE__1_SLASH_4   PL_NV__1_SLASH_4
+#define PL_NUMERICVALUE__1_SLASH_40   PL_NV__1_SLASH_40
+#define PL_NUMERICVALUE__1_SLASH_5   PL_NV__1_SLASH_5
+#define PL_NUMERICVALUE__1_SLASH_6   PL_NV__1_SLASH_6
+#define PL_NUMERICVALUE__1_SLASH_7   PL_NV__1_SLASH_7
+#define PL_NUMERICVALUE__1_SLASH_8   PL_NV__1_SLASH_8
+#define PL_NUMERICVALUE__1_SLASH_9   PL_NV__1_SLASH_9
+#define PL_NUMERICVALUE__2   PL_NV__2
+#define PL_NUMERICVALUE__20   PL_NV__20
+#define PL_NUMERICVALUE__200   PL_NV__200
+#define PL_NUMERICVALUE__2000   PL_NV__2000
+#define PL_NUMERICVALUE__20000   PL_NV__20000
+#define PL_NUMERICVALUE__200000   PL_NV__200000
+#define PL_NUMERICVALUE__21   PL_NV__21
+#define PL_NUMERICVALUE__216000   PL_NV__216000
+#define PL_NUMERICVALUE__22   PL_NV__22
+#define PL_NUMERICVALUE__23   PL_NV__23
+#define PL_NUMERICVALUE__24   PL_NV__24
+#define PL_NUMERICVALUE__25   PL_NV__25
+#define PL_NUMERICVALUE__26   PL_NV__26
+#define PL_NUMERICVALUE__27   PL_NV__27
+#define PL_NUMERICVALUE__28   PL_NV__28
+#define PL_NUMERICVALUE__29   PL_NV__29
+#define PL_NUMERICVALUE__2_SLASH_3   PL_NV__2_SLASH_3
+#define PL_NUMERICVALUE__2_SLASH_5   PL_NV__2_SLASH_5
+#define PL_NUMERICVALUE__3   PL_NV__3
+#define PL_NUMERICVALUE__30   PL_NV__30
+#define PL_NUMERICVALUE__300   PL_NV__300
+#define PL_NUMERICVALUE__3000   PL_NV__3000
+#define PL_NUMERICVALUE__30000   PL_NV__30000
+#define PL_NUMERICVALUE__300000   PL_NV__300000
+#define PL_NUMERICVALUE__31   PL_NV__31
+#define PL_NUMERICVALUE__32   PL_NV__32
+#define PL_NUMERICVALUE__33   PL_NV__33
+#define PL_NUMERICVALUE__34   PL_NV__34
+#define PL_NUMERICVALUE__35   PL_NV__35
+#define PL_NUMERICVALUE__36   PL_NV__36
+#define PL_NUMERICVALUE__37   PL_NV__37
+#define PL_NUMERICVALUE__38   PL_NV__38
+#define PL_NUMERICVALUE__39   PL_NV__39
+#define PL_NUMERICVALUE__3_SLASH_16   PL_NV__3_SLASH_16
+#define PL_NUMERICVALUE__3_SLASH_2   PL_NV__3_SLASH_2
+#define PL_NUMERICVALUE__3_SLASH_20   PL_NV__3_SLASH_20
+#define PL_NUMERICVALUE__3_SLASH_4   PL_NV__3_SLASH_4
+#define PL_NUMERICVALUE__3_SLASH_5   PL_NV__3_SLASH_5
+#define PL_NUMERICVALUE__3_SLASH_8   PL_NV__3_SLASH_8
+#define PL_NUMERICVALUE__3_SLASH_80   PL_NV__3_SLASH_80
+#define PL_NUMERICVALUE__4   PL_NV__4
+#define PL_NUMERICVALUE__40   PL_NV__40
+#define PL_NUMERICVALUE__400   PL_NV__400
+#define PL_NUMERICVALUE__4000   PL_NV__4000
+#define PL_NUMERICVALUE__40000   PL_NV__40000
+#define PL_NUMERICVALUE__400000   PL_NV__400000
+#define PL_NUMERICVALUE__41   PL_NV__41
+#define PL_NUMERICVALUE__42   PL_NV__42
+#define PL_NUMERICVALUE__43   PL_NV__43
+#define PL_NUMERICVALUE__432000   PL_NV__432000
+#define PL_NUMERICVALUE__44   PL_NV__44
+#define PL_NUMERICVALUE__45   PL_NV__45
+#define PL_NUMERICVALUE__46   PL_NV__46
+#define PL_NUMERICVALUE__47   PL_NV__47
+#define PL_NUMERICVALUE__48   PL_NV__48
+#define PL_NUMERICVALUE__49   PL_NV__49
+#define PL_NUMERICVALUE__4_SLASH_5   PL_NV__4_SLASH_5
+#define PL_NUMERICVALUE__5   PL_NV__5
+#define PL_NUMERICVALUE__50   PL_NV__50
+#define PL_NUMERICVALUE__500   PL_NV__500
+#define PL_NUMERICVALUE__5000   PL_NV__5000
+#define PL_NUMERICVALUE__50000   PL_NV__50000
+#define PL_NUMERICVALUE__500000   PL_NV__500000
+#define PL_NUMERICVALUE__5_SLASH_12   PL_NV__5_SLASH_12
+#define PL_NUMERICVALUE__5_SLASH_2   PL_NV__5_SLASH_2
+#define PL_NUMERICVALUE__5_SLASH_6   PL_NV__5_SLASH_6
+#define PL_NUMERICVALUE__5_SLASH_8   PL_NV__5_SLASH_8
+#define PL_NUMERICVALUE__6   PL_NV__6
+#define PL_NUMERICVALUE__60   PL_NV__60
+#define PL_NUMERICVALUE__600   PL_NV__600
+#define PL_NUMERICVALUE__6000   PL_NV__6000
+#define PL_NUMERICVALUE__60000   PL_NV__60000
+#define PL_NUMERICVALUE__600000   PL_NV__600000
+#define PL_NUMERICVALUE__7   PL_NV__7
+#define PL_NUMERICVALUE__70   PL_NV__70
+#define PL_NUMERICVALUE__700   PL_NV__700
+#define PL_NUMERICVALUE__7000   PL_NV__7000
+#define PL_NUMERICVALUE__70000   PL_NV__70000
+#define PL_NUMERICVALUE__700000   PL_NV__700000
+#define PL_NUMERICVALUE__7_SLASH_12   PL_NV__7_SLASH_12
+#define PL_NUMERICVALUE__7_SLASH_2   PL_NV__7_SLASH_2
+#define PL_NUMERICVALUE__7_SLASH_8   PL_NV__7_SLASH_8
+#define PL_NUMERICVALUE__8   PL_NV__8
+#define PL_NUMERICVALUE__80   PL_NV__80
+#define PL_NUMERICVALUE__800   PL_NV__800
+#define PL_NUMERICVALUE__8000   PL_NV__8000
+#define PL_NUMERICVALUE__80000   PL_NV__80000
+#define PL_NUMERICVALUE__800000   PL_NV__800000
+#define PL_NUMERICVALUE__9   PL_NV__9
+#define PL_NUMERICVALUE__90   PL_NV__90
+#define PL_NUMERICVALUE__900   PL_NV__900
+#define PL_NUMERICVALUE__9000   PL_NV__9000
+#define PL_NUMERICVALUE__90000   PL_NV__90000
+#define PL_NUMERICVALUE__900000   PL_NV__900000
+#define PL_NUMERICVALUE__9_SLASH_2   PL_NV__9_SLASH_2
+#define PL_NUMERICVALUE__NAN   PL_NV__NAN
+#define PL_NUMERICVALUE___MINUS_1_SLASH_2   PL_NV___MINUS_1_SLASH_2
+#define PL_NUSHU   PL_NSHU
+#define PL_OGHAM   PL_OGAM
+#define PL_OLCHIKI   PL_OLCK
+#define PL_OLDHUNGARIAN   PL_HUNG
+#define PL_OLDITALIC   PL_ITAL
+#define PL_OLDNORTHARABIAN   PL_NARB
+#define PL_OLDPERMIC   PL_PERM
+#define PL_OLDPERSIAN   PL_XPEO
+#define PL_OLDSOUTHARABIAN   PL_SARB
+#define PL_OLDTURKIC   PL_ORKH
+#define PL_OPENPUNCTUATION   PL_PS
+#define PL_OPTICALCHARACTERRECOGNITION   PL_OCR
+#define PL_ORIYA   PL_ORYA
+#define PL_OSAGE   PL_OSGE
+#define PL_OSMANYA   PL_OSMA
+#define PL_OTHER   PL_C
+#define PL_OTHERLETTER   PL_LO
+#define PL_OTHERNUMBER   PL_NO
+#define PL_OTHERPUNCTUATION   PL_PO
+#define PL_OTHERSYMBOL   PL_SO
+#define PL_PAHAWHHMONG   PL_HMNG
+#define PL_PALMYRENE   PL_PALM
+#define PL_PARAGRAPHSEPARATOR   PL_ZP
+#define PL_PATSYN__F   -PL_PATSYN
+#define PL_PATSYN__FALSE   -PL_PATSYN
+#define PL_PATSYN__N   -PL_PATSYN
+#define PL_PATSYN__NO   -PL_PATSYN
+#define PL_PATSYN__T   PL_PATSYN
+#define PL_PATSYN__TRUE   PL_PATSYN
+#define PL_PATSYN__Y   PL_PATSYN
+#define PL_PATSYN__YES   PL_PATSYN
+#define PL_PATTERNSYNTAX   PL_PATSYN
+#define PL_PATTERNSYNTAX   PL_PATSYN
+#define PL_PATTERNSYNTAX__F   -PL_PATSYN
+#define PL_PATTERNSYNTAX__FALSE   -PL_PATSYN
+#define PL_PATTERNSYNTAX__N   -PL_PATSYN
+#define PL_PATTERNSYNTAX__NO   -PL_PATSYN
+#define PL_PATTERNSYNTAX__T   PL_PATSYN
+#define PL_PATTERNSYNTAX__TRUE   PL_PATSYN
+#define PL_PATTERNSYNTAX__Y   PL_PATSYN
+#define PL_PATTERNSYNTAX__YES   PL_PATSYN
+#define PL_PATTERNWHITESPACE   PL_PATWS
+#define PL_PATTERNWHITESPACE   PL_PATWS
+#define PL_PATTERNWHITESPACE__F   -PL_PATWS
+#define PL_PATTERNWHITESPACE__FALSE   -PL_PATWS
+#define PL_PATTERNWHITESPACE__N   -PL_PATWS
+#define PL_PATTERNWHITESPACE__NO   -PL_PATWS
+#define PL_PATTERNWHITESPACE__T   PL_PATWS
+#define PL_PATTERNWHITESPACE__TRUE   PL_PATWS
+#define PL_PATTERNWHITESPACE__Y   PL_PATWS
+#define PL_PATTERNWHITESPACE__YES   PL_PATWS
+#define PL_PATWS__F   -PL_PATWS
+#define PL_PATWS__FALSE   -PL_PATWS
+#define PL_PATWS__N   -PL_PATWS
+#define PL_PATWS__NO   -PL_PATWS
+#define PL_PATWS__T   PL_PATWS
+#define PL_PATWS__TRUE   PL_PATWS
+#define PL_PATWS__Y   PL_PATWS
+#define PL_PATWS__YES   PL_PATWS
+#define PL_PAUCINHAU   PL_PAUC
+#define PL_PCM__F   -PL_PCM
+#define PL_PCM__FALSE   -PL_PCM
+#define PL_PCM__N   -PL_PCM
+#define PL_PCM__NO   -PL_PCM
+#define PL_PCM__T   PL_PCM
+#define PL_PCM__TRUE   PL_PCM
+#define PL_PCM__Y   PL_PCM
+#define PL_PCM__YES   PL_PCM
+#define PL_PERLSPACE   PL_POSIXSPACE
+#define PL_PERLWORD   PL_POSIXWORD
+#define PL_PHAGSPA   PL_PHAG
+#define PL_PHAISTOSDISC   PL_PHAISTOS
+#define PL_PHOENICIAN   PL_PHNX
+#define PL_PHONETICEXTENSIONS   PL_PHONETICEXT
+#define PL_PHONETICEXTENSIONSSUPPLEMENT   PL_PHONETICEXTSUP
+#define PL_PLRD   PL_MIAO
+#define PL_PREPENDEDCONCATENATIONMARK   PL_PCM
+#define PL_PREPENDEDCONCATENATIONMARK   PL_PCM
+#define PL_PREPENDEDCONCATENATIONMARK__F   -PL_PCM
+#define PL_PREPENDEDCONCATENATIONMARK__FALSE   -PL_PCM
+#define PL_PREPENDEDCONCATENATIONMARK__N   -PL_PCM
+#define PL_PREPENDEDCONCATENATIONMARK__NO   -PL_PCM
+#define PL_PREPENDEDCONCATENATIONMARK__T   PL_PCM
+#define PL_PREPENDEDCONCATENATIONMARK__TRUE   PL_PCM
+#define PL_PREPENDEDCONCATENATIONMARK__Y   PL_PCM
+#define PL_PREPENDEDCONCATENATIONMARK__YES   PL_PCM
+#define PL_PRESENTIN__10   PL_IN__10
+#define PL_PRESENTIN__10_DOT_0   PL_IN__10
+#define PL_PRESENTIN__1_DOT_1   PL_IN__1_DOT_1
+#define PL_PRESENTIN__2   PL_IN__2
+#define PL_PRESENTIN__2_DOT_0   PL_IN__2
+#define PL_PRESENTIN__2_DOT_1   PL_IN__2_DOT_1
+#define PL_PRESENTIN__3   PL_IN__3
+#define PL_PRESENTIN__3_DOT_0   PL_IN__3
+#define PL_PRESENTIN__3_DOT_1   PL_IN__3_DOT_1
+#define PL_PRESENTIN__3_DOT_2   PL_IN__3_DOT_2
+#define PL_PRESENTIN__4   PL_IN__4
+#define PL_PRESENTIN__4_DOT_0   PL_IN__4
+#define PL_PRESENTIN__4_DOT_1   PL_IN__4_DOT_1
+#define PL_PRESENTIN__5   PL_IN__5
+#define PL_PRESENTIN__5_DOT_0   PL_IN__5
+#define PL_PRESENTIN__5_DOT_1   PL_IN__5_DOT_1
+#define PL_PRESENTIN__5_DOT_2   PL_IN__5_DOT_2
+#define PL_PRESENTIN__6   PL_IN__6
+#define PL_PRESENTIN__6_DOT_0   PL_IN__6
+#define PL_PRESENTIN__6_DOT_1   PL_IN__6_DOT_1
+#define PL_PRESENTIN__6_DOT_2   PL_IN__6_DOT_2
+#define PL_PRESENTIN__6_DOT_3   PL_IN__6_DOT_3
+#define PL_PRESENTIN__7   PL_IN__7
+#define PL_PRESENTIN__7_DOT_0   PL_IN__7
+#define PL_PRESENTIN__8   PL_IN__8
+#define PL_PRESENTIN__8_DOT_0   PL_IN__8
+#define PL_PRESENTIN__9   PL_IN__9
+#define PL_PRESENTIN__9_DOT_0   PL_IN__9
+#define PL_PRESENTIN__UNASSIGNED   PL_AGE__NA
+#define PL_PRESENTIN__V100   PL_IN__10
+#define PL_PRESENTIN__V20   PL_IN__2
+#define PL_PRESENTIN__V21   PL_IN__2_DOT_1
+#define PL_PRESENTIN__V30   PL_IN__3
+#define PL_PRESENTIN__V31   PL_IN__3_DOT_1
+#define PL_PRESENTIN__V32   PL_IN__3_DOT_2
+#define PL_PRESENTIN__V40   PL_IN__4
+#define PL_PRESENTIN__V41   PL_IN__4_DOT_1
+#define PL_PRESENTIN__V50   PL_IN__5
+#define PL_PRESENTIN__V51   PL_IN__5_DOT_1
+#define PL_PRESENTIN__V52   PL_IN__5_DOT_2
+#define PL_PRESENTIN__V60   PL_IN__6
+#define PL_PRESENTIN__V61   PL_IN__6_DOT_1
+#define PL_PRESENTIN__V62   PL_IN__6_DOT_2
+#define PL_PRESENTIN__V63   PL_IN__6_DOT_3
+#define PL_PRESENTIN__V70   PL_IN__7
+#define PL_PRESENTIN__V80   PL_IN__8
+#define PL_PRESENTIN__V90   PL_IN__9
+#define PL_PRINT   PL_XPOSIXPRINT
+#define PL_PRIVATEUSE   PL_CO
+#define PL_PRIVATEUSEAREA   PL_PUA
+#define PL_PSALTERPAHLAVI   PL_PHLP
+#define PL_PUNCT   PL_P
+#define PL_PUNCTUATION   PL_P
+#define PL_QAAC   PL_COPT
+#define PL_QMARK__F   -PL_QMARK
+#define PL_QMARK__FALSE   -PL_QMARK
+#define PL_QMARK__N   -PL_QMARK
+#define PL_QMARK__NO   -PL_QMARK
+#define PL_QMARK__T   PL_QMARK
+#define PL_QMARK__TRUE   PL_QMARK
+#define PL_QMARK__Y   PL_QMARK
+#define PL_QMARK__YES   PL_QMARK
+#define PL_QUOTATIONMARK   PL_QMARK
+#define PL_QUOTATIONMARK   PL_QMARK
+#define PL_QUOTATIONMARK__F   -PL_QMARK
+#define PL_QUOTATIONMARK__FALSE   -PL_QMARK
+#define PL_QUOTATIONMARK__N   -PL_QMARK
+#define PL_QUOTATIONMARK__NO   -PL_QMARK
+#define PL_QUOTATIONMARK__T   PL_QMARK
+#define PL_QUOTATIONMARK__TRUE   PL_QMARK
+#define PL_QUOTATIONMARK__Y   PL_QMARK
+#define PL_QUOTATIONMARK__YES   PL_QMARK
+#define PL_RADICAL__F   -PL_RADICAL
+#define PL_RADICAL__FALSE   -PL_RADICAL
+#define PL_RADICAL__N   -PL_RADICAL
+#define PL_RADICAL__NO   -PL_RADICAL
+#define PL_RADICAL__T   PL_RADICAL
+#define PL_RADICAL__TRUE   PL_RADICAL
+#define PL_RADICAL__Y   PL_RADICAL
+#define PL_RADICAL__YES   PL_RADICAL
+#define PL_REGIONALINDICATOR   PL_RI
+#define PL_REGIONALINDICATOR   PL_RI
+#define PL_REGIONALINDICATOR__F   -PL_RI
+#define PL_REGIONALINDICATOR__FALSE   -PL_RI
+#define PL_REGIONALINDICATOR__N   -PL_RI
+#define PL_REGIONALINDICATOR__NO   -PL_RI
+#define PL_REGIONALINDICATOR__T   PL_RI
+#define PL_REGIONALINDICATOR__TRUE   PL_RI
+#define PL_REGIONALINDICATOR__Y   PL_RI
+#define PL_REGIONALINDICATOR__YES   PL_RI
+#define PL_REJANG   PL_RJNG
+#define PL_RI__F   -PL_RI
+#define PL_RI__FALSE   -PL_RI
+#define PL_RI__N   -PL_RI
+#define PL_RI__NO   -PL_RI
+#define PL_RI__T   PL_RI
+#define PL_RI__TRUE   PL_RI
+#define PL_RI__Y   PL_RI
+#define PL_RI__YES   PL_RI
+#define PL_RUMINUMERALSYMBOLS   PL_RUMI
+#define PL_RUNIC   PL_RUNR
+#define PL_SAMARITAN   PL_SAMR
+#define PL_SAURASHTRA   PL_SAUR
+#define PL_SB__ATERM   PL_SB__AT
+#define PL_SB__CLOSE   PL_SB__CL
+#define PL_SB__CR   PL_LB__CR
+#define PL_SB__EXTEND   PL_SB__EX
+#define PL_SB__FORMAT   PL_SB__FO
+#define PL_SB__LF   PL_LB__LF
+#define PL_SB__LOWER   PL_SB__LO
+#define PL_SB__NU   PL_LB__NU
+#define PL_SB__NUMERIC   PL_LB__NU
+#define PL_SB__OLETTER   PL_SB__LE
+#define PL_SB__OTHER   PL_SB__XX
+#define PL_SB__SCONTINUE   PL_SB__SC
+#define PL_SB__SEP   PL_SB__SE
+#define PL_SB__STERM   PL_SB__ST
+#define PL_SB__UPPER   PL_SB__UP
+#define PL_SCRIPTEXTENSIONS__ADLAM   PL_ADLM
+#define PL_SCRIPTEXTENSIONS__ADLM   PL_ADLM
+#define PL_SCRIPTEXTENSIONS__AGHB   PL_AGHB
+#define PL_SCRIPTEXTENSIONS__AHOM   PL_AHOM
+#define PL_SCRIPTEXTENSIONS__ANATOLIANHIEROGLYPHS   PL_HLUW
+#define PL_SCRIPTEXTENSIONS__ARAB   PL_ARAB
+#define PL_SCRIPTEXTENSIONS__ARABIC   PL_ARAB
+#define PL_SCRIPTEXTENSIONS__ARMENIAN   PL_ARMN
+#define PL_SCRIPTEXTENSIONS__ARMI   PL_ARMI
+#define PL_SCRIPTEXTENSIONS__ARMN   PL_ARMN
+#define PL_SCRIPTEXTENSIONS__AVESTAN   PL_AVST
+#define PL_SCRIPTEXTENSIONS__AVST   PL_AVST
+#define PL_SCRIPTEXTENSIONS__BALI   PL_BALI
+#define PL_SCRIPTEXTENSIONS__BALINESE   PL_BALI
+#define PL_SCRIPTEXTENSIONS__BAMU   PL_BAMU
+#define PL_SCRIPTEXTENSIONS__BAMUM   PL_BAMU
+#define PL_SCRIPTEXTENSIONS__BASS   PL_BASS
+#define PL_SCRIPTEXTENSIONS__BASSAVAH   PL_BASS
+#define PL_SCRIPTEXTENSIONS__BATAK   PL_BATK
+#define PL_SCRIPTEXTENSIONS__BATK   PL_BATK
+#define PL_SCRIPTEXTENSIONS__BENG   PL_BENG
+#define PL_SCRIPTEXTENSIONS__BENGALI   PL_BENG
+#define PL_SCRIPTEXTENSIONS__BHAIKSUKI   PL_BHKS
+#define PL_SCRIPTEXTENSIONS__BHKS   PL_BHKS
+#define PL_SCRIPTEXTENSIONS__BOPO   PL_BOPO
+#define PL_SCRIPTEXTENSIONS__BOPOMOFO   PL_BOPO
+#define PL_SCRIPTEXTENSIONS__BRAH   PL_BRAH
+#define PL_SCRIPTEXTENSIONS__BRAHMI   PL_BRAH
+#define PL_SCRIPTEXTENSIONS__BRAI   PL_BRAI
+#define PL_SCRIPTEXTENSIONS__BRAILLE   PL_BRAI
+#define PL_SCRIPTEXTENSIONS__BUGI   PL_BUGI
+#define PL_SCRIPTEXTENSIONS__BUGINESE   PL_BUGI
+#define PL_SCRIPTEXTENSIONS__BUHD   PL_BUHD
+#define PL_SCRIPTEXTENSIONS__BUHID   PL_BUHD
+#define PL_SCRIPTEXTENSIONS__CAKM   PL_CAKM
+#define PL_SCRIPTEXTENSIONS__CANADIANABORIGINAL   PL_CANS
+#define PL_SCRIPTEXTENSIONS__CANS   PL_CANS
+#define PL_SCRIPTEXTENSIONS__CARI   PL_CARI
+#define PL_SCRIPTEXTENSIONS__CARIAN   PL_CARI
+#define PL_SCRIPTEXTENSIONS__CAUCASIANALBANIAN   PL_AGHB
+#define PL_SCRIPTEXTENSIONS__CHAKMA   PL_CAKM
+#define PL_SCRIPTEXTENSIONS__CHAM   PL_CHAM
+#define PL_SCRIPTEXTENSIONS__CHER   PL_CHER
+#define PL_SCRIPTEXTENSIONS__CHEROKEE   PL_CHER
+#define PL_SCRIPTEXTENSIONS__COMMON   PL_ZYYY
+#define PL_SCRIPTEXTENSIONS__COPT   PL_COPT
+#define PL_SCRIPTEXTENSIONS__COPTIC   PL_COPT
+#define PL_SCRIPTEXTENSIONS__CPRT   PL_CPRT
+#define PL_SCRIPTEXTENSIONS__CUNEIFORM   PL_XSUX
+#define PL_SCRIPTEXTENSIONS__CYPRIOT   PL_CPRT
+#define PL_SCRIPTEXTENSIONS__CYRILLIC   PL_CYRL
+#define PL_SCRIPTEXTENSIONS__CYRL   PL_CYRL
+#define PL_SCRIPTEXTENSIONS__DESERET   PL_DSRT
+#define PL_SCRIPTEXTENSIONS__DEVA   PL_DEVA
+#define PL_SCRIPTEXTENSIONS__DEVANAGARI   PL_DEVA
+#define PL_SCRIPTEXTENSIONS__DSRT   PL_DSRT
+#define PL_SCRIPTEXTENSIONS__DUPL   PL_DUPL
+#define PL_SCRIPTEXTENSIONS__DUPLOYAN   PL_DUPL
+#define PL_SCRIPTEXTENSIONS__EGYP   PL_EGYP
+#define PL_SCRIPTEXTENSIONS__EGYPTIANHIEROGLYPHS   PL_EGYP
+#define PL_SCRIPTEXTENSIONS__ELBA   PL_ELBA
+#define PL_SCRIPTEXTENSIONS__ELBASAN   PL_ELBA
+#define PL_SCRIPTEXTENSIONS__ETHI   PL_ETHI
+#define PL_SCRIPTEXTENSIONS__ETHIOPIC   PL_ETHI
+#define PL_SCRIPTEXTENSIONS__GEOR   PL_GEOR
+#define PL_SCRIPTEXTENSIONS__GEORGIAN   PL_GEOR
+#define PL_SCRIPTEXTENSIONS__GLAG   PL_GLAG
+#define PL_SCRIPTEXTENSIONS__GLAGOLITIC   PL_GLAG
+#define PL_SCRIPTEXTENSIONS__GONM   PL_GONM
+#define PL_SCRIPTEXTENSIONS__GOTH   PL_GOTH
+#define PL_SCRIPTEXTENSIONS__GOTHIC   PL_GOTH
+#define PL_SCRIPTEXTENSIONS__GRAN   PL_GRAN
+#define PL_SCRIPTEXTENSIONS__GRANTHA   PL_GRAN
+#define PL_SCRIPTEXTENSIONS__GREEK   PL_GREK
+#define PL_SCRIPTEXTENSIONS__GREK   PL_GREK
+#define PL_SCRIPTEXTENSIONS__GUJARATI   PL_GUJR
+#define PL_SCRIPTEXTENSIONS__GUJR   PL_GUJR
+#define PL_SCRIPTEXTENSIONS__GURMUKHI   PL_GURU
+#define PL_SCRIPTEXTENSIONS__GURU   PL_GURU
+#define PL_SCRIPTEXTENSIONS__HAN   PL_HAN
+#define PL_SCRIPTEXTENSIONS__HANG   PL_HANG
+#define PL_SCRIPTEXTENSIONS__HANGUL   PL_HANG
+#define PL_SCRIPTEXTENSIONS__HANI   PL_HAN
+#define PL_SCRIPTEXTENSIONS__HANO   PL_HANO
+#define PL_SCRIPTEXTENSIONS__HANUNOO   PL_HANO
+#define PL_SCRIPTEXTENSIONS__HATR   PL_HATR
+#define PL_SCRIPTEXTENSIONS__HATRAN   PL_HATR
+#define PL_SCRIPTEXTENSIONS__HEBR   PL_HEBR
+#define PL_SCRIPTEXTENSIONS__HEBREW   PL_HEBR
+#define PL_SCRIPTEXTENSIONS__HIRA   PL_HIRA
+#define PL_SCRIPTEXTENSIONS__HIRAGANA   PL_HIRA
+#define PL_SCRIPTEXTENSIONS__HLUW   PL_HLUW
+#define PL_SCRIPTEXTENSIONS__HMNG   PL_HMNG
+#define PL_SCRIPTEXTENSIONS__HUNG   PL_HUNG
+#define PL_SCRIPTEXTENSIONS__IMPERIALARAMAIC   PL_ARMI
+#define PL_SCRIPTEXTENSIONS__INHERITED   PL_QAAI
+#define PL_SCRIPTEXTENSIONS__INSCRIPTIONALPAHLAVI   PL_PHLI
+#define PL_SCRIPTEXTENSIONS__INSCRIPTIONALPARTHIAN   PL_PRTI
+#define PL_SCRIPTEXTENSIONS__ITAL   PL_ITAL
+#define PL_SCRIPTEXTENSIONS__JAVA   PL_JAVA
+#define PL_SCRIPTEXTENSIONS__JAVANESE   PL_JAVA
+#define PL_SCRIPTEXTENSIONS__KAITHI   PL_KTHI
+#define PL_SCRIPTEXTENSIONS__KALI   PL_KALI
+#define PL_SCRIPTEXTENSIONS__KANA   PL_KANA
+#define PL_SCRIPTEXTENSIONS__KANNADA   PL_KNDA
+#define PL_SCRIPTEXTENSIONS__KATAKANA   PL_KANA
+#define PL_SCRIPTEXTENSIONS__KAYAHLI   PL_KALI
+#define PL_SCRIPTEXTENSIONS__KHAR   PL_KHAR
+#define PL_SCRIPTEXTENSIONS__KHAROSHTHI   PL_KHAR
+#define PL_SCRIPTEXTENSIONS__KHMER   PL_KHMR
+#define PL_SCRIPTEXTENSIONS__KHMR   PL_KHMR
+#define PL_SCRIPTEXTENSIONS__KHOJ   PL_KHOJ
+#define PL_SCRIPTEXTENSIONS__KHOJKI   PL_KHOJ
+#define PL_SCRIPTEXTENSIONS__KHUDAWADI   PL_SIND
+#define PL_SCRIPTEXTENSIONS__KNDA   PL_KNDA
+#define PL_SCRIPTEXTENSIONS__KTHI   PL_KTHI
+#define PL_SCRIPTEXTENSIONS__LANA   PL_LANA
+#define PL_SCRIPTEXTENSIONS__LAO   PL_LAO
+#define PL_SCRIPTEXTENSIONS__LAOO   PL_LAO
+#define PL_SCRIPTEXTENSIONS__LATIN   PL_LATN
+#define PL_SCRIPTEXTENSIONS__LATN   PL_LATN
+#define PL_SCRIPTEXTENSIONS__LEPC   PL_LEPC
+#define PL_SCRIPTEXTENSIONS__LEPCHA   PL_LEPC
+#define PL_SCRIPTEXTENSIONS__LIMB   PL_LIMB
+#define PL_SCRIPTEXTENSIONS__LIMBU   PL_LIMB
+#define PL_SCRIPTEXTENSIONS__LINA   PL_LINA
+#define PL_SCRIPTEXTENSIONS__LINB   PL_LINB
+#define PL_SCRIPTEXTENSIONS__LINEARA   PL_LINA
+#define PL_SCRIPTEXTENSIONS__LINEARB   PL_LINB
+#define PL_SCRIPTEXTENSIONS__LISU   PL_LISU
+#define PL_SCRIPTEXTENSIONS__LYCI   PL_LYCI
+#define PL_SCRIPTEXTENSIONS__LYCIAN   PL_LYCI
+#define PL_SCRIPTEXTENSIONS__LYDI   PL_LYDI
+#define PL_SCRIPTEXTENSIONS__LYDIAN   PL_LYDI
+#define PL_SCRIPTEXTENSIONS__MAHAJANI   PL_MAHJ
+#define PL_SCRIPTEXTENSIONS__MAHJ   PL_MAHJ
+#define PL_SCRIPTEXTENSIONS__MALAYALAM   PL_MLYM
+#define PL_SCRIPTEXTENSIONS__MAND   PL_MAND
+#define PL_SCRIPTEXTENSIONS__MANDAIC   PL_MAND
+#define PL_SCRIPTEXTENSIONS__MANI   PL_MANI
+#define PL_SCRIPTEXTENSIONS__MANICHAEAN   PL_MANI
+#define PL_SCRIPTEXTENSIONS__MARC   PL_MARC
+#define PL_SCRIPTEXTENSIONS__MARCHEN   PL_MARC
+#define PL_SCRIPTEXTENSIONS__MASARAMGONDI   PL_GONM
+#define PL_SCRIPTEXTENSIONS__MEETEIMAYEK   PL_MTEI
+#define PL_SCRIPTEXTENSIONS__MEND   PL_MEND
+#define PL_SCRIPTEXTENSIONS__MENDEKIKAKUI   PL_MEND
+#define PL_SCRIPTEXTENSIONS__MERC   PL_MERC
+#define PL_SCRIPTEXTENSIONS__MERO   PL_MERO
+#define PL_SCRIPTEXTENSIONS__MEROITICCURSIVE   PL_MERC
+#define PL_SCRIPTEXTENSIONS__MEROITICHIEROGLYPHS   PL_MERO
+#define PL_SCRIPTEXTENSIONS__MIAO   PL_MIAO
+#define PL_SCRIPTEXTENSIONS__MLYM   PL_MLYM
+#define PL_SCRIPTEXTENSIONS__MODI   PL_MODI
+#define PL_SCRIPTEXTENSIONS__MONG   PL_MONG
+#define PL_SCRIPTEXTENSIONS__MONGOLIAN   PL_MONG
+#define PL_SCRIPTEXTENSIONS__MRO   PL_MRO
+#define PL_SCRIPTEXTENSIONS__MROO   PL_MRO
+#define PL_SCRIPTEXTENSIONS__MTEI   PL_MTEI
+#define PL_SCRIPTEXTENSIONS__MULT   PL_MULT
+#define PL_SCRIPTEXTENSIONS__MULTANI   PL_MULT
+#define PL_SCRIPTEXTENSIONS__MYANMAR   PL_MYMR
+#define PL_SCRIPTEXTENSIONS__MYMR   PL_MYMR
+#define PL_SCRIPTEXTENSIONS__NABATAEAN   PL_NBAT
+#define PL_SCRIPTEXTENSIONS__NARB   PL_NARB
+#define PL_SCRIPTEXTENSIONS__NBAT   PL_NBAT
+#define PL_SCRIPTEXTENSIONS__NEWA   PL_NEWA
+#define PL_SCRIPTEXTENSIONS__NEWTAILUE   PL_TALU
+#define PL_SCRIPTEXTENSIONS__NKO   PL_NKO
+#define PL_SCRIPTEXTENSIONS__NKOO   PL_NKO
+#define PL_SCRIPTEXTENSIONS__NSHU   PL_NSHU
+#define PL_SCRIPTEXTENSIONS__NUSHU   PL_NSHU
+#define PL_SCRIPTEXTENSIONS__OGAM   PL_OGAM
+#define PL_SCRIPTEXTENSIONS__OGHAM   PL_OGAM
+#define PL_SCRIPTEXTENSIONS__OLCHIKI   PL_OLCK
+#define PL_SCRIPTEXTENSIONS__OLCK   PL_OLCK
+#define PL_SCRIPTEXTENSIONS__OLDHUNGARIAN   PL_HUNG
+#define PL_SCRIPTEXTENSIONS__OLDITALIC   PL_ITAL
+#define PL_SCRIPTEXTENSIONS__OLDNORTHARABIAN   PL_NARB
+#define PL_SCRIPTEXTENSIONS__OLDPERMIC   PL_PERM
+#define PL_SCRIPTEXTENSIONS__OLDPERSIAN   PL_XPEO
+#define PL_SCRIPTEXTENSIONS__OLDSOUTHARABIAN   PL_SARB
+#define PL_SCRIPTEXTENSIONS__OLDTURKIC   PL_ORKH
+#define PL_SCRIPTEXTENSIONS__ORIYA   PL_ORYA
+#define PL_SCRIPTEXTENSIONS__ORKH   PL_ORKH
+#define PL_SCRIPTEXTENSIONS__ORYA   PL_ORYA
+#define PL_SCRIPTEXTENSIONS__OSAGE   PL_OSGE
+#define PL_SCRIPTEXTENSIONS__OSGE   PL_OSGE
+#define PL_SCRIPTEXTENSIONS__OSMA   PL_OSMA
+#define PL_SCRIPTEXTENSIONS__OSMANYA   PL_OSMA
+#define PL_SCRIPTEXTENSIONS__PAHAWHHMONG   PL_HMNG
+#define PL_SCRIPTEXTENSIONS__PALM   PL_PALM
+#define PL_SCRIPTEXTENSIONS__PALMYRENE   PL_PALM
+#define PL_SCRIPTEXTENSIONS__PAUC   PL_PAUC
+#define PL_SCRIPTEXTENSIONS__PAUCINHAU   PL_PAUC
+#define PL_SCRIPTEXTENSIONS__PERM   PL_PERM
+#define PL_SCRIPTEXTENSIONS__PHAG   PL_PHAG
+#define PL_SCRIPTEXTENSIONS__PHAGSPA   PL_PHAG
+#define PL_SCRIPTEXTENSIONS__PHLI   PL_PHLI
+#define PL_SCRIPTEXTENSIONS__PHLP   PL_PHLP
+#define PL_SCRIPTEXTENSIONS__PHNX   PL_PHNX
+#define PL_SCRIPTEXTENSIONS__PHOENICIAN   PL_PHNX
+#define PL_SCRIPTEXTENSIONS__PLRD   PL_MIAO
+#define PL_SCRIPTEXTENSIONS__PRTI   PL_PRTI
+#define PL_SCRIPTEXTENSIONS__PSALTERPAHLAVI   PL_PHLP
+#define PL_SCRIPTEXTENSIONS__QAAC   PL_COPT
+#define PL_SCRIPTEXTENSIONS__QAAI   PL_QAAI
+#define PL_SCRIPTEXTENSIONS__REJANG   PL_RJNG
+#define PL_SCRIPTEXTENSIONS__RJNG   PL_RJNG
+#define PL_SCRIPTEXTENSIONS__RUNIC   PL_RUNR
+#define PL_SCRIPTEXTENSIONS__RUNR   PL_RUNR
+#define PL_SCRIPTEXTENSIONS__SAMARITAN   PL_SAMR
+#define PL_SCRIPTEXTENSIONS__SAMR   PL_SAMR
+#define PL_SCRIPTEXTENSIONS__SARB   PL_SARB
+#define PL_SCRIPTEXTENSIONS__SAUR   PL_SAUR
+#define PL_SCRIPTEXTENSIONS__SAURASHTRA   PL_SAUR
+#define PL_SCRIPTEXTENSIONS__SGNW   PL_SGNW
+#define PL_SCRIPTEXTENSIONS__SHARADA   PL_SHRD
+#define PL_SCRIPTEXTENSIONS__SHAVIAN   PL_SHAW
+#define PL_SCRIPTEXTENSIONS__SHAW   PL_SHAW
+#define PL_SCRIPTEXTENSIONS__SHRD   PL_SHRD
+#define PL_SCRIPTEXTENSIONS__SIDD   PL_SIDD
+#define PL_SCRIPTEXTENSIONS__SIDDHAM   PL_SIDD
+#define PL_SCRIPTEXTENSIONS__SIGNWRITING   PL_SGNW
+#define PL_SCRIPTEXTENSIONS__SIND   PL_SIND
+#define PL_SCRIPTEXTENSIONS__SINH   PL_SINH
+#define PL_SCRIPTEXTENSIONS__SINHALA   PL_SINH
+#define PL_SCRIPTEXTENSIONS__SORA   PL_SORA
+#define PL_SCRIPTEXTENSIONS__SORASOMPENG   PL_SORA
+#define PL_SCRIPTEXTENSIONS__SOYO   PL_SOYO
+#define PL_SCRIPTEXTENSIONS__SOYOMBO   PL_SOYO
+#define PL_SCRIPTEXTENSIONS__SUND   PL_SUND
+#define PL_SCRIPTEXTENSIONS__SUNDANESE   PL_SUND
+#define PL_SCRIPTEXTENSIONS__SYLO   PL_SYLO
+#define PL_SCRIPTEXTENSIONS__SYLOTINAGRI   PL_SYLO
+#define PL_SCRIPTEXTENSIONS__SYRC   PL_SYRC
+#define PL_SCRIPTEXTENSIONS__SYRIAC   PL_SYRC
+#define PL_SCRIPTEXTENSIONS__TAGALOG   PL_TGLG
+#define PL_SCRIPTEXTENSIONS__TAGB   PL_TAGB
+#define PL_SCRIPTEXTENSIONS__TAGBANWA   PL_TAGB
+#define PL_SCRIPTEXTENSIONS__TAILE   PL_TALE
+#define PL_SCRIPTEXTENSIONS__TAITHAM   PL_LANA
+#define PL_SCRIPTEXTENSIONS__TAIVIET   PL_TAVT
+#define PL_SCRIPTEXTENSIONS__TAKR   PL_TAKR
+#define PL_SCRIPTEXTENSIONS__TAKRI   PL_TAKR
+#define PL_SCRIPTEXTENSIONS__TALE   PL_TALE
+#define PL_SCRIPTEXTENSIONS__TALU   PL_TALU
+#define PL_SCRIPTEXTENSIONS__TAMIL   PL_TAML
+#define PL_SCRIPTEXTENSIONS__TAML   PL_TAML
+#define PL_SCRIPTEXTENSIONS__TANG   PL_TANG
+#define PL_SCRIPTEXTENSIONS__TANGUT   PL_TANG
+#define PL_SCRIPTEXTENSIONS__TAVT   PL_TAVT
+#define PL_SCRIPTEXTENSIONS__TELU   PL_TELU
+#define PL_SCRIPTEXTENSIONS__TELUGU   PL_TELU
+#define PL_SCRIPTEXTENSIONS__TFNG   PL_TFNG
+#define PL_SCRIPTEXTENSIONS__TGLG   PL_TGLG
+#define PL_SCRIPTEXTENSIONS__THAA   PL_THAA
+#define PL_SCRIPTEXTENSIONS__THAANA   PL_THAA
+#define PL_SCRIPTEXTENSIONS__THAI   PL_THAI
+#define PL_SCRIPTEXTENSIONS__TIBETAN   PL_TIBT
+#define PL_SCRIPTEXTENSIONS__TIBT   PL_TIBT
+#define PL_SCRIPTEXTENSIONS__TIFINAGH   PL_TFNG
+#define PL_SCRIPTEXTENSIONS__TIRH   PL_TIRH
+#define PL_SCRIPTEXTENSIONS__TIRHUTA   PL_TIRH
+#define PL_SCRIPTEXTENSIONS__UGAR   PL_UGAR
+#define PL_SCRIPTEXTENSIONS__UGARITIC   PL_UGAR
+#define PL_SCRIPTEXTENSIONS__UNKNOWN   PL_ZZZZ
+#define PL_SCRIPTEXTENSIONS__VAI   PL_VAI
+#define PL_SCRIPTEXTENSIONS__VAII   PL_VAI
+#define PL_SCRIPTEXTENSIONS__WARA   PL_WARA
+#define PL_SCRIPTEXTENSIONS__WARANGCITI   PL_WARA
+#define PL_SCRIPTEXTENSIONS__XPEO   PL_XPEO
+#define PL_SCRIPTEXTENSIONS__XSUX   PL_XSUX
+#define PL_SCRIPTEXTENSIONS__YI   PL_YI
+#define PL_SCRIPTEXTENSIONS__YIII   PL_YI
+#define PL_SCRIPTEXTENSIONS__ZANABAZARSQUARE   PL_ZANB
+#define PL_SCRIPTEXTENSIONS__ZANB   PL_ZANB
+#define PL_SCRIPTEXTENSIONS__ZINH   PL_QAAI
+#define PL_SCRIPTEXTENSIONS__ZYYY   PL_ZYYY
+#define PL_SCRIPTEXTENSIONS__ZZZZ   PL_ZZZZ
+#define PL_SCRIPT__ADLAM   PL_SC__ADLM
+#define PL_SCRIPT__ADLM   PL_SC__ADLM
+#define PL_SCRIPT__AGHB   PL_AGHB
+#define PL_SCRIPT__AHOM   PL_AHOM
+#define PL_SCRIPT__ANATOLIANHIEROGLYPHS   PL_HLUW
+#define PL_SCRIPT__ARAB   PL_SC__ARAB
+#define PL_SCRIPT__ARABIC   PL_SC__ARAB
+#define PL_SCRIPT__ARMENIAN   PL_SC__ARMN
+#define PL_SCRIPT__ARMI   PL_ARMI
+#define PL_SCRIPT__ARMN   PL_SC__ARMN
+#define PL_SCRIPT__AVESTAN   PL_AVST
+#define PL_SCRIPT__AVST   PL_AVST
+#define PL_SCRIPT__BALI   PL_BALI
+#define PL_SCRIPT__BALINESE   PL_BALI
+#define PL_SCRIPT__BAMU   PL_BAMU
+#define PL_SCRIPT__BAMUM   PL_BAMU
+#define PL_SCRIPT__BASS   PL_BASS
+#define PL_SCRIPT__BASSAVAH   PL_BASS
+#define PL_SCRIPT__BATAK   PL_BATK
+#define PL_SCRIPT__BATK   PL_BATK
+#define PL_SCRIPT__BENG   PL_SC__BENG
+#define PL_SCRIPT__BENGALI   PL_SC__BENG
+#define PL_SCRIPT__BHAIKSUKI   PL_BHKS
+#define PL_SCRIPT__BHKS   PL_BHKS
+#define PL_SCRIPT__BOPO   PL_SC__BOPO
+#define PL_SCRIPT__BOPOMOFO   PL_SC__BOPO
+#define PL_SCRIPT__BRAH   PL_BRAH
+#define PL_SCRIPT__BRAHMI   PL_BRAH
+#define PL_SCRIPT__BRAI   PL_BRAI
+#define PL_SCRIPT__BRAILLE   PL_BRAI
+#define PL_SCRIPT__BUGI   PL_SC__BUGI
+#define PL_SCRIPT__BUGINESE   PL_SC__BUGI
+#define PL_SCRIPT__BUHD   PL_SC__BUHD
+#define PL_SCRIPT__BUHID   PL_SC__BUHD
+#define PL_SCRIPT__CAKM   PL_SC__CAKM
+#define PL_SCRIPT__CANADIANABORIGINAL   PL_CANS
+#define PL_SCRIPT__CANS   PL_CANS
+#define PL_SCRIPT__CARI   PL_CARI
+#define PL_SCRIPT__CARIAN   PL_CARI
+#define PL_SCRIPT__CAUCASIANALBANIAN   PL_AGHB
+#define PL_SCRIPT__CHAKMA   PL_SC__CAKM
+#define PL_SCRIPT__CHAM   PL_CHAM
+#define PL_SCRIPT__CHER   PL_CHER
+#define PL_SCRIPT__CHEROKEE   PL_CHER
+#define PL_SCRIPT__COMMON   PL_SC__ZYYY
+#define PL_SCRIPT__COPT   PL_SC__COPT
+#define PL_SCRIPT__COPTIC   PL_SC__COPT
+#define PL_SCRIPT__CPRT   PL_SC__CPRT
+#define PL_SCRIPT__CUNEIFORM   PL_XSUX
+#define PL_SCRIPT__CYPRIOT   PL_SC__CPRT
+#define PL_SCRIPT__CYRILLIC   PL_SC__CYRL
+#define PL_SCRIPT__CYRL   PL_SC__CYRL
+#define PL_SCRIPT__DESERET   PL_DSRT
+#define PL_SCRIPT__DEVA   PL_SC__DEVA
+#define PL_SCRIPT__DEVANAGARI   PL_SC__DEVA
+#define PL_SCRIPT__DSRT   PL_DSRT
+#define PL_SCRIPT__DUPL   PL_SC__DUPL
+#define PL_SCRIPT__DUPLOYAN   PL_SC__DUPL
+#define PL_SCRIPT__EGYP   PL_EGYP
+#define PL_SCRIPT__EGYPTIANHIEROGLYPHS   PL_EGYP
+#define PL_SCRIPT__ELBA   PL_ELBA
+#define PL_SCRIPT__ELBASAN   PL_ELBA
+#define PL_SCRIPT__ETHI   PL_ETHI
+#define PL_SCRIPT__ETHIOPIC   PL_ETHI
+#define PL_SCRIPT__GEOR   PL_SC__GEOR
+#define PL_SCRIPT__GEORGIAN   PL_SC__GEOR
+#define PL_SCRIPT__GLAG   PL_SC__GLAG
+#define PL_SCRIPT__GLAGOLITIC   PL_SC__GLAG
+#define PL_SCRIPT__GONM   PL_GONM
+#define PL_SCRIPT__GOTH   PL_GOTH
+#define PL_SCRIPT__GOTHIC   PL_GOTH
+#define PL_SCRIPT__GRAN   PL_SC__GRAN
+#define PL_SCRIPT__GRANTHA   PL_SC__GRAN
+#define PL_SCRIPT__GREEK   PL_SC__GREK
+#define PL_SCRIPT__GREK   PL_SC__GREK
+#define PL_SCRIPT__GUJARATI   PL_SC__GUJR
+#define PL_SCRIPT__GUJR   PL_SC__GUJR
+#define PL_SCRIPT__GURMUKHI   PL_SC__GURU
+#define PL_SCRIPT__GURU   PL_SC__GURU
+#define PL_SCRIPT__HAN   PL_SC__HAN
+#define PL_SCRIPT__HANG   PL_SC__HANG
+#define PL_SCRIPT__HANGUL   PL_SC__HANG
+#define PL_SCRIPT__HANI   PL_SC__HAN
+#define PL_SCRIPT__HANO   PL_SC__HANO
+#define PL_SCRIPT__HANUNOO   PL_SC__HANO
+#define PL_SCRIPT__HATR   PL_HATR
+#define PL_SCRIPT__HATRAN   PL_HATR
+#define PL_SCRIPT__HEBR   PL_HEBR
+#define PL_SCRIPT__HEBREW   PL_HEBR
+#define PL_SCRIPT__HIRA   PL_SC__HIRA
+#define PL_SCRIPT__HIRAGANA   PL_SC__HIRA
+#define PL_SCRIPT__HLUW   PL_HLUW
+#define PL_SCRIPT__HMNG   PL_HMNG
+#define PL_SCRIPT__HUNG   PL_HUNG
+#define PL_SCRIPT__IMPERIALARAMAIC   PL_ARMI
+#define PL_SCRIPT__INHERITED   PL_SC__QAAI
+#define PL_SCRIPT__INSCRIPTIONALPAHLAVI   PL_PHLI
+#define PL_SCRIPT__INSCRIPTIONALPARTHIAN   PL_PRTI
+#define PL_SCRIPT__ITAL   PL_ITAL
+#define PL_SCRIPT__JAVA   PL_SC__JAVA
+#define PL_SCRIPT__JAVANESE   PL_SC__JAVA
+#define PL_SCRIPT__KAITHI   PL_SC__KTHI
+#define PL_SCRIPT__KALI   PL_SC__KALI
+#define PL_SCRIPT__KANA   PL_SC__KANA
+#define PL_SCRIPT__KANNADA   PL_SC__KNDA
+#define PL_SCRIPT__KATAKANA   PL_SC__KANA
+#define PL_SCRIPT__KAYAHLI   PL_SC__KALI
+#define PL_SCRIPT__KHAR   PL_KHAR
+#define PL_SCRIPT__KHAROSHTHI   PL_KHAR
+#define PL_SCRIPT__KHMER   PL_KHMR
+#define PL_SCRIPT__KHMR   PL_KHMR
+#define PL_SCRIPT__KHOJ   PL_SC__KHOJ
+#define PL_SCRIPT__KHOJKI   PL_SC__KHOJ
+#define PL_SCRIPT__KHUDAWADI   PL_SC__SIND
+#define PL_SCRIPT__KNDA   PL_SC__KNDA
+#define PL_SCRIPT__KTHI   PL_SC__KTHI
+#define PL_SCRIPT__LANA   PL_LANA
+#define PL_SCRIPT__LAO   PL_LAO
+#define PL_SCRIPT__LAOO   PL_LAO
+#define PL_SCRIPT__LATIN   PL_SC__LATN
+#define PL_SCRIPT__LATN   PL_SC__LATN
+#define PL_SCRIPT__LEPC   PL_LEPC
+#define PL_SCRIPT__LEPCHA   PL_LEPC
+#define PL_SCRIPT__LIMB   PL_SC__LIMB
+#define PL_SCRIPT__LIMBU   PL_SC__LIMB
+#define PL_SCRIPT__LINA   PL_SC__LINA
+#define PL_SCRIPT__LINB   PL_SC__LINB
+#define PL_SCRIPT__LINEARA   PL_SC__LINA
+#define PL_SCRIPT__LINEARB   PL_SC__LINB
+#define PL_SCRIPT__LISU   PL_LISU
+#define PL_SCRIPT__LYCI   PL_LYCI
+#define PL_SCRIPT__LYCIAN   PL_LYCI
+#define PL_SCRIPT__LYDI   PL_LYDI
+#define PL_SCRIPT__LYDIAN   PL_LYDI
+#define PL_SCRIPT__MAHAJANI   PL_SC__MAHJ
+#define PL_SCRIPT__MAHJ   PL_SC__MAHJ
+#define PL_SCRIPT__MALAYALAM   PL_SC__MLYM
+#define PL_SCRIPT__MAND   PL_SC__MAND
+#define PL_SCRIPT__MANDAIC   PL_SC__MAND
+#define PL_SCRIPT__MANI   PL_SC__MANI
+#define PL_SCRIPT__MANICHAEAN   PL_SC__MANI
+#define PL_SCRIPT__MARC   PL_MARC
+#define PL_SCRIPT__MARCHEN   PL_MARC
+#define PL_SCRIPT__MASARAMGONDI   PL_GONM
+#define PL_SCRIPT__MEETEIMAYEK   PL_MTEI
+#define PL_SCRIPT__MEND   PL_MEND
+#define PL_SCRIPT__MENDEKIKAKUI   PL_MEND
+#define PL_SCRIPT__MERC   PL_MERC
+#define PL_SCRIPT__MERO   PL_MERO
+#define PL_SCRIPT__MEROITICCURSIVE   PL_MERC
+#define PL_SCRIPT__MEROITICHIEROGLYPHS   PL_MERO
+#define PL_SCRIPT__MIAO   PL_MIAO
+#define PL_SCRIPT__MLYM   PL_SC__MLYM
+#define PL_SCRIPT__MODI   PL_SC__MODI
+#define PL_SCRIPT__MONG   PL_SC__MONG
+#define PL_SCRIPT__MONGOLIAN   PL_SC__MONG
+#define PL_SCRIPT__MRO   PL_MRO
+#define PL_SCRIPT__MROO   PL_MRO
+#define PL_SCRIPT__MTEI   PL_MTEI
+#define PL_SCRIPT__MULT   PL_SC__MULT
+#define PL_SCRIPT__MULTANI   PL_SC__MULT
+#define PL_SCRIPT__MYANMAR   PL_SC__MYMR
+#define PL_SCRIPT__MYMR   PL_SC__MYMR
+#define PL_SCRIPT__NABATAEAN   PL_NBAT
+#define PL_SCRIPT__NARB   PL_NARB
+#define PL_SCRIPT__NBAT   PL_NBAT
+#define PL_SCRIPT__NEWA   PL_NEWA
+#define PL_SCRIPT__NEWTAILUE   PL_TALU
+#define PL_SCRIPT__NKO   PL_NKO
+#define PL_SCRIPT__NKOO   PL_NKO
+#define PL_SCRIPT__NSHU   PL_NSHU
+#define PL_SCRIPT__NUSHU   PL_NSHU
+#define PL_SCRIPT__OGAM   PL_OGAM
+#define PL_SCRIPT__OGHAM   PL_OGAM
+#define PL_SCRIPT__OLCHIKI   PL_OLCK
+#define PL_SCRIPT__OLCK   PL_OLCK
+#define PL_SCRIPT__OLDHUNGARIAN   PL_HUNG
+#define PL_SCRIPT__OLDITALIC   PL_ITAL
+#define PL_SCRIPT__OLDNORTHARABIAN   PL_NARB
+#define PL_SCRIPT__OLDPERMIC   PL_SC__PERM
+#define PL_SCRIPT__OLDPERSIAN   PL_XPEO
+#define PL_SCRIPT__OLDSOUTHARABIAN   PL_SARB
+#define PL_SCRIPT__OLDTURKIC   PL_ORKH
+#define PL_SCRIPT__ORIYA   PL_SC__ORYA
+#define PL_SCRIPT__ORKH   PL_ORKH
+#define PL_SCRIPT__ORYA   PL_SC__ORYA
+#define PL_SCRIPT__OSAGE   PL_OSGE
+#define PL_SCRIPT__OSGE   PL_OSGE
+#define PL_SCRIPT__OSMA   PL_OSMA
+#define PL_SCRIPT__OSMANYA   PL_OSMA
+#define PL_SCRIPT__PAHAWHHMONG   PL_HMNG
+#define PL_SCRIPT__PALM   PL_PALM
+#define PL_SCRIPT__PALMYRENE   PL_PALM
+#define PL_SCRIPT__PAUC   PL_PAUC
+#define PL_SCRIPT__PAUCINHAU   PL_PAUC
+#define PL_SCRIPT__PERM   PL_SC__PERM
+#define PL_SCRIPT__PHAG   PL_SC__PHAG
+#define PL_SCRIPT__PHAGSPA   PL_SC__PHAG
+#define PL_SCRIPT__PHLI   PL_PHLI
+#define PL_SCRIPT__PHLP   PL_SC__PHLP
+#define PL_SCRIPT__PHNX   PL_PHNX
+#define PL_SCRIPT__PHOENICIAN   PL_PHNX
+#define PL_SCRIPT__PLRD   PL_MIAO
+#define PL_SCRIPT__PRTI   PL_PRTI
+#define PL_SCRIPT__PSALTERPAHLAVI   PL_SC__PHLP
+#define PL_SCRIPT__QAAC   PL_SC__COPT
+#define PL_SCRIPT__QAAI   PL_SC__QAAI
+#define PL_SCRIPT__REJANG   PL_RJNG
+#define PL_SCRIPT__RJNG   PL_RJNG
+#define PL_SCRIPT__RUNIC   PL_RUNR
+#define PL_SCRIPT__RUNR   PL_RUNR
+#define PL_SCRIPT__SAMARITAN   PL_SAMR
+#define PL_SCRIPT__SAMR   PL_SAMR
+#define PL_SCRIPT__SARB   PL_SARB
+#define PL_SCRIPT__SAUR   PL_SAUR
+#define PL_SCRIPT__SAURASHTRA   PL_SAUR
+#define PL_SCRIPT__SGNW   PL_SGNW
+#define PL_SCRIPT__SHARADA   PL_SC__SHRD
+#define PL_SCRIPT__SHAVIAN   PL_SHAW
+#define PL_SCRIPT__SHAW   PL_SHAW
+#define PL_SCRIPT__SHRD   PL_SC__SHRD
+#define PL_SCRIPT__SIDD   PL_SIDD
+#define PL_SCRIPT__SIDDHAM   PL_SIDD
+#define PL_SCRIPT__SIGNWRITING   PL_SGNW
+#define PL_SCRIPT__SIND   PL_SC__SIND
+#define PL_SCRIPT__SINH   PL_SC__SINH
+#define PL_SCRIPT__SINHALA   PL_SC__SINH
+#define PL_SCRIPT__SORA   PL_SORA
+#define PL_SCRIPT__SORASOMPENG   PL_SORA
+#define PL_SCRIPT__SOYO   PL_SOYO
+#define PL_SCRIPT__SOYOMBO   PL_SOYO
+#define PL_SCRIPT__SUND   PL_SUND
+#define PL_SCRIPT__SUNDANESE   PL_SUND
+#define PL_SCRIPT__SYLO   PL_SC__SYLO
+#define PL_SCRIPT__SYLOTINAGRI   PL_SC__SYLO
+#define PL_SCRIPT__SYRC   PL_SC__SYRC
+#define PL_SCRIPT__SYRIAC   PL_SC__SYRC
+#define PL_SCRIPT__TAGALOG   PL_SC__TGLG
+#define PL_SCRIPT__TAGB   PL_SC__TAGB
+#define PL_SCRIPT__TAGBANWA   PL_SC__TAGB
+#define PL_SCRIPT__TAILE   PL_SC__TALE
+#define PL_SCRIPT__TAITHAM   PL_LANA
+#define PL_SCRIPT__TAIVIET   PL_TAVT
+#define PL_SCRIPT__TAKR   PL_SC__TAKR
+#define PL_SCRIPT__TAKRI   PL_SC__TAKR
+#define PL_SCRIPT__TALE   PL_SC__TALE
+#define PL_SCRIPT__TALU   PL_TALU
+#define PL_SCRIPT__TAMIL   PL_SC__TAML
+#define PL_SCRIPT__TAML   PL_SC__TAML
+#define PL_SCRIPT__TANG   PL_TANG
+#define PL_SCRIPT__TANGUT   PL_TANG
+#define PL_SCRIPT__TAVT   PL_TAVT
+#define PL_SCRIPT__TELU   PL_SC__TELU
+#define PL_SCRIPT__TELUGU   PL_SC__TELU
+#define PL_SCRIPT__TFNG   PL_TFNG
+#define PL_SCRIPT__TGLG   PL_SC__TGLG
+#define PL_SCRIPT__THAA   PL_SC__THAA
+#define PL_SCRIPT__THAANA   PL_SC__THAA
+#define PL_SCRIPT__THAI   PL_THAI
+#define PL_SCRIPT__TIBETAN   PL_TIBT
+#define PL_SCRIPT__TIBT   PL_TIBT
+#define PL_SCRIPT__TIFINAGH   PL_TFNG
+#define PL_SCRIPT__TIRH   PL_SC__TIRH
+#define PL_SCRIPT__TIRHUTA   PL_SC__TIRH
+#define PL_SCRIPT__UGAR   PL_UGAR
+#define PL_SCRIPT__UGARITIC   PL_UGAR
+#define PL_SCRIPT__UNKNOWN   PL_ZZZZ
+#define PL_SCRIPT__VAI   PL_VAI
+#define PL_SCRIPT__VAII   PL_VAI
+#define PL_SCRIPT__WARA   PL_WARA
+#define PL_SCRIPT__WARANGCITI   PL_WARA
+#define PL_SCRIPT__XPEO   PL_XPEO
+#define PL_SCRIPT__XSUX   PL_XSUX
+#define PL_SCRIPT__YI   PL_SC__YI
+#define PL_SCRIPT__YIII   PL_SC__YI
+#define PL_SCRIPT__ZANABAZARSQUARE   PL_ZANB
+#define PL_SCRIPT__ZANB   PL_ZANB
+#define PL_SCRIPT__ZINH   PL_SC__QAAI
+#define PL_SCRIPT__ZYYY   PL_SC__ZYYY
+#define PL_SCRIPT__ZZZZ   PL_ZZZZ
+#define PL_SCX__ADLAM   PL_ADLM
+#define PL_SCX__ADLM   PL_ADLM
+#define PL_SCX__AGHB   PL_AGHB
+#define PL_SCX__AHOM   PL_AHOM
+#define PL_SCX__ANATOLIANHIEROGLYPHS   PL_HLUW
+#define PL_SCX__ARAB   PL_ARAB
+#define PL_SCX__ARABIC   PL_ARAB
+#define PL_SCX__ARMENIAN   PL_ARMN
+#define PL_SCX__ARMI   PL_ARMI
+#define PL_SCX__ARMN   PL_ARMN
+#define PL_SCX__AVESTAN   PL_AVST
+#define PL_SCX__AVST   PL_AVST
+#define PL_SCX__BALI   PL_BALI
+#define PL_SCX__BALINESE   PL_BALI
+#define PL_SCX__BAMU   PL_BAMU
+#define PL_SCX__BAMUM   PL_BAMU
+#define PL_SCX__BASS   PL_BASS
+#define PL_SCX__BASSAVAH   PL_BASS
+#define PL_SCX__BATAK   PL_BATK
+#define PL_SCX__BATK   PL_BATK
+#define PL_SCX__BENG   PL_BENG
+#define PL_SCX__BENGALI   PL_BENG
+#define PL_SCX__BHAIKSUKI   PL_BHKS
+#define PL_SCX__BHKS   PL_BHKS
+#define PL_SCX__BOPO   PL_BOPO
+#define PL_SCX__BOPOMOFO   PL_BOPO
+#define PL_SCX__BRAH   PL_BRAH
+#define PL_SCX__BRAHMI   PL_BRAH
+#define PL_SCX__BRAI   PL_BRAI
+#define PL_SCX__BRAILLE   PL_BRAI
+#define PL_SCX__BUGI   PL_BUGI
+#define PL_SCX__BUGINESE   PL_BUGI
+#define PL_SCX__BUHD   PL_BUHD
+#define PL_SCX__BUHID   PL_BUHD
+#define PL_SCX__CAKM   PL_CAKM
+#define PL_SCX__CANADIANABORIGINAL   PL_CANS
+#define PL_SCX__CANS   PL_CANS
+#define PL_SCX__CARI   PL_CARI
+#define PL_SCX__CARIAN   PL_CARI
+#define PL_SCX__CAUCASIANALBANIAN   PL_AGHB
+#define PL_SCX__CHAKMA   PL_CAKM
+#define PL_SCX__CHAM   PL_CHAM
+#define PL_SCX__CHER   PL_CHER
+#define PL_SCX__CHEROKEE   PL_CHER
+#define PL_SCX__COMMON   PL_ZYYY
+#define PL_SCX__COPT   PL_COPT
+#define PL_SCX__COPTIC   PL_COPT
+#define PL_SCX__CPRT   PL_CPRT
+#define PL_SCX__CUNEIFORM   PL_XSUX
+#define PL_SCX__CYPRIOT   PL_CPRT
+#define PL_SCX__CYRILLIC   PL_CYRL
+#define PL_SCX__CYRL   PL_CYRL
+#define PL_SCX__DESERET   PL_DSRT
+#define PL_SCX__DEVA   PL_DEVA
+#define PL_SCX__DEVANAGARI   PL_DEVA
+#define PL_SCX__DSRT   PL_DSRT
+#define PL_SCX__DUPL   PL_DUPL
+#define PL_SCX__DUPLOYAN   PL_DUPL
+#define PL_SCX__EGYP   PL_EGYP
+#define PL_SCX__EGYPTIANHIEROGLYPHS   PL_EGYP
+#define PL_SCX__ELBA   PL_ELBA
+#define PL_SCX__ELBASAN   PL_ELBA
+#define PL_SCX__ETHI   PL_ETHI
+#define PL_SCX__ETHIOPIC   PL_ETHI
+#define PL_SCX__GEOR   PL_GEOR
+#define PL_SCX__GEORGIAN   PL_GEOR
+#define PL_SCX__GLAG   PL_GLAG
+#define PL_SCX__GLAGOLITIC   PL_GLAG
+#define PL_SCX__GONM   PL_GONM
+#define PL_SCX__GOTH   PL_GOTH
+#define PL_SCX__GOTHIC   PL_GOTH
+#define PL_SCX__GRAN   PL_GRAN
+#define PL_SCX__GRANTHA   PL_GRAN
+#define PL_SCX__GREEK   PL_GREK
+#define PL_SCX__GREK   PL_GREK
+#define PL_SCX__GUJARATI   PL_GUJR
+#define PL_SCX__GUJR   PL_GUJR
+#define PL_SCX__GURMUKHI   PL_GURU
+#define PL_SCX__GURU   PL_GURU
+#define PL_SCX__HAN   PL_HAN
+#define PL_SCX__HANG   PL_HANG
+#define PL_SCX__HANGUL   PL_HANG
+#define PL_SCX__HANI   PL_HAN
+#define PL_SCX__HANO   PL_HANO
+#define PL_SCX__HANUNOO   PL_HANO
+#define PL_SCX__HATR   PL_HATR
+#define PL_SCX__HATRAN   PL_HATR
+#define PL_SCX__HEBR   PL_HEBR
+#define PL_SCX__HEBREW   PL_HEBR
+#define PL_SCX__HIRA   PL_HIRA
+#define PL_SCX__HIRAGANA   PL_HIRA
+#define PL_SCX__HLUW   PL_HLUW
+#define PL_SCX__HMNG   PL_HMNG
+#define PL_SCX__HUNG   PL_HUNG
+#define PL_SCX__IMPERIALARAMAIC   PL_ARMI
+#define PL_SCX__INHERITED   PL_QAAI
+#define PL_SCX__INSCRIPTIONALPAHLAVI   PL_PHLI
+#define PL_SCX__INSCRIPTIONALPARTHIAN   PL_PRTI
+#define PL_SCX__ITAL   PL_ITAL
+#define PL_SCX__JAVA   PL_JAVA
+#define PL_SCX__JAVANESE   PL_JAVA
+#define PL_SCX__KAITHI   PL_KTHI
+#define PL_SCX__KALI   PL_KALI
+#define PL_SCX__KANA   PL_KANA
+#define PL_SCX__KANNADA   PL_KNDA
+#define PL_SCX__KATAKANA   PL_KANA
+#define PL_SCX__KAYAHLI   PL_KALI
+#define PL_SCX__KHAR   PL_KHAR
+#define PL_SCX__KHAROSHTHI   PL_KHAR
+#define PL_SCX__KHMER   PL_KHMR
+#define PL_SCX__KHMR   PL_KHMR
+#define PL_SCX__KHOJ   PL_KHOJ
+#define PL_SCX__KHOJKI   PL_KHOJ
+#define PL_SCX__KHUDAWADI   PL_SIND
+#define PL_SCX__KNDA   PL_KNDA
+#define PL_SCX__KTHI   PL_KTHI
+#define PL_SCX__LANA   PL_LANA
+#define PL_SCX__LAO   PL_LAO
+#define PL_SCX__LAOO   PL_LAO
+#define PL_SCX__LATIN   PL_LATN
+#define PL_SCX__LATN   PL_LATN
+#define PL_SCX__LEPC   PL_LEPC
+#define PL_SCX__LEPCHA   PL_LEPC
+#define PL_SCX__LIMB   PL_LIMB
+#define PL_SCX__LIMBU   PL_LIMB
+#define PL_SCX__LINA   PL_LINA
+#define PL_SCX__LINB   PL_LINB
+#define PL_SCX__LINEARA   PL_LINA
+#define PL_SCX__LINEARB   PL_LINB
+#define PL_SCX__LISU   PL_LISU
+#define PL_SCX__LYCI   PL_LYCI
+#define PL_SCX__LYCIAN   PL_LYCI
+#define PL_SCX__LYDI   PL_LYDI
+#define PL_SCX__LYDIAN   PL_LYDI
+#define PL_SCX__MAHAJANI   PL_MAHJ
+#define PL_SCX__MAHJ   PL_MAHJ
+#define PL_SCX__MALAYALAM   PL_MLYM
+#define PL_SCX__MAND   PL_MAND
+#define PL_SCX__MANDAIC   PL_MAND
+#define PL_SCX__MANI   PL_MANI
+#define PL_SCX__MANICHAEAN   PL_MANI
+#define PL_SCX__MARC   PL_MARC
+#define PL_SCX__MARCHEN   PL_MARC
+#define PL_SCX__MASARAMGONDI   PL_GONM
+#define PL_SCX__MEETEIMAYEK   PL_MTEI
+#define PL_SCX__MEND   PL_MEND
+#define PL_SCX__MENDEKIKAKUI   PL_MEND
+#define PL_SCX__MERC   PL_MERC
+#define PL_SCX__MERO   PL_MERO
+#define PL_SCX__MEROITICCURSIVE   PL_MERC
+#define PL_SCX__MEROITICHIEROGLYPHS   PL_MERO
+#define PL_SCX__MIAO   PL_MIAO
+#define PL_SCX__MLYM   PL_MLYM
+#define PL_SCX__MODI   PL_MODI
+#define PL_SCX__MONG   PL_MONG
+#define PL_SCX__MONGOLIAN   PL_MONG
+#define PL_SCX__MRO   PL_MRO
+#define PL_SCX__MROO   PL_MRO
+#define PL_SCX__MTEI   PL_MTEI
+#define PL_SCX__MULT   PL_MULT
+#define PL_SCX__MULTANI   PL_MULT
+#define PL_SCX__MYANMAR   PL_MYMR
+#define PL_SCX__MYMR   PL_MYMR
+#define PL_SCX__NABATAEAN   PL_NBAT
+#define PL_SCX__NARB   PL_NARB
+#define PL_SCX__NBAT   PL_NBAT
+#define PL_SCX__NEWA   PL_NEWA
+#define PL_SCX__NEWTAILUE   PL_TALU
+#define PL_SCX__NKO   PL_NKO
+#define PL_SCX__NKOO   PL_NKO
+#define PL_SCX__NSHU   PL_NSHU
+#define PL_SCX__NUSHU   PL_NSHU
+#define PL_SCX__OGAM   PL_OGAM
+#define PL_SCX__OGHAM   PL_OGAM
+#define PL_SCX__OLCHIKI   PL_OLCK
+#define PL_SCX__OLCK   PL_OLCK
+#define PL_SCX__OLDHUNGARIAN   PL_HUNG
+#define PL_SCX__OLDITALIC   PL_ITAL
+#define PL_SCX__OLDNORTHARABIAN   PL_NARB
+#define PL_SCX__OLDPERMIC   PL_PERM
+#define PL_SCX__OLDPERSIAN   PL_XPEO
+#define PL_SCX__OLDSOUTHARABIAN   PL_SARB
+#define PL_SCX__OLDTURKIC   PL_ORKH
+#define PL_SCX__ORIYA   PL_ORYA
+#define PL_SCX__ORKH   PL_ORKH
+#define PL_SCX__ORYA   PL_ORYA
+#define PL_SCX__OSAGE   PL_OSGE
+#define PL_SCX__OSGE   PL_OSGE
+#define PL_SCX__OSMA   PL_OSMA
+#define PL_SCX__OSMANYA   PL_OSMA
+#define PL_SCX__PAHAWHHMONG   PL_HMNG
+#define PL_SCX__PALM   PL_PALM
+#define PL_SCX__PALMYRENE   PL_PALM
+#define PL_SCX__PAUC   PL_PAUC
+#define PL_SCX__PAUCINHAU   PL_PAUC
+#define PL_SCX__PERM   PL_PERM
+#define PL_SCX__PHAG   PL_PHAG
+#define PL_SCX__PHAGSPA   PL_PHAG
+#define PL_SCX__PHLI   PL_PHLI
+#define PL_SCX__PHLP   PL_PHLP
+#define PL_SCX__PHNX   PL_PHNX
+#define PL_SCX__PHOENICIAN   PL_PHNX
+#define PL_SCX__PLRD   PL_MIAO
+#define PL_SCX__PRTI   PL_PRTI
+#define PL_SCX__PSALTERPAHLAVI   PL_PHLP
+#define PL_SCX__QAAC   PL_COPT
+#define PL_SCX__QAAI   PL_QAAI
+#define PL_SCX__REJANG   PL_RJNG
+#define PL_SCX__RJNG   PL_RJNG
+#define PL_SCX__RUNIC   PL_RUNR
+#define PL_SCX__RUNR   PL_RUNR
+#define PL_SCX__SAMARITAN   PL_SAMR
+#define PL_SCX__SAMR   PL_SAMR
+#define PL_SCX__SARB   PL_SARB
+#define PL_SCX__SAUR   PL_SAUR
+#define PL_SCX__SAURASHTRA   PL_SAUR
+#define PL_SCX__SGNW   PL_SGNW
+#define PL_SCX__SHARADA   PL_SHRD
+#define PL_SCX__SHAVIAN   PL_SHAW
+#define PL_SCX__SHAW   PL_SHAW
+#define PL_SCX__SHRD   PL_SHRD
+#define PL_SCX__SIDD   PL_SIDD
+#define PL_SCX__SIDDHAM   PL_SIDD
+#define PL_SCX__SIGNWRITING   PL_SGNW
+#define PL_SCX__SIND   PL_SIND
+#define PL_SCX__SINH   PL_SINH
+#define PL_SCX__SINHALA   PL_SINH
+#define PL_SCX__SORA   PL_SORA
+#define PL_SCX__SORASOMPENG   PL_SORA
+#define PL_SCX__SOYO   PL_SOYO
+#define PL_SCX__SOYOMBO   PL_SOYO
+#define PL_SCX__SUND   PL_SUND
+#define PL_SCX__SUNDANESE   PL_SUND
+#define PL_SCX__SYLO   PL_SYLO
+#define PL_SCX__SYLOTINAGRI   PL_SYLO
+#define PL_SCX__SYRC   PL_SYRC
+#define PL_SCX__SYRIAC   PL_SYRC
+#define PL_SCX__TAGALOG   PL_TGLG
+#define PL_SCX__TAGB   PL_TAGB
+#define PL_SCX__TAGBANWA   PL_TAGB
+#define PL_SCX__TAILE   PL_TALE
+#define PL_SCX__TAITHAM   PL_LANA
+#define PL_SCX__TAIVIET   PL_TAVT
+#define PL_SCX__TAKR   PL_TAKR
+#define PL_SCX__TAKRI   PL_TAKR
+#define PL_SCX__TALE   PL_TALE
+#define PL_SCX__TALU   PL_TALU
+#define PL_SCX__TAMIL   PL_TAML
+#define PL_SCX__TAML   PL_TAML
+#define PL_SCX__TANG   PL_TANG
+#define PL_SCX__TANGUT   PL_TANG
+#define PL_SCX__TAVT   PL_TAVT
+#define PL_SCX__TELU   PL_TELU
+#define PL_SCX__TELUGU   PL_TELU
+#define PL_SCX__TFNG   PL_TFNG
+#define PL_SCX__TGLG   PL_TGLG
+#define PL_SCX__THAA   PL_THAA
+#define PL_SCX__THAANA   PL_THAA
+#define PL_SCX__THAI   PL_THAI
+#define PL_SCX__TIBETAN   PL_TIBT
+#define PL_SCX__TIBT   PL_TIBT
+#define PL_SCX__TIFINAGH   PL_TFNG
+#define PL_SCX__TIRH   PL_TIRH
+#define PL_SCX__TIRHUTA   PL_TIRH
+#define PL_SCX__UGAR   PL_UGAR
+#define PL_SCX__UGARITIC   PL_UGAR
+#define PL_SCX__UNKNOWN   PL_ZZZZ
+#define PL_SCX__VAI   PL_VAI
+#define PL_SCX__VAII   PL_VAI
+#define PL_SCX__WARA   PL_WARA
+#define PL_SCX__WARANGCITI   PL_WARA
+#define PL_SCX__XPEO   PL_XPEO
+#define PL_SCX__XSUX   PL_XSUX
+#define PL_SCX__YI   PL_YI
+#define PL_SCX__YIII   PL_YI
+#define PL_SCX__ZANABAZARSQUARE   PL_ZANB
+#define PL_SCX__ZANB   PL_ZANB
+#define PL_SCX__ZINH   PL_QAAI
+#define PL_SCX__ZYYY   PL_ZYYY
+#define PL_SCX__ZZZZ   PL_ZZZZ
+#define PL_SC__ADLAM   PL_SC__ADLM
+#define PL_SC__AGHB   PL_AGHB
+#define PL_SC__AHOM   PL_AHOM
+#define PL_SC__ANATOLIANHIEROGLYPHS   PL_HLUW
+#define PL_SC__ARABIC   PL_SC__ARAB
+#define PL_SC__ARMENIAN   PL_SC__ARMN
+#define PL_SC__ARMI   PL_ARMI
+#define PL_SC__AVESTAN   PL_AVST
+#define PL_SC__AVST   PL_AVST
+#define PL_SC__BALI   PL_BALI
+#define PL_SC__BALINESE   PL_BALI
+#define PL_SC__BAMU   PL_BAMU
+#define PL_SC__BAMUM   PL_BAMU
+#define PL_SC__BASS   PL_BASS
+#define PL_SC__BASSAVAH   PL_BASS
+#define PL_SC__BATAK   PL_BATK
+#define PL_SC__BATK   PL_BATK
+#define PL_SC__BENGALI   PL_SC__BENG
+#define PL_SC__BHAIKSUKI   PL_BHKS
+#define PL_SC__BHKS   PL_BHKS
+#define PL_SC__BOPOMOFO   PL_SC__BOPO
+#define PL_SC__BRAH   PL_BRAH
+#define PL_SC__BRAHMI   PL_BRAH
+#define PL_SC__BRAI   PL_BRAI
+#define PL_SC__BRAILLE   PL_BRAI
+#define PL_SC__BUGINESE   PL_SC__BUGI
+#define PL_SC__BUHID   PL_SC__BUHD
+#define PL_SC__CANADIANABORIGINAL   PL_CANS
+#define PL_SC__CANS   PL_CANS
+#define PL_SC__CARI   PL_CARI
+#define PL_SC__CARIAN   PL_CARI
+#define PL_SC__CAUCASIANALBANIAN   PL_AGHB
+#define PL_SC__CHAKMA   PL_SC__CAKM
+#define PL_SC__CHAM   PL_CHAM
+#define PL_SC__CHER   PL_CHER
+#define PL_SC__CHEROKEE   PL_CHER
+#define PL_SC__COMMON   PL_SC__ZYYY
+#define PL_SC__COPTIC   PL_SC__COPT
+#define PL_SC__CUNEIFORM   PL_XSUX
+#define PL_SC__CYPRIOT   PL_SC__CPRT
+#define PL_SC__CYRILLIC   PL_SC__CYRL
+#define PL_SC__DESERET   PL_DSRT
+#define PL_SC__DEVANAGARI   PL_SC__DEVA
+#define PL_SC__DSRT   PL_DSRT
+#define PL_SC__DUPLOYAN   PL_SC__DUPL
+#define PL_SC__EGYP   PL_EGYP
+#define PL_SC__EGYPTIANHIEROGLYPHS   PL_EGYP
+#define PL_SC__ELBA   PL_ELBA
+#define PL_SC__ELBASAN   PL_ELBA
+#define PL_SC__ETHI   PL_ETHI
+#define PL_SC__ETHIOPIC   PL_ETHI
+#define PL_SC__GEORGIAN   PL_SC__GEOR
+#define PL_SC__GLAGOLITIC   PL_SC__GLAG
+#define PL_SC__GONM   PL_GONM
+#define PL_SC__GOTH   PL_GOTH
+#define PL_SC__GOTHIC   PL_GOTH
+#define PL_SC__GRANTHA   PL_SC__GRAN
+#define PL_SC__GREEK   PL_SC__GREK
+#define PL_SC__GUJARATI   PL_SC__GUJR
+#define PL_SC__GURMUKHI   PL_SC__GURU
+#define PL_SC__HANGUL   PL_SC__HANG
+#define PL_SC__HANI   PL_SC__HAN
+#define PL_SC__HANUNOO   PL_SC__HANO
+#define PL_SC__HATR   PL_HATR
+#define PL_SC__HATRAN   PL_HATR
+#define PL_SC__HEBR   PL_HEBR
+#define PL_SC__HEBREW   PL_HEBR
+#define PL_SC__HIRAGANA   PL_SC__HIRA
+#define PL_SC__HLUW   PL_HLUW
+#define PL_SC__HMNG   PL_HMNG
+#define PL_SC__HUNG   PL_HUNG
+#define PL_SC__IMPERIALARAMAIC   PL_ARMI
+#define PL_SC__INHERITED   PL_SC__QAAI
+#define PL_SC__INSCRIPTIONALPAHLAVI   PL_PHLI
+#define PL_SC__INSCRIPTIONALPARTHIAN   PL_PRTI
+#define PL_SC__ITAL   PL_ITAL
+#define PL_SC__JAVANESE   PL_SC__JAVA
+#define PL_SC__KAITHI   PL_SC__KTHI
+#define PL_SC__KANNADA   PL_SC__KNDA
+#define PL_SC__KATAKANA   PL_SC__KANA
+#define PL_SC__KAYAHLI   PL_SC__KALI
+#define PL_SC__KHAR   PL_KHAR
+#define PL_SC__KHAROSHTHI   PL_KHAR
+#define PL_SC__KHMER   PL_KHMR
+#define PL_SC__KHMR   PL_KHMR
+#define PL_SC__KHOJKI   PL_SC__KHOJ
+#define PL_SC__KHUDAWADI   PL_SC__SIND
+#define PL_SC__LANA   PL_LANA
+#define PL_SC__LAO   PL_LAO
+#define PL_SC__LAOO   PL_LAO
+#define PL_SC__LATIN   PL_SC__LATN
+#define PL_SC__LEPC   PL_LEPC
+#define PL_SC__LEPCHA   PL_LEPC
+#define PL_SC__LIMBU   PL_SC__LIMB
+#define PL_SC__LINEARA   PL_SC__LINA
+#define PL_SC__LINEARB   PL_SC__LINB
+#define PL_SC__LISU   PL_LISU
+#define PL_SC__LYCI   PL_LYCI
+#define PL_SC__LYCIAN   PL_LYCI
+#define PL_SC__LYDI   PL_LYDI
+#define PL_SC__LYDIAN   PL_LYDI
+#define PL_SC__MAHAJANI   PL_SC__MAHJ
+#define PL_SC__MALAYALAM   PL_SC__MLYM
+#define PL_SC__MANDAIC   PL_SC__MAND
+#define PL_SC__MANICHAEAN   PL_SC__MANI
+#define PL_SC__MARC   PL_MARC
+#define PL_SC__MARCHEN   PL_MARC
+#define PL_SC__MASARAMGONDI   PL_GONM
+#define PL_SC__MEETEIMAYEK   PL_MTEI
+#define PL_SC__MEND   PL_MEND
+#define PL_SC__MENDEKIKAKUI   PL_MEND
+#define PL_SC__MERC   PL_MERC
+#define PL_SC__MERO   PL_MERO
+#define PL_SC__MEROITICCURSIVE   PL_MERC
+#define PL_SC__MEROITICHIEROGLYPHS   PL_MERO
+#define PL_SC__MIAO   PL_MIAO
+#define PL_SC__MONGOLIAN   PL_SC__MONG
+#define PL_SC__MRO   PL_MRO
+#define PL_SC__MROO   PL_MRO
+#define PL_SC__MTEI   PL_MTEI
+#define PL_SC__MULTANI   PL_SC__MULT
+#define PL_SC__MYANMAR   PL_SC__MYMR
+#define PL_SC__NABATAEAN   PL_NBAT
+#define PL_SC__NARB   PL_NARB
+#define PL_SC__NBAT   PL_NBAT
+#define PL_SC__NEWA   PL_NEWA
+#define PL_SC__NEWTAILUE   PL_TALU
+#define PL_SC__NKO   PL_NKO
+#define PL_SC__NKOO   PL_NKO
+#define PL_SC__NSHU   PL_NSHU
+#define PL_SC__NUSHU   PL_NSHU
+#define PL_SC__OGAM   PL_OGAM
+#define PL_SC__OGHAM   PL_OGAM
+#define PL_SC__OLCHIKI   PL_OLCK
+#define PL_SC__OLCK   PL_OLCK
+#define PL_SC__OLDHUNGARIAN   PL_HUNG
+#define PL_SC__OLDITALIC   PL_ITAL
+#define PL_SC__OLDNORTHARABIAN   PL_NARB
+#define PL_SC__OLDPERMIC   PL_SC__PERM
+#define PL_SC__OLDPERSIAN   PL_XPEO
+#define PL_SC__OLDSOUTHARABIAN   PL_SARB
+#define PL_SC__OLDTURKIC   PL_ORKH
+#define PL_SC__ORIYA   PL_SC__ORYA
+#define PL_SC__ORKH   PL_ORKH
+#define PL_SC__OSAGE   PL_OSGE
+#define PL_SC__OSGE   PL_OSGE
+#define PL_SC__OSMA   PL_OSMA
+#define PL_SC__OSMANYA   PL_OSMA
+#define PL_SC__PAHAWHHMONG   PL_HMNG
+#define PL_SC__PALM   PL_PALM
+#define PL_SC__PALMYRENE   PL_PALM
+#define PL_SC__PAUC   PL_PAUC
+#define PL_SC__PAUCINHAU   PL_PAUC
+#define PL_SC__PHAGSPA   PL_SC__PHAG
+#define PL_SC__PHLI   PL_PHLI
+#define PL_SC__PHNX   PL_PHNX
+#define PL_SC__PHOENICIAN   PL_PHNX
+#define PL_SC__PLRD   PL_MIAO
+#define PL_SC__PRTI   PL_PRTI
+#define PL_SC__PSALTERPAHLAVI   PL_SC__PHLP
+#define PL_SC__QAAC   PL_SC__COPT
+#define PL_SC__REJANG   PL_RJNG
+#define PL_SC__RJNG   PL_RJNG
+#define PL_SC__RUNIC   PL_RUNR
+#define PL_SC__RUNR   PL_RUNR
+#define PL_SC__SAMARITAN   PL_SAMR
+#define PL_SC__SAMR   PL_SAMR
+#define PL_SC__SARB   PL_SARB
+#define PL_SC__SAUR   PL_SAUR
+#define PL_SC__SAURASHTRA   PL_SAUR
+#define PL_SC__SGNW   PL_SGNW
+#define PL_SC__SHARADA   PL_SC__SHRD
+#define PL_SC__SHAVIAN   PL_SHAW
+#define PL_SC__SHAW   PL_SHAW
+#define PL_SC__SIDD   PL_SIDD
+#define PL_SC__SIDDHAM   PL_SIDD
+#define PL_SC__SIGNWRITING   PL_SGNW
+#define PL_SC__SINHALA   PL_SC__SINH
+#define PL_SC__SORA   PL_SORA
+#define PL_SC__SORASOMPENG   PL_SORA
+#define PL_SC__SOYO   PL_SOYO
+#define PL_SC__SOYOMBO   PL_SOYO
+#define PL_SC__SUND   PL_SUND
+#define PL_SC__SUNDANESE   PL_SUND
+#define PL_SC__SYLOTINAGRI   PL_SC__SYLO
+#define PL_SC__SYRIAC   PL_SC__SYRC
+#define PL_SC__TAGALOG   PL_SC__TGLG
+#define PL_SC__TAGBANWA   PL_SC__TAGB
+#define PL_SC__TAILE   PL_SC__TALE
+#define PL_SC__TAITHAM   PL_LANA
+#define PL_SC__TAIVIET   PL_TAVT
+#define PL_SC__TAKRI   PL_SC__TAKR
+#define PL_SC__TALU   PL_TALU
+#define PL_SC__TAMIL   PL_SC__TAML
+#define PL_SC__TANG   PL_TANG
+#define PL_SC__TANGUT   PL_TANG
+#define PL_SC__TAVT   PL_TAVT
+#define PL_SC__TELUGU   PL_SC__TELU
+#define PL_SC__TFNG   PL_TFNG
+#define PL_SC__THAANA   PL_SC__THAA
+#define PL_SC__THAI   PL_THAI
+#define PL_SC__TIBETAN   PL_TIBT
+#define PL_SC__TIBT   PL_TIBT
+#define PL_SC__TIFINAGH   PL_TFNG
+#define PL_SC__TIRHUTA   PL_SC__TIRH
+#define PL_SC__UGAR   PL_UGAR
+#define PL_SC__UGARITIC   PL_UGAR
+#define PL_SC__UNKNOWN   PL_ZZZZ
+#define PL_SC__VAI   PL_VAI
+#define PL_SC__VAII   PL_VAI
+#define PL_SC__WARA   PL_WARA
+#define PL_SC__WARANGCITI   PL_WARA
+#define PL_SC__XPEO   PL_XPEO
+#define PL_SC__XSUX   PL_XSUX
+#define PL_SC__YIII   PL_SC__YI
+#define PL_SC__ZANABAZARSQUARE   PL_ZANB
+#define PL_SC__ZANB   PL_ZANB
+#define PL_SC__ZINH   PL_SC__QAAI
+#define PL_SC__ZZZZ   PL_ZZZZ
+#define PL_SD__F   -PL_SD
+#define PL_SD__FALSE   -PL_SD
+#define PL_SD__N   -PL_SD
+#define PL_SD__NO   -PL_SD
+#define PL_SD__T   PL_SD
+#define PL_SD__TRUE   PL_SD
+#define PL_SD__Y   PL_SD
+#define PL_SD__YES   PL_SD
+#define PL_SENTENCEBREAK__AT   PL_SB__AT
+#define PL_SENTENCEBREAK__ATERM   PL_SB__AT
+#define PL_SENTENCEBREAK__CL   PL_SB__CL
+#define PL_SENTENCEBREAK__CLOSE   PL_SB__CL
+#define PL_SENTENCEBREAK__CR   PL_LB__CR
+#define PL_SENTENCEBREAK__EX   PL_SB__EX
+#define PL_SENTENCEBREAK__EXTEND   PL_SB__EX
+#define PL_SENTENCEBREAK__FO   PL_SB__FO
+#define PL_SENTENCEBREAK__FORMAT   PL_SB__FO
+#define PL_SENTENCEBREAK__LE   PL_SB__LE
+#define PL_SENTENCEBREAK__LF   PL_LB__LF
+#define PL_SENTENCEBREAK__LO   PL_SB__LO
+#define PL_SENTENCEBREAK__LOWER   PL_SB__LO
+#define PL_SENTENCEBREAK__NU   PL_LB__NU
+#define PL_SENTENCEBREAK__NUMERIC   PL_LB__NU
+#define PL_SENTENCEBREAK__OLETTER   PL_SB__LE
+#define PL_SENTENCEBREAK__OTHER   PL_SB__XX
+#define PL_SENTENCEBREAK__SC   PL_SB__SC
+#define PL_SENTENCEBREAK__SCONTINUE   PL_SB__SC
+#define PL_SENTENCEBREAK__SE   PL_SB__SE
+#define PL_SENTENCEBREAK__SEP   PL_SB__SE
+#define PL_SENTENCEBREAK__SP   PL_SB__SP
+#define PL_SENTENCEBREAK__ST   PL_SB__ST
+#define PL_SENTENCEBREAK__STERM   PL_SB__ST
+#define PL_SENTENCEBREAK__UP   PL_SB__UP
+#define PL_SENTENCEBREAK__UPPER   PL_SB__UP
+#define PL_SENTENCEBREAK__XX   PL_SB__XX
+#define PL_SENTENCETERMINAL   PL_STERM
+#define PL_SENTENCETERMINAL   PL_STERM
+#define PL_SENTENCETERMINAL__F   -PL_STERM
+#define PL_SENTENCETERMINAL__FALSE   -PL_STERM
+#define PL_SENTENCETERMINAL__N   -PL_STERM
+#define PL_SENTENCETERMINAL__NO   -PL_STERM
+#define PL_SENTENCETERMINAL__T   PL_STERM
+#define PL_SENTENCETERMINAL__TRUE   PL_STERM
+#define PL_SENTENCETERMINAL__Y   PL_STERM
+#define PL_SENTENCETERMINAL__YES   PL_STERM
+#define PL_SEPARATOR   PL_Z
+#define PL_SHARADA   PL_SHRD
+#define PL_SHAVIAN   PL_SHAW
+#define PL_SIDDHAM   PL_SIDD
+#define PL_SIGNWRITING   PL_SGNW
+#define PL_SINHALA   PL_SINH
+#define PL_SMALLFORMVARIANTS   PL_SMALLFORMS
+#define PL_SOFTDOTTED   PL_SD
+#define PL_SOFTDOTTED   PL_SD
+#define PL_SOFTDOTTED__F   -PL_SD
+#define PL_SOFTDOTTED__FALSE   -PL_SD
+#define PL_SOFTDOTTED__N   -PL_SD
+#define PL_SOFTDOTTED__NO   -PL_SD
+#define PL_SOFTDOTTED__T   PL_SD
+#define PL_SOFTDOTTED__TRUE   PL_SD
+#define PL_SOFTDOTTED__Y   PL_SD
+#define PL_SOFTDOTTED__YES   PL_SD
+#define PL_SORASOMPENG   PL_SORA
+#define PL_SOYOMBO   PL_SOYO
+#define PL_SPACE   PL_XPOSIXSPACE
+#define PL_SPACE   PL_XPOSIXSPACE
+#define PL_SPACEPERL   PL_XPOSIXSPACE
+#define PL_SPACESEPARATOR   PL_ZS
+#define PL_SPACE__F   -PL_XPOSIXSPACE
+#define PL_SPACE__FALSE   -PL_XPOSIXSPACE
+#define PL_SPACE__N   -PL_XPOSIXSPACE
+#define PL_SPACE__NO   -PL_XPOSIXSPACE
+#define PL_SPACE__T   PL_XPOSIXSPACE
+#define PL_SPACE__TRUE   PL_XPOSIXSPACE
+#define PL_SPACE__Y   PL_XPOSIXSPACE
+#define PL_SPACE__YES   PL_XPOSIXSPACE
+#define PL_SPACINGMARK   PL_MC
+#define PL_SPACINGMODIFIERLETTERS   PL_MODIFIERLETTERS
+#define PL_STERM__F   -PL_STERM
+#define PL_STERM__FALSE   -PL_STERM
+#define PL_STERM__N   -PL_STERM
+#define PL_STERM__NO   -PL_STERM
+#define PL_STERM__T   PL_STERM
+#define PL_STERM__TRUE   PL_STERM
+#define PL_STERM__Y   PL_STERM
+#define PL_STERM__YES   PL_STERM
+#define PL_SUNDANESE   PL_SUND
+#define PL_SUNDANESESUPPLEMENT   PL_SUNDANESESUP
+#define PL_SUPERSCRIPTSANDSUBSCRIPTS   PL_SUPERANDSUB
+#define PL_SUPPLEMENTALARROWSA   PL_SUPARROWSA
+#define PL_SUPPLEMENTALARROWSB   PL_SUPARROWSB
+#define PL_SUPPLEMENTALARROWSC   PL_SUPARROWSC
+#define PL_SUPPLEMENTALMATHEMATICALOPERATORS   PL_SUPMATHOPERATORS
+#define PL_SUPPLEMENTALPUNCTUATION   PL_SUPPUNCTUATION
+#define PL_SUPPLEMENTALSYMBOLSANDPICTOGRAPHS   PL_SUPSYMBOLSANDPICTOGRAPHS
+#define PL_SUPPLEMENTARYPRIVATEUSEAREAA   PL_SUPPUAA
+#define PL_SUPPLEMENTARYPRIVATEUSEAREAB   PL_SUPPUAB
+#define PL_SURROGATE   PL_CS
+#define PL_SYLOTINAGRI   PL_SYLO
+#define PL_SYMBOL   PL_S
+#define PL_SYRIAC   PL_SYRC
+#define PL_SYRIACSUPPLEMENT   PL_SYRIACSUP
+#define PL_TAGALOG   PL_TGLG
+#define PL_TAGBANWA   PL_TAGB
+#define PL_TAILE   PL_TALE
+#define PL_TAITHAM   PL_LANA
+#define PL_TAIVIET   PL_TAVT
+#define PL_TAIXUANJINGSYMBOLS   PL_TAIXUANJING
+#define PL_TAKRI   PL_TAKR
+#define PL_TAMIL   PL_TAML
+#define PL_TANGUT   PL_TANG
+#define PL_TELUGU   PL_TELU
+#define PL_TERMINALPUNCTUATION   PL_TERM
+#define PL_TERMINALPUNCTUATION   PL_TERM
+#define PL_TERMINALPUNCTUATION__F   -PL_TERM
+#define PL_TERMINALPUNCTUATION__FALSE   -PL_TERM
+#define PL_TERMINALPUNCTUATION__N   -PL_TERM
+#define PL_TERMINALPUNCTUATION__NO   -PL_TERM
+#define PL_TERMINALPUNCTUATION__T   PL_TERM
+#define PL_TERMINALPUNCTUATION__TRUE   PL_TERM
+#define PL_TERMINALPUNCTUATION__Y   PL_TERM
+#define PL_TERMINALPUNCTUATION__YES   PL_TERM
+#define PL_TERM__F   -PL_TERM
+#define PL_TERM__FALSE   -PL_TERM
+#define PL_TERM__N   -PL_TERM
+#define PL_TERM__NO   -PL_TERM
+#define PL_TERM__T   PL_TERM
+#define PL_TERM__TRUE   PL_TERM
+#define PL_TERM__Y   PL_TERM
+#define PL_TERM__YES   PL_TERM
+#define PL_THAANA   PL_THAA
+#define PL_TIBETAN   PL_TIBT
+#define PL_TIFINAGH   PL_TFNG
+#define PL_TIRHUTA   PL_TIRH
+#define PL_TITLE   PL_LT
+#define PL_TITLECASE   PL_LT
+#define PL_TITLECASELETTER   PL_LT
+#define PL_TRANSPORTANDMAPSYMBOLS   PL_TRANSPORTANDMAP
+#define PL_UGARITIC   PL_UGAR
+#define PL_UIDEO__F   -PL_UIDEO
+#define PL_UIDEO__FALSE   -PL_UIDEO
+#define PL_UIDEO__N   -PL_UIDEO
+#define PL_UIDEO__NO   -PL_UIDEO
+#define PL_UIDEO__T   PL_UIDEO
+#define PL_UIDEO__TRUE   PL_UIDEO
+#define PL_UIDEO__Y   PL_UIDEO
+#define PL_UIDEO__YES   PL_UIDEO
+#define PL_UNASSIGNED   PL_CN
+#define PL_UNICODE   PL_ANY
+#define PL_UNIFIEDCANADIANABORIGINALSYLLABICS   PL_UCAS
+#define PL_UNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED   PL_UCASEXT
+#define PL_UNIFIEDIDEOGRAPH   PL_UIDEO
+#define PL_UNIFIEDIDEOGRAPH   PL_UIDEO
+#define PL_UNIFIEDIDEOGRAPH__F   -PL_UIDEO
+#define PL_UNIFIEDIDEOGRAPH__FALSE   -PL_UIDEO
+#define PL_UNIFIEDIDEOGRAPH__N   -PL_UIDEO
+#define PL_UNIFIEDIDEOGRAPH__NO   -PL_UIDEO
+#define PL_UNIFIEDIDEOGRAPH__T   PL_UIDEO
+#define PL_UNIFIEDIDEOGRAPH__TRUE   PL_UIDEO
+#define PL_UNIFIEDIDEOGRAPH__Y   PL_UIDEO
+#define PL_UNIFIEDIDEOGRAPH__YES   PL_UIDEO
+#define PL_UNKNOWN   PL_ZZZZ
+#define PL_UPPER   PL_XPOSIXUPPER
+#define PL_UPPERCASE   PL_XPOSIXUPPER
+#define PL_UPPERCASE   PL_XPOSIXUPPER
+#define PL_UPPERCASELETTER   PL_LU
+#define PL_UPPERCASE__F   -PL_XPOSIXUPPER
+#define PL_UPPERCASE__FALSE   -PL_XPOSIXUPPER
+#define PL_UPPERCASE__N   -PL_XPOSIXUPPER
+#define PL_UPPERCASE__NO   -PL_XPOSIXUPPER
+#define PL_UPPERCASE__T   PL_XPOSIXUPPER
+#define PL_UPPERCASE__TRUE   PL_XPOSIXUPPER
+#define PL_UPPERCASE__Y   PL_XPOSIXUPPER
+#define PL_UPPERCASE__YES   PL_XPOSIXUPPER
+#define PL_UPPER__F   -PL_XPOSIXUPPER
+#define PL_UPPER__FALSE   -PL_XPOSIXUPPER
+#define PL_UPPER__N   -PL_XPOSIXUPPER
+#define PL_UPPER__NO   -PL_XPOSIXUPPER
+#define PL_UPPER__T   PL_XPOSIXUPPER
+#define PL_UPPER__TRUE   PL_XPOSIXUPPER
+#define PL_UPPER__Y   PL_XPOSIXUPPER
+#define PL_UPPER__YES   PL_XPOSIXUPPER
+#define PL_VAII   PL_VAI
+#define PL_VARIATIONSELECTOR   PL_VS
+#define PL_VARIATIONSELECTOR   PL_VS
+#define PL_VARIATIONSELECTORS   PL_INVS
+#define PL_VARIATIONSELECTORSSUPPLEMENT   PL_VSSUP
+#define PL_VARIATIONSELECTOR__F   -PL_VS
+#define PL_VARIATIONSELECTOR__FALSE   -PL_VS
+#define PL_VARIATIONSELECTOR__N   -PL_VS
+#define PL_VARIATIONSELECTOR__NO   -PL_VS
+#define PL_VARIATIONSELECTOR__T   PL_VS
+#define PL_VARIATIONSELECTOR__TRUE   PL_VS
+#define PL_VARIATIONSELECTOR__Y   PL_VS
+#define PL_VARIATIONSELECTOR__YES   PL_VS
+#define PL_VEDICEXTENSIONS   PL_VEDICEXT
+#define PL_VERTICALORIENTATION__R   PL_VO__R
+#define PL_VERTICALORIENTATION__ROTATED   PL_VO__R
+#define PL_VERTICALORIENTATION__TR   PL_VO__TR
+#define PL_VERTICALORIENTATION__TRANSFORMEDROTATED   PL_VO__TR
+#define PL_VERTICALORIENTATION__TRANSFORMEDUPRIGHT   PL_VO__TU
+#define PL_VERTICALORIENTATION__TU   PL_VO__TU
+#define PL_VERTICALORIENTATION__U   PL_VO__U
+#define PL_VERTICALORIENTATION__UPRIGHT   PL_VO__U
+#define PL_VO__ROTATED   PL_VO__R
+#define PL_VO__TRANSFORMEDROTATED   PL_VO__TR
+#define PL_VO__TRANSFORMEDUPRIGHT   PL_VO__TU
+#define PL_VO__UPRIGHT   PL_VO__U
+#define PL_VS__F   -PL_VS
+#define PL_VS__FALSE   -PL_VS
+#define PL_VS__N   -PL_VS
+#define PL_VS__NO   -PL_VS
+#define PL_VS__T   PL_VS
+#define PL_VS__TRUE   PL_VS
+#define PL_VS__Y   PL_VS
+#define PL_VS__YES   PL_VS
+#define PL_WARANGCITI   PL_WARA
+#define PL_WB__ALETTER   PL_WB__LE
+#define PL_WB__CR   PL_LB__CR
+#define PL_WB__DOUBLEQUOTE   PL_WB__DQ
+#define PL_WB__EBASE   PL_WB__EB
+#define PL_WB__EBASEGAZ   PL_WB__EBG
+#define PL_WB__EM   PL_LB__EM
+#define PL_WB__EMODIFIER   PL_LB__EM
+#define PL_WB__EXTENDNUMLET   PL_WB__EX
+#define PL_WB__FORMAT   PL_WB__FO
+#define PL_WB__GLUEAFTERZWJ   PL_WB__GAZ
+#define PL_WB__HEBREWLETTER   PL_LB__HL
+#define PL_WB__HL   PL_LB__HL
+#define PL_WB__KATAKANA   PL_WB__KA
+#define PL_WB__LF   PL_LB__LF
+#define PL_WB__MIDLETTER   PL_WB__ML
+#define PL_WB__MIDNUM   PL_WB__MN
+#define PL_WB__MIDNUMLET   PL_WB__MB
+#define PL_WB__NEWLINE   PL_WB__NL
+#define PL_WB__NUMERIC   PL_WB__NU
+#define PL_WB__OTHER   PL_WB__XX
+#define PL_WB__REGIONALINDICATOR   PL_RI
+#define PL_WB__RI   PL_RI
+#define PL_WB__SINGLEQUOTE   PL_WB__SQ
+#define PL_WB__ZWJ   PL_LB__ZWJ
+#define PL_WHITESPACE   PL_XPOSIXSPACE
+#define PL_WHITESPACE   PL_XPOSIXSPACE
+#define PL_WHITESPACE__F   -PL_XPOSIXSPACE
+#define PL_WHITESPACE__FALSE   -PL_XPOSIXSPACE
+#define PL_WHITESPACE__N   -PL_XPOSIXSPACE
+#define PL_WHITESPACE__NO   -PL_XPOSIXSPACE
+#define PL_WHITESPACE__T   PL_XPOSIXSPACE
+#define PL_WHITESPACE__TRUE   PL_XPOSIXSPACE
+#define PL_WHITESPACE__Y   PL_XPOSIXSPACE
+#define PL_WHITESPACE__YES   PL_XPOSIXSPACE
+#define PL_WORD   PL_XPOSIXWORD
+#define PL_WORDBREAK__ALETTER   PL_WB__LE
+#define PL_WORDBREAK__CR   PL_LB__CR
+#define PL_WORDBREAK__DOUBLEQUOTE   PL_WB__DQ
+#define PL_WORDBREAK__DQ   PL_WB__DQ
+#define PL_WORDBREAK__EB   PL_WB__EB
+#define PL_WORDBREAK__EBASE   PL_WB__EB
+#define PL_WORDBREAK__EBASEGAZ   PL_WB__EBG
+#define PL_WORDBREAK__EBG   PL_WB__EBG
+#define PL_WORDBREAK__EM   PL_LB__EM
+#define PL_WORDBREAK__EMODIFIER   PL_LB__EM
+#define PL_WORDBREAK__EX   PL_WB__EX
+#define PL_WORDBREAK__EXTEND   PL_WB__EXTEND
+#define PL_WORDBREAK__EXTENDNUMLET   PL_WB__EX
+#define PL_WORDBREAK__FO   PL_WB__FO
+#define PL_WORDBREAK__FORMAT   PL_WB__FO
+#define PL_WORDBREAK__GAZ   PL_WB__GAZ
+#define PL_WORDBREAK__GLUEAFTERZWJ   PL_WB__GAZ
+#define PL_WORDBREAK__HEBREWLETTER   PL_LB__HL
+#define PL_WORDBREAK__HL   PL_LB__HL
+#define PL_WORDBREAK__KA   PL_WB__KA
+#define PL_WORDBREAK__KATAKANA   PL_WB__KA
+#define PL_WORDBREAK__LE   PL_WB__LE
+#define PL_WORDBREAK__LF   PL_LB__LF
+#define PL_WORDBREAK__MB   PL_WB__MB
+#define PL_WORDBREAK__MIDLETTER   PL_WB__ML
+#define PL_WORDBREAK__MIDNUM   PL_WB__MN
+#define PL_WORDBREAK__MIDNUMLET   PL_WB__MB
+#define PL_WORDBREAK__ML   PL_WB__ML
+#define PL_WORDBREAK__MN   PL_WB__MN
+#define PL_WORDBREAK__NEWLINE   PL_WB__NL
+#define PL_WORDBREAK__NL   PL_WB__NL
+#define PL_WORDBREAK__NU   PL_WB__NU
+#define PL_WORDBREAK__NUMERIC   PL_WB__NU
+#define PL_WORDBREAK__OTHER   PL_WB__XX
+#define PL_WORDBREAK__REGIONALINDICATOR   PL_RI
+#define PL_WORDBREAK__RI   PL_RI
+#define PL_WORDBREAK__SINGLEQUOTE   PL_WB__SQ
+#define PL_WORDBREAK__SQ   PL_WB__SQ
+#define PL_WORDBREAK__XX   PL_WB__XX
+#define PL_WORDBREAK__ZWJ   PL_LB__ZWJ
+#define PL_WSPACE   PL_XPOSIXSPACE
+#define PL_WSPACE__F   -PL_XPOSIXSPACE
+#define PL_WSPACE__FALSE   -PL_XPOSIXSPACE
+#define PL_WSPACE__N   -PL_XPOSIXSPACE
+#define PL_WSPACE__NO   -PL_XPOSIXSPACE
+#define PL_WSPACE__T   PL_XPOSIXSPACE
+#define PL_WSPACE__TRUE   PL_XPOSIXSPACE
+#define PL_WSPACE__Y   PL_XPOSIXSPACE
+#define PL_WSPACE__YES   PL_XPOSIXSPACE
+#define PL_XDIGIT   PL_XPOSIXXDIGIT
+#define PL_XIDCONTINUE   PL_XIDC
+#define PL_XIDCONTINUE   PL_XIDC
+#define PL_XIDCONTINUE__F   -PL_XIDC
+#define PL_XIDCONTINUE__FALSE   -PL_XIDC
+#define PL_XIDCONTINUE__N   -PL_XIDC
+#define PL_XIDCONTINUE__NO   -PL_XIDC
+#define PL_XIDCONTINUE__T   PL_XIDC
+#define PL_XIDCONTINUE__TRUE   PL_XIDC
+#define PL_XIDCONTINUE__Y   PL_XIDC
+#define PL_XIDCONTINUE__YES   PL_XIDC
+#define PL_XIDC__F   -PL_XIDC
+#define PL_XIDC__FALSE   -PL_XIDC
+#define PL_XIDC__N   -PL_XIDC
+#define PL_XIDC__NO   -PL_XIDC
+#define PL_XIDC__T   PL_XIDC
+#define PL_XIDC__TRUE   PL_XIDC
+#define PL_XIDC__Y   PL_XIDC
+#define PL_XIDC__YES   PL_XIDC
+#define PL_XIDSTART   PL_XIDS
+#define PL_XIDSTART   PL_XIDS
+#define PL_XIDSTART__F   -PL_XIDS
+#define PL_XIDSTART__FALSE   -PL_XIDS
+#define PL_XIDSTART__N   -PL_XIDS
+#define PL_XIDSTART__NO   -PL_XIDS
+#define PL_XIDSTART__T   PL_XIDS
+#define PL_XIDSTART__TRUE   PL_XIDS
+#define PL_XIDSTART__Y   PL_XIDS
+#define PL_XIDSTART__YES   PL_XIDS
+#define PL_XIDS__F   -PL_XIDS
+#define PL_XIDS__FALSE   -PL_XIDS
+#define PL_XIDS__N   -PL_XIDS
+#define PL_XIDS__NO   -PL_XIDS
+#define PL_XIDS__T   PL_XIDS
+#define PL_XIDS__TRUE   PL_XIDS
+#define PL_XIDS__Y   PL_XIDS
+#define PL_XIDS__YES   PL_XIDS
+#define PL_XPERLSPACE   PL_XPOSIXSPACE
+#define PL_YIII   PL_YI
+#define PL_YIJINGHEXAGRAMSYMBOLS   PL_YIJING
+#define PL_ZANABAZARSQUARE   PL_ZANB
+#define PL_ZINH   PL_QAAI
+#define PL__CANONDCIJ   PL_SD
+#define PL__CASE_IGNORABLE   PL_CI
+#define PL__COMBABOVE   PL_CCC__A
+#define PL__PERL_NCHAR   PL_NCHAR
+#define PL__PERL_PATWS   PL_PATWS
+#define PL__PERL_SURROGATE   PL_CS
+
+
+#endif /* defined(PERL_IN_UNI_KEYWORDS_C) || defined(PERL_IN_UTF8_C) */
+
+#if defined(PERL_IN_UTF8_C)
+
+static const UV * const PL_uni_prop_ptrs[] = {
+       NULL,   /* Placeholder */
+       PL_ADLM_invlist,
+       PL_AEGEANNUMBERS_invlist,
+       PL_AGE__10_invlist,
+       PL_AGE__2_invlist,
+       PL_AGE__2_DOT_1_invlist,
+       PL_AGE__3_invlist,
+       PL_AGE__3_DOT_1_invlist,
+       PL_AGE__3_DOT_2_invlist,
+       PL_AGE__4_invlist,
+       PL_AGE__4_DOT_1_invlist,
+       PL_AGE__5_invlist,
+       PL_AGE__5_DOT_1_invlist,
+       PL_AGE__5_DOT_2_invlist,
+       PL_AGE__6_invlist,
+       PL_AGE__6_DOT_1_invlist,
+       PL_AGE__6_DOT_2_invlist,
+       PL_AGE__6_DOT_3_invlist,
+       PL_AGE__7_invlist,
+       PL_AGE__8_invlist,
+       PL_AGE__9_invlist,
+       PL_AGE__NA_invlist,
+       PL_AGHB_invlist,
+       PL_AHOM_invlist,
+       PL_ALCHEMICAL_invlist,
+       PL_ALL_invlist,
+       PL_ALPHABETICPF_invlist,
+       PL_ANCIENTGREEKMUSIC_invlist,
+       PL_ANCIENTGREEKNUMBERS_invlist,
+       PL_ANCIENTSYMBOLS_invlist,
+       PL_ANY_invlist,
+       PL_ARAB_invlist,
+       PL_ARABICEXTA_invlist,
+       PL_ARABICMATH_invlist,
+       PL_ARABICPFA_invlist,
+       PL_ARABICPFB_invlist,
+       PL_ARABICSUP_invlist,
+       PL_ARMI_invlist,
+       PL_ARMN_invlist,
+       PL_ARROWS_invlist,
+       PL_ASCII_invlist,
+       PL_ASSIGNED_invlist,
+       PL_AVST_invlist,
+       PL_BALI_invlist,
+       PL_BAMU_invlist,
+       PL_BAMUMSUP_invlist,
+       PL_BASS_invlist,
+       PL_BATK_invlist,
+       PL_BC__AL_invlist,
+       PL_BC__AN_invlist,
+       PL_BC__B_invlist,
+       PL_BC__BN_invlist,
+       PL_BC__CS_invlist,
+       PL_BC__EN_invlist,
+       PL_BC__ES_invlist,
+       PL_BC__ET_invlist,
+       PL_BC__FSI_invlist,
+       PL_BC__L_invlist,
+       PL_BC__LRE_invlist,
+       PL_BC__LRI_invlist,
+       PL_BC__LRO_invlist,
+       PL_BC__NSM_invlist,
+       PL_BC__ON_invlist,
+       PL_BC__PDF_invlist,
+       PL_BC__PDI_invlist,
+       PL_BC__R_invlist,
+       PL_BC__RLE_invlist,
+       PL_BC__RLI_invlist,
+       PL_BC__RLO_invlist,
+       PL_BC__S_invlist,
+       PL_BC__WS_invlist,
+       PL_BENG_invlist,
+       PL_BHKS_invlist,
+       PL_BIDIC_invlist,
+       PL_BIDIM_invlist,
+       PL_BLOCKELEMENTS_invlist,
+       PL_BOPO_invlist,
+       PL_BOPOMOFOEXT_invlist,
+       PL_BOXDRAWING_invlist,
+       PL_BPT__C_invlist,
+       PL_BPT__N_invlist,
+       PL_BPT__O_invlist,
+       PL_BRAH_invlist,
+       PL_BRAI_invlist,
+       PL_BUGI_invlist,
+       PL_BUHD_invlist,
+       PL_BYZANTINEMUSIC_invlist,
+       PL_C_invlist,
+       PL_CAKM_invlist,
+       PL_CANS_invlist,
+       PL_CARI_invlist,
+       PL_CASED_invlist,
+       PL_CCC__0_invlist,
+       PL_CCC__1_invlist,
+       PL_CCC__10_invlist,
+       PL_CCC__103_invlist,
+       PL_CCC__107_invlist,
+       PL_CCC__11_invlist,
+       PL_CCC__118_invlist,
+       PL_CCC__12_invlist,
+       PL_CCC__122_invlist,
+       PL_CCC__129_invlist,
+       PL_CCC__13_invlist,
+       PL_CCC__130_invlist,
+       PL_CCC__132_invlist,
+       PL_CCC__133_invlist,
+       PL_CCC__14_invlist,
+       PL_CCC__15_invlist,
+       PL_CCC__16_invlist,
+       PL_CCC__17_invlist,
+       PL_CCC__18_invlist,
+       PL_CCC__19_invlist,
+       PL_CCC__20_invlist,
+       PL_CCC__202_invlist,
+       PL_CCC__21_invlist,
+       PL_CCC__214_invlist,
+       PL_CCC__216_invlist,
+       PL_CCC__22_invlist,
+       PL_CCC__23_invlist,
+       PL_CCC__24_invlist,
+       PL_CCC__25_invlist,
+       PL_CCC__26_invlist,
+       PL_CCC__27_invlist,
+       PL_CCC__28_invlist,
+       PL_CCC__29_invlist,
+       PL_CCC__30_invlist,
+       PL_CCC__31_invlist,
+       PL_CCC__32_invlist,
+       PL_CCC__33_invlist,
+       PL_CCC__34_invlist,
+       PL_CCC__35_invlist,
+       PL_CCC__36_invlist,
+       PL_CCC__7_invlist,
+       PL_CCC__8_invlist,
+       PL_CCC__84_invlist,
+       PL_CCC__9_invlist,
+       PL_CCC__91_invlist,
+       PL_CCC__A_invlist,
+       PL_CCC__AL_invlist,
+       PL_CCC__AR_invlist,
+       PL_CCC__B_invlist,
+       PL_CCC__BL_invlist,
+       PL_CCC__BR_invlist,
+       PL_CCC__DA_invlist,
+       PL_CCC__DB_invlist,
+       PL_CCC__IS_invlist,
+       PL_CCC__L_invlist,
+       PL_CCC__R_invlist,
+       PL_CE_invlist,
+       PL_CF_invlist,
+       PL_CHAM_invlist,
+       PL_CHER_invlist,
+       PL_CHEROKEESUP_invlist,
+       PL_CI_invlist,
+       PL_CJK_invlist,
+       PL_CJKCOMPAT_invlist,
+       PL_CJKCOMPATFORMS_invlist,
+       PL_CJKCOMPATIDEOGRAPHS_invlist,
+       PL_CJKCOMPATIDEOGRAPHSSUP_invlist,
+       PL_CJKEXTA_invlist,
+       PL_CJKEXTB_invlist,
+       PL_CJKEXTC_invlist,
+       PL_CJKEXTD_invlist,
+       PL_CJKEXTE_invlist,
+       PL_CJKEXTF_invlist,
+       PL_CJKRADICALSSUP_invlist,
+       PL_CJKSTROKES_invlist,
+       PL_CJKSYMBOLS_invlist,
+       PL_CN_invlist,
+       PL_CO_invlist,
+       PL_COMPATJAMO_invlist,
+       PL_COMPEX_invlist,
+       PL_CONTROLPICTURES_invlist,
+       PL_COPT_invlist,
+       PL_COPTICEPACTNUMBERS_invlist,
+       PL_COUNTINGROD_invlist,
+       PL_CPRT_invlist,
+       PL_CS_invlist,
+       PL_CUNEIFORMNUMBERS_invlist,
+       PL_CURRENCYSYMBOLS_invlist,
+       PL_CWCF_invlist,
+       PL_CWCM_invlist,
+       PL_CWKCF_invlist,
+       PL_CWL_invlist,
+       PL_CWT_invlist,
+       PL_CWU_invlist,
+       PL_CYPRIOTSYLLABARY_invlist,
+       PL_CYRILLICEXTA_invlist,
+       PL_CYRILLICEXTB_invlist,
+       PL_CYRILLICEXTC_invlist,
+       PL_CYRILLICSUP_invlist,
+       PL_CYRL_invlist,
+       PL_DASH_invlist,
+       PL_DEP_invlist,
+       PL_DEVA_invlist,
+       PL_DEVANAGARIEXT_invlist,
+       PL_DI_invlist,
+       PL_DIA_invlist,
+       PL_DIACRITICALS_invlist,
+       PL_DIACRITICALSEXT_invlist,
+       PL_DIACRITICALSFORSYMBOLS_invlist,
+       PL_DIACRITICALSSUP_invlist,
+       PL_DINGBATS_invlist,
+       PL_DOMINO_invlist,
+       PL_DSRT_invlist,
+       PL_DT__CAN_invlist,
+       PL_DT__COM_invlist,
+       PL_DT__ENC_invlist,
+       PL_DT__FIN_invlist,
+       PL_DT__FONT_invlist,
+       PL_DT__FRA_invlist,
+       PL_DT__INIT_invlist,
+       PL_DT__ISO_invlist,
+       PL_DT__MED_invlist,
+       PL_DT__NAR_invlist,
+       PL_DT__NB_invlist,
+       PL_DT__NONCANON_invlist,
+       PL_DT__NONE_invlist,
+       PL_DT__SML_invlist,
+       PL_DT__SQR_invlist,
+       PL_DT__SUB_invlist,
+       PL_DT__SUP_invlist,
+       PL_DT__VERT_invlist,
+       PL_DUPL_invlist,
+       PL_EARLYDYNASTICCUNEIFORM_invlist,
+       PL_EA__A_invlist,
+       PL_EA__F_invlist,
+       PL_EA__H_invlist,
+       PL_EA__N_invlist,
+       PL_EA__NA_invlist,
+       PL_EA__W_invlist,
+       PL_EGYP_invlist,
+       PL_ELBA_invlist,
+       PL_EMOTICONS_invlist,
+       PL_ENCLOSEDALPHANUM_invlist,
+       PL_ENCLOSEDALPHANUMSUP_invlist,
+       PL_ENCLOSEDCJK_invlist,
+       PL_ENCLOSEDIDEOGRAPHICSUP_invlist,
+       PL_ETHI_invlist,
+       PL_ETHIOPICEXT_invlist,
+       PL_ETHIOPICEXTA_invlist,
+       PL_ETHIOPICSUP_invlist,
+       PL_EXT_invlist,
+       PL_GCB__CN_invlist,
+       PL_GCB__L_invlist,
+       PL_GCB__PP_invlist,
+       PL_GCB__SM_invlist,
+       PL_GCB__T_invlist,
+       PL_GCB__V_invlist,
+       PL_GCB__XX_invlist,
+       PL_GEOMETRICSHAPES_invlist,
+       PL_GEOMETRICSHAPESEXT_invlist,
+       PL_GEOR_invlist,
+       PL_GEORGIANSUP_invlist,
+       PL_GLAG_invlist,
+       PL_GLAGOLITICSUP_invlist,
+       PL_GONM_invlist,
+       PL_GOTH_invlist,
+       PL_GRAN_invlist,
+       PL_GRBASE_invlist,
+       PL_GREEKEXT_invlist,
+       PL_GREK_invlist,
+       PL_GREXT_invlist,
+       PL_GUJR_invlist,
+       PL_GURU_invlist,
+       PL_HALFANDFULLFORMS_invlist,
+       PL_HALFMARKS_invlist,
+       PL_HAN_invlist,
+       PL_HANG_invlist,
+       PL_HANO_invlist,
+       PL_HATR_invlist,
+       PL_HEBR_invlist,
+       PL_HIGHPUSURROGATES_invlist,
+       PL_HIGHSURROGATES_invlist,
+       PL_HIRA_invlist,
+       PL_HLUW_invlist,
+       PL_HMNG_invlist,
+       PL_HST__NA_invlist,
+       PL_HUNG_invlist,
+       PL_HYPHEN_invlist,
+       PL_IDC_invlist,
+       PL_IDEO_invlist,
+       PL_IDEOGRAPHICSYMBOLS_invlist,
+       PL_IDS_invlist,
+       PL_IDSB_invlist,
+       PL_IDST_invlist,
+       PL_INADLAM_invlist,
+       PL_INAHOM_invlist,
+       PL_INANATOLIANHIEROGLYPHS_invlist,
+       PL_INARABIC_invlist,
+       PL_INARMENIAN_invlist,
+       PL_INAVESTAN_invlist,
+       PL_INBALINESE_invlist,
+       PL_INBAMUM_invlist,
+       PL_INBASSAVAH_invlist,
+       PL_INBATAK_invlist,
+       PL_INBENGALI_invlist,
+       PL_INBHAIKSUKI_invlist,
+       PL_INBOPOMOFO_invlist,
+       PL_INBRAHMI_invlist,
+       PL_INBUGINESE_invlist,
+       PL_INBUHID_invlist,
+       PL_INCARIAN_invlist,
+       PL_INCAUCASIANALBANIAN_invlist,
+       PL_INCHAKMA_invlist,
+       PL_INCHAM_invlist,
+       PL_INCHEROKEE_invlist,
+       PL_INCOPTIC_invlist,
+       PL_INCUNEIFORM_invlist,
+       PL_INCYRILLIC_invlist,
+       PL_INDEVANAGARI_invlist,
+       PL_INDICNUMBERFORMS_invlist,
+       PL_INDUPLOYAN_invlist,
+       PL_INEGYPTIANHIEROGLYPHS_invlist,
+       PL_INELBASAN_invlist,
+       PL_INETHIOPIC_invlist,
+       PL_INGEORGIAN_invlist,
+       PL_INGLAGOLITIC_invlist,
+       PL_INGOTHIC_invlist,
+       PL_INGRANTHA_invlist,
+       PL_INGREEK_invlist,
+       PL_INGUJARATI_invlist,
+       PL_INGURMUKHI_invlist,
+       PL_INHANGUL_invlist,
+       PL_INHANUNOO_invlist,
+       PL_INHATRAN_invlist,
+       PL_INHEBREW_invlist,
+       PL_INHIRAGANA_invlist,
+       PL_INIDC_invlist,
+       PL_INIMPERIALARAMAIC_invlist,
+       PL_ININSCRIPTIONALPAHLAVI_invlist,
+       PL_ININSCRIPTIONALPARTHIAN_invlist,
+       PL_INJAVANESE_invlist,
+       PL_INKAITHI_invlist,
+       PL_INKANNADA_invlist,
+       PL_INKATAKANA_invlist,
+       PL_INKHAROSHTHI_invlist,
+       PL_INKHMER_invlist,
+       PL_INKHOJKI_invlist,
+       PL_INKHUDAWADI_invlist,
+       PL_INLAO_invlist,
+       PL_INLEPCHA_invlist,
+       PL_INLIMBU_invlist,
+       PL_INLINEARA_invlist,
+       PL_INLYCIAN_invlist,
+       PL_INLYDIAN_invlist,
+       PL_INMAHAJANI_invlist,
+       PL_INMALAYALAM_invlist,
+       PL_INMANDAIC_invlist,
+       PL_INMANICHAEAN_invlist,
+       PL_INMARCHEN_invlist,
+       PL_INMASARAMGONDI_invlist,
+       PL_INMEETEIMAYEK_invlist,
+       PL_INMENDEKIKAKUI_invlist,
+       PL_INMEROITICCURSIVE_invlist,
+       PL_INMIAO_invlist,
+       PL_INMODI_invlist,
+       PL_INMONGOLIAN_invlist,
+       PL_INMRO_invlist,
+       PL_INMULTANI_invlist,
+       PL_INMYANMAR_invlist,
+       PL_INNABATAEAN_invlist,
+       PL_INNEWA_invlist,
+       PL_INNEWTAILUE_invlist,
+       PL_INNKO_invlist,
+       PL_INNUSHU_invlist,
+       PL_INOGHAM_invlist,
+       PL_INOLDHUNGARIAN_invlist,
+       PL_INOLDITALIC_invlist,
+       PL_INOLDPERMIC_invlist,
+       PL_INOLDPERSIAN_invlist,
+       PL_INOLDTURKIC_invlist,
+       PL_INORIYA_invlist,
+       PL_INOSAGE_invlist,
+       PL_INOSMANYA_invlist,
+       PL_INPAHAWHHMONG_invlist,
+       PL_INPAUCINHAU_invlist,
+       PL_INPC__BOTTOM_invlist,
+       PL_INPC__BOTTOMANDLEFT_invlist,
+       PL_INPC__BOTTOMANDRIGHT_invlist,
+       PL_INPC__LEFT_invlist,
+       PL_INPC__LEFTANDRIGHT_invlist,
+       PL_INPC__NA_invlist,
+       PL_INPC__OVERSTRUCK_invlist,
+       PL_INPC__RIGHT_invlist,
+       PL_INPC__TOP_invlist,
+       PL_INPC__TOPANDBOTTOM_invlist,
+       PL_INPC__TOPANDBOTTOMANDRIGHT_invlist,
+       PL_INPC__TOPANDLEFT_invlist,
+       PL_INPC__TOPANDLEFTANDRIGHT_invlist,
+       PL_INPC__TOPANDRIGHT_invlist,
+       PL_INPHAGSPA_invlist,
+       PL_INPHOENICIAN_invlist,
+       PL_INPSALTERPAHLAVI_invlist,
+       PL_INPUNCTUATION_invlist,
+       PL_INREJANG_invlist,
+       PL_INRUNIC_invlist,
+       PL_INSAMARITAN_invlist,
+       PL_INSAURASHTRA_invlist,
+       PL_INSC__AVAGRAHA_invlist,
+       PL_INSC__BINDU_invlist,
+       PL_INSC__BRAHMIJOININGNUMBER_invlist,
+       PL_INSC__CANTILLATIONMARK_invlist,
+       PL_INSC__CONSONANT_invlist,
+       PL_INSC__CONSONANTDEAD_invlist,
+       PL_INSC__CONSONANTFINAL_invlist,
+       PL_INSC__CONSONANTHEADLETTER_invlist,
+       PL_INSC__CONSONANTKILLER_invlist,
+       PL_INSC__CONSONANTMEDIAL_invlist,
+       PL_INSC__CONSONANTPLACEHOLDER_invlist,
+       PL_INSC__CONSONANTPRECEDINGREPHA_invlist,
+       PL_INSC__CONSONANTPREFIXED_invlist,
+       PL_INSC__CONSONANTSUBJOINED_invlist,
+       PL_INSC__CONSONANTSUCCEEDINGREPHA_invlist,
+       PL_INSC__CONSONANTWITHSTACKER_invlist,
+       PL_INSC__GEMINATIONMARK_invlist,
+       PL_INSC__INVISIBLESTACKER_invlist,
+       PL_INSC__MODIFYINGLETTER_invlist,
+       PL_INSC__NONJOINER_invlist,
+       PL_INSC__NUKTA_invlist,
+       PL_INSC__NUMBER_invlist,
+       PL_INSC__NUMBERJOINER_invlist,
+       PL_INSC__OTHER_invlist,
+       PL_INSC__PUREKILLER_invlist,
+       PL_INSC__REGISTERSHIFTER_invlist,
+       PL_INSC__SYLLABLEMODIFIER_invlist,
+       PL_INSC__TONELETTER_invlist,
+       PL_INSC__TONEMARK_invlist,
+       PL_INSC__VIRAMA_invlist,
+       PL_INSC__VISARGA_invlist,
+       PL_INSC__VOWEL_invlist,
+       PL_INSC__VOWELDEPENDENT_invlist,
+       PL_INSC__VOWELINDEPENDENT_invlist,
+       PL_INSHARADA_invlist,
+       PL_INSIDDHAM_invlist,
+       PL_INSINHALA_invlist,
+       PL_INSORASOMPENG_invlist,
+       PL_INSOYOMBO_invlist,
+       PL_INSUNDANESE_invlist,
+       PL_INSYLOTINAGRI_invlist,
+       PL_INSYRIAC_invlist,
+       PL_INTAGALOG_invlist,
+       PL_INTAGBANWA_invlist,
+       PL_INTAILE_invlist,
+       PL_INTAITHAM_invlist,
+       PL_INTAIVIET_invlist,
+       PL_INTAKRI_invlist,
+       PL_INTAMIL_invlist,
+       PL_INTANGUT_invlist,
+       PL_INTELUGU_invlist,
+       PL_INTHAANA_invlist,
+       PL_INTHAI_invlist,
+       PL_INTIBETAN_invlist,
+       PL_INTIFINAGH_invlist,
+       PL_INTIRHUTA_invlist,
+       PL_INUGARITIC_invlist,
+       PL_INVAI_invlist,
+       PL_INVS_invlist,
+       PL_INWARANGCITI_invlist,
+       PL_INZANABAZARSQUARE_invlist,
+       PL_IN__10_invlist,
+       PL_IN__1_DOT_1_invlist,
+       PL_IN__2_invlist,
+       PL_IN__2_DOT_1_invlist,
+       PL_IN__3_invlist,
+       PL_IN__3_DOT_1_invlist,
+       PL_IN__3_DOT_2_invlist,
+       PL_IN__4_invlist,
+       PL_IN__4_DOT_1_invlist,
+       PL_IN__5_invlist,
+       PL_IN__5_DOT_1_invlist,
+       PL_IN__5_DOT_2_invlist,
+       PL_IN__6_invlist,
+       PL_IN__6_DOT_1_invlist,
+       PL_IN__6_DOT_2_invlist,
+       PL_IN__6_DOT_3_invlist,
+       PL_IN__7_invlist,
+       PL_IN__8_invlist,
+       PL_IN__9_invlist,
+       PL_IPAEXT_invlist,
+       PL_ITAL_invlist,
+       PL_JAMO_invlist,
+       PL_JAMOEXTA_invlist,
+       PL_JAMOEXTB_invlist,
+       PL_JAVA_invlist,
+       PL_JG__AFRICANFEH_invlist,
+       PL_JG__AFRICANNOON_invlist,
+       PL_JG__AFRICANQAF_invlist,
+       PL_JG__AIN_invlist,
+       PL_JG__ALAPH_invlist,
+       PL_JG__ALEF_invlist,
+       PL_JG__BEH_invlist,
+       PL_JG__BETH_invlist,
+       PL_JG__BURUSHASKIYEHBARREE_invlist,
+       PL_JG__DAL_invlist,
+       PL_JG__DALATHRISH_invlist,
+       PL_JG__E_invlist,
+       PL_JG__FARSIYEH_invlist,
+       PL_JG__FE_invlist,
+       PL_JG__FEH_invlist,
+       PL_JG__FINALSEMKATH_invlist,
+       PL_JG__GAF_invlist,
+       PL_JG__GAMAL_invlist,
+       PL_JG__HAH_invlist,
+       PL_JG__HAMZAONHEHGOAL_invlist,
+       PL_JG__HE_invlist,
+       PL_JG__HEH_invlist,
+       PL_JG__HEHGOAL_invlist,
+       PL_JG__HETH_invlist,
+       PL_JG__KAF_invlist,
+       PL_JG__KAPH_invlist,
+       PL_JG__KHAPH_invlist,
+       PL_JG__KNOTTEDHEH_invlist,
+       PL_JG__LAM_invlist,
+       PL_JG__LAMADH_invlist,
+       PL_JG__MALAYALAMBHA_invlist,
+       PL_JG__MALAYALAMJA_invlist,
+       PL_JG__MALAYALAMLLA_invlist,
+       PL_JG__MALAYALAMLLLA_invlist,
+       PL_JG__MALAYALAMNGA_invlist,
+       PL_JG__MALAYALAMNNA_invlist,
+       PL_JG__MALAYALAMNNNA_invlist,
+       PL_JG__MALAYALAMNYA_invlist,
+       PL_JG__MALAYALAMRA_invlist,
+       PL_JG__MALAYALAMSSA_invlist,
+       PL_JG__MALAYALAMTTA_invlist,
+       PL_JG__MANICHAEANALEPH_invlist,
+       PL_JG__MANICHAEANAYIN_invlist,
+       PL_JG__MANICHAEANBETH_invlist,
+       PL_JG__MANICHAEANDALETH_invlist,
+       PL_JG__MANICHAEANDHAMEDH_invlist,
+       PL_JG__MANICHAEANFIVE_invlist,
+       PL_JG__MANICHAEANGIMEL_invlist,
+       PL_JG__MANICHAEANHETH_invlist,
+       PL_JG__MANICHAEANHUNDRED_invlist,
+       PL_JG__MANICHAEANKAPH_invlist,
+       PL_JG__MANICHAEANLAMEDH_invlist,
+       PL_JG__MANICHAEANMEM_invlist,
+       PL_JG__MANICHAEANNUN_invlist,
+       PL_JG__MANICHAEANONE_invlist,
+       PL_JG__MANICHAEANPE_invlist,
+       PL_JG__MANICHAEANQOPH_invlist,
+       PL_JG__MANICHAEANRESH_invlist,
+       PL_JG__MANICHAEANSADHE_invlist,
+       PL_JG__MANICHAEANSAMEKH_invlist,
+       PL_JG__MANICHAEANTAW_invlist,
+       PL_JG__MANICHAEANTEN_invlist,
+       PL_JG__MANICHAEANTETH_invlist,
+       PL_JG__MANICHAEANTHAMEDH_invlist,
+       PL_JG__MANICHAEANTWENTY_invlist,
+       PL_JG__MANICHAEANWAW_invlist,
+       PL_JG__MANICHAEANYODH_invlist,
+       PL_JG__MANICHAEANZAYIN_invlist,
+       PL_JG__MEEM_invlist,
+       PL_JG__MIM_invlist,
+       PL_JG__NOJOININGGROUP_invlist,
+       PL_JG__NOON_invlist,
+       PL_JG__NUN_invlist,
+       PL_JG__NYA_invlist,
+       PL_JG__PE_invlist,
+       PL_JG__QAF_invlist,
+       PL_JG__QAPH_invlist,
+       PL_JG__REH_invlist,
+       PL_JG__REVERSEDPE_invlist,
+       PL_JG__ROHINGYAYEH_invlist,
+       PL_JG__SAD_invlist,
+       PL_JG__SADHE_invlist,
+       PL_JG__SEEN_invlist,
+       PL_JG__SEMKATH_invlist,
+       PL_JG__SHIN_invlist,
+       PL_JG__STRAIGHTWAW_invlist,
+       PL_JG__SWASHKAF_invlist,
+       PL_JG__SYRIACWAW_invlist,
+       PL_JG__TAH_invlist,
+       PL_JG__TAW_invlist,
+       PL_JG__TEHMARBUTA_invlist,
+       PL_JG__TETH_invlist,
+       PL_JG__WAW_invlist,
+       PL_JG__YEH_invlist,
+       PL_JG__YEHBARREE_invlist,
+       PL_JG__YEHWITHTAIL_invlist,
+       PL_JG__YUDH_invlist,
+       PL_JG__YUDHHE_invlist,
+       PL_JG__ZAIN_invlist,
+       PL_JG__ZHAIN_invlist,
+       PL_JOINC_invlist,
+       PL_JT__C_invlist,
+       PL_JT__D_invlist,
+       PL_JT__L_invlist,
+       PL_JT__R_invlist,
+       PL_JT__T_invlist,
+       PL_JT__U_invlist,
+       PL_KALI_invlist,
+       PL_KANA_invlist,
+       PL_KANAEXTA_invlist,
+       PL_KANASUP_invlist,
+       PL_KANBUN_invlist,
+       PL_KANGXI_invlist,
+       PL_KATAKANAEXT_invlist,
+       PL_KHAR_invlist,
+       PL_KHMERSYMBOLS_invlist,
+       PL_KHMR_invlist,
+       PL_KHOJ_invlist,
+       PL_KNDA_invlist,
+       PL_KTHI_invlist,
+       PL_L_invlist,
+       PL_LANA_invlist,
+       PL_LAO_invlist,
+       PL_LATIN1_invlist,
+       PL_LATINEXTA_invlist,
+       PL_LATINEXTADDITIONAL_invlist,
+       PL_LATINEXTB_invlist,
+       PL_LATINEXTC_invlist,
+       PL_LATINEXTD_invlist,
+       PL_LATINEXTE_invlist,
+       PL_LATN_invlist,
+       PL_LB__AI_invlist,
+       PL_LB__AL_invlist,
+       PL_LB__B2_invlist,
+       PL_LB__BA_invlist,
+       PL_LB__BB_invlist,
+       PL_LB__BK_invlist,
+       PL_LB__CB_invlist,
+       PL_LB__CJ_invlist,
+       PL_LB__CL_invlist,
+       PL_LB__CM_invlist,
+       PL_LB__CP_invlist,
+       PL_LB__CR_invlist,
+       PL_LB__EB_invlist,
+       PL_LB__EM_invlist,
+       PL_LB__EX_invlist,
+       PL_LB__GL_invlist,
+       PL_LB__H2_invlist,
+       PL_LB__H3_invlist,
+       PL_LB__HL_invlist,
+       PL_LB__HY_invlist,
+       PL_LB__ID_invlist,
+       PL_LB__IN_invlist,
+       PL_LB__IS_invlist,
+       PL_LB__LF_invlist,
+       PL_LB__NL_invlist,
+       PL_LB__NS_invlist,
+       PL_LB__NU_invlist,
+       PL_LB__OP_invlist,
+       PL_LB__PO_invlist,
+       PL_LB__PR_invlist,
+       PL_LB__QU_invlist,
+       PL_LB__SA_invlist,
+       PL_LB__SG_invlist,
+       PL_LB__SP_invlist,
+       PL_LB__SY_invlist,
+       PL_LB__WJ_invlist,
+       PL_LB__XX_invlist,
+       PL_LB__ZW_invlist,
+       PL_LB__ZWJ_invlist,
+       PL_LEPC_invlist,
+       PL_LETTERLIKESYMBOLS_invlist,
+       PL_LIMB_invlist,
+       PL_LINA_invlist,
+       PL_LINB_invlist,
+       PL_LINEARBIDEOGRAMS_invlist,
+       PL_LINEARBSYLLABARY_invlist,
+       PL_LISU_invlist,
+       PL_LL_invlist,
+       PL_LM_invlist,
+       PL_LO_invlist,
+       PL_LOE_invlist,
+       PL_LOWSURROGATES_invlist,
+       PL_LT_invlist,
+       PL_LU_invlist,
+       PL_LYCI_invlist,
+       PL_LYDI_invlist,
+       PL_L_AMP__invlist,
+       PL_M_invlist,
+       PL_MAHJ_invlist,
+       PL_MAHJONG_invlist,
+       PL_MAND_invlist,
+       PL_MANI_invlist,
+       PL_MARC_invlist,
+       PL_MATH_invlist,
+       PL_MATHALPHANUM_invlist,
+       PL_MATHOPERATORS_invlist,
+       PL_MC_invlist,
+       PL_ME_invlist,
+       PL_MEETEIMAYEKEXT_invlist,
+       PL_MEND_invlist,
+       PL_MERC_invlist,
+       PL_MERO_invlist,
+       PL_MIAO_invlist,
+       PL_MISCARROWS_invlist,
+       PL_MISCMATHSYMBOLSA_invlist,
+       PL_MISCMATHSYMBOLSB_invlist,
+       PL_MISCPICTOGRAPHS_invlist,
+       PL_MISCSYMBOLS_invlist,
+       PL_MISCTECHNICAL_invlist,
+       PL_MLYM_invlist,
+       PL_MN_invlist,
+       PL_MODI_invlist,
+       PL_MODIFIERLETTERS_invlist,
+       PL_MODIFIERTONELETTERS_invlist,
+       PL_MONG_invlist,
+       PL_MONGOLIANSUP_invlist,
+       PL_MRO_invlist,
+       PL_MTEI_invlist,
+       PL_MULT_invlist,
+       PL_MUSIC_invlist,
+       PL_MYANMAREXTA_invlist,
+       PL_MYANMAREXTB_invlist,
+       PL_MYMR_invlist,
+       PL_N_invlist,
+       PL_NARB_invlist,
+       PL_NB_invlist,
+       PL_NBAT_invlist,
+       PL_NCHAR_invlist,
+       PL_NEWA_invlist,
+       PL_NFCQC__M_invlist,
+       PL_NFCQC__Y_invlist,
+       PL_NFDQC__Y_invlist,
+       PL_NFKCQC__N_invlist,
+       PL_NFKCQC__Y_invlist,
+       PL_NFKDQC__N_invlist,
+       PL_NKO_invlist,
+       PL_NL_invlist,
+       PL_NO_invlist,
+       PL_NSHU_invlist,
+       PL_NT__DI_invlist,
+       PL_NT__NU_invlist,
+       PL_NUMBERFORMS_invlist,
+       PL_NV__0_invlist,
+       PL_NV__1_invlist,
+       PL_NV__10_invlist,
+       PL_NV__100_invlist,
+       PL_NV__1000_invlist,
+       PL_NV__10000_invlist,
+       PL_NV__100000_invlist,
+       PL_NV__1000000_invlist,
+       PL_NV__100000000_invlist,
+       PL_NV__10000000000_invlist,
+       PL_NV__1000000000000_invlist,
+       PL_NV__11_invlist,
+       PL_NV__11_SLASH_12_invlist,
+       PL_NV__11_SLASH_2_invlist,
+       PL_NV__12_invlist,
+       PL_NV__13_invlist,
+       PL_NV__13_SLASH_2_invlist,
+       PL_NV__14_invlist,
+       PL_NV__15_invlist,
+       PL_NV__15_SLASH_2_invlist,
+       PL_NV__16_invlist,
+       PL_NV__17_invlist,
+       PL_NV__17_SLASH_2_invlist,
+       PL_NV__18_invlist,
+       PL_NV__19_invlist,
+       PL_NV__1_SLASH_10_invlist,
+       PL_NV__1_SLASH_12_invlist,
+       PL_NV__1_SLASH_16_invlist,
+       PL_NV__1_SLASH_160_invlist,
+       PL_NV__1_SLASH_2_invlist,
+       PL_NV__1_SLASH_20_invlist,
+       PL_NV__1_SLASH_3_invlist,
+       PL_NV__1_SLASH_4_invlist,
+       PL_NV__1_SLASH_40_invlist,
+       PL_NV__1_SLASH_5_invlist,
+       PL_NV__1_SLASH_6_invlist,
+       PL_NV__1_SLASH_7_invlist,
+       PL_NV__1_SLASH_8_invlist,
+       PL_NV__1_SLASH_9_invlist,
+       PL_NV__2_invlist,
+       PL_NV__20_invlist,
+       PL_NV__200_invlist,
+       PL_NV__2000_invlist,
+       PL_NV__20000_invlist,
+       PL_NV__200000_invlist,
+       PL_NV__21_invlist,
+       PL_NV__216000_invlist,
+       PL_NV__22_invlist,
+       PL_NV__23_invlist,
+       PL_NV__24_invlist,
+       PL_NV__25_invlist,
+       PL_NV__26_invlist,
+       PL_NV__27_invlist,
+       PL_NV__28_invlist,
+       PL_NV__29_invlist,
+       PL_NV__2_SLASH_3_invlist,
+       PL_NV__2_SLASH_5_invlist,
+       PL_NV__3_invlist,
+       PL_NV__30_invlist,
+       PL_NV__300_invlist,
+       PL_NV__3000_invlist,
+       PL_NV__30000_invlist,
+       PL_NV__300000_invlist,
+       PL_NV__31_invlist,
+       PL_NV__32_invlist,
+       PL_NV__33_invlist,
+       PL_NV__34_invlist,
+       PL_NV__35_invlist,
+       PL_NV__36_invlist,
+       PL_NV__37_invlist,
+       PL_NV__38_invlist,
+       PL_NV__39_invlist,
+       PL_NV__3_SLASH_16_invlist,
+       PL_NV__3_SLASH_2_invlist,
+       PL_NV__3_SLASH_20_invlist,
+       PL_NV__3_SLASH_4_invlist,
+       PL_NV__3_SLASH_5_invlist,
+       PL_NV__3_SLASH_8_invlist,
+       PL_NV__3_SLASH_80_invlist,
+       PL_NV__4_invlist,
+       PL_NV__40_invlist,
+       PL_NV__400_invlist,
+       PL_NV__4000_invlist,
+       PL_NV__40000_invlist,
+       PL_NV__400000_invlist,
+       PL_NV__41_invlist,
+       PL_NV__42_invlist,
+       PL_NV__43_invlist,
+       PL_NV__432000_invlist,
+       PL_NV__44_invlist,
+       PL_NV__45_invlist,
+       PL_NV__46_invlist,
+       PL_NV__47_invlist,
+       PL_NV__48_invlist,
+       PL_NV__49_invlist,
+       PL_NV__4_SLASH_5_invlist,
+       PL_NV__5_invlist,
+       PL_NV__50_invlist,
+       PL_NV__500_invlist,
+       PL_NV__5000_invlist,
+       PL_NV__50000_invlist,
+       PL_NV__500000_invlist,
+       PL_NV__5_SLASH_12_invlist,
+       PL_NV__5_SLASH_2_invlist,
+       PL_NV__5_SLASH_6_invlist,
+       PL_NV__5_SLASH_8_invlist,
+       PL_NV__6_invlist,
+       PL_NV__60_invlist,
+       PL_NV__600_invlist,
+       PL_NV__6000_invlist,
+       PL_NV__60000_invlist,
+       PL_NV__600000_invlist,
+       PL_NV__7_invlist,
+       PL_NV__70_invlist,
+       PL_NV__700_invlist,
+       PL_NV__7000_invlist,
+       PL_NV__70000_invlist,
+       PL_NV__700000_invlist,
+       PL_NV__7_SLASH_12_invlist,
+       PL_NV__7_SLASH_2_invlist,
+       PL_NV__7_SLASH_8_invlist,
+       PL_NV__8_invlist,
+       PL_NV__80_invlist,
+       PL_NV__800_invlist,
+       PL_NV__8000_invlist,
+       PL_NV__80000_invlist,
+       PL_NV__800000_invlist,
+       PL_NV__9_invlist,
+       PL_NV__90_invlist,
+       PL_NV__900_invlist,
+       PL_NV__9000_invlist,
+       PL_NV__90000_invlist,
+       PL_NV__900000_invlist,
+       PL_NV__9_SLASH_2_invlist,
+       PL_NV__NAN_invlist,
+       PL_NV___MINUS_1_SLASH_2_invlist,
+       PL_OCR_invlist,
+       PL_OGAM_invlist,
+       PL_OLCK_invlist,
+       PL_ORKH_invlist,
+       PL_ORNAMENTALDINGBATS_invlist,
+       PL_ORYA_invlist,
+       PL_OSGE_invlist,
+       PL_OSMA_invlist,
+       PL_P_invlist,
+       PL_PALM_invlist,
+       PL_PATSYN_invlist,
+       PL_PATWS_invlist,
+       PL_PAUC_invlist,
+       PL_PC_invlist,
+       PL_PCM_invlist,
+       PL_PD_invlist,
+       PL_PE_invlist,
+       PL_PERM_invlist,
+       PL_PF_invlist,
+       PL_PHAG_invlist,
+       PL_PHAISTOS_invlist,
+       PL_PHLI_invlist,
+       PL_PHLP_invlist,
+       PL_PHNX_invlist,
+       PL_PHONETICEXT_invlist,
+       PL_PHONETICEXTSUP_invlist,
+       PL_PI_invlist,
+       PL_PLAYINGCARDS_invlist,
+       PL_PO_invlist,
+       PL_POSIXALNUM_invlist,
+       PL_POSIXALPHA_invlist,
+       PL_POSIXBLANK_invlist,
+       PL_POSIXCNTRL_invlist,
+       PL_POSIXDIGIT_invlist,
+       PL_POSIXGRAPH_invlist,
+       PL_POSIXLOWER_invlist,
+       PL_POSIXPRINT_invlist,
+       PL_POSIXPUNCT_invlist,
+       PL_POSIXSPACE_invlist,
+       PL_POSIXUPPER_invlist,
+       PL_POSIXWORD_invlist,
+       PL_POSIXXDIGIT_invlist,
+       PL_PRTI_invlist,
+       PL_PS_invlist,
+       PL_PUA_invlist,
+       PL_QAAI_invlist,
+       PL_QMARK_invlist,
+       PL_RADICAL_invlist,
+       PL_RI_invlist,
+       PL_RJNG_invlist,
+       PL_RUMI_invlist,
+       PL_RUNR_invlist,
+       PL_S_invlist,
+       PL_SAMR_invlist,
+       PL_SARB_invlist,
+       PL_SAUR_invlist,
+       PL_SB__AT_invlist,
+       PL_SB__CL_invlist,
+       PL_SB__EX_invlist,
+       PL_SB__FO_invlist,
+       PL_SB__LE_invlist,
+       PL_SB__LO_invlist,
+       PL_SB__SC_invlist,
+       PL_SB__SE_invlist,
+       PL_SB__SP_invlist,
+       PL_SB__ST_invlist,
+       PL_SB__UP_invlist,
+       PL_SB__XX_invlist,
+       PL_SC_invlist,
+       PL_SC__ADLM_invlist,
+       PL_SC__ARAB_invlist,
+       PL_SC__ARMN_invlist,
+       PL_SC__BENG_invlist,
+       PL_SC__BOPO_invlist,
+       PL_SC__BUGI_invlist,
+       PL_SC__BUHD_invlist,
+       PL_SC__CAKM_invlist,
+       PL_SC__COPT_invlist,
+       PL_SC__CPRT_invlist,
+       PL_SC__CYRL_invlist,
+       PL_SC__DEVA_invlist,
+       PL_SC__DUPL_invlist,
+       PL_SC__GEOR_invlist,
+       PL_SC__GLAG_invlist,
+       PL_SC__GRAN_invlist,
+       PL_SC__GREK_invlist,
+       PL_SC__GUJR_invlist,
+       PL_SC__GURU_invlist,
+       PL_SC__HAN_invlist,
+       PL_SC__HANG_invlist,
+       PL_SC__HANO_invlist,
+       PL_SC__HIRA_invlist,
+       PL_SC__JAVA_invlist,
+       PL_SC__KALI_invlist,
+       PL_SC__KANA_invlist,
+       PL_SC__KHOJ_invlist,
+       PL_SC__KNDA_invlist,
+       PL_SC__KTHI_invlist,
+       PL_SC__LATN_invlist,
+       PL_SC__LIMB_invlist,
+       PL_SC__LINA_invlist,
+       PL_SC__LINB_invlist,
+       PL_SC__MAHJ_invlist,
+       PL_SC__MAND_invlist,
+       PL_SC__MANI_invlist,
+       PL_SC__MLYM_invlist,
+       PL_SC__MODI_invlist,
+       PL_SC__MONG_invlist,
+       PL_SC__MULT_invlist,
+       PL_SC__MYMR_invlist,
+       PL_SC__ORYA_invlist,
+       PL_SC__PERM_invlist,
+       PL_SC__PHAG_invlist,
+       PL_SC__PHLP_invlist,
+       PL_SC__QAAI_invlist,
+       PL_SC__SHRD_invlist,
+       PL_SC__SIND_invlist,
+       PL_SC__SINH_invlist,
+       PL_SC__SYLO_invlist,
+       PL_SC__SYRC_invlist,
+       PL_SC__TAGB_invlist,
+       PL_SC__TAKR_invlist,
+       PL_SC__TALE_invlist,
+       PL_SC__TAML_invlist,
+       PL_SC__TELU_invlist,
+       PL_SC__TGLG_invlist,
+       PL_SC__THAA_invlist,
+       PL_SC__TIRH_invlist,
+       PL_SC__YI_invlist,
+       PL_SC__ZYYY_invlist,
+       PL_SD_invlist,
+       PL_SGNW_invlist,
+       PL_SHAW_invlist,
+       PL_SHORTHANDFORMATCONTROLS_invlist,
+       PL_SHRD_invlist,
+       PL_SIDD_invlist,
+       PL_SIND_invlist,
+       PL_SINH_invlist,
+       PL_SINHALAARCHAICNUMBERS_invlist,
+       PL_SK_invlist,
+       PL_SM_invlist,
+       PL_SMALLFORMS_invlist,
+       PL_SO_invlist,
+       PL_SORA_invlist,
+       PL_SOYO_invlist,
+       PL_SPECIALS_invlist,
+       PL_STERM_invlist,
+       PL_SUND_invlist,
+       PL_SUNDANESESUP_invlist,
+       PL_SUPARROWSA_invlist,
+       PL_SUPARROWSB_invlist,
+       PL_SUPARROWSC_invlist,
+       PL_SUPERANDSUB_invlist,
+       PL_SUPMATHOPERATORS_invlist,
+       PL_SUPPUAA_invlist,
+       PL_SUPPUAB_invlist,
+       PL_SUPPUNCTUATION_invlist,
+       PL_SUPSYMBOLSANDPICTOGRAPHS_invlist,
+       PL_SUTTONSIGNWRITING_invlist,
+       PL_SYLO_invlist,
+       PL_SYRC_invlist,
+       PL_SYRIACSUP_invlist,
+       PL_TAGB_invlist,
+       PL_TAGS_invlist,
+       PL_TAIXUANJING_invlist,
+       PL_TAKR_invlist,
+       PL_TALE_invlist,
+       PL_TALU_invlist,
+       PL_TAML_invlist,
+       PL_TANG_invlist,
+       PL_TANGUTCOMPONENTS_invlist,
+       PL_TAVT_invlist,
+       PL_TELU_invlist,
+       PL_TERM_invlist,
+       PL_TFNG_invlist,
+       PL_TGLG_invlist,
+       PL_THAA_invlist,
+       PL_THAI_invlist,
+       PL_TIBT_invlist,
+       PL_TIRH_invlist,
+       PL_TRANSPORTANDMAP_invlist,
+       PL_UCAS_invlist,
+       PL_UCASEXT_invlist,
+       PL_UGAR_invlist,
+       PL_UIDEO_invlist,
+       PL_VAI_invlist,
+       PL_VEDICEXT_invlist,
+       PL_VERTICALFORMS_invlist,
+       PL_VERTSPACE_invlist,
+       PL_VO__R_invlist,
+       PL_VO__TR_invlist,
+       PL_VO__TU_invlist,
+       PL_VO__U_invlist,
+       PL_VS_invlist,
+       PL_VSSUP_invlist,
+       PL_WARA_invlist,
+       PL_WB__DQ_invlist,
+       PL_WB__EB_invlist,
+       PL_WB__EBG_invlist,
+       PL_WB__EX_invlist,
+       PL_WB__EXTEND_invlist,
+       PL_WB__FO_invlist,
+       PL_WB__GAZ_invlist,
+       PL_WB__KA_invlist,
+       PL_WB__LE_invlist,
+       PL_WB__MB_invlist,
+       PL_WB__ML_invlist,
+       PL_WB__MN_invlist,
+       PL_WB__NL_invlist,
+       PL_WB__NU_invlist,
+       PL_WB__SQ_invlist,
+       PL_WB__XX_invlist,
+       PL_XIDC_invlist,
+       PL_XIDS_invlist,
+       PL_XPEO_invlist,
+       PL_XPOSIXALNUM_invlist,
+       PL_XPOSIXALPHA_invlist,
+       PL_XPOSIXBLANK_invlist,
+       PL_XPOSIXCNTRL_invlist,
+       PL_XPOSIXDIGIT_invlist,
+       PL_XPOSIXGRAPH_invlist,
+       PL_XPOSIXLOWER_invlist,
+       PL_XPOSIXPRINT_invlist,
+       PL_XPOSIXPUNCT_invlist,
+       PL_XPOSIXSPACE_invlist,
+       PL_XPOSIXUPPER_invlist,
+       PL_XPOSIXWORD_invlist,
+       PL_XPOSIXXDIGIT_invlist,
+       PL_XSUX_invlist,
+       PL_YI_invlist,
+       PL_YIJING_invlist,
+       PL_YIRADICALS_invlist,
+       PL_YISYLLABLES_invlist,
+       PL_Z_invlist,
+       PL_ZANB_invlist,
+       PL_ZL_invlist,
+       PL_ZP_invlist,
+       PL_ZS_invlist,
+       PL_ZYYY_invlist,
+       PL_ZZZZ_invlist,
+       PL__PERL_ANY_FOLDS_invlist,
+       PL__PERL_CHARNAME_BEGIN_invlist,
+       PL__PERL_CHARNAME_CONTINUE_invlist,
+       PL__PERL_FOLDS_TO_MULTI_CHAR_invlist,
+       PL__PERL_IDCONT_invlist,
+       PL__PERL_IDSTART_invlist,
+       PL__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START_invlist,
+       PL__PERL_PROBLEMATIC_LOCALE_FOLDS_invlist,
+       PL__PERL_QUOTEMETA_invlist
+};
+
 #endif /* defined(PERL_IN_UTF8_C) */
 
 #if defined(PERL_IN_REGEXEC_C)
@@ -372401,5 +380093,5 @@ static const U8 WB_table[24][24] = {
  * ba5b13123afb59ea004c14fcbac80b5ff428c5b8f1b84bf8602b4ffb7da0407f lib/unicore/mktables
  * 21653d2744fdd071f9ef138c805393901bb9547cf3e777ebf50215a191f986ea lib/unicore/version
  * 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl
- * b8434a44f680a0ac7558de502d188eb948b4d2ad7efcc3113a40d6c0e1273f43 regen/mk_invlists.pl
+ * 0f06ebd78d0a3bb934291ab29f490d4cdab06bbb93c078265cf6c92308eab9e5 regen/mk_invlists.pl
  * ex: set ro: */
index 454a380..f6325d9 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -984,6 +984,7 @@ EMiR        |char*|form_short_octal_warning|NN const char * const s  \
                                |const STRLEN len
 EiRn   |I32    |regcurly       |NN const char *s
 #endif
+Epn    |int    |uniprop_lookup |NN const char * tokstr|const Size_t len
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
 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
diff --git a/embed.h b/embed.h
index fb93ebc..0f03a8e 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define sv_only_taint_gmagic   S_sv_only_taint_gmagic
 #define swash_fetch(a,b,c)     Perl_swash_fetch(aTHX_ a,b,c)
 #define swash_init(a,b,c,d,e)  Perl_swash_init(aTHX_ a,b,c,d,e)
+#define uniprop_lookup         Perl_uniprop_lookup
 #define utf16_to_utf8(a,b,c,d) Perl_utf16_to_utf8(aTHX_ a,b,c,d)
 #define utf16_to_utf8_reversed(a,b,c,d)        Perl_utf16_to_utf8_reversed(aTHX_ a,b,c,d)
 #define validate_proto(a,b,c,d)        Perl_validate_proto(aTHX_ a,b,c,d)
diff --git a/proto.h b/proto.h
index c91141b..556892e 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -3755,6 +3755,9 @@ PERL_CALLCONV UV  Perl_to_utf8_upper(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
 
 PERL_CALLCONV bool     Perl_try_amagic_bin(pTHX_ int method, int flags);
 PERL_CALLCONV bool     Perl_try_amagic_un(pTHX_ int method, int flags);
+PERL_CALLCONV int      Perl_uniprop_lookup(const char * tokstr, const Size_t len);
+#define PERL_ARGS_ASSERT_UNIPROP_LOOKUP        \
+       assert(tokstr)
 #ifndef NO_MATHOMS
 PERL_CALLCONV SSize_t  Perl_unpack_str(pTHX_ const char *pat, const char *patend, const char *s, const char *strbeg, const char *strend, char **new_s, I32 ocnt, U32 flags);
 #define PERL_ARGS_ASSERT_UNPACK_STR    \
index a8023db..800ab2d 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -16757,13 +16757,6 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                    while (isSPACE(*(RExC_parse + n - 1)))
                        n--;
 
-                    for (i = RExC_parse; i < RExC_parse + n; i++) {
-                        if (isCNTRL(*i) && *i != '\t') {
-                            char * name = Perl_form(aTHX_ "%.*s", (int)n, RExC_parse);
-                            RExC_parse = e + 1;
-                            vFAIL2("Can't find Unicode property definition \"%s\"", name);
-                        }
-                    }
                }   /* The \p isn't immediately followed by a '{' */
                else if (! isALPHA(*RExC_parse)) {
                     RExC_parse += (UTF) ? UTF8SKIP(RExC_parse) : 1;
@@ -16797,6 +16790,14 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                      * 2f833f5208e26b208886e51e09e2c072b5eabb46 */
                     name = savepv(Perl_form(aTHX_ "%.*s", (int)n, RExC_parse));
                     SAVEFREEPV(name);
+
+                    for (i = RExC_parse; i < RExC_parse + n; i++) {
+                        if (isCNTRL(*i) && *i != '\t') {
+                            RExC_parse = e + 1;
+                            vFAIL2("Can't find Unicode property definition \"%s\"", name);
+                        }
+                    }
+
                     if (FOLD) {
                         lookup_name = savepv(Perl_form(aTHX_ "__%s_i", name));
 
@@ -16921,7 +16922,6 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                             warn_super = TRUE;
                         }
 
-
                         /* Invert if asking for the complement */
                         if (value == 'P') {
                            _invlist_union_complement_2nd(properties,
index 3eb05b5..c9e05a8 100644 (file)
@@ -32,6 +32,7 @@ my $VERSION_DATA_STRUCTURE_TYPE = 148565664;
 # integer or float
 my $numeric_re = qr/ ^ -? \d+ (:? \. \d+ )? $ /ax;
 
+my @keywords;
 my $table_name_prefix = "PL_";
 
 # Matches valid C language enum names: begins with ASCII alphabetic, then any
@@ -77,6 +78,14 @@ my %wb_abbreviations;
 
 my @a2n;
 
+my %prop_name_aliases;
+# Invert this hash so that for each canonical name, we get a list of things
+# that map to it (excluding itself)
+foreach my $name (sort keys %utf8::loose_property_name_of) {
+    my $canonical = $utf8::loose_property_name_of{$name};
+    push @{$prop_name_aliases{$canonical}},  $name if $canonical ne $name;
+}
+
 # Output these tables in the same vicinity as each other, so that will get
 # paged in at about the same time
 my %keep_together = (
@@ -2178,9 +2187,8 @@ foreach my $property (sort
     $tag = $utf8::stricter_to_file_of{$property} unless defined $tag;
 
     # The tag may contain an '!' meaning it is identical to the one formed
-    # by removing the !, except that it is inverted, so we don't need a
-    # table for it
-    next if $tag =~ s/!//;
+    # by removing the !, except that it is inverted.
+    my $inverted = $tag =~ s/!//;
 
     # The list of 'prop=value' entries that this single entry expands to
     my @this_entries;
@@ -2189,18 +2197,84 @@ foreach my $property (sort
     # thing if there is no '='
     my ($lhs, $rhs) = $property =~ / ( [^=]* ) ( =? .*) /x;
 
-    if (! exists $enums{$tag}) {
+    # $lhs then becomes the property name.  See if there are any synonyms
+    # for this property.
+    if (exists $prop_name_aliases{$lhs}) {
+
+        # If so, do the combinatorics so that a new entry is added for
+        # each legal property combined with the property value (which is
+        # $rhs)
+        foreach my $alias (@{$prop_name_aliases{$lhs}}) {
+
+            # But, there are some ambiguities, like 'script' is a synonym
+            # for 'sc', and 'sc' can stand alone, meaning something
+            # entirely different than 'script'.  'script' cannot stand
+            # alone.  Don't add if the potential new lhs is in the hash of
+            # stand-alone properties.
+            no warnings 'once';
+            next if $rhs eq "" &&  grep { $alias eq $_ }
+                                    keys %utf8::loose_property_to_file_of;
+
+            my $new_entry = $alias . $rhs;
+            push @this_entries, $new_entry
+                            unless grep { $_ eq $new_entry } @this_entries;
+        }
+    }
+
+    # Above, we added the synonyms for the base entry we're now
+    # processing.  But we haven't dealt with it yet.  If we already have a
+    # property with the identical characteristics, this becomes just a
+    # synonym for it.
+    if (exists $enums{$tag}) {
+        push @this_entries, $property;
+    }
+    else { # Otherwise, create a new entry.
+
         # Add to the list of properties to generate inversion lists for.
         push @bin_props, uc $property;
 
+        # Create a rule for the parser
+        push @keywords, $property unless grep { $property eq $_ } @keywords;
+
         # And create an enum for it.
         $enums{$tag} = $table_name_prefix . uc sanitize_name($property);
+
+        # Some properties are deprecated.  This hash tells us so, and the
+        # warning message to raise if they are used.
+        if (exists $utf8::why_deprecated{$tag}) {
+            $deprecated_tags{$enums{$tag}} = scalar @deprecated_messages;
+            push @deprecated_messages, $utf8::why_deprecated{$tag};
+        }
+
+        # Our sort above should have made sure that we see the
+        # non-inverted version first, but this makes sure.
+        warn "$property is inverted!!!" if $inverted;
+    }
+
+    # Everything else is #defined to be the base enum, inversion is
+    # indicated by negating the value.
+    my $defined_to = "";
+    $defined_to .= "-" if $inverted;
+    $defined_to .= $enums{$tag};
+
+    # Go through the entries that evaluate to this.
+    foreach my $define (@this_entries) {
+
+        # There is a rule for the parser for each.
+        push @keywords, $define unless grep { $define eq $_ } @keywords;
+
+        # And a #define for each to this.
+        push @bin_prop_defines, "#define "
+                                . $table_name_prefix
+                                . uc(sanitize_name($define))
+                                . "   $defined_to";
     }
 }
 
 @bin_props = sort {  exists $keep_together{lc $b} <=> exists $keep_together{lc $a}
                    or $a cmp $b
                   } @bin_props;
+@bin_prop_defines = sort @bin_prop_defines;
 push @props, @bin_props;
 
 foreach my $prop (@props) {
@@ -2594,6 +2668,63 @@ foreach my $prop (@props) {
     }
 }
 
+switch_pound_if ('binary_property_tables', 'PERL_IN_UTF8_C');
+
+print $out_fh "\nconst char * deprecated_property_msgs[] = {\n\t";
+print $out_fh join ",\n\t", map { "\"$_\"" } @deprecated_messages;
+print $out_fh "\n};\n";
+
+switch_pound_if ('binary_property_tables', [ 'PERL_IN_UTF8_C',
+                                             'PERL_IN_UNI_KEYWORDS_C',
+                                            ]);
+
+my @enums = sort values %enums;
+
+# Save a copy of these before modification
+my @invlist_names = map { "${_}_invlist" } @enums;
+
+# Post-process the enums for deprecated properties.
+if (scalar keys %deprecated_tags) {
+    my $seen_deprecated = 0;
+    foreach my $enum (@enums) {
+        if (grep { $_ eq $enum } keys %deprecated_tags) {
+
+            # Change the enum name for this deprecated property to a
+            # munged one to act as a placeholder in the typedef.  Then
+            # make the real name be a #define whose value is such that
+            # its modulus with the number of enums yields the index into
+            # the table occupied by the placeholder.  And so that dividing
+            # the #define value by the table length gives an index into
+            # the table of deprecation messages for the corresponding
+            # warning.
+            my $revised_enum = "${enum}_perl_aux";
+            if (! $seen_deprecated) {
+                $seen_deprecated = 1;
+                print $out_fh "\n";
+            }
+            print $out_fh "#define $enum ($revised_enum + (MAX_UNI_KEYWORD_INDEX * $deprecated_tags{$enum}))\n";
+            $enum = $revised_enum;
+        }
+    }
+}
+
+print $out_fh "\ntypedef enum {\n\tPERL_BIN_PLACEHOLDER = 0,\n\t";
+print $out_fh join ",\n\t", @enums;
+print $out_fh "\n";
+print $out_fh "} binary_invlist_enum;\n";
+print $out_fh "\n#define MAX_UNI_KEYWORD_INDEX $enums[-1]\n";
+print $out_fh "\n", join "\n", @bin_prop_defines, "\n";
+
+switch_pound_if ('binary_property_index_table', 'PERL_IN_UTF8_C' );
+
+print $out_fh "\nstatic const UV * const PL_uni_prop_ptrs\[] = {\n";
+print $out_fh "\tNULL,\t/* Placeholder */\n\t";
+print $out_fh join ",\n\t", @invlist_names;
+print $out_fh "\n";
+print $out_fh "};\n";
+
+end_file_pound_if;
+
 switch_pound_if('Boundary_pair_tables', 'PERL_IN_REGEXEC_C');
 
 output_GCB_table();
@@ -2626,3 +2757,50 @@ my @sources = qw(regen/mk_invlists.pl
 }
 
 read_only_bottom_close_and_rename($out_fh, \@sources);
+
+use Devel::Tokenizer::C;
+
+sub token_name
+{
+    my $name = sanitize_name(shift);
+    warn "$name contains non-word" if $name =~ /\W/a;
+
+    return "return $table_name_prefix\U$name;\n"
+}
+
+my $t = Devel::Tokenizer::C->new(TokenFunc => \&token_name,
+                                 StringLength  => 'len',
+                                 Strategy      => 'narrow',
+                                 TokenEnd      =>  undef,
+                                 UnknownCode   => 'return 0;',
+        );
+
+$t->add_tokens(lc $_) for @keywords;
+
+my $keywords_fh = open_new('uni_keywords.c', '>',
+                 {style => '*', by => 'regen/mk_invlists.pl',
+                  from => "Unicode::UCD"});
+
+print $keywords_fh <<EOF;
+
+#define PERL_IN_UNI_KEYWORDS_C
+
+#include "EXTERN.h"
+#include "perl.h"
+
+int
+Perl_uniprop_lookup(const char * tokstr, const Size_t len)
+{
+
+    PERL_ARGS_ASSERT_UNIPROP_LOOKUP;
+
+EOF
+
+print $keywords_fh $t->generate;
+
+print $keywords_fh <<EOF;
+
+}
+EOF
+
+read_only_bottom_close_and_rename($keywords_fh, \@sources);
index 82206df..1d98fe7 100644 (file)
@@ -1644,7 +1644,8 @@ EOP
         like("X", qr/$x/, "UTF-8 of /[x]/i matches upper case");
     }
 
-    {   # make sure we get an error when \p{} cannot load Unicode tables
+SKIP: {   # make sure we get an error when \p{} cannot load Unicode tables
+        skip("Unicode tables always now loaded", 1);
         fresh_perl_like(<<'        prog that cannot load uni tables',
             BEGIN {
                 @INC = '../lib';
index 41ac361..e72a1b1 100644 (file)
@@ -2,6 +2,7 @@ BEGIN {
     chdir 't' if -d 't';
     require './test.pl';
     set_up_inc('../lib');
+    skip_all("utf8_heavy no longer used much");
     skip_all_without_unicode_tables();
 }
 
diff --git a/uni_keywords.c b/uni_keywords.c
new file mode 100644 (file)
index 0000000..d5b1796
--- /dev/null
@@ -0,0 +1,133191 @@
+/* -*- buffer-read-only: t -*-
+ * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+ * This file is built by regen/mk_invlists.pl from Unicode::UCD.
+ * Any changes made here will be lost!
+ */
+
+
+#define PERL_IN_UNI_KEYWORDS_C
+
+#include "EXTERN.h"
+#include "perl.h"
+
+int
+Perl_uniprop_lookup(const char * tokstr, const Size_t len)
+{
+
+    PERL_ARGS_ASSERT_UNIPROP_LOOKUP;
+
+switch (len)
+{
+  case 1: /* 7 tokens of length 1 */
+    switch (tokstr[0])
+    {
+      case 'c':
+        {                                         /* c                                                */
+          return PL_C;
+        }
+
+      case 'l':
+        {                                         /* l                                                */
+          return PL_L;
+        }
+
+      case 'm':
+        {                                         /* m                                                */
+          return PL_M;
+        }
+
+      case 'n':
+        {                                         /* n                                                */
+          return PL_N;
+        }
+
+      case 'p':
+        {                                         /* p                                                */
+          return PL_P;
+        }
+
+      case 's':
+        {                                         /* s                                                */
+          return PL_S;
+        }
+
+      case 'z':
+        {                                         /* z                                                */
+          return PL_Z;
+        }
+
+      default:
+        return 0;
+    }
+
+  case 2: /* 41 tokens of length 2 */
+    switch (tokstr[0])
+    {
+      case 'c':
+        switch (tokstr[1])
+        {
+          case 'c':
+            {                                     /* cc                                               */
+              return PL_CC;
+            }
+
+          case 'e':
+            {                                     /* ce                                               */
+              return PL_CE;
+            }
+
+          case 'f':
+            {                                     /* cf                                               */
+              return PL_CF;
+            }
+
+          case 'i':
+            {                                     /* ci                                               */
+              return PL_CI;
+            }
+
+          case 'n':
+            {                                     /* cn                                               */
+              return PL_CN;
+            }
+
+          case 'o':
+            {                                     /* co                                               */
+              return PL_CO;
+            }
+
+          case 's':
+            {                                     /* cs                                               */
+              return PL_CS;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'd':
+        if (tokstr[1] == 'i')
+        {                                         /* di                                               */
+          return PL_DI;
+        }
+
+        return 0;
+
+      case 'l':
+        switch (tokstr[1])
+        {
+          case '&':
+            {                                     /* l&                                               */
+              return PL_L_AMP_;
+            }
+
+          case '_':
+            {                                     /* l_                                               */
+              return PL_L_;
+            }
+
+          case 'c':
+            {                                     /* lc                                               */
+              return PL_LC;
+            }
+
+          case 'l':
+            {                                     /* ll                                               */
+              return PL_LL;
+            }
+
+          case 'm':
+            {                                     /* lm                                               */
+              return PL_LM;
+            }
+
+          case 'o':
+            {                                     /* lo                                               */
+              return PL_LO;
+            }
+
+          case 't':
+            {                                     /* lt                                               */
+              return PL_LT;
+            }
+
+          case 'u':
+            {                                     /* lu                                               */
+              return PL_LU;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'm':
+        switch (tokstr[1])
+        {
+          case 'c':
+            {                                     /* mc                                               */
+              return PL_MC;
+            }
+
+          case 'e':
+            {                                     /* me                                               */
+              return PL_ME;
+            }
+
+          case 'n':
+            {                                     /* mn                                               */
+              return PL_MN;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'n':
+        switch (tokstr[1])
+        {
+          case 'b':
+            {                                     /* nb                                               */
+              return PL_NB;
+            }
+
+          case 'd':
+            {                                     /* nd                                               */
+              return PL_ND;
+            }
+
+          case 'l':
+            {                                     /* nl                                               */
+              return PL_NL;
+            }
+
+          case 'o':
+            {                                     /* no                                               */
+              return PL_NO;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'p':
+        switch (tokstr[1])
+        {
+          case 'c':
+            {                                     /* pc                                               */
+              return PL_PC;
+            }
+
+          case 'd':
+            {                                     /* pd                                               */
+              return PL_PD;
+            }
+
+          case 'e':
+            {                                     /* pe                                               */
+              return PL_PE;
+            }
+
+          case 'f':
+            {                                     /* pf                                               */
+              return PL_PF;
+            }
+
+          case 'i':
+            {                                     /* pi                                               */
+              return PL_PI;
+            }
+
+          case 'o':
+            {                                     /* po                                               */
+              return PL_PO;
+            }
+
+          case 's':
+            {                                     /* ps                                               */
+              return PL_PS;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'r':
+        if (tokstr[1] == 'i')
+        {                                         /* ri                                               */
+          return PL_RI;
+        }
+
+        return 0;
+
+      case 's':
+        switch (tokstr[1])
+        {
+          case 'c':
+            {                                     /* sc                                               */
+              return PL_SC;
+            }
+
+          case 'd':
+            {                                     /* sd                                               */
+              return PL_SD;
+            }
+
+          case 'k':
+            {                                     /* sk                                               */
+              return PL_SK;
+            }
+
+          case 'm':
+            {                                     /* sm                                               */
+              return PL_SM;
+            }
+
+          case 'o':
+            {                                     /* so                                               */
+              return PL_SO;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'v':
+        if (tokstr[1] == 's')
+        {                                         /* vs                                               */
+          return PL_VS;
+        }
+
+        return 0;
+
+      case 'y':
+        if (tokstr[1] == 'i')
+        {                                         /* yi                                               */
+          return PL_YI;
+        }
+
+        return 0;
+
+      case 'z':
+        switch (tokstr[1])
+        {
+          case 'l':
+            {                                     /* zl                                               */
+              return PL_ZL;
+            }
+
+          case 'p':
+            {                                     /* zp                                               */
+              return PL_ZP;
+            }
+
+          case 's':
+            {                                     /* zs                                               */
+              return PL_ZS;
+            }
+
+          default:
+            return 0;
+        }
+
+      default:
+        return 0;
+    }
+
+  case 3: /* 28 tokens of length 3 */
+    switch (tokstr[0])
+    {
+      case 'a':
+        switch (tokstr[1])
+        {
+          case 'l':
+            if (tokstr[2] == 'l')
+            {                                     /* all                                              */
+              return PL_ALL;
+            }
+
+            return 0;
+
+          case 'n':
+            if (tokstr[2] == 'y')
+            {                                     /* any                                              */
+              return PL_ANY;
+            }
+
+            return 0;
+
+          default:
+            return 0;
+        }
+
+      case 'c':
+        switch (tokstr[1])
+        {
+          case 'j':
+            if (tokstr[2] == 'k')
+            {                                     /* cjk                                              */
+              return PL_CJK;
+            }
+
+            return 0;
+
+          case 'w':
+            switch (tokstr[2])
+            {
+              case 'l':
+                {                                 /* cwl                                              */
+                  return PL_CWL;
+                }
+
+              case 't':
+                {                                 /* cwt                                              */
+                  return PL_CWT;
+                }
+
+              case 'u':
+                {                                 /* cwu                                              */
+                  return PL_CWU;
+                }
+
+              default:
+                return 0;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'd':
+        switch (tokstr[1])
+        {
+          case 'e':
+            if (tokstr[2] == 'p')
+            {                                     /* dep                                              */
+              return PL_DEP;
+            }
+
+            return 0;
+
+          case 'i':
+            if (tokstr[2] == 'a')
+            {                                     /* dia                                              */
+              return PL_DIA;
+            }
+
+            return 0;
+
+          default:
+            return 0;
+        }
+
+      case 'e':
+        if (tokstr[1] == 'x' &&
+            tokstr[2] == 't')
+        {                                         /* ext                                              */
+          return PL_EXT;
+        }
+
+        return 0;
+
+      case 'h':
+        switch (tokstr[1])
+        {
+          case 'a':
+            if (tokstr[2] == 'n')
+            {                                     /* han                                              */
+              return PL_HAN;
+            }
+
+            return 0;
+
+          case 'e':
+            if (tokstr[2] == 'x')
+            {                                     /* hex                                              */
+              return PL_HEX;
+            }
+
+            return 0;
+
+          default:
+            return 0;
+        }
+
+      case 'i':
+        switch (tokstr[1])
+        {
+          case 'd':
+            switch (tokstr[2])
+            {
+              case 'c':
+                {                                 /* idc                                              */
+                  return PL_IDC;
+                }
+
+              case 's':
+                {                                 /* ids                                              */
+                  return PL_IDS;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 's':
+            switch (tokstr[2])
+            {
+              case 'c':
+                {                                 /* isc                                              */
+                  return PL_ISC;
+                }
+
+              case 'l':
+                {                                 /* isl                                              */
+                  return PL_ISL;
+                }
+
+              case 'm':
+                {                                 /* ism                                              */
+                  return PL_ISM;
+                }
+
+              case 'n':
+                {                                 /* isn                                              */
+                  return PL_ISN;
+                }
+
+              case 'p':
+                {                                 /* isp                                              */
+                  return PL_ISP;
+                }
+
+              case 's':
+                {                                 /* iss                                              */
+                  return PL_ISS;
+                }
+
+              case 'z':
+                {                                 /* isz                                              */
+                  return PL_ISZ;
+                }
+
+              default:
+                return 0;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'l':
+        switch (tokstr[1])
+        {
+          case 'a':
+            if (tokstr[2] == 'o')
+            {                                     /* lao                                              */
+              return PL_LAO;
+            }
+
+            return 0;
+
+          case 'o':
+            if (tokstr[2] == 'e')
+            {                                     /* loe                                              */
+              return PL_LOE;
+            }
+
+            return 0;
+
+          default:
+            return 0;
+        }
+
+      case 'm':
+        if (tokstr[1] == 'r' &&
+            tokstr[2] == 'o')
+        {                                         /* mro                                              */
+          return PL_MRO;
+        }
+
+        return 0;
+
+      case 'n':
+        if (tokstr[1] == 'k' &&
+            tokstr[2] == 'o')
+        {                                         /* nko                                              */
+          return PL_NKO;
+        }
+
+        return 0;
+
+      case 'o':
+        if (tokstr[1] == 'c' &&
+            tokstr[2] == 'r')
+        {                                         /* ocr                                              */
+          return PL_OCR;
+        }
+
+        return 0;
+
+      case 'p':
+        switch (tokstr[1])
+        {
+          case 'c':
+            if (tokstr[2] == 'm')
+            {                                     /* pcm                                              */
+              return PL_PCM;
+            }
+
+            return 0;
+
+          case 'u':
+            if (tokstr[2] == 'a')
+            {                                     /* pua                                              */
+              return PL_PUA;
+            }
+
+            return 0;
+
+          default:
+            return 0;
+        }
+
+      case 'v':
+        if (tokstr[1] == 'a' &&
+            tokstr[2] == 'i')
+        {                                         /* vai                                              */
+          return PL_VAI;
+        }
+
+        return 0;
+
+      default:
+        return 0;
+    }
+
+  case 4: /* 272 tokens of length 4 */
+    switch (tokstr[1])
+    {
+      case 'a':
+        switch (tokstr[2])
+        {
+          case '=':
+            switch (tokstr[0])
+            {
+              case 'e':
+                switch (tokstr[3])
+                {
+                  case 'a':
+                    {                             /* ea=a                                             */
+                      return PL_EA__A;
+                    }
+
+                  case 'f':
+                    {                             /* ea=f                                             */
+                      return PL_EA__F;
+                    }
+
+                  case 'h':
+                    {                             /* ea=h                                             */
+                      return PL_EA__H;
+                    }
+
+                  case 'n':
+                    {                             /* ea=n                                             */
+                      return PL_EA__N;
+                    }
+
+                  case 'w':
+                    {                             /* ea=w                                             */
+                      return PL_EA__W;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'a':
+            switch (tokstr[0])
+            {
+              case 'q':
+                switch (tokstr[3])
+                {
+                  case 'c':
+                    {                             /* qaac                                             */
+                      return PL_QAAC;
+                    }
+
+                  case 'i':
+                    {                             /* qaai                                             */
+                      return PL_QAAI;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'g':
+            switch (tokstr[0])
+            {
+              case 't':
+                switch (tokstr[3])
+                {
+                  case 'b':
+                    {                             /* tagb                                             */
+                      return PL_TAGB;
+                    }
+
+                  case 's':
+                    {                             /* tags                                             */
+                      return PL_TAGS;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'h':
+            if (tokstr[0] == 'm' &&
+                tokstr[3] == 'j')
+            {                                     /* mahj                                             */
+              return PL_MAHJ;
+            }
+
+            return 0;
+
+          case 'i':
+            if (tokstr[0] == 'v' &&
+                tokstr[3] == 'i')
+            {                                     /* vaii                                             */
+              return PL_VAII;
+            }
+
+            return 0;
+
+          case 'k':
+            switch (tokstr[0])
+            {
+              case 'c':
+                if (tokstr[3] == 'm')
+                {                                 /* cakm                                             */
+                  return PL_CAKM;
+                }
+
+                return 0;
+
+              case 't':
+                if (tokstr[3] == 'r')
+                {                                 /* takr                                             */
+                  return PL_TAKR;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'l':
+            switch (tokstr[0])
+            {
+              case 'b':
+                if (tokstr[3] == 'i')
+                {                                 /* bali                                             */
+                  return PL_BALI;
+                }
+
+                return 0;
+
+              case 'k':
+                if (tokstr[3] == 'i')
+                {                                 /* kali                                             */
+                  return PL_KALI;
+                }
+
+                return 0;
+
+              case 'p':
+                if (tokstr[3] == 'm')
+                {                                 /* palm                                             */
+                  return PL_PALM;
+                }
+
+                return 0;
+
+              case 't':
+                switch (tokstr[3])
+                {
+                  case 'e':
+                    {                             /* tale                                             */
+                      return PL_TALE;
+                    }
+
+                  case 'u':
+                    {                             /* talu                                             */
+                      return PL_TALU;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'm':
+            switch (tokstr[0])
+            {
+              case 'b':
+                if (tokstr[3] == 'u')
+                {                                 /* bamu                                             */
+                  return PL_BAMU;
+                }
+
+                return 0;
+
+              case 'j':
+                if (tokstr[3] == 'o')
+                {                                 /* jamo                                             */
+                  return PL_JAMO;
+                }
+
+                return 0;
+
+              case 's':
+                if (tokstr[3] == 'r')
+                {                                 /* samr                                             */
+                  return PL_SAMR;
+                }
+
+                return 0;
+
+              case 't':
+                if (tokstr[3] == 'l')
+                {                                 /* taml                                             */
+                  return PL_TAML;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'n':
+            switch (tokstr[0])
+            {
+              case 'c':
+                if (tokstr[3] == 's')
+                {                                 /* cans                                             */
+                  return PL_CANS;
+                }
+
+                return 0;
+
+              case 'h':
+                switch (tokstr[3])
+                {
+                  case 'g':
+                    {                             /* hang                                             */
+                      return PL_HANG;
+                    }
+
+                  case 'i':
+                    {                             /* hani                                             */
+                      return PL_HANI;
+                    }
+
+                  case 'o':
+                    {                             /* hano                                             */
+                      return PL_HANO;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              case 'k':
+                if (tokstr[3] == 'a')
+                {                                 /* kana                                             */
+                  return PL_KANA;
+                }
+
+                return 0;
+
+              case 'l':
+                if (tokstr[3] == 'a')
+                {                                 /* lana                                             */
+                  return PL_LANA;
+                }
+
+                return 0;
+
+              case 'm':
+                switch (tokstr[3])
+                {
+                  case 'd':
+                    {                             /* mand                                             */
+                      return PL_MAND;
+                    }
+
+                  case 'i':
+                    {                             /* mani                                             */
+                      return PL_MANI;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              case 't':
+                if (tokstr[3] == 'g')
+                {                                 /* tang                                             */
+                  return PL_TANG;
+                }
+
+                return 0;
+
+              case 'z':
+                if (tokstr[3] == 'b')
+                {                                 /* zanb                                             */
+                  return PL_ZANB;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'o':
+            if (tokstr[0] == 'l' &&
+                tokstr[3] == 'o')
+            {                                     /* laoo                                             */
+              return PL_LAOO;
+            }
+
+            return 0;
+
+          case 'r':
+            switch (tokstr[0])
+            {
+              case 'c':
+                if (tokstr[3] == 'i')
+                {                                 /* cari                                             */
+                  return PL_CARI;
+                }
+
+                return 0;
+
+              case 'm':
+                switch (tokstr[3])
+                {
+                  case 'c':
+                    {                             /* marc                                             */
+                      return PL_MARC;
+                    }
+
+                  case 'k':
+                    {                             /* mark                                             */
+                      return PL_MARK;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              case 'n':
+                if (tokstr[3] == 'b')
+                {                                 /* narb                                             */
+                  return PL_NARB;
+                }
+
+                return 0;
+
+              case 's':
+                if (tokstr[3] == 'b')
+                {                                 /* sarb                                             */
+                  return PL_SARB;
+                }
+
+                return 0;
+
+              case 'w':
+                if (tokstr[3] == 'a')
+                {                                 /* wara                                             */
+                  return PL_WARA;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 's':
+            switch (tokstr[0])
+            {
+              case 'b':
+                if (tokstr[3] == 's')
+                {                                 /* bass                                             */
+                  return PL_BASS;
+                }
+
+                return 0;
+
+              case 'd':
+                if (tokstr[3] == 'h')
+                {                                 /* dash                                             */
+                  return PL_DASH;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 't':
+            switch (tokstr[0])
+            {
+              case 'b':
+                if (tokstr[3] == 'k')
+                {                                 /* batk                                             */
+                  return PL_BATK;
+                }
+
+                return 0;
+
+              case 'h':
+                if (tokstr[3] == 'r')
+                {                                 /* hatr                                             */
+                  return PL_HATR;
+                }
+
+                return 0;
+
+              case 'l':
+                if (tokstr[3] == 'n')
+                {                                 /* latn                                             */
+                  return PL_LATN;
+                }
+
+                return 0;
+
+              case 'm':
+                if (tokstr[3] == 'h')
+                {                                 /* math                                             */
+                  return PL_MATH;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'u':
+            switch (tokstr[0])
+            {
+              case 'p':
+                if (tokstr[3] == 'c')
+                {                                 /* pauc                                             */
+                  return PL_PAUC;
+                }
+
+                return 0;
+
+              case 's':
+                if (tokstr[3] == 'r')
+                {                                 /* saur                                             */
+                  return PL_SAUR;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'v':
+            switch (tokstr[0])
+            {
+              case 'j':
+                if (tokstr[3] == 'a')
+                {                                 /* java                                             */
+                  return PL_JAVA;
+                }
+
+                return 0;
+
+              case 't':
+                if (tokstr[3] == 't')
+                {                                 /* tavt                                             */
+                  return PL_TAVT;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'b':
+        if (tokstr[0] == 'n' &&
+            tokstr[2] == 'a' &&
+            tokstr[3] == 't')
+        {                                         /* nbat                                             */
+          return PL_NBAT;
+        }
+
+        return 0;
+
+      case 'c':
+        switch (tokstr[2])
+        {
+          case '=':
+            switch (tokstr[0])
+            {
+              case 'b':
+                switch (tokstr[3])
+                {
+                  case 'b':
+                    {                             /* bc=b                                             */
+                      return PL_BC__B;
+                    }
+
+                  case 'l':
+                    {                             /* bc=l                                             */
+                      return PL_BC__L;
+                    }
+
+                  case 'r':
+                    {                             /* bc=r                                             */
+                      return PL_BC__R;
+                    }
+
+                  case 's':
+                    {                             /* bc=s                                             */
+                      return PL_BC__S;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              case 'g':
+                switch (tokstr[3])
+                {
+                  case 'c':
+                    {                             /* gc=c                                             */
+                      return PL_GC__C;
+                    }
+
+                  case 'l':
+                    {                             /* gc=l                                             */
+                      return PL_GC__L;
+                    }
+
+                  case 'm':
+                    {                             /* gc=m                                             */
+                      return PL_GC__M;
+                    }
+
+                  case 'n':
+                    {                             /* gc=n                                             */
+                      return PL_GC__N;
+                    }
+
+                  case 'p':
+                    {                             /* gc=p                                             */
+                      return PL_GC__P;
+                    }
+
+                  case 's':
+                    {                             /* gc=s                                             */
+                      return PL_GC__S;
+                    }
+
+                  case 'z':
+                    {                             /* gc=z                                             */
+                      return PL_GC__Z;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'a':
+            if (tokstr[0] == 'u' &&
+                tokstr[3] == 's')
+            {                                     /* ucas                                             */
+              return PL_UCAS;
+            }
+
+            return 0;
+
+          default:
+            return 0;
+        }
+
+      case 'd':
+        switch (tokstr[2])
+        {
+          case '=':
+            switch (tokstr[0])
+            {
+              case 's':
+                switch (tokstr[3])
+                {
+                  case 'f':
+                    {                             /* sd=f                                             */
+                      return PL_SD__F;
+                    }
+
+                  case 'n':
+                    {                             /* sd=n                                             */
+                      return PL_SD__N;
+                    }
+
+                  case 't':
+                    {                             /* sd=t                                             */
+                      return PL_SD__T;
+                    }
+
+                  case 'y':
+                    {                             /* sd=y                                             */
+                      return PL_SD__Y;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'e':
+            if (tokstr[0] == 'i' &&
+                tokstr[3] == 'o')
+            {                                     /* ideo                                             */
+              return PL_IDEO;
+            }
+
+            return 0;
+
+          case 'l':
+            if (tokstr[0] == 'a' &&
+                tokstr[3] == 'm')
+            {                                     /* adlm                                             */
+              return PL_ADLM;
+            }
+
+            return 0;
+
+          case 's':
+            switch (tokstr[0])
+            {
+              case 'i':
+                switch (tokstr[3])
+                {
+                  case 'b':
+                    {                             /* idsb                                             */
+                      return PL_IDSB;
+                    }
+
+                  case 't':
+                    {                             /* idst                                             */
+                      return PL_IDST;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          default:
+            return 0;
+        }
+
+      case 'e':
+        switch (tokstr[2])
+        {
+          case '=':
+            switch (tokstr[0])
+            {
+              case 'c':
+                switch (tokstr[3])
+                {
+                  case 'f':
+                    {                             /* ce=f                                             */
+                      return PL_CE__F;
+                    }
+
+                  case 'n':
+                    {                             /* ce=n                                             */
+                      return PL_CE__N;
+                    }
+
+                  case 't':
+                    {                             /* ce=t                                             */
+                      return PL_CE__T;
+                    }
+
+                  case 'y':
+                    {                             /* ce=y                                             */
+                      return PL_CE__Y;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'b':
+            if (tokstr[0] == 'h' &&
+                tokstr[3] == 'r')
+            {                                     /* hebr                                             */
+              return PL_HEBR;
+            }
+
+            return 0;
+
+          case 'l':
+            if (tokstr[0] == 't' &&
+                tokstr[3] == 'u')
+            {                                     /* telu                                             */
+              return PL_TELU;
+            }
+
+            return 0;
+
+          case 'n':
+            switch (tokstr[0])
+            {
+              case 'b':
+                if (tokstr[3] == 'g')
+                {                                 /* beng                                             */
+                  return PL_BENG;
+                }
+
+                return 0;
+
+              case 'm':
+                if (tokstr[3] == 'd')
+                {                                 /* mend                                             */
+                  return PL_MEND;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'o':
+            if (tokstr[0] == 'g' &&
+                tokstr[3] == 'r')
+            {                                     /* geor                                             */
+              return PL_GEOR;
+            }
+
+            return 0;
+
+          case 'p':
+            if (tokstr[0] == 'l' &&
+                tokstr[3] == 'c')
+            {                                     /* lepc                                             */
+              return PL_LEPC;
+            }
+
+            return 0;
+
+          case 'r':
+            switch (tokstr[0])
+            {
+              case 'm':
+                switch (tokstr[3])
+                {
+                  case 'c':
+                    {                             /* merc                                             */
+                      return PL_MERC;
+                    }
+
+                  case 'o':
+                    {                             /* mero                                             */
+                      return PL_MERO;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              case 'p':
+                if (tokstr[3] == 'm')
+                {                                 /* perm                                             */
+                  return PL_PERM;
+                }
+
+                return 0;
+
+              case 't':
+                if (tokstr[3] == 'm')
+                {                                 /* term                                             */
+                  return PL_TERM;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'v':
+            if (tokstr[0] == 'd' &&
+                tokstr[3] == 'a')
+            {                                     /* deva                                             */
+              return PL_DEVA;
+            }
+
+            return 0;
+
+          case 'w':
+            if (tokstr[0] == 'n' &&
+                tokstr[3] == 'a')
+            {                                     /* newa                                             */
+              return PL_NEWA;
+            }
+
+            return 0;
+
+          default:
+            return 0;
+        }
+
+      case 'f':
+        if (tokstr[0] == 't' &&
+            tokstr[2] == 'n' &&
+            tokstr[3] == 'g')
+        {                                         /* tfng                                             */
+          return PL_TFNG;
+        }
+
+        return 0;
+
+      case 'g':
+        switch (tokstr[2])
+        {
+          case '=':
+            if (tokstr[0] == 'j' &&
+                tokstr[3] == 'e')
+            {                                     /* jg=e                                             */
+              return PL_JG__E;
+            }
+
+            return 0;
+
+          case 'a':
+            switch (tokstr[0])
+            {
+              case 'o':
+                if (tokstr[3] == 'm')
+                {                                 /* ogam                                             */
+                  return PL_OGAM;
+                }
+
+                return 0;
+
+              case 'u':
+                if (tokstr[3] == 'r')
+                {                                 /* ugar                                             */
+                  return PL_UGAR;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'h':
+            if (tokstr[0] == 'a' &&
+                tokstr[3] == 'b')
+            {                                     /* aghb                                             */
+              return PL_AGHB;
+            }
+
+            return 0;
+
+          case 'l':
+            if (tokstr[0] == 't' &&
+                tokstr[3] == 'g')
+            {                                     /* tglg                                             */
+              return PL_TGLG;
+            }
+
+            return 0;
+
+          case 'n':
+            if (tokstr[0] == 's' &&
+                tokstr[3] == 'w')
+            {                                     /* sgnw                                             */
+              return PL_SGNW;
+            }
+
+            return 0;
+
+          case 'y':
+            if (tokstr[0] == 'e' &&
+                tokstr[3] == 'p')
+            {                                     /* egyp                                             */
+              return PL_EGYP;
+            }
+
+            return 0;
+
+          default:
+            return 0;
+        }
+
+      case 'h':
+        switch (tokstr[2])
+        {
+          case 'a':
+            switch (tokstr[0])
+            {
+              case 'c':
+                if (tokstr[3] == 'm')
+                {                                 /* cham                                             */
+                  return PL_CHAM;
+                }
+
+                return 0;
+
+              case 'k':
+                if (tokstr[3] == 'r')
+                {                                 /* khar                                             */
+                  return PL_KHAR;
+                }
+
+                return 0;
+
+              case 'p':
+                if (tokstr[3] == 'g')
+                {                                 /* phag                                             */
+                  return PL_PHAG;
+                }
+
+                return 0;
+
+              case 's':
+                if (tokstr[3] == 'w')
+                {                                 /* shaw                                             */
+                  return PL_SHAW;
+                }
+
+                return 0;
+
+              case 't':
+                switch (tokstr[3])
+                {
+                  case 'a':
+                    {                             /* thaa                                             */
+                      return PL_THAA;
+                    }
+
+                  case 'i':
+                    {                             /* thai                                             */
+                      return PL_THAI;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'e':
+            switch (tokstr[0])
+            {
+              case 'a':
+                if (tokstr[3] == 'x')
+                {                                 /* ahex                                             */
+                  return PL_AHEX;
+                }
+
+                return 0;
+
+              case 'c':
+                if (tokstr[3] == 'r')
+                {                                 /* cher                                             */
+                  return PL_CHER;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'k':
+            if (tokstr[0] == 'b' &&
+                tokstr[3] == 's')
+            {                                     /* bhks                                             */
+              return PL_BHKS;
+            }
+
+            return 0;
+
+          case 'l':
+            switch (tokstr[0])
+            {
+              case 'p':
+                switch (tokstr[3])
+                {
+                  case 'i':
+                    {                             /* phli                                             */
+                      return PL_PHLI;
+                    }
+
+                  case 'p':
+                    {                             /* phlp                                             */
+                      return PL_PHLP;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'm':
+            if (tokstr[0] == 'k' &&
+                tokstr[3] == 'r')
+            {                                     /* khmr                                             */
+              return PL_KHMR;
+            }
+
+            return 0;
+
+          case 'n':
+            if (tokstr[0] == 'p' &&
+                tokstr[3] == 'x')
+            {                                     /* phnx                                             */
+              return PL_PHNX;
+            }
+
+            return 0;
+
+          case 'o':
+            switch (tokstr[0])
+            {
+              case 'a':
+                if (tokstr[3] == 'm')
+                {                                 /* ahom                                             */
+                  return PL_AHOM;
+                }
+
+                return 0;
+
+              case 'k':
+                if (tokstr[3] == 'j')
+                {                                 /* khoj                                             */
+                  return PL_KHOJ;
+                }
+
+                return 0;
+
+              default:
+                return 0;
+            }
+
+          case 'r':
+            if (tokstr[0] == 's' &&
+                tokstr[3] == 'd')
+            {                                     /* shrd                                             */
+              return PL_SHRD;
+            }
+
+            return 0;
+
+          default:
+            return 0;
+        }
+
+      case 'i':
+        switch (tokstr[2])
+        {
+          case '=':
+            switch (tokstr[0])
+            {
+              case 'c':
+                switch (tokstr[3])
+                {
+                  case 'f':
+                    {                             /* ci=f                                             */
+                      return PL_CI__F;
+                    }
+
+                  case 'n':
+                    {                             /* ci=n                                             */
+                      return PL_CI__N;
+                    }
+
+                  case 't':
+                    {                             /* ci=t                                             */
+                      return PL_CI__T;
+                    }
+
+                  case 'y':
+                    {                             /* ci=y                                             */
+                      return PL_CI__Y;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              case 'd':
+                switch (tokstr[3])
+                {
+                  case 'f':
+                    {                             /* di=f                                             */
+                      return PL_DI__F;
+                    }
+
+                  case 'n':
+                    {                             /* di=n                                             */
+                      return PL_DI__N;
+                    }
+
+                  case 't':
+                    {                             /* di=t                                             */
+                      return PL_DI__T;
+                    }
+
+                  case 'y':
+                    {                             /* di=y                                             */
+                      return PL_DI__Y;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              case 'r':
+                switch (tokstr[3])
+                {
+                  case 'f':
+                    {                             /* ri=f                                             */
+                      return PL_RI__F;
+                    }
+
+                  case 'n':
+                    {                             /* ri=n                                             */
+                      return PL_RI__N;
+                    }
+
+                  case 't':
+                    {                             /* ri=t                                             */
+                      return PL_RI__T;
+                    }
+
+                  case 'y':
+                    {                             /* ri=y                                             */
+                      return PL_RI__Y;
+                    }
+
+                  default:
+                    return 0;
+                }
+
+              default:
+                return 0;
+            }
+
+          case 'a':
+            if (tokstr[0] == 'm' &&
+                tokstr[3] == 'o')
+            {                                     /* miao                                             */
+              return PL_MIAO;
+            }
+
+            return 0;
+
+          case 'b':